Inbox.V1type level_proof = {hash : Mavryk_crypto.Hashed.Smart_rollup_merkelized_payload_hashes_hash.t;level : int32;}type history_proof = (level_proof, Hash.t) Skip_list.cellA history_proof is a Skip_list.cell that stores multiple hashes. Skip_list.content history_proof gives the hash of this cell, while Skip_list.back_pointers history_proof is an array of hashes of earlier history_proofs in the inbox.
On the one hand, we think of this type as representing the whole Merkle structure of an inbox at a given level---it is the part of t above that can actually be used to prove things (it cannot be forged by a malicious node because it much match the hash stored by the L1).
On the other hand, we think of this type as representing a single proof-step back through the history of the inbox; given a hash that appears at some point later in the inbox this type proves that that hash points to this particular combination of a witness and further back-pointers.
In terms of size, this type is a small set of hashes; one for the current witness and `O(log2(ix))` in the back-pointers, where ix is the index of the cell in the skip list. That is, ix is the number of non-empty levels between now and the origination level of the rollup.
The type of the inbox for a smart-contract rollup as stored by the protocol in the context. Values that inhabit this type only act as fingerprint for inboxes and contain:
level : the inbox level ;old_levels_messages : a witness of the inbox history.val pp : Stdlib.Format.formatter -> t -> unitval encoding : t Mavryk_base.TzPervasives.Data_encoding.tval inbox_level : t -> int32inbox_level inbox returns the maximum level of message insertion in inbox or its initial level.
val pp_history_proof : Stdlib.Format.formatter -> history_proof -> unitval history_proof_encoding :
history_proof Mavryk_base.TzPervasives.Data_encoding.tval equal_history_proof : history_proof -> history_proof -> boolval old_levels_messages : t -> history_proofold_levels_messages inbox returns the latest skip list cell of the inbox history that is not up to change (i.e. not the current witness).
val current_witness :
t ->
Mavryk_crypto.Hashed.Smart_rollup_merkelized_payload_hashes_hash.tcurrent_witness inbox returns the current witness of the inbox, i.e. the merkelized payload hash.