package tezos-protocol-alpha
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=7062cd57addd452852598a2214ade393130efa087b99068d53713bdf912b3680
sha512=08e4091144a03ce3c107fb91a66501bd8b65ca3278917c455a2eaac6df3e108ade63f6ab8340a4bb152d60f404326e464d0ec95d26cafe8e82f870465d24a5fc
doc/tezos-protocol-alpha.raw/Tezos_raw_protocol_alpha/Sc_rollup_inbox_message_repr/index.html
Module Tezos_raw_protocol_alpha.Sc_rollup_inbox_message_repr
Source
This 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 : Tezos_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_level
(*Internal message put at the beginning of each inbox's level.
*)| End_of_level
(*Internal message put at the end of each inbox's level.
*)| Info_per_level of {
predecessor_timestamp : Tezos_protocol_environment_alpha.Time.t;
(*Timestamp of the predecessor block where this message is pushed.
*)predecessor : Tezos_protocol_environment_alpha.Block_hash.t;
(*Predecessor of the block this message is pushed.
*)
}
| Protocol_migration of string
internal_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.
Encoding for messages from Layer 1 to Layer 2
serialize msg
encodes the inbox message msg
in binary format.
deserialize bs
decodes bs
as an inbox_message t
.
hash_serialized_message payload
is the hash of payload
. It is used by Sc_rollup_inbox_merkelized_payload_hashes_repr.t
.
serialized
representation of Internal [Start_of_level]
.
serialized
representation of Internal [End_of_level]
.
val info_per_level_serialized :
predecessor_timestamp:Tezos_protocol_environment_alpha.Time.t ->
predecessor:Tezos_protocol_environment_alpha.Block_hash.t ->
serialized
info_per_level_serialized~predecessor_timestamp~predecessor
is the serialized representation of the internal message for Info_per_level
.