- Support any patch version of v0.8
- Extended Solidity support to v0.8.18
- Extended Solidity support to v0.8.17
- Save gas when copying memory that's a multiple of 32 bytes.
rlpBytesKeccak256(RLPItem)
returns keccak256 hash of RLP encoded bytes.payloadKeccak256(RLPItem)
returns keccak256 hash of the item payload.payloadLocation(RLPItem) (uint memPtr, uint len)
returns the memory pointer and byte length of the data payload.
- support for solidity 0.6.x
toBoolean(RLPItem)
will return false for the rlp encoded string, "0x80". This is because common rlp encoding libraries will encode "0" as "0x08".
iterator(RLPItem)
returns an iterator object over an rlp encoded listhasNext(Iterator)
returns a boolean if the iterator has an item to iterate on nextnext(Iterator) returns (RLPItem)
returns an RLPItem of the next item up for iteration
payloadLen
returns the length of the data payload
size
torlpLen
returns the size of the rlp payload
toUintStrict
strict uint conversion. Encoded data must be 32 bytes in length
toAddress
expects a fixed 20 byte item. wil revert otherwisetoUint
explicit check added to cap the encoded byte length to 32 bytes
toUint
edge case with a 32 byte uint. Do not need to right shift if the uint is 32 bytes in length. right shifting caused a revert otherwise.
- removed error strings in
require
statements to reduce deployment gas costs for users of this reader
size(RlpItem)
returns the byte length of the rlp item
- Upgraded contract to solidity version
v0.5.0
- added checks for when the rlp item is empty.
- More tests for the added checks
toRlpBytes(RlpItem)
converts an rlp item back into its raw rlp encoded byte form
- relax the
toAddress(RlpItem)
requirement to allow short address conversions.
- Bugfix in
copy
that did not work properly if the length to copy was an evm word or longer
- First Release. RLP decoding