From 7bf4b441ef74008c44311eece88e78f545945b2a Mon Sep 17 00:00:00 2001 From: sai Date: Thu, 6 Jun 2024 12:13:22 -0400 Subject: [PATCH 1/5] normalizing snarky yojson serializers to match kimchi common --- src/lib/crypto/kimchi_backend/common/dune | 1 - src/lib/crypto/kimchi_backend/dune | 1 - src/lib/mina_base/account_update.ml | 14 +------------- src/lib/mina_wire_types/dune | 2 +- .../mina_base/mina_base_account_update.ml | 1 + src/lib/mina_wire_types/snark_params.ml | 6 +++++- src/lib/snark_params/snark_params.ml | 4 ++++ 7 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/lib/crypto/kimchi_backend/common/dune b/src/lib/crypto/kimchi_backend/common/dune index e67f451a091..8e11e3f5201 100644 --- a/src/lib/crypto/kimchi_backend/common/dune +++ b/src/lib/crypto/kimchi_backend/common/dune @@ -29,7 +29,6 @@ base.base_internalhash_types ;; local libraries tuple_lib - snarky.backendless key_cache pickles_types hex diff --git a/src/lib/crypto/kimchi_backend/dune b/src/lib/crypto/kimchi_backend/dune index b35651af400..8292304d4a8 100644 --- a/src/lib/crypto/kimchi_backend/dune +++ b/src/lib/crypto/kimchi_backend/dune @@ -20,7 +20,6 @@ kimchi_types pasta_bindings snarkette - snarky.backendless key_cache hex kimchi_backend.common diff --git a/src/lib/mina_base/account_update.ml b/src/lib/mina_base/account_update.ml index 2569f465ec1..0617448330a 100644 --- a/src/lib/mina_base/account_update.ml +++ b/src/lib/mina_base/account_update.ml @@ -22,19 +22,7 @@ module Authorization_kind = struct type t = Mina_wire_types.Mina_base.Account_update.Authorization_kind.V1.t = | Signature - | Proof of - (Field.t - [@version_asserted] - [@to_yojson fun t -> `String (Snark_params.Tick.Field.to_string t)] - [@of_yojson - function - | `String s -> - let field = Snark_params.Tick.Field.of_string s in - let s' = Snark_params.Tick.Field.to_string field in - if String.equal s s' then Ok field - else Error "Invalid JSON for field" - | _ -> - Error "expected JSON string"] ) + | Proof of (Field.t[@version_asserted]) | None_given [@@deriving sexp, equal, yojson, hash, compare] diff --git a/src/lib/mina_wire_types/dune b/src/lib/mina_wire_types/dune index 8df50d476c7..6384e2229dc 100644 --- a/src/lib/mina_wire_types/dune +++ b/src/lib/mina_wire_types/dune @@ -17,7 +17,7 @@ blake2 ) (preprocessor_deps ../../config.mlh) - (preprocess (pps ppx_version ppx_optcomp)) + (preprocess (pps ppx_version ppx_optcomp ppx_deriving_yojson)) (instrumentation (backend bisect_ppx))) ; Include index.mld in generated doc diff --git a/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml b/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml index 0d6c238efd2..ae2344dbd26 100644 --- a/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml +++ b/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml @@ -2,6 +2,7 @@ module Authorization_kind = struct module V1 = struct (* field for Proof is a verification key hash *) type t = Signature | Proof of Snark_params.Tick.Field.t | None_given + [@@deriving yojson] end end diff --git a/src/lib/mina_wire_types/snark_params.ml b/src/lib/mina_wire_types/snark_params.ml index c1164b677a2..ec8176f1591 100644 --- a/src/lib/mina_wire_types/snark_params.ml +++ b/src/lib/mina_wire_types/snark_params.ml @@ -1,6 +1,10 @@ module Tick = struct module Field = struct - type t = Pasta_bindings.Fp.t + type t = Kimchi_pasta_basic.Fp.t + + let to_yojson = Kimchi_pasta_basic.Fp.to_yojson + + let of_yojson = Kimchi_pasta_basic.Fp.of_yojson end module Inner_curve = struct diff --git a/src/lib/snark_params/snark_params.ml b/src/lib/snark_params/snark_params.ml index 64a572efdce..11e87987079 100644 --- a/src/lib/snark_params/snark_params.ml +++ b/src/lib/snark_params/snark_params.ml @@ -183,6 +183,10 @@ module Tick = struct include Tick0.Field module Bits = Bits.Make_field (Tick0.Field) (Tick0.Bigint) + let to_yojson = Mina_wire_types.Snark_params.Tick.Field.to_yojson + + let of_yojson = Mina_wire_types.Snark_params.Tick.Field.of_yojson + let size_in_triples = Int.((size_in_bits + 2) / 3) end From 8a8396ebbec3addb0172d7810c927256b48ab638 Mon Sep 17 00:00:00 2001 From: sai Date: Mon, 10 Jun 2024 12:03:07 -0400 Subject: [PATCH 2/5] removing unecessary derivation in yojson --- src/lib/mina_wire_types/mina_base/mina_base_account_update.ml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml b/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml index ae2344dbd26..0d6c238efd2 100644 --- a/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml +++ b/src/lib/mina_wire_types/mina_base/mina_base_account_update.ml @@ -2,7 +2,6 @@ module Authorization_kind = struct module V1 = struct (* field for Proof is a verification key hash *) type t = Signature | Proof of Snark_params.Tick.Field.t | None_given - [@@deriving yojson] end end From 0c9a9bafdba233b34c317b5ecbd80f590efda0fd Mon Sep 17 00:00:00 2001 From: sai Date: Mon, 10 Jun 2024 12:19:27 -0400 Subject: [PATCH 3/5] removing dune entry for ppx deriving json in snarky --- src/lib/mina_wire_types/dune | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/mina_wire_types/dune b/src/lib/mina_wire_types/dune index 6384e2229dc..8df50d476c7 100644 --- a/src/lib/mina_wire_types/dune +++ b/src/lib/mina_wire_types/dune @@ -17,7 +17,7 @@ blake2 ) (preprocessor_deps ../../config.mlh) - (preprocess (pps ppx_version ppx_optcomp ppx_deriving_yojson)) + (preprocess (pps ppx_version ppx_optcomp)) (instrumentation (backend bisect_ppx))) ; Include index.mld in generated doc From 77e4dcaa2e39a4999716535fb4468f585ff8ddeb Mon Sep 17 00:00:00 2001 From: sai Date: Mon, 10 Jun 2024 12:26:21 -0400 Subject: [PATCH 4/5] removing yojson serializaion from wire types --- src/lib/mina_wire_types/snark_params.ml | 3 --- src/lib/snark_params/snark_params.ml | 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib/mina_wire_types/snark_params.ml b/src/lib/mina_wire_types/snark_params.ml index ec8176f1591..7a6a07f40be 100644 --- a/src/lib/mina_wire_types/snark_params.ml +++ b/src/lib/mina_wire_types/snark_params.ml @@ -2,9 +2,6 @@ module Tick = struct module Field = struct type t = Kimchi_pasta_basic.Fp.t - let to_yojson = Kimchi_pasta_basic.Fp.to_yojson - - let of_yojson = Kimchi_pasta_basic.Fp.of_yojson end module Inner_curve = struct diff --git a/src/lib/snark_params/snark_params.ml b/src/lib/snark_params/snark_params.ml index 11e87987079..45e240b2f2a 100644 --- a/src/lib/snark_params/snark_params.ml +++ b/src/lib/snark_params/snark_params.ml @@ -183,10 +183,9 @@ module Tick = struct include Tick0.Field module Bits = Bits.Make_field (Tick0.Field) (Tick0.Bigint) - let to_yojson = Mina_wire_types.Snark_params.Tick.Field.to_yojson - - let of_yojson = Mina_wire_types.Snark_params.Tick.Field.of_yojson + let to_yojson = Kimchi_pasta_basic.Fp.to_yojson + let of_yojson = Kimchi_pasta_basic.Fp.of_yojson let size_in_triples = Int.((size_in_bits + 2) / 3) end From 522d55140bcbc956f348752fc068398cf4e28516 Mon Sep 17 00:00:00 2001 From: sai Date: Mon, 10 Jun 2024 12:27:38 -0400 Subject: [PATCH 5/5] re formatting --- src/lib/mina_wire_types/snark_params.ml | 1 - src/lib/snark_params/snark_params.ml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/mina_wire_types/snark_params.ml b/src/lib/mina_wire_types/snark_params.ml index 7a6a07f40be..c4248a05fa0 100644 --- a/src/lib/mina_wire_types/snark_params.ml +++ b/src/lib/mina_wire_types/snark_params.ml @@ -1,7 +1,6 @@ module Tick = struct module Field = struct type t = Kimchi_pasta_basic.Fp.t - end module Inner_curve = struct diff --git a/src/lib/snark_params/snark_params.ml b/src/lib/snark_params/snark_params.ml index 45e240b2f2a..93a7227b02d 100644 --- a/src/lib/snark_params/snark_params.ml +++ b/src/lib/snark_params/snark_params.ml @@ -186,6 +186,7 @@ module Tick = struct let to_yojson = Kimchi_pasta_basic.Fp.to_yojson let of_yojson = Kimchi_pasta_basic.Fp.of_yojson + let size_in_triples = Int.((size_in_bits + 2) / 3) end