diff --git a/src/lib/pickles/pickles_intf.mli b/src/lib/pickles/pickles_intf.mli index 91b67ea4028..2088d037da6 100644 --- a/src/lib/pickles/pickles_intf.mli +++ b/src/lib/pickles/pickles_intf.mli @@ -38,7 +38,7 @@ module type S = sig [%%versioned: module Stable : sig module V2 : sig - type t [@@deriving to_yojson] + type t [@@deriving to_yojson, of_yojson] end end] diff --git a/src/lib/pickles/verification_key.ml b/src/lib/pickles/verification_key.ml index 79fca91df0f..cee31573c0e 100644 --- a/src/lib/pickles/verification_key.ml +++ b/src/lib/pickles/verification_key.ml @@ -100,6 +100,11 @@ module Verifier_index_json = struct verifier_index_to_yojson fp (fun _ -> `Null) (polycomm_to_yojson (or_infinity_to_yojson fq)) + + let of_yojson fp fq = + verifier_index_of_yojson fp + (fun _ -> Ok (Backend.Tock.Keypair.load_urs ())) + (polycomm_of_yojson (or_infinity_of_yojson fq)) end module Data = struct @@ -139,10 +144,13 @@ module Stable = struct (Impls.Wrap.Verification_key.t [@to_yojson Verifier_index_json.to_yojson Backend.Tock.Field.to_yojson - Backend.Tick.Field.to_yojson] ) + Backend.Tick.Field.to_yojson] + [@of_yojson + Verifier_index_json.of_yojson Backend.Tock.Field.of_yojson + Backend.Tick.Field.of_yojson] ) ; data : Data.t } - [@@deriving fields, to_yojson] + [@@deriving fields, to_yojson, of_yojson] let to_latest = Fn.id @@ -208,6 +216,8 @@ end] let to_yojson = Stable.Latest.to_yojson +let of_yojson = Stable.Latest.of_yojson + let dummy_commitments g = let open Plonk_types in { Plonk_verification_key_evals.sigma_comm = diff --git a/src/lib/pickles/verification_key.mli b/src/lib/pickles/verification_key.mli index b1e289df5ce..a5d8d6844f8 100644 --- a/src/lib/pickles/verification_key.mli +++ b/src/lib/pickles/verification_key.mli @@ -19,7 +19,7 @@ module Stable : sig ; index : Impls.Wrap.Verification_key.t ; data : Data.t } - [@@deriving fields, to_yojson, bin_shape, bin_io] + [@@deriving fields, to_yojson, of_yojson, bin_shape, bin_io] include Pickles_types.Sigs.VERSIONED end @@ -33,7 +33,7 @@ type t = Stable.Latest.t = ; index : Impls.Wrap.Verification_key.t ; data : Data.t } -[@@deriving fields, to_yojson] +[@@deriving fields, to_yojson, of_yojson] val dummy_commitments : 'a -> 'a Pickles_types.Plonk_verification_key_evals.t