From 0ff78a5f351774b0320b7a21e3a840a14f45c252 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Fri, 21 Apr 2023 16:08:10 +0200 Subject: [PATCH 1/8] environment: introduce environment_protocol_T_V10 --- .../environment_V0.ml | 2 +- .../environment_V1.ml | 2 +- .../environment_V10.ml | 2 +- .../environment_V2.ml | 2 +- .../environment_protocol_T.ml | 6 +- .../environment_protocol_T_V10.ml | 211 ++++++++++++++++++ 6 files changed, 218 insertions(+), 7 deletions(-) create mode 100644 src/lib_protocol_environment/environment_protocol_T_V10.ml diff --git a/src/lib_protocol_environment/environment_V0.ml b/src/lib_protocol_environment/environment_V0.ml index dd7852177506..59c79ea026f8 100644 --- a/src/lib_protocol_environment/environment_V0.ml +++ b/src/lib_protocol_environment/environment_V0.ml @@ -828,7 +828,7 @@ struct end module Lift (P : Updater.PROTOCOL) = struct - include IgnoreCaches (Environment_protocol_T.V0toV7 (LiftV0 (P))) + include IgnoreCaches (Environment_protocol_T.V0toV10 (LiftV0 (P))) let set_log_message_consumer _ = () diff --git a/src/lib_protocol_environment/environment_V1.ml b/src/lib_protocol_environment/environment_V1.ml index 6a04507f9cd2..ab6a393089e8 100644 --- a/src/lib_protocol_environment/environment_V1.ml +++ b/src/lib_protocol_environment/environment_V1.ml @@ -958,7 +958,7 @@ struct end module Lift (P : Updater.PROTOCOL) = struct - include IgnoreCaches (Environment_protocol_T.V0toV7 (LiftV1 (P))) + include IgnoreCaches (Environment_protocol_T.V0toV10 (LiftV1 (P))) let set_log_message_consumer _ = () diff --git a/src/lib_protocol_environment/environment_V10.ml b/src/lib_protocol_environment/environment_V10.ml index 6dafff36695f..69e248bacb95 100644 --- a/src/lib_protocol_environment/environment_V10.ml +++ b/src/lib_protocol_environment/environment_V10.ml @@ -1074,7 +1074,7 @@ struct let activate = Context.set_protocol module type PROTOCOL = - Environment_protocol_T_V7.T + Environment_protocol_T_V10.T with type context := Context.t and type cache_value := Environment_context.Context.cache_value and type cache_key := Environment_context.Context.cache_key diff --git a/src/lib_protocol_environment/environment_V2.ml b/src/lib_protocol_environment/environment_V2.ml index 4586a6e800d4..3636ad6bd7ea 100644 --- a/src/lib_protocol_environment/environment_V2.ml +++ b/src/lib_protocol_environment/environment_V2.ml @@ -953,7 +953,7 @@ struct end module Lift (P : Updater.PROTOCOL) = struct - include IgnoreCaches (Environment_protocol_T.V0toV7 (LiftV2 (P))) + include IgnoreCaches (Environment_protocol_T.V0toV10 (LiftV2 (P))) let set_log_message_consumer _ = () diff --git a/src/lib_protocol_environment/environment_protocol_T.ml b/src/lib_protocol_environment/environment_protocol_T.ml index bfe09a073fdf..366d65b188e1 100644 --- a/src/lib_protocol_environment/environment_protocol_T.ml +++ b/src/lib_protocol_environment/environment_protocol_T.ml @@ -49,11 +49,11 @@ open Environment_context environment ([module type Vx_T]). If you want to mock this module type, see {!Environment_protocol_T_test}. *) -module type T = Environment_protocol_T_V7.T +module type T = Environment_protocol_T_V10.T (* Documentation for this interface may be found in module type [PROTOCOL] of [sigs/v6/updater.mli]. *) -module V0toV7 +module V0toV10 (E : Environment_protocol_T_V0.T with type context := Context.t and type quota := quota @@ -61,7 +61,7 @@ module V0toV7 and type rpc_context := rpc_context and type tztrace := Error_monad.tztrace and type 'a tzresult := 'a Error_monad.tzresult) : - Environment_protocol_T_V7.T + Environment_protocol_T_V10.T with type context := Context.t and type quota := quota and type validation_result := validation_result diff --git a/src/lib_protocol_environment/environment_protocol_T_V10.ml b/src/lib_protocol_environment/environment_protocol_T_V10.ml new file mode 100644 index 000000000000..c92781125f0f --- /dev/null +++ b/src/lib_protocol_environment/environment_protocol_T_V10.ml @@ -0,0 +1,211 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2018 Dynamic Ledger Solutions, Inc. *) +(* Copyright (c) 2018 Nomadic Labs. *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +(* Documentation for this interface can be found in + module type [PROTOCOL] of [sigs/v10/updater.mli]. *) + +module type T = sig + type context + + type quota + + type validation_result + + type rpc_context + + type tztrace + + type 'a tzresult + + val max_block_length : int + + val max_operation_data_length : int + + val validation_passes : quota list + + type block_header_data + + val block_header_data_encoding : block_header_data Data_encoding.t + + type block_header = { + shell : Block_header.shell_header; + protocol_data : block_header_data; + } + + type block_header_metadata + + val block_header_metadata_encoding : block_header_metadata Data_encoding.t + + type operation_data + + type operation_receipt + + type operation = { + shell : Operation.shell_header; + protocol_data : operation_data; + } + + val operation_data_encoding : operation_data Data_encoding.t + + val operation_receipt_encoding : operation_receipt Data_encoding.t + + val operation_data_and_receipt_encoding : + (operation_data * operation_receipt) Data_encoding.t + + val acceptable_pass : operation -> int option + + val compare_operations : + Tezos_crypto.Hashed.Operation_hash.t * operation -> + Tezos_crypto.Hashed.Operation_hash.t * operation -> + int + + type validation_state + + type application_state + + type mode = + | Application of block_header + | Partial_validation of block_header + | Construction of { + predecessor_hash : Tezos_crypto.Hashed.Block_hash.t; + timestamp : Time.Protocol.t; + block_header_data : block_header_data; + } + | Partial_construction of { + predecessor_hash : Tezos_crypto.Hashed.Block_hash.t; + timestamp : Time.Protocol.t; + } + + val begin_validation : + context -> + Tezos_crypto.Hashed.Chain_id.t -> + mode -> + predecessor:Block_header.shell_header -> + validation_state tzresult Lwt.t + + val validate_operation : + ?check_signature:bool -> + validation_state -> + Tezos_crypto.Hashed.Operation_hash.t -> + operation -> + validation_state tzresult Lwt.t + + val finalize_validation : validation_state -> unit tzresult Lwt.t + + val begin_application : + context -> + Tezos_crypto.Hashed.Chain_id.t -> + mode -> + predecessor:Block_header.shell_header -> + application_state tzresult Lwt.t + + val apply_operation : + application_state -> + Tezos_crypto.Hashed.Operation_hash.t -> + operation -> + (application_state * operation_receipt) tzresult Lwt.t + + val finalize_application : + application_state -> + Block_header.shell_header option -> + (validation_result * block_header_metadata) tzresult Lwt.t + + val rpc_services : rpc_context Tezos_rpc.Directory.t + + val init : + Tezos_crypto.Hashed.Chain_id.t -> + context -> + Block_header.shell_header -> + validation_result tzresult Lwt.t + + type cache_value + + type cache_key + + val value_of_key : + chain_id:Tezos_crypto.Hashed.Chain_id.t -> + predecessor_context:context -> + predecessor_timestamp:Time.Protocol.t -> + predecessor_level:Int32.t -> + predecessor_fitness:Fitness.t -> + predecessor:Tezos_crypto.Hashed.Block_hash.t -> + timestamp:Time.Protocol.t -> + (cache_key -> cache_value tzresult Lwt.t) tzresult Lwt.t + + module Mempool : sig + type t + + type validation_info + + type conflict_handler = + existing_operation:Tezos_crypto.Hashed.Operation_hash.t * operation -> + new_operation:Tezos_crypto.Hashed.Operation_hash.t * operation -> + [`Keep | `Replace] + + type operation_conflict = + | Operation_conflict of { + existing : Tezos_crypto.Hashed.Operation_hash.t; + new_operation : Tezos_crypto.Hashed.Operation_hash.t; + } + + type add_result = + | Added + | Replaced of {removed : Tezos_crypto.Hashed.Operation_hash.t} + | Unchanged + + type add_error = + | Validation_error of tztrace + | Add_conflict of operation_conflict + + type merge_error = + | Incompatible_mempool + | Merge_conflict of operation_conflict + + val init : + context -> + Tezos_crypto.Hashed.Chain_id.t -> + head_hash:Tezos_crypto.Hashed.Block_hash.t -> + head:Block_header.shell_header -> + (validation_info * t) tzresult Lwt.t + + val encoding : t Data_encoding.t + + val add_operation : + ?check_signature:bool -> + ?conflict_handler:conflict_handler -> + validation_info -> + t -> + Tezos_crypto.Hashed.Operation_hash.t * operation -> + (t * add_result, add_error) result Lwt.t + + val remove_operation : t -> Tezos_crypto.Hashed.Operation_hash.t -> t + + val merge : + ?conflict_handler:conflict_handler -> t -> t -> (t, merge_error) result + + val operations : t -> operation Tezos_crypto.Hashed.Operation_hash.Map.t + end +end -- GitLab From 2ad28481d53c36d83d5d0284b5b46d40099e14fa Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 2 May 2023 11:03:05 +0200 Subject: [PATCH 2/8] environment: introduce encoding_with_legacy_attestation_name functions --- .../test/proto_test_injection/main.ml | 9 +++++++++ .../environment_V3.ml | 9 +++++++++ .../environment_V4.ml | 9 +++++++++ .../environment_V5.ml | 9 +++++++++ .../environment_V6.ml | 9 +++++++++ .../environment_V7.ml | 9 +++++++++ .../environment_V8.ml | 9 +++++++++ .../environment_V9.ml | 9 +++++++++ .../environment_protocol_T.ml | 9 +++++++++ .../environment_protocol_T_V10.ml | 9 +++++++++ .../environment_protocol_T_test.ml | 9 +++++++++ src/lib_protocol_environment/sigs/v10.ml | 19 +++++++++++++++++-- .../sigs/v10/updater.mli | 19 +++++++++++++++++-- .../test/test_prevalidator_bounding.ml | 6 ++++++ src/proto_alpha/lib_protocol/main.ml | 10 ++++++++++ src/proto_demo_counter/lib_protocol/main.ml | 9 +++++++++ src/proto_demo_noops/lib_protocol/main.ml | 9 +++++++++ 17 files changed, 167 insertions(+), 4 deletions(-) diff --git a/src/bin_client/test/proto_test_injection/main.ml b/src/bin_client/test/proto_test_injection/main.ml index 1f1fbcf51b4c..6c4237ef6cd1 100644 --- a/src/bin_client/test/proto_test_injection/main.ml +++ b/src/bin_client/test/proto_test_injection/main.ml @@ -41,16 +41,25 @@ type operation_data = unit let operation_data_encoding = Data_encoding.unit +let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + type operation_receipt = unit let operation_receipt_encoding = Data_encoding.unit +let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + let operation_data_and_receipt_encoding = Data_encoding.conv (function (), () -> ()) (fun () -> ((), ())) Data_encoding.unit +let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + type operation = { shell : Operation.shell_header; protocol_data : operation_data; diff --git a/src/lib_protocol_environment/environment_V3.ml b/src/lib_protocol_environment/environment_V3.ml index 4ba54c68e866..1194e7f4f905 100644 --- a/src/lib_protocol_environment/environment_V3.ml +++ b/src/lib_protocol_environment/environment_V3.ml @@ -1044,6 +1044,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V4.ml b/src/lib_protocol_environment/environment_V4.ml index b48d761c3001..f399cfbde17b 100644 --- a/src/lib_protocol_environment/environment_V4.ml +++ b/src/lib_protocol_environment/environment_V4.ml @@ -1061,6 +1061,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V5.ml b/src/lib_protocol_environment/environment_V5.ml index e61535c5bd18..2810f3269a02 100644 --- a/src/lib_protocol_environment/environment_V5.ml +++ b/src/lib_protocol_environment/environment_V5.ml @@ -1038,6 +1038,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V6.ml b/src/lib_protocol_environment/environment_V6.ml index 69dbed6feeae..96c477845739 100644 --- a/src/lib_protocol_environment/environment_V6.ml +++ b/src/lib_protocol_environment/environment_V6.ml @@ -1128,6 +1128,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V7.ml b/src/lib_protocol_environment/environment_V7.ml index 4371957a754b..fd4bb1daccc2 100644 --- a/src/lib_protocol_environment/environment_V7.ml +++ b/src/lib_protocol_environment/environment_V7.ml @@ -1110,6 +1110,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V8.ml b/src/lib_protocol_environment/environment_V8.ml index 2bd9901836f6..a418d0daf486 100644 --- a/src/lib_protocol_environment/environment_V8.ml +++ b/src/lib_protocol_environment/environment_V8.ml @@ -1156,6 +1156,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_V9.ml b/src/lib_protocol_environment/environment_V9.ml index 65142cf59d74..6395c37103cb 100644 --- a/src/lib_protocol_environment/environment_V9.ml +++ b/src/lib_protocol_environment/environment_V9.ml @@ -1156,6 +1156,15 @@ struct include P + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let value_of_key ~chain_id ~predecessor_context ~predecessor_timestamp ~predecessor_level ~predecessor_fitness ~predecessor ~timestamp = let open Lwt_result_syntax in diff --git a/src/lib_protocol_environment/environment_protocol_T.ml b/src/lib_protocol_environment/environment_protocol_T.ml index 366d65b188e1..f3947ab058ff 100644 --- a/src/lib_protocol_environment/environment_protocol_T.ml +++ b/src/lib_protocol_environment/environment_protocol_T.ml @@ -80,6 +80,15 @@ module V0toV10 and type cache_value = Context.Cache.value = struct include E + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + type application_state = validation_state type mode = diff --git a/src/lib_protocol_environment/environment_protocol_T_V10.ml b/src/lib_protocol_environment/environment_protocol_T_V10.ml index c92781125f0f..de815bec7a8f 100644 --- a/src/lib_protocol_environment/environment_protocol_T_V10.ml +++ b/src/lib_protocol_environment/environment_protocol_T_V10.ml @@ -70,11 +70,20 @@ module type T = sig val operation_data_encoding : operation_data Data_encoding.t + val operation_data_encoding_with_legacy_attestation_name : + operation_data Data_encoding.t + val operation_receipt_encoding : operation_receipt Data_encoding.t + val operation_receipt_encoding_with_legacy_attestation_name : + operation_receipt Data_encoding.t + val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t + val operation_data_and_receipt_encoding_with_legacy_attestation_name : + (operation_data * operation_receipt) Data_encoding.t + val acceptable_pass : operation -> int option val compare_operations : diff --git a/src/lib_protocol_environment/environment_protocol_T_test.ml b/src/lib_protocol_environment/environment_protocol_T_test.ml index 940e1b92bfd0..c79fddeb4421 100644 --- a/src/lib_protocol_environment/environment_protocol_T_test.ml +++ b/src/lib_protocol_environment/environment_protocol_T_test.ml @@ -98,10 +98,19 @@ module Mock_all_unit : let operation_data_and_receipt_encoding = Data_encoding.conv (Fun.const ()) (Fun.const ((), ())) Data_encoding.unit + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let operation_receipt_encoding = Data_encoding.unit + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + let operation_data_encoding = Data_encoding.unit + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + let block_header_metadata_encoding = Data_encoding.unit let block_header_data_encoding = Data_encoding.unit diff --git a/src/lib_protocol_environment/sigs/v10.ml b/src/lib_protocol_environment/sigs/v10.ml index 3bbd206375eb..3944900bfe6c 100644 --- a/src/lib_protocol_environment/sigs/v10.ml +++ b/src/lib_protocol_environment/sigs/v10.ml @@ -11428,16 +11428,31 @@ module type PROTOCOL = sig protocol_data : operation_data; } - (** Encoding for economoic protocol-specific operation data. *) + (** Encoding for protocol-specific operation data. *) val operation_data_encoding : operation_data Data_encoding.t - (** Encoding for eonomic protocol-specific operation receipts. *) + (** Encoding for protocol-specific operation data. This encoding uses the + attestation legacy name: endorsement. *) + val operation_data_encoding_with_legacy_attestation_name : + operation_data Data_encoding.t + + (** Encoding for protocol-specific operation receipts. *) val operation_receipt_encoding : operation_receipt Data_encoding.t + (** Encoding for protocol-specific operation receipts. This encoding uses the + attestation legacy name: endorsement. *) + val operation_receipt_encoding_with_legacy_attestation_name : + operation_receipt Data_encoding.t + (** Encoding that mixes an operation data and its receipt. *) val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t + (** Encoding that mixes an operation data and its receipt. This encoding uses + the attestation legacy name: endorsement. *) + val operation_data_and_receipt_encoding_with_legacy_attestation_name : + (operation_data * operation_receipt) Data_encoding.t + (** [acceptable_pass op] gives the validation pass in which the input operation [op] can appear. For instance, it results in [Some 0] if [op] only belongs to the first pass. When [op] is diff --git a/src/lib_protocol_environment/sigs/v10/updater.mli b/src/lib_protocol_environment/sigs/v10/updater.mli index 139da9e13782..5a7089ab7f1e 100644 --- a/src/lib_protocol_environment/sigs/v10/updater.mli +++ b/src/lib_protocol_environment/sigs/v10/updater.mli @@ -114,16 +114,31 @@ module type PROTOCOL = sig protocol_data : operation_data; } - (** Encoding for economoic protocol-specific operation data. *) + (** Encoding for protocol-specific operation data. *) val operation_data_encoding : operation_data Data_encoding.t - (** Encoding for eonomic protocol-specific operation receipts. *) + (** Encoding for protocol-specific operation data. This encoding uses the + attestation legacy name: endorsement. *) + val operation_data_encoding_with_legacy_attestation_name : + operation_data Data_encoding.t + + (** Encoding for protocol-specific operation receipts. *) val operation_receipt_encoding : operation_receipt Data_encoding.t + (** Encoding for protocol-specific operation receipts. This encoding uses the + attestation legacy name: endorsement. *) + val operation_receipt_encoding_with_legacy_attestation_name : + operation_receipt Data_encoding.t + (** Encoding that mixes an operation data and its receipt. *) val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t + (** Encoding that mixes an operation data and its receipt. This encoding uses + the attestation legacy name: endorsement. *) + val operation_data_and_receipt_encoding_with_legacy_attestation_name : + (operation_data * operation_receipt) Data_encoding.t + (** [acceptable_pass op] gives the validation pass in which the input operation [op] can appear. For instance, it results in [Some 0] if [op] only belongs to the first pass. When [op] is diff --git a/src/lib_shell/test/test_prevalidator_bounding.ml b/src/lib_shell/test/test_prevalidator_bounding.ml index 4bfc325748b5..40fc0813eb05 100644 --- a/src/lib_shell/test/test_prevalidator_bounding.ml +++ b/src/lib_shell/test/test_prevalidator_bounding.ml @@ -60,9 +60,15 @@ module Mock_protocol : let operation_data_encoding = Data_encoding.int16 + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + let operation_data_and_receipt_encoding = Data_encoding.conv fst (fun n -> (n, ())) Data_encoding.int16 + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + let acceptable_pass _ = assert false let compare_operations (oph1, {shell = _; protocol_data = n1}) diff --git a/src/proto_alpha/lib_protocol/main.ml b/src/proto_alpha/lib_protocol/main.ml index 07b27a1f15dc..931362195be6 100644 --- a/src/proto_alpha/lib_protocol/main.ml +++ b/src/proto_alpha/lib_protocol/main.ml @@ -47,6 +47,9 @@ type operation_data = Alpha_context.packed_protocol_data = let operation_data_encoding = Alpha_context.Operation.protocol_data_encoding_with_legacy_attestation_name +let operation_data_encoding_with_legacy_attestation_name = + Alpha_context.Operation.protocol_data_encoding_with_legacy_attestation_name + type operation_receipt = Apply_results.packed_operation_metadata = | Operation_metadata : 'kind Apply_results.operation_metadata @@ -56,10 +59,17 @@ type operation_receipt = Apply_results.packed_operation_metadata = let operation_receipt_encoding = Apply_results.operation_metadata_encoding_with_legacy_attestation_name +let operation_receipt_encoding_with_legacy_attestation_name = + Apply_results.operation_metadata_encoding_with_legacy_attestation_name + let operation_data_and_receipt_encoding = Apply_results .operation_data_and_metadata_encoding_with_legacy_attestation_name +let operation_data_and_receipt_encoding_with_legacy_attestation_name = + Apply_results + .operation_data_and_metadata_encoding_with_legacy_attestation_name + type operation = Alpha_context.packed_operation = { shell : Operation.shell_header; protocol_data : operation_data; diff --git a/src/proto_demo_counter/lib_protocol/main.ml b/src/proto_demo_counter/lib_protocol/main.ml index e6bbc9518d04..904c62b5f56c 100644 --- a/src/proto_demo_counter/lib_protocol/main.ml +++ b/src/proto_demo_counter/lib_protocol/main.ml @@ -48,15 +48,24 @@ type operation_data = Proto_operation.t let operation_data_encoding = Proto_operation.encoding +let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + type operation_receipt = Receipt.t let operation_receipt_encoding = Receipt.encoding +let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + let operation_data_and_receipt_encoding = (* we could merge data and receipt encoding for a lighter json *) Data_encoding.( obj2 (req "data" Proto_operation.encoding) (req "receipt" Receipt.encoding)) +let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + type operation = { shell : Operation.shell_header; protocol_data : operation_data; diff --git a/src/proto_demo_noops/lib_protocol/main.ml b/src/proto_demo_noops/lib_protocol/main.ml index 854f4bb09bb4..1857c867d73d 100644 --- a/src/proto_demo_noops/lib_protocol/main.ml +++ b/src/proto_demo_noops/lib_protocol/main.ml @@ -49,16 +49,25 @@ type operation_data = unit let operation_data_encoding = Data_encoding.unit +let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + type operation_receipt = unit let operation_receipt_encoding = Data_encoding.unit +let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + let operation_data_and_receipt_encoding = Data_encoding.conv (function ((), ()) -> ()) (fun () -> ((), ())) Data_encoding.unit +let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding + type operation = { shell : Operation.shell_header; protocol_data : operation_data; -- GitLab From 9b50918d43cd1e8aca17ade3c977728e79dcdac3 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 2 May 2023 11:18:25 +0200 Subject: [PATCH 3/8] proto: use lifted protocols when using block_services functor --- src/proto_016_PtMumbai/lib_delegate/node_rpc.ml | 3 ++- src/proto_016_PtMumbai/lib_sc_rollup_node/dal_slots_tracker.ml | 3 ++- src/proto_017_PtNairob/lib_delegate/node_rpc.ml | 3 ++- src/proto_017_PtNairob/lib_sc_rollup_node/dal_slots_tracker.ml | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/proto_016_PtMumbai/lib_delegate/node_rpc.ml b/src/proto_016_PtMumbai/lib_delegate/node_rpc.ml index a0c9cb5f2454..f77e8aec5635 100644 --- a/src/proto_016_PtMumbai/lib_delegate/node_rpc.ml +++ b/src/proto_016_PtMumbai/lib_delegate/node_rpc.ml @@ -27,7 +27,8 @@ open Protocol open Alpha_context open Baking_cache open Baking_state -module Block_services = Block_services.Make (Protocol) (Protocol) +module Lifted_protocol = Tezos_protocol_016_PtMumbai_lifted.Lifted_protocol +module Block_services = Block_services.Make (Lifted_protocol) (Lifted_protocol) module Events = Baking_events.Node_rpc let inject_block cctxt ?(force = false) ~chain signed_block_header operations = diff --git a/src/proto_016_PtMumbai/lib_sc_rollup_node/dal_slots_tracker.ml b/src/proto_016_PtMumbai/lib_sc_rollup_node/dal_slots_tracker.ml index e1469af4c414..45b8758a29b2 100644 --- a/src/proto_016_PtMumbai/lib_sc_rollup_node/dal_slots_tracker.ml +++ b/src/proto_016_PtMumbai/lib_sc_rollup_node/dal_slots_tracker.ml @@ -25,7 +25,8 @@ open Protocol open Alpha_context -module Block_services = Block_services.Make (Protocol) (Protocol) +module Lifted_protocol = Tezos_protocol_016_PtMumbai_lifted.Lifted_protocol +module Block_services = Block_services.Make (Lifted_protocol) (Lifted_protocol) let ancestor_hash ~number_of_levels ({Node_context.genesis_info; _} as node_ctxt) head = diff --git a/src/proto_017_PtNairob/lib_delegate/node_rpc.ml b/src/proto_017_PtNairob/lib_delegate/node_rpc.ml index c4970bb28fe1..2fae4652e15e 100644 --- a/src/proto_017_PtNairob/lib_delegate/node_rpc.ml +++ b/src/proto_017_PtNairob/lib_delegate/node_rpc.ml @@ -27,7 +27,8 @@ open Protocol open Alpha_context open Baking_cache open Baking_state -module Block_services = Block_services.Make (Protocol) (Protocol) +module Lifted_protocol = Tezos_protocol_017_PtNairob_lifted.Lifted_protocol +module Block_services = Block_services.Make (Lifted_protocol) (Lifted_protocol) module Events = Baking_events.Node_rpc let inject_block cctxt ?(force = false) ~chain signed_block_header operations = diff --git a/src/proto_017_PtNairob/lib_sc_rollup_node/dal_slots_tracker.ml b/src/proto_017_PtNairob/lib_sc_rollup_node/dal_slots_tracker.ml index 67fcbebfcedf..bb366e4012ac 100644 --- a/src/proto_017_PtNairob/lib_sc_rollup_node/dal_slots_tracker.ml +++ b/src/proto_017_PtNairob/lib_sc_rollup_node/dal_slots_tracker.ml @@ -25,7 +25,8 @@ open Protocol open Alpha_context -module Block_services = Block_services.Make (Protocol) (Protocol) +module Lifted_protocol = Tezos_protocol_017_PtNairob_lifted.Lifted_protocol +module Block_services = Block_services.Make (Lifted_protocol) (Lifted_protocol) let ancestor_hash ~number_of_levels ({Node_context.genesis_info; _} as node_ctxt) head = -- GitLab From 61fef700acca2cda61253ac7e06b491cb3989b1f Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 2 May 2023 11:19:02 +0200 Subject: [PATCH 4/8] lib_shell: block_services requires encoding with legacy attestation name --- src/lib_shell_services/block_services.ml | 18 ++++++++++++++++++ src/lib_shell_services/block_services.mli | 9 +++++++++ 2 files changed, 27 insertions(+) diff --git a/src/lib_shell_services/block_services.ml b/src/lib_shell_services/block_services.ml index df373835e6ef..bbe68196f60e 100644 --- a/src/lib_shell_services/block_services.ml +++ b/src/lib_shell_services/block_services.ml @@ -356,10 +356,19 @@ module type PROTO = sig val operation_data_encoding : operation_data Data_encoding.t + val operation_data_encoding_with_legacy_attestation_name : + operation_data Data_encoding.t + val operation_receipt_encoding : operation_receipt Data_encoding.t + val operation_receipt_encoding_with_legacy_attestation_name : + operation_receipt Data_encoding.t + val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t + + val operation_data_and_receipt_encoding_with_legacy_attestation_name : + (operation_data * operation_receipt) Data_encoding.t end type protocols = { @@ -1778,13 +1787,22 @@ module Fake_protocol = struct let operation_data_encoding = Data_encoding.empty + let operation_data_encoding_with_legacy_attestation_name = + operation_data_encoding + let operation_receipt_encoding = Data_encoding.empty + let operation_receipt_encoding_with_legacy_attestation_name = + operation_receipt_encoding + let operation_data_and_receipt_encoding = Data_encoding.conv (fun ((), ()) -> ()) (fun () -> ((), ())) Data_encoding.empty + + let operation_data_and_receipt_encoding_with_legacy_attestation_name = + operation_data_and_receipt_encoding end module Empty = Make (Fake_protocol) (Fake_protocol) diff --git a/src/lib_shell_services/block_services.mli b/src/lib_shell_services/block_services.mli index 5c0273d168ad..7e42ae7de9ef 100644 --- a/src/lib_shell_services/block_services.mli +++ b/src/lib_shell_services/block_services.mli @@ -112,10 +112,19 @@ module type PROTO = sig val operation_data_encoding : operation_data Data_encoding.t + val operation_data_encoding_with_legacy_attestation_name : + operation_data Data_encoding.t + val operation_receipt_encoding : operation_receipt Data_encoding.t + val operation_receipt_encoding_with_legacy_attestation_name : + operation_receipt Data_encoding.t + val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t + + val operation_data_and_receipt_encoding_with_legacy_attestation_name : + (operation_data * operation_receipt) Data_encoding.t end type protocols = { -- GitLab From bd785d7fd962bf29e912835d71618c4c08fa92f4 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 2 May 2023 11:29:19 +0200 Subject: [PATCH 5/8] shell: use encoding with legacy attestation name --- src/bin_node/node_replay_command.ml | 13 +++++++++---- src/lib_shell/block_directory.ml | 15 ++++++++++----- src/lib_shell/shell_operation.ml | 4 +++- src/lib_shell_services/block_services.ml | 22 +++++++++++++++------- src/lib_validation/block_validation.ml | 18 ++++++++++++------ 5 files changed, 49 insertions(+), 23 deletions(-) diff --git a/src/bin_node/node_replay_command.ml b/src/bin_node/node_replay_command.ml index 7b7098ebdfde..02d582aa35a0 100644 --- a/src/bin_node/node_replay_command.ml +++ b/src/bin_node/node_replay_command.ml @@ -336,11 +336,16 @@ let replay_one_block strict main_chain_store validator_process block = in let to_json metadata_bytes = Data_encoding.Json.construct - Proto.operation_data_and_receipt_encoding + Proto + .operation_data_and_receipt_encoding_with_legacy_attestation_name Data_encoding.Binary. - ( of_bytes_exn Proto.operation_data_encoding op, - of_bytes_exn Proto.operation_receipt_encoding metadata_bytes - ) + ( of_bytes_exn + Proto.operation_data_encoding_with_legacy_attestation_name + op, + of_bytes_exn + Proto + .operation_receipt_encoding_with_legacy_attestation_name + metadata_bytes ) in let exp_json_opt, got_json_opt = match (exp_m, got_m) with diff --git a/src/lib_shell/block_directory.ml b/src/lib_shell/block_directory.ml index 271660fc559e..54643fcbd835 100644 --- a/src/lib_shell/block_directory.ml +++ b/src/lib_shell/block_directory.ml @@ -227,14 +227,16 @@ let build_raw_rpc_directory (module Proto : Block_services.PROTO) let convert_with_metadata chain_id (op : Operation.t) metadata : Block_services.operation = let protocol_data = - Data_encoding.Binary.of_bytes_exn Proto.operation_data_encoding op.proto + Data_encoding.Binary.of_bytes_exn + Proto.operation_data_encoding_with_legacy_attestation_name + op.proto in let receipt = match metadata with | Block_validation.Metadata bytes -> Block_services.Receipt (Data_encoding.Binary.of_bytes_exn - Proto.operation_receipt_encoding + Proto.operation_receipt_encoding_with_legacy_attestation_name bytes) | Too_large_metadata -> Too_large in @@ -248,7 +250,9 @@ let build_raw_rpc_directory (module Proto : Block_services.PROTO) in let convert_without_metadata chain_id (op : Operation.t) = let protocol_data = - Data_encoding.Binary.of_bytes_exn Proto.operation_data_encoding op.proto + Data_encoding.Binary.of_bytes_exn + Proto.operation_data_encoding_with_legacy_attestation_name + op.proto in { Block_services.chain_id; @@ -652,7 +656,8 @@ let build_raw_rpc_directory (module Proto : Block_services.PROTO) (fun op -> let proto = Data_encoding.Binary.to_bytes_exn - Next_proto.operation_data_encoding + Next_proto + .operation_data_encoding_with_legacy_attestation_name op.Next_proto.protocol_data in (op, {Operation.shell = op.shell; proto})) @@ -706,7 +711,7 @@ let build_raw_rpc_directory (module Proto : Block_services.PROTO) (fun op -> match Data_encoding.Binary.to_bytes - Next_proto.operation_data_encoding + Next_proto.operation_data_encoding_with_legacy_attestation_name op.Next_proto.protocol_data with | Error _ -> diff --git a/src/lib_shell/shell_operation.ml b/src/lib_shell/shell_operation.ml index 4c5c126658b9..a9b398650b41 100644 --- a/src/lib_shell/shell_operation.ml +++ b/src/lib_shell/shell_operation.ml @@ -55,7 +55,9 @@ module MakeParser (Proto : Tezos_protocol_environment.PROTOCOL) : type protocol_operation = Proto.operation let parse_unsafe (proto : bytes) : Proto.operation_data tzresult = - safe_binary_of_bytes Proto.operation_data_encoding proto + safe_binary_of_bytes + Proto.operation_data_encoding_with_legacy_attestation_name + proto let parse hash (raw : Operation.t) = let open Result_syntax in diff --git a/src/lib_shell_services/block_services.ml b/src/lib_shell_services/block_services.ml index bbe68196f60e..00c0dfe5c085 100644 --- a/src/lib_shell_services/block_services.ml +++ b/src/lib_shell_services/block_services.ml @@ -492,7 +492,9 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (obj1 (req "protocol" (constant next_protocol_hash))) (merge_objs (dynamic_size Operation.shell_header_encoding) - (dynamic_size Next_proto.operation_data_encoding))) + (dynamic_size + Next_proto + .operation_data_encoding_with_legacy_attestation_name))) type operation_receipt = | Empty @@ -516,7 +518,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~title:"Operation with too large metadata" (Tag 0) (merge_objs - Proto.operation_data_encoding + Proto.operation_data_encoding_with_legacy_attestation_name (obj1 (req "metadata" (constant "too large")))) (function | operation_data, Too_large -> Some (operation_data, ()) | _ -> None) @@ -524,13 +526,13 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct case ~title:"Operation without metadata" (Tag 1) - Proto.operation_data_encoding + Proto.operation_data_encoding_with_legacy_attestation_name (function operation_data, Empty -> Some operation_data | _ -> None) (fun operation_data -> (operation_data, Empty)); case ~title:"Operation with metadata" (Tag 2) - Proto.operation_data_and_receipt_encoding + Proto.operation_data_and_receipt_encoding_with_legacy_attestation_name (function | operation_data, Receipt receipt -> Some (operation_data, receipt) | _ -> None) @@ -888,7 +890,9 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~input:(list next_operation_encoding) ~output: (list - (dynamic_size Next_proto.operation_data_and_receipt_encoding)) + (dynamic_size + Next_proto + .operation_data_and_receipt_encoding_with_legacy_attestation_name)) Tezos_rpc.Path.(path / "operations") end @@ -1043,7 +1047,9 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (merge_objs (obj1 (req "hash" Operation_hash.encoding)) (dynamic_size Operation.shell_header_encoding)) - (dynamic_size Next_proto.operation_data_encoding))))) + (dynamic_size + Next_proto + .operation_data_encoding_with_legacy_attestation_name))))) (req "refused" (Operation_hash.Map.encoding @@ -1129,7 +1135,9 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (merge_objs (obj1 (req "hash" Operation_hash.encoding)) Operation.shell_header_encoding) - (dynamic_size Next_proto.operation_data_encoding))))) + (dynamic_size + Next_proto + .operation_data_encoding_with_legacy_attestation_name))))) (operations_with_error_encoding "refused") (operations_with_error_encoding "outdated") (operations_with_error_encoding "branch_refused") diff --git a/src/lib_validation/block_validation.ml b/src/lib_validation/block_validation.ml index a56a1f850497..3a492688e056 100644 --- a/src/lib_validation/block_validation.ml +++ b/src/lib_validation/block_validation.ml @@ -434,7 +434,7 @@ module Make (Proto : Registered_protocol.T) = struct let op_hash = Operation.hash op in match Data_encoding.Binary.of_bytes_opt - Proto.operation_data_encoding + Proto.operation_data_encoding_with_legacy_attestation_name op.Operation.proto with | None -> @@ -494,12 +494,14 @@ module Make (Proto : Registered_protocol.T) = struct serializable/deserializable *) let bytes = Data_encoding.Binary.to_bytes_exn - Proto.operation_receipt_encoding + Proto + .operation_receipt_encoding_with_legacy_attestation_name receipt in let _ = Data_encoding.Binary.of_bytes_exn - Proto.operation_receipt_encoding + Proto + .operation_receipt_encoding_with_legacy_attestation_name bytes in let metadata = @@ -892,8 +894,10 @@ module Make (Proto : Registered_protocol.T) = struct match Data_encoding.Binary.( of_bytes_exn - Proto.operation_receipt_encoding - (to_bytes_exn Proto.operation_receipt_encoding receipt)) + Proto.operation_receipt_encoding_with_legacy_attestation_name + (to_bytes_exn + Proto.operation_receipt_encoding_with_legacy_attestation_name + receipt)) with | receipt -> Applied (pv, receipt) | exception exn -> @@ -916,7 +920,9 @@ module Make (Proto : Registered_protocol.T) = struct | Some protocol_data -> return protocol_data let parse_unsafe (proto : bytes) : Proto.operation_data tzresult = - safe_binary_of_bytes Proto.operation_data_encoding proto + safe_binary_of_bytes + Proto.operation_data_encoding_with_legacy_attestation_name + proto let parse (raw : Operation.t) = let open Result_syntax in -- GitLab From d3945cf53ddacf6c72affa0efaec1b3c271356bc Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 23 May 2023 09:24:10 +0200 Subject: [PATCH 6/8] lib_mockup: use encoding with legacy attestation name --- src/lib_mockup/local_services.ml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/lib_mockup/local_services.ml b/src/lib_mockup/local_services.ml index bfb1e1765a4f..928eb3248067 100644 --- a/src/lib_mockup/local_services.ml +++ b/src/lib_mockup/local_services.ml @@ -252,7 +252,8 @@ module Make (E : MENV) = struct ~predecessor ~cache - let op_data_encoding = E.Protocol.operation_data_encoding + let op_data_encoding = + E.Protocol.operation_data_encoding_with_legacy_attestation_name let op_encoding = Data_encoding.( @@ -427,9 +428,7 @@ module Make (E : MENV) = struct let simulate_operation (state, preapply_result) op = let open Lwt_result_syntax in match - Data_encoding.Binary.to_bytes - E.Protocol.operation_data_encoding - op.E.Protocol.protocol_data + Data_encoding.Binary.to_bytes op_data_encoding op.E.Protocol.protocol_data with | Error _ -> failwith "mockup preapply_block: cannot deserialize operation" | Ok proto -> ( @@ -545,9 +544,7 @@ module Make (E : MENV) = struct let hash_protocol_operation op = match - Data_encoding.Binary.to_bytes - E.Protocol.operation_data_encoding - op.E.Protocol.protocol_data + Data_encoding.Binary.to_bytes op_data_encoding op.E.Protocol.protocol_data with | Error _ -> failwith "mockup preapply_operations: cannot deserialize operation" @@ -595,9 +592,7 @@ module Make (E : MENV) = struct | Error errs -> Tezos_rpc.Answer.fail errs))) let hash_op (shell, proto) = - let proto = - Data_encoding.Binary.to_bytes_exn E.Protocol.operation_data_encoding proto - in + let proto = Data_encoding.Binary.to_bytes_exn op_data_encoding proto in Operation.hash {shell; proto} let equal_op (a_shell_header, a_operation_data) @@ -642,7 +637,7 @@ module Make (E : MENV) = struct | Ok ({Operation.shell = shell_header; proto} as op) -> ( let operation_hash = Operation.hash op in let proto_op_opt = - Data_encoding.Binary.of_bytes E.Protocol.operation_data_encoding proto + Data_encoding.Binary.of_bytes op_data_encoding proto in match proto_op_opt with | Error _ -> Tezos_rpc.Answer.fail [Cannot_parse_op] @@ -678,7 +673,7 @@ module Make (E : MENV) = struct | Ok ({Operation.shell = shell_header; proto} as op) -> ( let operation_hash = Operation.hash op in let proto_op_opt = - Data_encoding.Binary.of_bytes E.Protocol.operation_data_encoding proto + Data_encoding.Binary.of_bytes op_data_encoding proto in match proto_op_opt with | Error _ -> Tezos_rpc.Answer.fail [Cannot_parse_op] -- GitLab From cfce4146f3aaada0a4bb2d1f0f2a5e834a0ee910 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 2 May 2023 11:35:47 +0200 Subject: [PATCH 7/8] proto_alpha: non legacy encoding use encoding with attestation name --- src/proto_alpha/lib_protocol/main.ml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/proto_alpha/lib_protocol/main.ml b/src/proto_alpha/lib_protocol/main.ml index 931362195be6..247bf2c3cb44 100644 --- a/src/proto_alpha/lib_protocol/main.ml +++ b/src/proto_alpha/lib_protocol/main.ml @@ -44,8 +44,7 @@ type operation_data = Alpha_context.packed_protocol_data = 'kind Alpha_context.Operation.protocol_data -> operation_data -let operation_data_encoding = - Alpha_context.Operation.protocol_data_encoding_with_legacy_attestation_name +let operation_data_encoding = Alpha_context.Operation.protocol_data_encoding let operation_data_encoding_with_legacy_attestation_name = Alpha_context.Operation.protocol_data_encoding_with_legacy_attestation_name @@ -56,15 +55,13 @@ type operation_receipt = Apply_results.packed_operation_metadata = -> operation_receipt | No_operation_metadata : operation_receipt -let operation_receipt_encoding = - Apply_results.operation_metadata_encoding_with_legacy_attestation_name +let operation_receipt_encoding = Apply_results.operation_metadata_encoding let operation_receipt_encoding_with_legacy_attestation_name = Apply_results.operation_metadata_encoding_with_legacy_attestation_name let operation_data_and_receipt_encoding = - Apply_results - .operation_data_and_metadata_encoding_with_legacy_attestation_name + Apply_results.operation_data_and_metadata_encoding let operation_data_and_receipt_encoding_with_legacy_attestation_name = Apply_results -- GitLab From 2d547346a7328675544b15e5dc164e75a65c393a Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 31 May 2023 09:09:24 +0200 Subject: [PATCH 8/8] Changes: add env entry for encoding with legacy attestation name --- CHANGES.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 8db6c0bcad17..435ea8dd6663 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -106,6 +106,8 @@ Protocol Compiler And Environment - Exposed a limited API to manipulate an Irmin binary tree within the protocol. + - Expose encoding with legacy attestation name. (MR :gl:`!8620`) + Codec ----- -- GitLab