Search in sources :

Example 6 with RLPElement

use of org.ethereum.util.RLPElement in project rskj by rsksmart.

the class RLPTest method encodeDecodeEmptyList.

@Test
public void encodeDecodeEmptyList() {
    byte[] encoded = RLP.encodeList();
    Assert.assertNotNull(encoded);
    Assert.assertEquals(1, encoded.length);
    Assert.assertEquals((byte) 192, encoded[0]);
    ArrayList<RLPElement> list = RLP.decode2(encoded);
    Assert.assertNotNull(list);
    Assert.assertEquals(1, list.size());
    RLPList list2 = (RLPList) list.get(0);
    Assert.assertNotNull(list2);
    Assert.assertEquals(0, list2.size());
}
Also used : RLPElement(org.ethereum.util.RLPElement) RLPList(org.ethereum.util.RLPList) Test(org.junit.Test)

Example 7 with RLPElement

use of org.ethereum.util.RLPElement in project rskj by rsksmart.

the class RLPTest method encodeDecodeLongByteArrayWithTwoBytesLength.

@Test
public void encodeDecodeLongByteArrayWithTwoBytesLength() {
    byte[] bytes = new byte[256];
    byte[] encoded = RLP.encodeElement(bytes);
    Assert.assertNotNull(encoded);
    Assert.assertEquals(3 + 256, encoded.length);
    Assert.assertEquals((byte) (183 + 2), encoded[0]);
    Assert.assertEquals((byte) 1, encoded[1]);
    Assert.assertEquals((byte) 0, encoded[2]);
    RLPElement element = RLP.decode2OneItem(encoded, 0);
    Assert.assertNotNull(element);
    byte[] decoded = element.getRLPData();
    Assert.assertNotNull(decoded);
    Assert.assertArrayEquals(bytes, decoded);
}
Also used : RLPElement(org.ethereum.util.RLPElement) Test(org.junit.Test)

Example 8 with RLPElement

use of org.ethereum.util.RLPElement in project rskj by rsksmart.

the class RLPTest method encodeDecodeLongByteArrayWithThreeBytesLength.

@Test
public void encodeDecodeLongByteArrayWithThreeBytesLength() {
    byte[] bytes = new byte[256 * 256];
    byte[] encoded = RLP.encodeElement(bytes);
    Assert.assertNotNull(encoded);
    Assert.assertEquals(4 + 256 * 256, encoded.length);
    Assert.assertEquals((byte) (183 + 3), encoded[0]);
    Assert.assertEquals((byte) 0x01, encoded[1]);
    Assert.assertEquals((byte) 0x00, encoded[2]);
    Assert.assertEquals((byte) 0x00, encoded[3]);
    RLPElement element = RLP.decode2OneItem(encoded, 0);
    Assert.assertNotNull(element);
    byte[] decoded = element.getRLPData();
    Assert.assertNotNull(decoded);
    Assert.assertArrayEquals(bytes, decoded);
}
Also used : RLPElement(org.ethereum.util.RLPElement) Test(org.junit.Test)

Example 9 with RLPElement

use of org.ethereum.util.RLPElement in project rskj by rsksmart.

the class RLPTest method encodeDecodeShortListWithTwoByteArraysWithOneByteLength.

@Test
public void encodeDecodeShortListWithTwoByteArraysWithOneByteLength() {
    byte[] value1 = new byte[125];
    byte[] value2 = new byte[126];
    byte[] element1 = RLP.encodeElement(value1);
    byte[] element2 = RLP.encodeElement(value2);
    byte[] encoded = RLP.encodeList(element1, element2);
    Assert.assertNotNull(encoded);
    Assert.assertEquals(1 + 1 + 2 + 125 + 2 + 126, encoded.length);
    Assert.assertEquals((byte) (247 + 1), encoded[0]);
    Assert.assertEquals((byte) (255), encoded[1]);
    ArrayList<RLPElement> list = RLP.decode2(encoded);
    Assert.assertNotNull(list);
    Assert.assertEquals(1, list.size());
    RLPList list2 = (RLPList) list.get(0);
    Assert.assertNotNull(list2);
    Assert.assertEquals(2, list2.size());
    Assert.assertArrayEquals(value1, list2.get(0).getRLPData());
    Assert.assertArrayEquals(value2, list2.get(1).getRLPData());
}
Also used : RLPElement(org.ethereum.util.RLPElement) RLPList(org.ethereum.util.RLPList) Test(org.junit.Test)

Example 10 with RLPElement

use of org.ethereum.util.RLPElement in project rskj by rsksmart.

the class RLPTest method encodeDecodeLongByteArrayWithFourBytesLengthUsingEncode.

@Test
public void encodeDecodeLongByteArrayWithFourBytesLengthUsingEncode() {
    byte[] bytes = new byte[256 * 256 * 256];
    byte[] encoded = RLP.encode(bytes);
    Assert.assertNotNull(encoded);
    Assert.assertEquals(5 + 256 * 256 * 256, encoded.length);
    Assert.assertEquals((byte) (183 + 4), encoded[0]);
    Assert.assertEquals((byte) 0x01, encoded[1]);
    Assert.assertEquals((byte) 0x00, encoded[2]);
    Assert.assertEquals((byte) 0x00, encoded[3]);
    Assert.assertEquals((byte) 0x00, encoded[4]);
    RLPElement element = RLP.decode2OneItem(encoded, 0);
    Assert.assertNotNull(element);
    byte[] decoded = element.getRLPData();
    Assert.assertNotNull(decoded);
    Assert.assertArrayEquals(bytes, decoded);
}
Also used : RLPElement(org.ethereum.util.RLPElement) Test(org.junit.Test)

Aggregations

RLPElement (org.ethereum.util.RLPElement)38 Test (org.junit.Test)29 RLPList (org.ethereum.util.RLPList)19 ArrayList (java.util.ArrayList)4 LogInfo (org.ethereum.vm.LogInfo)3 Coin (co.rsk.core.Coin)2 RskAddress (co.rsk.core.RskAddress)2 Keccak256 (co.rsk.crypto.Keccak256)2 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)2 Script (co.rsk.bitcoinj.script.Script)1 ScriptChunk (co.rsk.bitcoinj.script.ScriptChunk)1 BridgeConstants (co.rsk.config.BridgeConstants)1 RepositoryImpl (co.rsk.db.RepositoryImpl)1 Federation (co.rsk.peg.Federation)1 BridgeEventLogger (co.rsk.peg.utils.BridgeEventLogger)1 BridgeEventLoggerImpl (co.rsk.peg.utils.BridgeEventLoggerImpl)1 RemascTransaction (co.rsk.remasc.RemascTransaction)1 LinkedList (java.util.LinkedList)1 Block (org.ethereum.core.Block)1 ImmutableTransaction (org.ethereum.core.ImmutableTransaction)1