Module Octez_riscv_pvm.Backend

module Api = Octez_riscv_api
type reveals
type write_debug = string -> unit Lwt.t
type state = Api.state
type status = Api.status
type input =
  1. | Inbox_message of int32 * int64 * string
  2. | Reveal of string
type input_request =
  1. | No_input_required
  2. | Initial
  3. | First_after of int32 * int64
  4. | Needs_reveal of string
type proof = Api.proof
type output_proof = Api.output_proof
type output_info = {
  1. message_index : Z.t;
  2. outbox_level : Tezos_base.TzPervasives.Bounded.Non_negative_int32.t;
}
type output = {
  1. info : output_info;
  2. encoded_message : string;
}
module Mutable_state : sig ... end
val compute_step_many : ?reveal_builtins:reveals -> ?write_debug:write_debug -> ?stop_at_snapshot:bool -> max_steps:int64 -> state -> (state * int64) Lwt.t
val compute_step : state -> state Lwt.t
val compute_step_with_debug : ?write_debug:write_debug -> state -> state Lwt.t
val get_tick : state -> Z.t Lwt.t
val get_status : state -> status Lwt.t
val get_message_counter : state -> int64 Lwt.t
val string_of_status : status -> string
val install_boot_sector : state -> string -> state Lwt.t
val get_current_level : state -> int32 option Lwt.t
val state_hash : state -> hash
val set_input : state -> input -> state Lwt.t
val proof_start_state : proof -> hash
val proof_stop_state : proof -> hash
val verify_proof : input option -> proof -> input_request option
val produce_proof : input option -> state -> proof option
val serialise_proof : proof -> bytes
val deserialise_proof : bytes -> (proof, string) Stdlib.result
val output_info_of_output_proof : output_proof -> output_info
val state_of_output_proof : output_proof -> hash
val verify_output_proof : output_proof -> output option
val serialise_output_proof : output_proof -> bytes
val deserialise_output_proof : bytes -> (output_proof, string) Stdlib.result
val get_reveal_request : state -> string Lwt.t
val insert_failure : state -> state Lwt.t