package tezos-protocol-015-PtLimaPt
High-level operations over smart contract rollups.
type execute_outbox_message_result = {
paid_storage_size_diff : Tezos_protocol_environment_015_PtLimaPt.Z.t;
operations : Script_typed_ir.packed_internal_operation list;
}
Result of calling the execute_outbox_message
function.
type origination_result = {
address : Tezos_raw_protocol_015_PtLimaPt.Alpha_context.Sc_rollup.Address.t;
size : Tezos_protocol_environment_015_PtLimaPt.Z.t;
genesis_commitment_hash : Alpha_context.Sc_rollup.Commitment.Hash.t;
}
val originate :
Alpha_context.context ->
kind:Alpha_context.Sc_rollup.Kind.t ->
boot_sector:string ->
origination_proof:string ->
parameters_ty:Script_repr.lazy_expr ->
(origination_result * Alpha_context.context)
Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresult
Tezos_protocol_environment_015_PtLimaPt.Lwt.t
originate context ~kind ~boot_sector ~origination_proof
~parameters_ty
adds a new rollup running in a given kind
initialized with a boot_sector
and to accept smart contract calls of type parameters_ty
.
origination_proof
, which covers the specialization of the PVM initial state with the boot_sector
, is used by the protocol to compute the genesis commitment, after its correctness has been checked.
Note: The need to provide an origination_proof
is motivated by technical limitations of Irmin (as of June, 2022), that requires a context to get an empty tree. As soon as this limitation is lifted, then we can drop the origination_proof
argument.
Returns an error if origination_proof
is invalid (e.g., it does not target the expected PVM).
val execute_outbox_message :
Alpha_context.context ->
Alpha_context.Sc_rollup.t ->
cemented_commitment:Alpha_context.Sc_rollup.Commitment.Hash.t ->
source:Alpha_context.public_key_hash ->
output_proof:string ->
(execute_outbox_message_result * Alpha_context.context)
Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresult
Tezos_protocol_environment_015_PtLimaPt.Lwt.t
execute_outbox_message ctxt rollup ~cemented_commitment ~source
~output_proof
validates the given outbox message and prepares a set of resulting operations.
module Internal_for_tests : sig ... end
A module used for testing purposes only.