Module Octez_smart_rollup_node.Pvm_plugin_sig

type 'fuel eval_state_info = {
  1. state_hash : Octez_smart_rollup.State_hash.t;
    (*

    Hash of state.

    *)
  2. tick : Z.t;
    (*

    Tick of state.

    *)
  3. inbox_level : int32;
    (*

    Inbox level in which messages are evaluated.

    *)
  4. message_counter_offset : int;
    (*

    Offset for message index, which corresponds to the number of messages of the inbox already evaluated.

    *)
  5. remaining_fuel : 'fuel;
    (*

    Fuel remaining for the evaluation of the inbox.

    *)
  6. remaining_messages : string list;
    (*

    Messages of the inbox that remain to be evaluated.

    *)
}

Evaluation state information for the PVM.

type ('fuel, 'state) eval_state = {
  1. state : 'state;
    (*

    The actual PVM state.

    *)
  2. info : 'fuel eval_state_info;
    (*

    Information about state. These become invalid as soon as state is modified.

    *)
}
type 'fuel eval_result = {
  1. state_info : 'fuel eval_state_info;
  2. num_ticks : Z.t;
  3. num_messages : int;
}

Evaluation result for the PVM which contains information about the final state.

type cached_snapshot =
  1. | In_memory_snapshot of Tezos_layer2_store.Context.PVMState.immutable_value
  2. | On_disk_snapshot of Tezos_layer2_store.Context.hash

A cached snapshot is either an in-memory immutable copy or an on-disk commit hash. The choice depends on the context backend's Context.PVMState.cache_preference.

type 'fuel cached_eval_state = {
  1. cached_info : 'fuel eval_state_info;
  2. snapshot : cached_snapshot;
}

Cached evaluation state: the eval_state_info metadata plus a cached_snapshot for the PVM state itself.

module Tick_state_cache : Aches_lwt.Lache.MAP_RESULT with type key = Z.t
type state_cache = (Fuel.Accounted.t cached_eval_state, Tezos_base.TzPervasives.tztrace) Tick_state_cache.t
val make_state_cache : int -> ('a, 'b) Tick_state_cache.t
module type FUELED_PVM = sig ... end
module type S = sig ... end