package octez-protocol-alpha-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=55ea1fb8bb3273a7fc270ca8f650d45c56449665619482aad9bc12f3ea736b7e
sha512=fec850fc2d17d7490bbabd5147d62aad13b3aaed8774270f8a38ab419670ed03e0fd30cf8642a97984eca5c2446726fe590ad99c015f7ec50919dc7652f25053
doc/octez-protocol-alpha-libs.test-helpers/Tezos_alpha_test_helpers/Sc_rollup_helpers/index.html
Module Tezos_alpha_test_helpers.Sc_rollup_helpers
Source
val originated_rollup :
Tezos_raw_protocol_alpha__Alpha_context.packed_operation ->
Tezos_raw_protocol_alpha__Alpha_context.Contract.t
module Wrong_arith_pvm :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.PVM.S
with type context = Wrong_in_memory_context.Tree.t
and type state = Wrong_in_memory_context.tree
and type proof =
Tezos_context_memory.Context.Proof.tree
Tezos_context_memory.Context.Proof.t
val genesis_commitment :
boot_sector:string ->
origination_level:Tezos_raw_protocol_alpha__Alpha_context.Raw_level.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Kind.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Commitment.t Lwt.t
val genesis_commitment_raw :
boot_sector:string ->
origination_level:Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
Tezos_protocol_alpha.Protocol.Sc_rollups.Kind.t ->
Tezos_protocol_alpha.Protocol.Sc_rollup_commitment_repr.t Lwt.t
Inbox message helpers.
Above Alpha_context
.
val message_serialize :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.serialized
val make_external_inbox_message :
string ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.serialized
val make_internal_inbox_message :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.internal_inbox_message ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.serialized
val make_input :
?inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
?message_counter:Tezos_protocol_environment_alpha.Z.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.serialized ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
val make_external_input :
?inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
?message_counter:Tezos_protocol_environment_alpha.Z.t ->
string ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
val make_sol :
inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
val make_eol :
inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
message_counter:Tezos_protocol_environment_alpha.Z.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
val make_info_per_level :
inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
predecessor_timestamp:Tezos_protocol_environment_alpha.Time.t ->
predecessor:Tezos_protocol_environment_alpha.Block_hash.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
val make_protocol_migration :
inbox_level:Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input
type message = {
input : Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input;
message : [ `SOL | `Info_per_level of Tezos_protocol_alpha.Protocol.Alpha_context.Timestamp.t * Tezos_base.TzPervasives.Block_hash.t | `Message of string | `EOL ];
}
Message is the combination of a message
and its associated input
.
message
is used to:
- Construct the protocol inbox, when
message
is`Message
. The protocol adds`SOL
and`EOL
itself. - Construct the players' inboxes.
input
is used to evaluate the players' inboxes.
type payloads_per_level = {
messages : string list;
(*List of external messages.
*)payloads : Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_message.serialized list;
(*List of external serialized messages.
*)predecessor_timestamp : Tezos_base.TzPervasives.Time.Protocol.t;
(*predecessor timestamp of the
*)Info_per_level
.predecessor : Tezos_base.TzPervasives.Block_hash.t;
(*Predecessor of the
*)Info_per_level
.level : Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.t;
inputs : Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input list;
(*List of all inputs for the level, to be read by a PVM.
*)
}
Put as much information as possible in this record so it can be used in different setups: 1. Creating an inbox on the protocol-side, requires messages
only. 2. Re-construct an inbox, requires payloads
, timestamp
, predecessor
. 3. Evaluate inputs in a PVM, requires inputs
level
is useful for (1) (2) (3).
val pp_input :
Format.formatter ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input ->
unit
val strs_to_inputs :
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
string list ->
message list * Tezos_protocol_environment_alpha.Z.t
Creates inputs based on string messages.
val make_inputs :
first_block:bool ->
Tezos_protocol_environment_alpha.Time.t ->
Tezos_protocol_environment_alpha.Block_hash.t ->
string list ->
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input list
Transform the list of all inputs the PVM should read.
val predecessor_timestamp_and_hash_from_level :
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
Tezos_base.TzPervasives.Time.Protocol.t
* Tezos_base.TzPervasives.Block_hash.t
val wrap_messages :
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
?pred_info:
(Tezos_base.TzPervasives.Time.Protocol.t
* Tezos_base.TzPervasives.Block_hash.t) ->
string list ->
payloads_per_level
Wrap messages, predecessor_timestamp and predecessor of a level into a payloads_per_level
.
val make_empty_level :
?pred_info:
(Tezos_base.TzPervasives.Time.Protocol.t
* Tezos_base.TzPervasives.Block_hash.t) ->
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
payloads_per_level
An empty inbox level is a SOL,IPL and EOL.
val gen_messages :
?pred_info:
(Tezos_base.TzPervasives.Time.Protocol.t
* Tezos_base.TzPervasives.Block_hash.t) ->
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
string QCheck2.Gen.t ->
payloads_per_level QCheck2.Gen.t
val gen_payloads_for_levels :
start_level:int ->
max_level:int ->
string QCheck2.Gen.t ->
payloads_per_level list QCheck2.Gen.t
Below Alpha_context
.
val message_serialize_repr :
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_message_repr.t ->
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_message_repr.serialized
val make_external_inbox_message_repr :
string ->
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_message_repr.serialized
val make_internal_inbox_message_repr :
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_message_repr.internal_inbox_message ->
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_message_repr.serialized
val make_input_repr :
?inbox_level:Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
?message_counter:Tezos_protocol_environment_alpha.Z.t ->
Tezos_raw_protocol_alpha.Sc_rollup_inbox_message_repr.serialized ->
Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input
val make_external_input_repr :
?inbox_level:Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
?message_counter:Tezos_protocol_environment_alpha.Z.t ->
string ->
Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input
val make_sol_repr :
inbox_level:Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input
val make_eol_repr :
inbox_level:Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
message_counter:Tezos_protocol_environment_alpha.Z.t ->
Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input
type message_repr = {
input_repr : Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input;
message_repr : [ `SOL | `Message of string | `EOL ];
}
Message is the combination of a message
and its associated input
.
message
is used to:
- Construct the protocol inbox, when
message
is`Message
. The protocol adds`SOL
and`EOL
itself. - Construct the players' inboxes.
input
is used to evaluate the players' inboxes.
val pp_input_repr :
Format.formatter ->
Tezos_protocol_alpha.Protocol.Sc_rollup_PVM_sig.input ->
unit
val make_empty_level_repr :
Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level * message_repr list
An empty inbox level is a SOL,IPL and EOL.
val strs_to_input_reprs_repr :
Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
string list ->
message_repr list * Tezos_protocol_environment_alpha.Z.t
Creates input_reprs based on string message_reprs.
val wrap_message_reprs_repr :
Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level ->
string list ->
message_repr list
Transform message_reprs into input_reprs and wrap them between SOL and EOL.
val gen_message_reprs_for_levels_repr :
start_level:int ->
max_level:int ->
string QCheck2.Gen.t ->
(Tezos_protocol_alpha.Protocol.Raw_level_repr.raw_level * message_repr list)
list
QCheck2.Gen.t
type payloads_histories =
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox_merkelized_payload_hashes.History.t
Payloads_histories.t
val get_history :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.History.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.History.key ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.History.value
option
Lwt.t
val inbox_message_of_input :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.input ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.inbox_message option
val first_after :
payloads_per_level list ->
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.t ->
Z.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.inbox_message option
val dumb_init :
Tezos_raw_protocol_alpha__Alpha_context.Raw_level.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.t
val dumb_init_repr :
Tezos_raw_protocol_alpha.Raw_level_repr.t ->
Tezos_protocol_alpha.Protocol.Sc_rollup_inbox_repr.t
val origination_op :
?force_reveal:bool ->
?counter:Tezos_protocol_alpha.Protocol.Alpha_context.Manager_counter.t ->
?fee:Tezos_protocol_alpha.Protocol.Alpha_context.Tez.t ->
?gas_limit:Op.gas_limit ->
?storage_limit:Z.t ->
?boot_sector:string ->
?parameters_ty:string ->
?whitelist:Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Whitelist.t ->
Context.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Contract.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Kind.t ->
(Tezos_protocol_alpha.Protocol.Alpha_context.packed_operation
* Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.t)
Tezos_base.TzPervasives.tzresult
Lwt.t
val latest_level_proof :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.Internal_for_tests.level_proof
val latest_level_proof_hash :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.t ->
Tezos_raw_protocol_alpha__Alpha_context.Sc_rollup.Inbox_merkelized_payload_hashes.Hash.t
val construct_node_and_protocol_inbox :
?inbox_creation_level:
Tezos_protocol_alpha.Protocol.Alpha_context.Raw_level.raw_level ->
?genesis_predecessor_timestamp:Tezos_base.TzPervasives.Time.Protocol.t ->
?genesis_predecessor:Tezos_base.TzPervasives.Block_hash.t ->
payloads_per_level list ->
(Node_inbox.t * Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Inbox.t,
Tezos_base.TzPervasives.tztrace)
result
val is_reveal_enabled_default :
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.is_reveal_enabled
val tick_of_int_exn :
?__LOC__:string ->
int ->
Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Tick.t
module Make_PVM_eval
(PVM : sig ... end) :
PVM_eval with type context = PVM.context and type state = PVM.state
val make_pvm_with_context_and_state :
(module Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.PVM.S
with type context = 'context
and type state = 'state) ->
state:'state ->
context:'context ->
reveal:
(Tezos_raw_protocol_alpha.Sc_rollup_reveal_hash.t ->
string option Tezos_protocol_environment_alpha.Lwt.t) ->
inbox:Node_inbox.t ->
unit ->
(module Tezos_protocol_alpha.Protocol.Alpha_context.Sc_rollup.Proof.PVM_with_context_and_state)