Mavryk_raw_protocol_alpha.Sc_rollup_inbox_message_reprThis module exposes a type t that represents inbox messages. Inbox messages are produced by the Layer 1 protocol and are encoded using the serialize function, before being added to a smart-contract rollup's inbox.
They are part of the Rollup Management Protocol that defines the communication protocol for exchanging messages between Layer 1 and Layer 2 for a smart-contract rollup.
There are two types of inbox messages: external and internal.
Internal messages originate from Layer 1 smart-contract and consist of:
payload the parameters passed to the smart-contract rollup.sender the Layer 1 contract caller.source the public key hash used for originating the transaction.External messages originate from the Sc_rollup_add_messages manager-operation and consists of strings. The Layer 2 node is responsible for decoding and interpreting these messages.
type internal_inbox_message = | Transfer of {payload : Script_repr.expr;A Micheline value containing the parameters passed to the rollup.
*)sender : Contract_hash.t;The contract hash of an Layer 1 originated contract sending a message to the rollup.
*)source : Mavryk_protocol_environment_alpha.Signature.public_key_hash;The implicit account that originated the transaction.
*)destination : Sc_rollup_repr.Address.t;The destination, as a rollup address, for the message.
*)}| Start_of_levelInternal message put at the beginning of each inbox's level.
*)| End_of_levelInternal message put at the end of each inbox's level.
*)| Info_per_level of {predecessor_timestamp : Mavryk_protocol_environment_alpha.Time.t;Timestamp of the predecessor block where this message is pushed.
*)predecessor : Mavryk_protocol_environment_alpha.Block_hash.t;Predecessor of the block this message is pushed.
*)}| Protocol_migration of stringinternal_inbox_message represent an internal message in a inbox (L1 -> L2). This is not inline so it can easily be used by Sc_rollup_costs.cost_serialize_internal_inbox_message.
A type representing messages from Layer 1 to Layer 2. Internal ones are originated from Layer 1 smart-contracts and external ones are messages from an external manager operation.
val encoding : t Mavryk_protocol_environment_alpha.Data_encoding.tEncoding for messages from Layer 1 to Layer 2
val serialize :
t ->
serialized Mavryk_protocol_environment_alpha.Error_monad.tzresultserialize msg encodes the inbox message msg in binary format.
val deserialize :
serialized ->
t Mavryk_protocol_environment_alpha.Error_monad.tzresultdeserialize bs decodes bs as an inbox_message t.
val unsafe_of_string : string -> serializedval unsafe_to_string : serialized -> stringval hash_serialized_message : serialized -> Hash.thash_serialized_message payload is the hash of payload. It is used by Sc_rollup_inbox_merkelized_payload_hashes_repr.t.
val start_of_level_serialized : serializedserialized representation of Internal [Start_of_level].
val end_of_level_serialized : serializedserialized representation of Internal [End_of_level].
val info_per_level_serialized :
predecessor_timestamp:Mavryk_protocol_environment_alpha.Time.t ->
predecessor:Mavryk_protocol_environment_alpha.Block_hash.t ->
serializedinfo_per_level_serialized~predecessor_timestamp~predecessor is the serialized representation of the internal message for Info_per_level.