diff --git a/src/base/snark0.ml b/src/base/snark0.ml index 9521fad9f..202aad44f 100644 --- a/src/base/snark0.ml +++ b/src/base/snark0.ml @@ -724,6 +724,10 @@ module Run = struct ~eval_constraints:false ~num_inputs:0 ~next_auxiliary:(ref 0) ~with_witness:false ~stack:[] ~is_running:false () ) + let get_state () = !state + + let set_state s = state := s + let dump () = Run_state.dump !state let in_prover () : bool = Run_state.has_witness !state diff --git a/src/base/snark_intf.ml b/src/base/snark_intf.ml index a54d6d418..242dac132 100644 --- a/src/base/snark_intf.ml +++ b/src/base/snark_intf.ml @@ -1122,8 +1122,10 @@ module type Run_basic = sig (** The finite field over which the R1CS operates. *) type field - (* a reference to the internal Run_state.t *) - val state : field Run_state.t ref + (* get and set the internal Run_state.t *) + val get_state : unit -> field Run_state.t + + val set_state : field Run_state.t -> unit module Bigint : sig include Snarky_intf.Bigint_intf.Extended with type field := field