diff --git a/src/lib/pickles/proof_cache.ml b/src/lib/pickles/proof_cache.ml index be234219344..b1540bb2e48 100644 --- a/src/lib/pickles/proof_cache.ml +++ b/src/lib/pickles/proof_cache.ml @@ -241,3 +241,10 @@ let set_wrap_proof t ~keypair ~public_input proof = in let proof_json = Backend.Tock.Proof.to_yojson proof in set_proof t ~verification_key ~public_input proof_json + +let is_env_var_set_requesting_error_for_proofs () = + match Sys.getenv_opt "ERROR_ON_PROOF" with + | Some ("true" | "t" (* insert whatever value is okay here *)) -> + true + | None | Some _ -> + false diff --git a/src/lib/pickles/proof_cache.mli b/src/lib/pickles/proof_cache.mli index 7d0f7ca9924..d8d33b04f24 100644 --- a/src/lib/pickles/proof_cache.mli +++ b/src/lib/pickles/proof_cache.mli @@ -52,3 +52,5 @@ val set_wrap_proof : -> public_input:Kimchi_bindings.FieldVectors.Fq.t -> Backend.Tock.Proof.t -> unit + +val is_env_var_set_requesting_error_for_proofs : unit -> bool diff --git a/src/lib/pickles/step.ml b/src/lib/pickles/step.ml index 8585117657a..a759193b816 100644 --- a/src/lib/pickles/step.ml +++ b/src/lib/pickles/step.ml @@ -844,7 +844,8 @@ struct with | None -> if - Option.is_some (Sys.getenv_opt "ERROR_ON_PROOF") + Proof_cache + .is_env_var_set_requesting_error_for_proofs () then failwith "Regenerated proof" ; let%map.Promise proof = create_proof () in Proof_cache.set_step_proof proof_cache ~keypair:pk diff --git a/src/lib/pickles/wrap.ml b/src/lib/pickles/wrap.ml index 415f9dc1fc5..e763e610d2a 100644 --- a/src/lib/pickles/wrap.ml +++ b/src/lib/pickles/wrap.ml @@ -879,8 +879,10 @@ let wrap ~public_input:public_inputs with | None -> - if Option.is_some (Sys.getenv_opt "ERROR_ON_PROOF") then - failwith "Regenerated proof" ; + if + Proof_cache.is_env_var_set_requesting_error_for_proofs + () + then failwith "Regenerated proof" ; let%map.Promise proof = create_proof () in Proof_cache.set_wrap_proof proof_cache ~keypair:pk ~public_input:public_inputs proof ;