package tezos-scoru-wasm-helpers

  1. Overview
  2. Docs
module Wasm : sig ... end
module Wasm_fast : sig ... end
val parse_module : string -> Tezos_webassembly_interpreter.Ast.module_
val wat2wasm : string -> string Lwt.t
val default_max_tick : int64
val production_max_tick : int64
val default_outbox_validity_period : int32
val default_outbox_message_limit : Z.t
val initial_tree : version:Tezos_scoru_wasm.Wasm_pvm_state.version -> ?ticks_per_snapshot:int64 -> ?max_reboots:Z.t -> ?from_binary:bool -> ?outbox_validity_period:int32 -> ?outbox_message_limit:Z.t -> string -> Wasm.tree Lwt.t
val reveal_builtins : Tezos_scoru_wasm.Builtins.reveals
val eval_to_snapshot : ?reveal_builtins:Tezos_scoru_wasm.Builtins.reveals -> ?write_debug:Tezos_scoru_wasm.Builtins.write_debug -> ?max_steps:int64 -> Wasm.tree -> Wasm.tree Lwt.t
val eval_until_input_requested : ?reveal_builtins:Tezos_scoru_wasm.Builtins.reveals option -> ?write_debug:Tezos_scoru_wasm.Builtins.write_debug -> ?after_fast_exec:(unit -> unit) -> ?fast_exec:bool -> ?max_steps:int64 -> Wasm.tree -> Wasm_fast.tree Lwt.t

eval_until_input_requested tree will either

  • return tree if input is required
  • or run compute_step_many to reach a point where input is required
val eval_until_input_or_reveal_requested : ?write_debug:Tezos_scoru_wasm.Builtins.write_debug -> ?after_fast_exec:(unit -> unit) -> ?fast_exec:bool -> ?max_steps:int64 -> Wasm.tree -> Wasm_fast.tree Lwt.t
val input_info : int32 -> Z.t -> Tezos_scoru_wasm.Wasm_pvm_state.input_info
val new_message_counter : unit -> unit -> Z.t
val set_sol_input : int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_protocol_migration_input : Tezos_scoru_wasm.Pvm_input_kind.protocol -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_info_per_level_input : ?migration_block:bool -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_raw_message : int32 -> Z.t -> string -> Wasm.tree -> Wasm.tree Lwt.t
val set_internal_message : int32 -> Z.t -> string -> Wasm.tree -> Wasm.tree Lwt.t
val set_eol_input : int32 -> Z.t -> Wasm.tree -> Wasm.tree Lwt.t
val set_inputs_step : ?migrate_to:Tezos_scoru_wasm.Pvm_input_kind.protocol -> (int32 -> Z.t -> 'a -> Wasm.tree -> Wasm.tree Lwt.t) -> 'a list -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_full_input_step_gen : ?migrate_to:Tezos_scoru_wasm.Pvm_input_kind.protocol -> (int32 -> Z.t -> 'a -> Wasm.tree -> Wasm.tree Lwt.t) -> 'a list -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_full_input_step : ?migrate_to:Tezos_scoru_wasm.Pvm_input_kind.protocol -> string list -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_full_raw_input_step : ?migrate_to:Tezos_scoru_wasm.Pvm_input_kind.protocol -> string list -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val set_empty_inbox_step : ?migrate_to:Tezos_scoru_wasm.Pvm_input_kind.protocol -> int32 -> Wasm.tree -> Wasm.tree Lwt.t
val eval_until_init : Wasm.tree -> Wasm.tree Lwt.t

eval_to_result tree tries to evaluates the PVM until the next `SK_Result` or `SK_Trap`, and stops in case of reveal tick or input tick. It has the property that the memory hasn't been flushed yet and can be inspected.

val set_input_step : string -> int -> Wasm.tree -> Wasm.tree Lwt.t
val print_error_state : Tezos_scoru_wasm.Wasm_pvm_errors.t -> string
val check_error : ?expected_kind: [> `Decode | `Eval | `Init | `Invalid_state | `Link | `No_fallback_decode | `No_fallback_init | `No_fallback_link | `Too_many_reboots | `Too_many_ticks | `Unknown ] -> ?expected_reason:string -> Tezos_scoru_wasm.Wasm_pvm_errors.t -> bool

check_error kind reason error checks a Wasm PVM error error is of a given kind with a possible reason.

  • If kind is None, returns true.
  • If reason is None, it simply check the given kind, otherwise it actually check the reason in the error.
val is_stuck : ?step: [> `Decode | `Eval | `Init | `Invalid_state | `Link | `No_fallback_decode | `No_fallback_init | `No_fallback_link | `Too_many_reboots | `Too_many_ticks | `Unknown ] -> ?reason:string -> Tezos_scoru_wasm.Wasm_pvm_state.Internal_state.tick_state -> bool
val has_stuck_flag : Encodings_util.Tree_encoding_runner.tree -> bool Lwt.t
val make_durable : (string * string) list -> Tezos_webassembly_interpreter.Durable_storage.t Lwt.t
module Kernels : sig ... end
val project_root : string
val (//) : string -> string -> string
val test_with_kernel : string -> (string -> (unit, 'a) result Lwt.t) -> unit -> (unit, 'a) result Lwt.t
val read_test_messages : string list -> string list Lwt.t
val write_debug_on_stdout : Tezos_scoru_wasm.Builtins.write_debug

Can be passed to be used as a host function compute_step_many ~write_debug:write_debug_on_stdout ...

OCaml

Innovation. Community. Security.