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());
}
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);
}
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);
}
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());
}
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);
}
Aggregations