Evm_node_lib_dev_encoding.RlpA simple RLP encoding library, see https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/ for the specification.
An RLP value is either a bytes value, or a list of RLP values.
encode_int i encodes an integer in big endian in its smallest representation.
encode_z z encodes a big integer in big endian in its smallest representation.
val encode : item -> bytesencode item takes an RLP item and returns its encoded form.
val decode_int : bytes -> int Tezos_base.TzPervasives.tzresultdecode_int bytes decodes an integer encoded in big endian from the given bytes. Returns an Rlp_decoding_error if the bytes is not a valid RLP encoded integer.
val decode_z : bytes -> Z.t Tezos_base.TzPervasives.tzresultdecode_z bytes decodes a big integer encoded in big endian from the given bytes. Returns an Rlp_decoding_error if the bytes is not a valid RLP encoded big integer.
val decode : bytes -> item Tezos_base.TzPervasives.tzresultdecode bytes decodes an RLP value from the given bytes. Returns an Rlp_decoding_error if the bytes is not an RLP encoded value.
val decode_exn : bytes -> itemdecode_exn bytes calls decode and raises Invalid_argument if it fails to decode.
val decode_option :
(item -> 'a Tezos_base.TzPervasives.tzresult) ->
item ->
'a option Tezos_base.TzPervasives.tzresultdecode_option decode_value optional_value decodes the option following Rust's RLP encoding.
val decode_result :
(item -> 'a Tezos_base.TzPervasives.tzresult) ->
(item -> 'b Tezos_base.TzPervasives.tzresult) ->
item ->
('a, 'b) Stdlib.result Tezos_base.TzPervasives.tzresultdecode_result decode_ok decode_error value decodes an encoded result type.
val decode_value :
(bytes -> 'a Tezos_base.TzPervasives.tzresult) ->
item ->
'a Tezos_base.TzPervasives.tzresultdecode_value decode item decodes an encapsulated value.
val decode_list :
(item -> 'a Tezos_base.TzPervasives.tzresult) ->
item ->
'a list Tezos_base.TzPervasives.tzresultdecode_list decode_item list_item decodes a list using decode_item on each list element.
val filter_decode_list :
(item -> 'a option) ->
item ->
'a list Tezos_base.TzPervasives.tzresultfilter_decode_list filter_decode list decodes and filter the item in a list: If filter_decode item is None then the item is filtered out, else it's decoded. Based on List.filter_map so slightly faster than two steps.
val decode_as_bytes : item -> bytes Tezos_base.TzPervasives.tzresultdecode_as_bytes item returns the bytes of item if it's a value, and returns a Rlp_decoding_error if it's a list.
val pp : Stdlib.Format.formatter -> item -> unitpp ppf item pretty-prints an item.