From 2331787b70d5f3e153dfe7274b65eb59b760cd88 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Fri, 28 Apr 2023 09:00:19 +0200 Subject: [PATCH 01/10] proto_alpha: copy operation encodings as legacy ones --- src/proto_alpha/lib_protocol/alpha_context.ml | 3 + .../lib_protocol/alpha_context.mli | 14 ++++ .../lib_protocol/operation_repr.ml | 67 +++++++++++++++++++ .../lib_protocol/operation_repr.mli | 14 ++++ 4 files changed, 98 insertions(+) diff --git a/src/proto_alpha/lib_protocol/alpha_context.ml b/src/proto_alpha/lib_protocol/alpha_context.ml index 3e7e28721f3f..e3213ecde8ba 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.ml +++ b/src/proto_alpha/lib_protocol/alpha_context.ml @@ -189,6 +189,9 @@ module Operation = struct let unsigned_encoding = unsigned_operation_encoding + let unsigned_encoding_with_legacy_attestation_name = + unsigned_operation_encoding_with_legacy_attestation_name + include Operation_repr end diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 5c9e3278bfac..fb356b07c15b 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -4810,6 +4810,9 @@ module Operation : sig val contents_encoding : packed_contents Data_encoding.t + val contents_encoding_with_legacy_attestation_name : + packed_contents Data_encoding.t + type nonrec 'kind protocol_data = 'kind protocol_data type nonrec packed_protocol_data = packed_protocol_data @@ -4825,15 +4828,24 @@ module Operation : sig val protocol_data_encoding : packed_protocol_data Data_encoding.t + val protocol_data_encoding_with_legacy_attestation_name : + packed_protocol_data Data_encoding.t + val unsigned_encoding : (Operation.shell_header * packed_contents_list) Data_encoding.t + val unsigned_encoding_with_legacy_attestation_name : + (Operation.shell_header * packed_contents_list) Data_encoding.t + type raw = Operation.t = {shell : Operation.shell_header; proto : bytes} val raw_encoding : raw Data_encoding.t val contents_list_encoding : packed_contents_list Data_encoding.t + val contents_list_encoding_with_legacy_attestation_name : + packed_contents_list Data_encoding.t + type 'kind t = 'kind operation = { shell : Operation.shell_header; protocol_data : 'kind protocol_data; @@ -4843,6 +4855,8 @@ module Operation : sig val encoding : packed Data_encoding.t + val encoding_with_legacy_attestation_name : packed Data_encoding.t + val raw : _ operation -> raw val hash : _ operation -> Operation_hash.t diff --git a/src/proto_alpha/lib_protocol/operation_repr.ml b/src/proto_alpha/lib_protocol/operation_repr.ml index 5d5d989b59eb..274fabe7a354 100644 --- a/src/proto_alpha/lib_protocol/operation_repr.ml +++ b/src/proto_alpha/lib_protocol/operation_repr.ml @@ -1493,9 +1493,28 @@ module Encoding = struct in def "operation.alpha.contents" @@ union (List.map make contents_cases) + let contents_encoding_with_legacy_attestation_name = + let make (PCase (Case {tag; name; encoding; select; proj; inj})) = + assert (not @@ reserved_tag tag) ; + case + (Tag tag) + name + encoding + (fun o -> match select o with None -> None | Some o -> Some (proj o)) + (fun x -> Contents (inj x)) + in + def "operation_with_legacy_attestation_name.alpha.contents" + @@ union (List.map make contents_cases) + let contents_list_encoding = conv_with_guard to_list of_list_internal (Variable.list contents_encoding) + let contents_list_encoding_with_legacy_attestation_name = + conv_with_guard + to_list + of_list_internal + (Variable.list contents_encoding_with_legacy_attestation_name) + let protocol_data_json_encoding = conv (fun (Operation_data {contents; signature}) -> @@ -1506,6 +1525,18 @@ module Encoding = struct (req "contents" (dynamic_size contents_list_encoding)) (opt "signature" Signature.encoding)) + let protocol_data_json_encoding_with_legacy_attestation_name = + conv + (fun (Operation_data {contents; signature}) -> + (Contents_list contents, signature)) + (fun (Contents_list contents, signature) -> + Operation_data {contents; signature}) + (obj2 + (req + "contents" + (dynamic_size contents_list_encoding_with_legacy_attestation_name)) + (opt "signature" Signature.encoding)) + type contents_or_signature_prefix = | Actual_contents of packed_contents | Signature_prefix of Signature.prefix @@ -1653,29 +1684,65 @@ module Encoding = struct ~json:protocol_data_json_encoding ~binary:protocol_data_binary_encoding + let protocol_data_encoding_with_legacy_attestation_name = + def "operation_with_legacy_attestation_name.alpha.contents_and_signature" + @@ splitted + ~json:protocol_data_json_encoding_with_legacy_attestation_name + ~binary:protocol_data_binary_encoding + let operation_encoding = conv (fun {shell; protocol_data} -> (shell, protocol_data)) (fun (shell, protocol_data) -> {shell; protocol_data}) (merge_objs Operation.shell_header_encoding protocol_data_encoding) + let operation_encoding_with_legacy_attestation_name = + conv + (fun {shell; protocol_data} -> (shell, protocol_data)) + (fun (shell, protocol_data) -> {shell; protocol_data}) + (merge_objs + Operation.shell_header_encoding + protocol_data_encoding_with_legacy_attestation_name) + let unsigned_operation_encoding = def "operation.alpha.unsigned_operation" @@ merge_objs Operation.shell_header_encoding (obj1 (req "contents" contents_list_encoding)) + + let unsigned_operation_encoding_with_legacy_attestation_name = + def "operation_with_legacy_attestation_name.alpha.unsigned_operation" + @@ merge_objs + Operation.shell_header_encoding + (obj1 + (req "contents" contents_list_encoding_with_legacy_attestation_name)) end let encoding = Encoding.operation_encoding +let encoding_with_legacy_attestation_name = + Encoding.operation_encoding_with_legacy_attestation_name + let contents_encoding = Encoding.contents_encoding +let contents_encoding_with_legacy_attestation_name = + Encoding.contents_encoding_with_legacy_attestation_name + let contents_list_encoding = Encoding.contents_list_encoding +let contents_list_encoding_with_legacy_attestation_name = + Encoding.contents_list_encoding_with_legacy_attestation_name + let protocol_data_encoding = Encoding.protocol_data_encoding +let protocol_data_encoding_with_legacy_attestation_name = + Encoding.protocol_data_encoding_with_legacy_attestation_name + let unsigned_operation_encoding = Encoding.unsigned_operation_encoding +let unsigned_operation_encoding_with_legacy_attestation_name = + Encoding.unsigned_operation_encoding_with_legacy_attestation_name + let raw ({shell; protocol_data} : _ operation) = let proto = Data_encoding.Binary.to_bytes_exn diff --git a/src/proto_alpha/lib_protocol/operation_repr.mli b/src/proto_alpha/lib_protocol/operation_repr.mli index 14d1afd6eb82..68aaca084427 100644 --- a/src/proto_alpha/lib_protocol/operation_repr.mli +++ b/src/proto_alpha/lib_protocol/operation_repr.mli @@ -530,15 +530,29 @@ val manager_kind : 'kind manager_operation -> 'kind Kind.manager val encoding : packed_operation Data_encoding.t +val encoding_with_legacy_attestation_name : packed_operation Data_encoding.t + val contents_encoding : packed_contents Data_encoding.t +val contents_encoding_with_legacy_attestation_name : + packed_contents Data_encoding.t + val contents_list_encoding : packed_contents_list Data_encoding.t +val contents_list_encoding_with_legacy_attestation_name : + packed_contents_list Data_encoding.t + val protocol_data_encoding : packed_protocol_data Data_encoding.t +val protocol_data_encoding_with_legacy_attestation_name : + packed_protocol_data Data_encoding.t + val unsigned_operation_encoding : (Operation.shell_header * packed_contents_list) Data_encoding.t +val unsigned_operation_encoding_with_legacy_attestation_name : + (Operation.shell_header * packed_contents_list) Data_encoding.t + val raw : _ operation -> raw val hash_raw : raw -> Operation_hash.t -- GitLab From 1252aeadfd60e875a7692385021382ef908dc1a3 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Fri, 28 Apr 2023 09:00:33 +0200 Subject: [PATCH 02/10] proto_alpha: use legacy encoding --- .../lib_client/client_proto_utils.ml | 2 +- src/proto_alpha/lib_client/injection.ml | 18 ++++++++---- .../lib_client/protocol_client_context.ml | 18 ++++++++---- .../client_proto_context_commands.ml | 3 +- .../client_proto_stresstest_commands.ml | 6 ++-- .../lib_delegate/baking_actions.ml | 13 +++++---- src/proto_alpha/lib_delegate/baking_state.ml | 18 ++++++++---- src/proto_alpha/lib_delegate/block_forge.ml | 3 +- src/proto_alpha/lib_delegate/node_rpc.ml | 6 ++-- .../lib_delegate/operation_pool.ml | 28 ++++++++++++++----- .../lib_delegate/operation_selection.ml | 14 ++++++++-- src/proto_alpha/lib_plugin/RPC.ml | 15 ++++++---- src/proto_alpha/lib_plugin/mempool.ml | 4 ++- src/proto_alpha/lib_protocol/apply_results.ml | 6 +++- src/proto_alpha/lib_protocol/main.ml | 3 +- .../lib_protocol/mempool_validation.ml | 4 ++- .../lib_protocol/test/helpers/block.ml | 4 ++- .../lib_protocol/test/helpers/incremental.ml | 6 +++- .../lib_protocol/test/helpers/op.ml | 2 +- .../test/unit/test_operation_repr.ml | 4 +-- .../lib_sc_rollup_node/configuration.ml | 2 +- .../lib_sc_rollup_node/injector.ml | 14 +++++++--- 22 files changed, 135 insertions(+), 58 deletions(-) diff --git a/src/proto_alpha/lib_client/client_proto_utils.ml b/src/proto_alpha/lib_client/client_proto_utils.ml index be6844cc5cf7..124262686cac 100644 --- a/src/proto_alpha/lib_client/client_proto_utils.ml +++ b/src/proto_alpha/lib_client/client_proto_utils.ml @@ -32,7 +32,7 @@ let to_json_and_bytes branch message = ( Environment.Operation.{branch}, Contents_list (Single (Failing_noop message)) ) in - let encoding = Operation.unsigned_encoding in + let encoding = Operation.unsigned_encoding_with_legacy_attestation_name in ( Data_encoding.Json.construct encoding op, Data_encoding.Binary.to_bytes_exn encoding op ) diff --git a/src/proto_alpha/lib_client/injection.ml b/src/proto_alpha/lib_client/injection.ml index bed57a7cbb74..74df530ace43 100644 --- a/src/proto_alpha/lib_client/injection.ml +++ b/src/proto_alpha/lib_client/injection.ml @@ -217,7 +217,7 @@ let print_for_verbose_signing ppf ~watermark ~bytes ~branch ~contents = hash_pp [Signature.bytes_of_watermark watermark; bytes]) ; let json = Data_encoding.Json.construct - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name ({branch}, Contents_list contents) in item (fun ppf () -> @@ -231,7 +231,7 @@ let preapply (type t) (cctxt : #Protocol_client_context.full) ~chain ~block get_branch cctxt ~chain ~block branch >>=? fun (_chain_id, branch) -> let bytes = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name ({branch}, Contents_list contents) in (match src_sk with @@ -258,7 +258,11 @@ let preapply (type t) (cctxt : #Protocol_client_context.full) ~chain ~block let packed_op = {shell = {branch}; protocol_data = Operation_data {contents; signature}} in - let size = Data_encoding.Binary.length Operation.encoding packed_op in + let size = + Data_encoding.Binary.length + Operation.encoding_with_legacy_attestation_name + packed_op + in (match fee_parameter with | Some fee_parameter -> check_fees cctxt fee_parameter contents size | None -> Lwt.return_unit) @@ -760,12 +764,12 @@ let may_patch_limits (type kind) (cctxt : #Protocol_client_context.full) @@ Data_encoding.Binary.fixed_length Tezos_base.Operation.shell_header_encoding) + Data_encoding.Binary.length - Operation.contents_encoding + Operation.contents_encoding_with_legacy_attestation_name (Contents op) + signature_size_of_algo signature_algo else Data_encoding.Binary.length - Operation.contents_encoding + Operation.contents_encoding_with_legacy_attestation_name (Contents op) in let minimal_fees_in_nanotez = @@ -1005,7 +1009,9 @@ let inject_operation_internal (type kind) cctxt ~chain ~block ?confirmations >>= fun () -> if force then return_unit else Lwt.return res) >>=? fun () -> let bytes = - Data_encoding.Binary.to_bytes_exn Operation.encoding (Operation.pack op) + Data_encoding.Binary.to_bytes_exn + Operation.encoding_with_legacy_attestation_name + (Operation.pack op) in if dry_run || simulation then let oph = Operation_hash.hash_bytes [bytes] in diff --git a/src/proto_alpha/lib_client/protocol_client_context.ml b/src/proto_alpha/lib_client/protocol_client_context.ml index abb8c7903981..21033dc86eae 100644 --- a/src/proto_alpha/lib_client/protocol_client_context.ml +++ b/src/proto_alpha/lib_client/protocol_client_context.ml @@ -173,22 +173,29 @@ let () = Protocol.Alpha_context.Receipt.balance_updates_encoding ; register ~pp:Protocol.Alpha_context.Level.pp_full @@ def "level" [] Protocol.Alpha_context.Level.encoding ; - register @@ def "operation" [] Protocol.Alpha_context.Operation.encoding ; + register + @@ def + "operation" + [] + Protocol.Alpha_context.Operation.encoding_with_legacy_attestation_name ; register @@ def "operation" ["contents"] - Protocol.Alpha_context.Operation.contents_encoding ; + Protocol.Alpha_context.Operation + .contents_encoding_with_legacy_attestation_name ; register @@ def "operation" ["contents_list"] - Protocol.Alpha_context.Operation.contents_list_encoding ; + Protocol.Alpha_context.Operation + .contents_list_encoding_with_legacy_attestation_name ; register @@ def "operation" ["protocol_data"] - Protocol.Alpha_context.Operation.protocol_data_encoding ; + Protocol.Alpha_context.Operation + .protocol_data_encoding_with_legacy_attestation_name ; register @@ def "operation" ["raw"] Protocol.Alpha_context.Operation.raw_encoding ; register @@ -200,7 +207,8 @@ let () = @@ def "operation" ["unsigned"] - Protocol.Alpha_context.Operation.unsigned_encoding ; + Protocol.Alpha_context.Operation + .unsigned_encoding_with_legacy_attestation_name ; register ~pp:Protocol.Alpha_context.Period.pp @@ def "period" [] Protocol.Alpha_context.Period.encoding ; register ~pp:Protocol.Alpha_context.Cycle.pp diff --git a/src/proto_alpha/lib_client_commands/client_proto_context_commands.ml b/src/proto_alpha/lib_client_commands/client_proto_context_commands.ml index ac400d1f41cc..85256575c89c 100644 --- a/src/proto_alpha/lib_client_commands/client_proto_context_commands.ml +++ b/src/proto_alpha/lib_client_commands/client_proto_context_commands.ml @@ -778,7 +778,8 @@ let commands_ro () = "%a" Data_encoding.Binary_schema.pp (Data_encoding.Binary.describe - Alpha_context.Operation.unsigned_encoding) + Alpha_context.Operation + .unsigned_encoding_with_legacy_attestation_name) in return_unit); command diff --git a/src/proto_alpha/lib_client_commands/client_proto_stresstest_commands.ml b/src/proto_alpha/lib_client_commands/client_proto_stresstest_commands.ml index d5e33b91cb58..b1e114f7f075 100644 --- a/src/proto_alpha/lib_client_commands/client_proto_stresstest_commands.ml +++ b/src/proto_alpha/lib_client_commands/client_proto_stresstest_commands.ml @@ -494,7 +494,7 @@ let rec sample_transfer (cctxt : Protocol_client_context.full) chain block let inject_contents (cctxt : Protocol_client_context.full) branch sk contents = let bytes = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name ({branch}, Contents_list contents) in let signature = @@ -504,7 +504,9 @@ let inject_contents (cctxt : Protocol_client_context.full) branch sk contents = {shell = {branch}; protocol_data = {contents; signature}} in let bytes = - Data_encoding.Binary.to_bytes_exn Operation.encoding (Operation.pack op) + Data_encoding.Binary.to_bytes_exn + Operation.encoding_with_legacy_attestation_name + (Operation.pack op) in Shell_services.Injection.operation cctxt bytes diff --git a/src/proto_alpha/lib_delegate/baking_actions.ml b/src/proto_alpha/lib_delegate/baking_actions.ml index b84d61f55128..e7fadd664f14 100644 --- a/src/proto_alpha/lib_delegate/baking_actions.ml +++ b/src/proto_alpha/lib_delegate/baking_actions.ml @@ -37,7 +37,8 @@ module Operations_source = struct } let operations_encoding = - Data_encoding.(list (dynamic_size Operation.encoding)) + Data_encoding.( + list (dynamic_size Operation.encoding_with_legacy_attestation_name)) let retrieve = function | None -> Lwt.return_none @@ -410,7 +411,7 @@ let inject_preendorsements state ~preendorsements = let watermark = Operation.(to_watermark (Preendorsement chain_id)) in let unsigned_operation_bytes = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name unsigned_operation in Client_keys.sign cctxt ~watermark sk_uri unsigned_operation_bytes @@ -491,7 +492,7 @@ let sign_endorsements state endorsements = let unsigned_operation = (shell, Contents_list contents) in let unsigned_operation_bytes = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name unsigned_operation in Client_keys.sign cctxt ~watermark sk_uri unsigned_operation_bytes @@ -527,7 +528,7 @@ let sign_dal_attestations state attestations = let unsigned_operation = (shell, Contents_list contents) in let unsigned_operation_bytes = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name unsigned_operation in Client_keys.sign @@ -573,7 +574,9 @@ let inject_dal_attestations state attestations = List.iter_ep (fun (delegate, signed_operation, (attestation : Dal.Attestation.t)) -> let encoded_op = - Data_encoding.Binary.to_bytes_exn Operation.encoding signed_operation + Data_encoding.Binary.to_bytes_exn + Operation.encoding_with_legacy_attestation_name + signed_operation in Shell_services.Injection.operation cctxt diff --git a/src/proto_alpha/lib_delegate/baking_state.ml b/src/proto_alpha/lib_delegate/baking_state.ml index 77029832a4ef..e846d9097f7e 100644 --- a/src/proto_alpha/lib_delegate/baking_state.ml +++ b/src/proto_alpha/lib_delegate/baking_state.ml @@ -157,7 +157,9 @@ let prequorum_encoding = (req "level" int32) (req "round" Round.encoding) (req "block_payload_hash" Block_payload_hash.encoding) - (req "preendorsements" (list (dynamic_size Operation.encoding)))) + (req + "preendorsements" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name)))) let block_info_encoding = let open Data_encoding in @@ -210,8 +212,12 @@ let block_info_encoding = (req "payload_round" Round.encoding) (req "round" Round.encoding) (req "prequorum" (option prequorum_encoding)) - (req "quorum" (list (dynamic_size Operation.encoding))) - (req "dal_attestations" (list (dynamic_size Operation.encoding))) + (req + "quorum" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "dal_attestations" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) (req "payload" Operation_pool.payload_encoding)) let round_of_shell_header shell_header = @@ -415,7 +421,8 @@ let event_encoding = (tup3 (constant "Prequorum_reached") Operation_worker.candidate_encoding - (Data_encoding.list (dynamic_size Operation.encoding))) + (Data_encoding.list + (dynamic_size Operation.encoding_with_legacy_attestation_name))) (function | Prequorum_reached (candidate, ops) -> Some ((), candidate, List.map Operation.pack ops) @@ -429,7 +436,8 @@ let event_encoding = (tup3 (constant "Quorum_reached") Operation_worker.candidate_encoding - (Data_encoding.list (dynamic_size Operation.encoding))) + (Data_encoding.list + (dynamic_size Operation.encoding_with_legacy_attestation_name))) (function | Quorum_reached (candidate, ops) -> Some ((), candidate, List.map Operation.pack ops) diff --git a/src/proto_alpha/lib_delegate/block_forge.ml b/src/proto_alpha/lib_delegate/block_forge.ml index 01a06159e467..21b6f69116d7 100644 --- a/src/proto_alpha/lib_delegate/block_forge.ml +++ b/src/proto_alpha/lib_delegate/block_forge.ml @@ -65,7 +65,8 @@ let convert_operation (op : packed_operation) : Tezos_base.Operation.t = shell = op.shell; proto = Data_encoding.Binary.to_bytes_exn - Alpha_context.Operation.protocol_data_encoding + Alpha_context.Operation + .protocol_data_encoding_with_legacy_attestation_name op.protocol_data; } diff --git a/src/proto_alpha/lib_delegate/node_rpc.ml b/src/proto_alpha/lib_delegate/node_rpc.ml index c4970bb28fe1..691b966033e0 100644 --- a/src/proto_alpha/lib_delegate/node_rpc.ml +++ b/src/proto_alpha/lib_delegate/node_rpc.ml @@ -44,7 +44,9 @@ let inject_block cctxt ?(force = false) ~chain signed_block_header operations = let inject_operation cctxt ~chain operation = let encoded_op = - Data_encoding.Binary.to_bytes_exn Operation.encoding operation + Data_encoding.Binary.to_bytes_exn + Operation.encoding_with_legacy_attestation_name + operation in Shell_services.Injection.operation cctxt ~async:true ~chain encoded_op @@ -155,7 +157,7 @@ let compute_block_info cctxt ~in_protocol ?operations ~chain block_hash let parse_op (raw_op : Tezos_base.Operation.t) = let protocol_data = Data_encoding.Binary.of_bytes_exn - Operation.protocol_data_encoding + Operation.protocol_data_encoding_with_legacy_attestation_name raw_op.proto in {shell = raw_op.shell; protocol_data} diff --git a/src/proto_alpha/lib_delegate/operation_pool.ml b/src/proto_alpha/lib_delegate/operation_pool.ml index a654562fcb43..71a5035c41c4 100644 --- a/src/proto_alpha/lib_delegate/operation_pool.ml +++ b/src/proto_alpha/lib_delegate/operation_pool.ml @@ -97,10 +97,18 @@ let ordered_pool_encoding = (fun (consensus, votes, anonymous, managers) -> {consensus; votes; anonymous; managers}) (obj4 - (req "ordered_consensus" (list (dynamic_size Operation.encoding))) - (req "ordered_votes" (list (dynamic_size Operation.encoding))) - (req "ordered_anonymouns" (list (dynamic_size Operation.encoding))) - (req "ordered_managers" (list (dynamic_size Operation.encoding)))) + (req + "ordered_consensus" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "ordered_votes" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "ordered_anonymouns" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "ordered_managers" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name)))) type payload = { votes_payload : packed_operation list; @@ -119,9 +127,15 @@ let payload_encoding = (fun (votes_payload, anonymous_payload, managers_payload) -> {votes_payload; anonymous_payload; managers_payload}) (obj3 - (req "votes_payload" (list (dynamic_size Operation.encoding))) - (req "anonymous_payload" (list (dynamic_size Operation.encoding))) - (req "managers_payload" (list (dynamic_size Operation.encoding)))) + (req + "votes_payload" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "anonymous_payload" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name))) + (req + "managers_payload" + (list (dynamic_size Operation.encoding_with_legacy_attestation_name)))) let pp_payload fmt {votes_payload; anonymous_payload; managers_payload} = Format.fprintf diff --git a/src/proto_alpha/lib_delegate/operation_selection.ml b/src/proto_alpha/lib_delegate/operation_selection.ml index cc33ddbfca71..eeccc66e1f5c 100644 --- a/src/proto_alpha/lib_delegate/operation_selection.ml +++ b/src/proto_alpha/lib_delegate/operation_selection.ml @@ -106,7 +106,11 @@ let prioritize_manager ~max_size ~hard_gas_limit_per_block ~minimal_fees | Ok (Some source, Some counter, fee, gas) -> if Tez.(fee < minimal_fees) then None else - let size = Data_encoding.Binary.length Operation.encoding op in + let size = + Data_encoding.Binary.length + Operation.encoding_with_legacy_attestation_name + op + in let size_f = Q.of_int size in let gas_f = Q.of_bigint (Gas.Arith.integral_to_z gas) in let fee_f = Q.of_int64 (Tez.to_mutez fee) in @@ -197,7 +201,9 @@ let filter_valid_operations_up_to_quota inc (ops, quota) = List.fold_left_s (fun (inc, curr_size, nb_ops, acc) op -> let op_size = - Data_encoding.Binary.length Alpha_context.Operation.encoding op + Data_encoding.Binary.length + Alpha_context.Operation.encoding_with_legacy_attestation_name + op in let new_size = curr_size + op_size in if new_size > max_size then Lwt.return (inc, curr_size, nb_ops, acc) @@ -283,7 +289,9 @@ let filter_valid_operations_up_to_quota_without_simulation (ops, quota) = List.fold_left (fun (curr_size, nb_ops, acc) op -> let op_size = - Data_encoding.Binary.length Alpha_context.Operation.encoding op + Data_encoding.Binary.length + Alpha_context.Operation.encoding_with_legacy_attestation_name + op in let new_size = curr_size + op_size in if new_size > max_size then (curr_size, nb_ops, acc) diff --git a/src/proto_alpha/lib_plugin/RPC.ml b/src/proto_alpha/lib_plugin/RPC.ml index f1e0049511e6..4869459ded9f 100644 --- a/src/proto_alpha/lib_plugin/RPC.ml +++ b/src/proto_alpha/lib_plugin/RPC.ml @@ -36,7 +36,9 @@ let default_operation_inclusion_latency = 3 let parse_operation (op : Operation.raw) = match - Data_encoding.Binary.of_bytes_opt Operation.protocol_data_encoding op.proto + Data_encoding.Binary.of_bytes_opt + Operation.protocol_data_encoding_with_legacy_attestation_name + op.proto with | Some protocol_data -> ok {shell = op.shell; protocol_data} | None -> error Plugin_errors.Cannot_parse_operation @@ -426,7 +428,7 @@ module Scripts = struct ~query:RPC_query.empty ~input: (obj2 - (req "operation" Operation.encoding) + (req "operation" Operation.encoding_with_legacy_attestation_name) (req "chain_id" Chain_id.encoding)) ~output:Apply_results.operation_data_and_metadata_encoding RPC_path.(path / "run_operation") @@ -459,7 +461,7 @@ module Scripts = struct ~input: (obj4 (opt "blocks_before_activation" int32) - (req "operation" Operation.encoding) + (req "operation" Operation.encoding_with_legacy_attestation_name) (req "chain_id" Chain_id.encoding) (dft "latency" int16 default_operation_inclusion_latency)) ~output:Apply_results.operation_data_and_metadata_encoding @@ -2643,7 +2645,7 @@ module Forge = struct RPC_service.post_service ~description:"Forge an operation" ~query:RPC_query.empty - ~input:Operation.unsigned_encoding + ~input:Operation.unsigned_encoding_with_legacy_attestation_name ~output:(bytes Hex) RPC_path.(path / "operations") @@ -2681,7 +2683,7 @@ module Forge = struct (fun () (shell, proto) -> return (Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name (shell, proto))) ; Registration.register0_noctxt ~chunked:true @@ -2866,7 +2868,8 @@ module Parse = struct (obj2 (req "operations" (list (dynamic_size Operation.raw_encoding))) (opt "check_signature" bool)) - ~output:(list (dynamic_size Operation.encoding)) + ~output: + (list (dynamic_size Operation.encoding_with_legacy_attestation_name)) RPC_path.(path / "operations") let block = diff --git a/src/proto_alpha/lib_plugin/mempool.ml b/src/proto_alpha/lib_plugin/mempool.ml index bdec72bfb938..7347f2b19750 100644 --- a/src/proto_alpha/lib_plugin/mempool.ml +++ b/src/proto_alpha/lib_plugin/mempool.ml @@ -471,7 +471,9 @@ let size_of_operation op = (WithExceptions.Option.get ~loc:__LOC__ @@ Data_encoding.Binary.fixed_length Tezos_base.Operation.shell_header_encoding) - + Data_encoding.Binary.length Operation.protocol_data_encoding op + + Data_encoding.Binary.length + Operation.protocol_data_encoding_with_legacy_attestation_name + op (** Returns the weight and resources consumption of an operation. The weight corresponds to the one implemented by the baker, to decide which operations diff --git a/src/proto_alpha/lib_protocol/apply_results.ml b/src/proto_alpha/lib_protocol/apply_results.ml index bc1f57ea9dbe..9778fad1feb8 100644 --- a/src/proto_alpha/lib_protocol/apply_results.ml +++ b/src/proto_alpha/lib_protocol/apply_results.ml @@ -2471,7 +2471,11 @@ let operation_data_and_metadata_encoding = (Tag 1) ~title:"Operation_without_metadata" (obj2 - (req "contents" (dynamic_size Operation.contents_list_encoding)) + (req + "contents" + (dynamic_size + Operation + .contents_list_encoding_with_legacy_attestation_name)) (opt "signature" Signature.encoding)) (function | Operation_data op, No_operation_metadata -> diff --git a/src/proto_alpha/lib_protocol/main.ml b/src/proto_alpha/lib_protocol/main.ml index 1dcb83bd372d..2f3466008229 100644 --- a/src/proto_alpha/lib_protocol/main.ml +++ b/src/proto_alpha/lib_protocol/main.ml @@ -44,7 +44,8 @@ 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 +let operation_data_encoding = + Alpha_context.Operation.protocol_data_encoding_with_legacy_attestation_name type operation_receipt = Apply_results.packed_operation_metadata = | Operation_metadata : diff --git a/src/proto_alpha/lib_protocol/mempool_validation.ml b/src/proto_alpha/lib_protocol/mempool_validation.ml index e400de8a42bc..1e5e3bfe6c4b 100644 --- a/src/proto_alpha/lib_protocol/mempool_validation.ml +++ b/src/proto_alpha/lib_protocol/mempool_validation.ml @@ -62,7 +62,9 @@ let encoding : t Data_encoding.t = (req "operations" (Operation_hash.Map.encoding - (dynamic_size ~kind:`Uint30 Operation.encoding))) + (dynamic_size + ~kind:`Uint30 + Operation.encoding_with_legacy_attestation_name))) let init ctxt chain_id ~predecessor_level ~predecessor_round ~predecessor_hash : validation_info * t = diff --git a/src/proto_alpha/lib_protocol/test/helpers/block.ml b/src/proto_alpha/lib_protocol/test/helpers/block.ml index 47812d99a6d0..85504f6a9834 100644 --- a/src/proto_alpha/lib_protocol/test/helpers/block.ml +++ b/src/proto_alpha/lib_protocol/test/helpers/block.ml @@ -776,7 +776,9 @@ let apply_with_metadata ?(policy = By_round 0) ?(check_size = true) ~baking_mode (fun vstate op -> (if check_size then let operation_size = - Data_encoding.Binary.length Operation.encoding op + Data_encoding.Binary.length + Operation.encoding_with_legacy_attestation_name + op in if operation_size > Constants_repr.max_operation_data_length then raise diff --git a/src/proto_alpha/lib_protocol/test/helpers/incremental.ml b/src/proto_alpha/lib_protocol/test/helpers/incremental.ml index 413386c3214a..08b512e6834d 100644 --- a/src/proto_alpha/lib_protocol/test/helpers/incremental.ml +++ b/src/proto_alpha/lib_protocol/test/helpers/incremental.ml @@ -167,7 +167,11 @@ let detect_script_failure : let check_operation_size ?(check_size = true) op = if check_size then - let operation_size = Data_encoding.Binary.length Operation.encoding op in + let operation_size = + Data_encoding.Binary.length + Operation.encoding_with_legacy_attestation_name + op + in if operation_size > Constants_repr.max_operation_data_length then raise (invalid_arg diff --git a/src/proto_alpha/lib_protocol/test/helpers/op.ml b/src/proto_alpha/lib_protocol/test/helpers/op.ml index e57b68457d9b..52a27fac4d63 100644 --- a/src/proto_alpha/lib_protocol/test/helpers/op.ml +++ b/src/proto_alpha/lib_protocol/test/helpers/op.ml @@ -34,7 +34,7 @@ let pack_operation ctxt signature contents = let sign ?(watermark = Signature.Generic_operation) sk branch contents = let unsigned = Data_encoding.Binary.to_bytes_exn - Operation.unsigned_encoding + Operation.unsigned_encoding_with_legacy_attestation_name ({branch}, Contents_list contents) in let signature = Some (Signature.sign ~watermark sk unsigned) in diff --git a/src/proto_alpha/lib_protocol/test/unit/test_operation_repr.ml b/src/proto_alpha/lib_protocol/test/unit/test_operation_repr.ml index 4ae7d506ff3a..f2bf85c6de34 100644 --- a/src/proto_alpha/lib_protocol/test/unit/test_operation_repr.ml +++ b/src/proto_alpha/lib_protocol/test/unit/test_operation_repr.ml @@ -105,7 +105,7 @@ module Test_operation_repr = struct let test_split_signatures error assemble = let op_bytes = Data_encoding.Binary.to_bytes_exn - Operation_repr.contents_encoding + Operation_repr.contents_encoding_with_legacy_attestation_name (Contents (Failing_noop "")) in let prefix, suffix = zero_bls in @@ -114,7 +114,7 @@ module Test_operation_repr = struct in match Data_encoding.Binary.of_bytes - Operation_repr.protocol_data_encoding + Operation_repr.protocol_data_encoding_with_legacy_attestation_name protocol_data_bytes with | Ok _ -> failwith "Should have failed with %s" error diff --git a/src/proto_alpha/lib_sc_rollup_node/configuration.ml b/src/proto_alpha/lib_sc_rollup_node/configuration.ml index bade3f04e229..90ea2170c7cf 100644 --- a/src/proto_alpha/lib_sc_rollup_node/configuration.ml +++ b/src/proto_alpha/lib_sc_rollup_node/configuration.ml @@ -208,7 +208,7 @@ let protocol_max_batch_size = in Protocol.Constants_repr.max_operation_data_length - Data_encoding.Binary.length - Operation.encoding + Operation.encoding_with_legacy_attestation_name (Operation.pack empty_message_op) let default_batcher_max_batch_size = protocol_max_batch_size diff --git a/src/proto_alpha/lib_sc_rollup_node/injector.ml b/src/proto_alpha/lib_sc_rollup_node/injector.ml index bc0d0cf333a8..9616f6191405 100644 --- a/src/proto_alpha/lib_sc_rollup_node/injector.ml +++ b/src/proto_alpha/lib_sc_rollup_node/injector.ml @@ -165,7 +165,9 @@ module Proto_client = struct storage_limit = Z.zero; } in - Data_encoding.Binary.length Operation.contents_encoding (Contents contents) + Data_encoding.Binary.length + Operation.contents_encoding_with_legacy_attestation_name + (Contents contents) let operation_size op = manager_operation_size (L1_operation.to_manager_operation op) @@ -196,7 +198,7 @@ module Proto_client = struct in let dummy_size = Data_encoding.Binary.length - Operation.contents_encoding + Operation.contents_encoding_with_legacy_attestation_name (Contents dummy_contents) in dummy_size - manager_operation_size (Manager dummy_operation) @@ -394,7 +396,9 @@ module Proto_client = struct ((shell, Contents_list contents) as unsigned_op) = let open Lwt_result_syntax in let unsigned_bytes = - Data_encoding.Binary.to_bytes_exn Operation.unsigned_encoding unsigned_op + Data_encoding.Binary.to_bytes_exn + Operation.unsigned_encoding_with_legacy_attestation_name + unsigned_op in let cctxt = new Protocol_client_context.wrap_full (cctxt :> Client_context.full) @@ -412,7 +416,9 @@ module Proto_client = struct protocol_data = Operation_data {contents; signature = Some signature}; } in - Data_encoding.Binary.to_bytes_exn Operation.encoding op + Data_encoding.Binary.to_bytes_exn + Operation.encoding_with_legacy_attestation_name + op let time_until_next_block (node_ctxt : Node_context.ro) (header : Tezos_base.Block_header.shell_header option) = -- GitLab From 280262b9376f8302afc6b0cd2a95e7c6c6e55f45 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 26 Apr 2023 13:57:07 +0200 Subject: [PATCH 03/10] proto_alpha: introduce attestation encodings in the non legacy operations encodings --- .../lib_protocol/operation_repr.ml | 132 +++++++++++++++++- .../lib_protocol/operation_repr.mli | 8 ++ 2 files changed, 134 insertions(+), 6 deletions(-) diff --git a/src/proto_alpha/lib_protocol/operation_repr.ml b/src/proto_alpha/lib_protocol/operation_repr.ml index 274fabe7a354..7d89955b1199 100644 --- a/src/proto_alpha/lib_protocol/operation_repr.ml +++ b/src/proto_alpha/lib_protocol/operation_repr.ml @@ -1043,6 +1043,18 @@ module Encoding = struct inj = (fun preendorsement -> Preendorsement preendorsement); } + let preattestation_case = + Case + { + tag = 20; + name = "preattestation"; + encoding = consensus_content_encoding; + select = + (function Contents (Preendorsement _ as op) -> Some op | _ -> None); + proj = (fun (Preendorsement preendorsement) -> preendorsement); + inj = (fun preendorsement -> Preendorsement preendorsement); + } + let preendorsement_encoding = let make (Case {tag; name; encoding; select = _; proj; inj}) = case (Tag tag) name encoding (fun o -> Some (proj o)) (fun x -> inj x) @@ -1069,6 +1081,32 @@ module Encoding = struct @@ union [make preendorsement_case])) (varopt "signature" Signature.encoding))) + let preattestation_encoding = + let make (Case {tag; name; encoding; select = _; proj; inj}) = + case (Tag tag) name encoding (fun o -> Some (proj o)) (fun x -> inj x) + in + let to_list : Kind.preendorsement contents_list -> _ = function + | Single o -> o + in + let of_list : Kind.preendorsement contents -> _ = function + | o -> Single o + in + def "inlined.preattestation" + @@ conv + (fun ({shell; protocol_data = {contents; signature}} : _ operation) -> + (shell, (contents, signature))) + (fun (shell, (contents, signature)) : _ operation -> + {shell; protocol_data = {contents; signature}}) + (merge_objs + Operation.shell_header_encoding + (obj2 + (req + "operations" + (conv to_list of_list + @@ def "inlined.preattestation.contents" + @@ union [make preattestation_case])) + (varopt "signature" Signature.encoding))) + let endorsement_encoding = obj4 (req "slot" Slot_repr.encoding) @@ -1095,6 +1133,25 @@ module Encoding = struct Endorsement {slot; level; round; block_payload_hash}); } + let attestation_case = + Case + { + tag = 21; + name = "attestation"; + encoding = endorsement_encoding; + select = + (function Contents (Endorsement _ as op) -> Some op | _ -> None); + proj = + (fun (Endorsement consensus_content) -> + ( consensus_content.slot, + consensus_content.level, + consensus_content.round, + consensus_content.block_payload_hash )); + inj = + (fun (slot, level, round, block_payload_hash) -> + Endorsement {slot; level; round; block_payload_hash}); + } + let endorsement_encoding = let make (Case {tag; name; encoding; select = _; proj; inj}) = case (Tag tag) name encoding (fun o -> Some (proj o)) (fun x -> inj x) @@ -1117,6 +1174,28 @@ module Encoding = struct @@ union [make endorsement_case])) (varopt "signature" Signature.encoding))) + let attestation_encoding = + let make (Case {tag; name; encoding; select = _; proj; inj}) = + case (Tag tag) name encoding (fun o -> Some (proj o)) (fun x -> inj x) + in + let to_list : Kind.endorsement contents_list -> _ = fun (Single o) -> o in + let of_list : Kind.endorsement contents -> _ = fun o -> Single o in + def "inlined.attestation" + @@ conv + (fun ({shell; protocol_data = {contents; signature}} : _ operation) -> + (shell, (contents, signature))) + (fun (shell, (contents, signature)) : _ operation -> + {shell; protocol_data = {contents; signature}}) + (merge_objs + Operation.shell_header_encoding + (obj2 + (req + "operations" + (conv to_list of_list + @@ def "inlined.attestation_mempool.contents" + @@ union [make attestation_case])) + (varopt "signature" Signature.encoding))) + let dal_attestation_encoding = obj3 (req "attestor" Signature.Public_key_hash.encoding) @@ -1186,6 +1265,24 @@ module Encoding = struct inj = (fun (op1, op2) -> Double_preendorsement_evidence {op1; op2}); } + let double_preattestation_evidence_case : + Kind.double_preendorsement_evidence case = + Case + { + tag = 7; + name = "double_preattestation_evidence"; + encoding = + obj2 + (req "op1" (dynamic_size preattestation_encoding)) + (req "op2" (dynamic_size preattestation_encoding)); + select = + (function + | Contents (Double_preendorsement_evidence _ as op) -> Some op + | _ -> None); + proj = (fun (Double_preendorsement_evidence {op1; op2}) -> (op1, op2)); + inj = (fun (op1, op2) -> Double_preendorsement_evidence {op1; op2}); + } + let double_endorsement_evidence_case : Kind.double_endorsement_evidence case = Case { @@ -1203,6 +1300,23 @@ module Encoding = struct inj = (fun (op1, op2) -> Double_endorsement_evidence {op1; op2}); } + let double_attestation_evidence_case : Kind.double_endorsement_evidence case = + Case + { + tag = 2; + name = "double_attestation_evidence"; + encoding = + obj2 + (req "op1" (dynamic_size attestation_encoding)) + (req "op2" (dynamic_size attestation_encoding)); + select = + (function + | Contents (Double_endorsement_evidence _ as op) -> Some op + | _ -> None); + proj = (fun (Double_endorsement_evidence {op1; op2}) -> (op1, op2)); + inj = (fun (op1, op2) -> Double_endorsement_evidence {op1; op2}); + } + let double_baking_evidence_case = Case { @@ -1443,15 +1557,11 @@ module Encoding = struct type packed_case = PCase : 'b case -> packed_case - let contents_cases = + let common_cases = [ - PCase endorsement_case; - PCase preendorsement_case; PCase dal_attestation_case; PCase seed_nonce_revelation_case; PCase vdf_revelation_case; - PCase double_endorsement_evidence_case; - PCase double_preendorsement_evidence_case; PCase double_baking_evidence_case; PCase activate_account_case; PCase proposals_case; @@ -1481,6 +1591,16 @@ module Encoding = struct PCase zk_rollup_update_case; ] + let contents_cases = + PCase preattestation_case :: PCase attestation_case + :: PCase double_preattestation_evidence_case + :: PCase double_attestation_evidence_case :: common_cases + + let contents_cases_with_legacy_attestation_name = + PCase preendorsement_case :: PCase endorsement_case + :: PCase double_preendorsement_evidence_case + :: PCase double_endorsement_evidence_case :: common_cases + let contents_encoding = let make (PCase (Case {tag; name; encoding; select; proj; inj})) = assert (not @@ reserved_tag tag) ; @@ -1504,7 +1624,7 @@ module Encoding = struct (fun x -> Contents (inj x)) in def "operation_with_legacy_attestation_name.alpha.contents" - @@ union (List.map make contents_cases) + @@ union (List.map make contents_cases_with_legacy_attestation_name) let contents_list_encoding = conv_with_guard to_list of_list_internal (Variable.list contents_encoding) diff --git a/src/proto_alpha/lib_protocol/operation_repr.mli b/src/proto_alpha/lib_protocol/operation_repr.mli index 68aaca084427..370f4a115f21 100644 --- a/src/proto_alpha/lib_protocol/operation_repr.mli +++ b/src/proto_alpha/lib_protocol/operation_repr.mli @@ -530,6 +530,14 @@ val manager_kind : 'kind manager_operation -> 'kind Kind.manager val encoding : packed_operation Data_encoding.t +(** Operation encoding that accepts legacy attestation name : `endorsement` + (and preendorsement, double__evidence) in JSON + + https://gitlab.com/tezos/tezos/-/issues/5529 + + This encoding is temporary and should be removed when the endorsements kinds + in JSON will not be accepted any more by the protocol. +*) val encoding_with_legacy_attestation_name : packed_operation Data_encoding.t val contents_encoding : packed_contents Data_encoding.t -- GitLab From fceb0824d3451d48f1f775bf497e3a30495e15ee Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 26 Apr 2023 13:58:17 +0200 Subject: [PATCH 04/10] proto_alpha/lib_client: add operation_with_attestation encodings using non legacy operation encoding --- .../lib_client/protocol_client_context.ml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/proto_alpha/lib_client/protocol_client_context.ml b/src/proto_alpha/lib_client/protocol_client_context.ml index 21033dc86eae..39ee751dd194 100644 --- a/src/proto_alpha/lib_client/protocol_client_context.ml +++ b/src/proto_alpha/lib_client/protocol_client_context.ml @@ -178,6 +178,14 @@ let () = "operation" [] Protocol.Alpha_context.Operation.encoding_with_legacy_attestation_name ; + (* https://gitlab.com/tezos/tezos/-/issues/5528 + We register legacy encoding, but only during the transition period until + the endorsement kind will be completely removed. *) + register + @@ def + "operation_with_attestation" + [] + Protocol.Alpha_context.Operation.encoding ; register @@ def "operation" @@ -209,6 +217,14 @@ let () = ["unsigned"] Protocol.Alpha_context.Operation .unsigned_encoding_with_legacy_attestation_name ; + (* https://gitlab.com/tezos/tezos/-/issues/5528 + We register legacy encoding, but only during the transition period until + the endorsement kind will be completely removed. *) + register + @@ def + "operation_with_attestation" + ["unsigned"] + Protocol.Alpha_context.Operation.unsigned_encoding ; register ~pp:Protocol.Alpha_context.Period.pp @@ def "period" [] Protocol.Alpha_context.Period.encoding ; register ~pp:Protocol.Alpha_context.Cycle.pp -- GitLab From 72d11b98fe87db5d1132612f1d00fd750b9894b8 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 26 Apr 2023 17:51:27 +0200 Subject: [PATCH 05/10] proto_alpha: test both encoding and legacy_encoding of operations --- .../test/pbt/test_operation_encoding.ml | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/proto_alpha/lib_protocol/test/pbt/test_operation_encoding.ml b/src/proto_alpha/lib_protocol/test/pbt/test_operation_encoding.ml index b08de8c3ded9..dcd48ac2cb03 100644 --- a/src/proto_alpha/lib_protocol/test/pbt/test_operation_encoding.ml +++ b/src/proto_alpha/lib_protocol/test/pbt/test_operation_encoding.ml @@ -43,7 +43,7 @@ let generate_operation = (** {2 Tests} *) -let test_operation = +let test_operation encoding = let open Alpha_context in let gen = generate_operation in let eq {shell = s1; protocol_data = Operation_data d1} @@ -52,16 +52,20 @@ let test_operation = let o2 : _ Operation.t = {shell = s2; protocol_data = d2} in match Operation.equal o1 o2 with None -> false | Some Eq -> true in - test_roundtrip - ~count:2000 - ~title:"Operation.t" - ~gen - ~eq - Alpha_context.Operation.encoding + test_roundtrip ~count:2000 ~title:"Operation.t" ~gen ~eq encoding let () = let qcheck_wrap = qcheck_wrap ~rand:(Random.State.make_self_init ()) in Alcotest.run ~__FILE__ (Protocol.name ^ ": Operation_encoding") - [(": roundtrip", qcheck_wrap [test_operation])] + [ + ( "roundtrip", + qcheck_wrap [test_operation Alpha_context.Operation.encoding] ); + ( "legacy : roundtrip", + qcheck_wrap + [ + test_operation + Alpha_context.Operation.encoding_with_legacy_attestation_name; + ] ); + ] -- GitLab From 0e560aa1630c0f4b373ca6973e6eb8512d3b3c18 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 25 Apr 2023 16:16:04 +0200 Subject: [PATCH 06/10] tezt/tests: add preendorsement operations sample to the encoding tests and remove endorsement_with_slot file --- ...double-preendorsement-evidence.sample.json | 30 +++++++ ...ration.unsigned-preendorsement.sample.json | 12 +++ ...double-preendorsement-evidence.sample.json | 31 ++++++++ ...n => operation-preendorsement.sample.json} | 2 +- ...ol encoding regression test- operation.out | 78 ++++++++++++++++--- ...ng regression test- operation.unsigned.out | 76 ++++++++++++++++++ 6 files changed, 218 insertions(+), 11 deletions(-) create mode 100644 tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-double-preendorsement-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-preendorsement.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation/operation-double-preendorsement-evidence.sample.json rename tezt/tests/encoding_samples/alpha/operation/{operation-endorsement-with-slot.sample.json => operation-preendorsement.sample.json} (91%) diff --git a/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-double-preendorsement-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-double-preendorsement-evidence.sample.json new file mode 100644 index 000000000000..bf3abad61863 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-double-preendorsement-evidence.sample.json @@ -0,0 +1,30 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preendorsement_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-preendorsement.sample.json b/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-preendorsement.sample.json new file mode 100644 index 000000000000..3cf96e2b0325 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation.unsigned/operation.unsigned-preendorsement.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation/operation-double-preendorsement-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation/operation-double-preendorsement-evidence.sample.json new file mode 100644 index 000000000000..ad947afaa61a --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation/operation-double-preendorsement-evidence.sample.json @@ -0,0 +1,31 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preendorsement_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation/operation-endorsement-with-slot.sample.json b/tezt/tests/encoding_samples/alpha/operation/operation-preendorsement.sample.json similarity index 91% rename from tezt/tests/encoding_samples/alpha/operation/operation-endorsement-with-slot.sample.json rename to tezt/tests/encoding_samples/alpha/operation/operation-preendorsement.sample.json index d948f617b95f..12cb8aeca006 100644 --- a/tezt/tests/encoding_samples/alpha/operation/operation-endorsement-with-slot.sample.json +++ b/tezt/tests/encoding_samples/alpha/operation/operation-preendorsement.sample.json @@ -2,7 +2,7 @@ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ { - "kind": "endorsement", + "kind": "preendorsement", "level": 1331, "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", "round": 0, diff --git a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.out b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.out index e17494ab27c5..fe55ffd3f87c 100644 --- a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.out +++ b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.out @@ -244,23 +244,57 @@ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ { - "kind": "endorsement", - "level": 1331, - "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", - "round": 0, - "slot": 0 + "kind": "double_preendorsement_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } } ], "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }' -0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c -./octez-codec decode alpha.operation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +./octez-codec decode alpha.operation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": - [ { "kind": "endorsement", "slot": 0, "level": 1331, "round": 0, - "block_payload_hash": - "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ], + [ { "kind": "double_preendorsement_evidence", + "op1": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preendorsement", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "op2": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preendorsement", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ], "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } @@ -384,6 +418,30 @@ "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } +./octez-codec encode alpha.operation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "preendorsement", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + ./octez-codec encode alpha.operation from '{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ diff --git a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.unsigned.out b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.unsigned.out index 7698a6aaba19..b86292d4e791 100644 --- a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.unsigned.out +++ b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.unsigned.out @@ -222,6 +222,61 @@ "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ] } +./octez-codec encode alpha.operation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preendorsement_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_preendorsement_evidence", + "op1": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preendorsement", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "op2": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preendorsement", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ] } + ./octez-codec encode alpha.operation.unsigned from '{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ @@ -336,6 +391,27 @@ { "prim": "PAIR" } ] ] } ], "storage": [ { "string": "test" } ] } } ] } +./octez-codec encode alpha.operation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preendorsement", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a814000000000533000000000000000000000000000000000000000000000000000000000000000000000000 + +./octez-codec decode alpha.operation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a814000000000533000000000000000000000000000000000000000000000000000000000000000000000000 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "preendorsement", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ] } + ./octez-codec encode alpha.operation.unsigned from '{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ -- GitLab From aacce8a89daf8edad1f3b6053d2672478b94cf05 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Tue, 25 Apr 2023 16:16:54 +0200 Subject: [PATCH 07/10] tezt/tests: add encoding tests for operation_with_attestation encoding --- tezt/tests/encoding.ml | 6 + ...tion.unsigned-activate-account.sample.json | 8 + ...operation.unsigned-attestation.sample.json | 12 + .../operation.unsigned-ballot.sample.json | 10 + ...unsigned-delegation-withdrawal.sample.json | 11 + .../operation.unsigned-delegation.sample.json | 12 + ...ed-double-attestation-evidence.sample.json | 30 + ...nsigned-double-baking-evidence.sample.json | 44 ++ ...double-preattestation-evidence.sample.json | 30 + ...operation.unsigned-origination.sample.json | 54 ++ ...ration.unsigned-preaatestation.sample.json | 12 + .../operation.unsigned-proposals.sample.json | 11 + .../operation.unsigned-reveal.sample.json | 12 + ...unsigned-seed-nonce-revelation.sample.json | 8 + ...signed-transaction-to-implicit.sample.json | 13 + ...gned-transaction-to-originated.sample.json | 19 + .../operation-activate-account.sample.json | 9 + .../operation-attestation.sample.json | 13 + .../operation-ballot.sample.json | 11 + ...peration-delegation-withdrawal.sample.json | 12 + .../operation-delegation.sample.json | 13 + ...on-double-attestation-evidence.sample.json | 13 + ...eration-double-baking-evidence.sample.json | 37 ++ ...double-preattestation-evidence.sample.json | 31 + .../operation-origination.sample.json | 55 ++ .../operation-preattestation.sample.json | 13 + .../operation-proposals.sample.json | 12 + .../operation-reveal.sample.json | 13 + ...peration-seed-nonce-revelation.sample.json | 9 + ...ration-transaction-to-implicit.sample.json | 14 + ...tion-transaction-to-originated.sample.json | 20 + ...ssion test- operation_with_attestation.out | 557 ++++++++++++++++++ ...t- operation_with_attestation.unsigned.out | 544 +++++++++++++++++ 33 files changed, 1668 insertions(+) create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-activate-account.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-attestation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-ballot.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation-withdrawal.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-attestation-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-baking-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-preattestation-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-origination.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-preaatestation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-proposals.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-reveal.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-seed-nonce-revelation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-implicit.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-originated.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-activate-account.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-ballot.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation-withdrawal.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-attestation-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-baking-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-preattestation-evidence.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-origination.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-preattestation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-proposals.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-reveal.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-seed-nonce-revelation.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-implicit.sample.json create mode 100644 tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-originated.sample.json create mode 100644 tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.out create mode 100644 tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.unsigned.out diff --git a/tezt/tests/encoding.ml b/tezt/tests/encoding.ml index 2a5db8b16322..85f179c8b923 100644 --- a/tezt/tests/encoding.ml +++ b/tezt/tests/encoding.ml @@ -119,8 +119,14 @@ let check_samples protocols = protocol_sample "nonce" ; protocol_sample "operation.internal" ; protocol_sample "operation" ; + protocol_sample + ~supports:Protocol.(From_protocol 18) + "operation_with_attestation" ; protocol_sample "operation.raw" ; protocol_sample "operation.unsigned" ; + protocol_sample + ~supports:Protocol.(From_protocol 18) + "operation_with_attestation.unsigned" ; protocol_sample "period" ; protocol_sample "raw_level" ; protocol_sample "seed" ; diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-activate-account.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-activate-account.sample.json new file mode 100644 index 000000000000..6e0f40dd83fc --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-activate-account.sample.json @@ -0,0 +1,8 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-attestation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-attestation.sample.json new file mode 100644 index 000000000000..b28f47358ec6 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-attestation.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-ballot.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-ballot.sample.json new file mode 100644 index 000000000000..c272cedc4f20 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-ballot.sample.json @@ -0,0 +1,10 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "ballot", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation-withdrawal.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation-withdrawal.sample.json new file mode 100644 index 000000000000..5e3eaa739a99 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation-withdrawal.sample.json @@ -0,0 +1,11 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation.sample.json new file mode 100644 index 000000000000..401bed1ed6a2 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-delegation.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-attestation-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-attestation-evidence.sample.json new file mode 100644 index 000000000000..884957c25aed --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-attestation-evidence.sample.json @@ -0,0 +1,30 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_attestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-baking-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-baking-evidence.sample.json new file mode 100644 index 000000000000..8eed2982138e --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-baking-evidence.sample.json @@ -0,0 +1,44 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_baking_evidence", + "bh1": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round":0 + }, + "bh2": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round":0 + } + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-preattestation-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-preattestation-evidence.sample.json new file mode 100644 index 000000000000..8aa1305a50e3 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-double-preattestation-evidence.sample.json @@ -0,0 +1,30 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preattestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-origination.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-origination.sample.json new file mode 100644 index 000000000000..e3937027e89c --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-origination.sample.json @@ -0,0 +1,54 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": { + "code": [{ + "prim": "parameter", + "args": [{ + "prim": "string" + }] + }, + { + "prim": "storage", + "args": [{ + "prim": "option", + "args": [{ + "prim": "string" + }] + }] + }, + { + "prim": "code", + "args": [ + [{ + "prim": "CAR" + }, { + "prim": "SOME" + }, + { + "prim": "NIL", + "args": [{ + "prim": "operation" + }] + }, + { + "prim": "PAIR" + } + ] + ] + } + ], + "storage": [{ + "string": "test" + }] + } + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-preaatestation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-preaatestation.sample.json new file mode 100644 index 000000000000..e65a1f2095b9 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-preaatestation.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-proposals.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-proposals.sample.json new file mode 100644 index 000000000000..ee628b836024 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-proposals.sample.json @@ -0,0 +1,11 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposals": ["PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" + ] + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-reveal.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-reveal.sample.json new file mode 100644 index 000000000000..b2bd1b78e79f --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-reveal.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "reveal", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-seed-nonce-revelation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-seed-nonce-revelation.sample.json new file mode 100644 index 000000000000..3f5b02050587 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-seed-nonce-revelation.sample.json @@ -0,0 +1,8 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "seed_nonce_revelation", + "level": 1331, + "nonce": "0000000000000000000000000000000000000000000000000000000000000000" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-implicit.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-implicit.sample.json new file mode 100644 index 000000000000..6a22e4a8afa3 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-implicit.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-originated.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-originated.sample.json new file mode 100644 index 000000000000..d376b224eb7a --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation.unsigned/operation.unsigned-transaction-to-originated.sample.json @@ -0,0 +1,19 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": { + "entrypoint": "action", + "value": [{ + "prim": "UNIT" + }] + } + }] +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-activate-account.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-activate-account.sample.json new file mode 100644 index 000000000000..db9a00a60009 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-activate-account.sample.json @@ -0,0 +1,9 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json new file mode 100644 index 000000000000..fa6ebd461571 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-ballot.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-ballot.sample.json new file mode 100644 index 000000000000..e635a124295c --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-ballot.sample.json @@ -0,0 +1,11 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "ballot", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation-withdrawal.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation-withdrawal.sample.json new file mode 100644 index 000000000000..a0f728f65b07 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation-withdrawal.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation.sample.json new file mode 100644 index 000000000000..7b5149b953fa --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-delegation.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-attestation-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-attestation-evidence.sample.json new file mode 100644 index 000000000000..fa6ebd461571 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-attestation-evidence.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-baking-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-baking-evidence.sample.json new file mode 100644 index 000000000000..1c8f236c2dee --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-baking-evidence.sample.json @@ -0,0 +1,37 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "double_baking_evidence", + "bh1": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": ["01", "000000000000000a"], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round":0 + }, + "bh2": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": ["01", "000000000000000a"], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round":0 + } + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-preattestation-evidence.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-preattestation-evidence.sample.json new file mode 100644 index 000000000000..371a2d8e4e55 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-double-preattestation-evidence.sample.json @@ -0,0 +1,31 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preattestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-origination.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-origination.sample.json new file mode 100644 index 000000000000..1bb84ef5d469 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-origination.sample.json @@ -0,0 +1,55 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": { + "code": [{ + "prim": "parameter", + "args": [{ + "prim": "string" + }] + }, + { + "prim": "storage", + "args": [{ + "prim": "option", + "args": [{ + "prim": "string" + }] + }] + }, + { + "prim": "code", + "args": [ + [{ + "prim": "CAR" + }, { + "prim": "SOME" + }, + { + "prim": "NIL", + "args": [{ + "prim": "operation" + }] + }, + { + "prim": "PAIR" + } + ] + ] + } + ], + "storage": [{ + "string": "test" + }] + } + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-preattestation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-preattestation.sample.json new file mode 100644 index 000000000000..1911762a4437 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-preattestation.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-proposals.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-proposals.sample.json new file mode 100644 index 000000000000..a7f958de001d --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-proposals.sample.json @@ -0,0 +1,12 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposals": ["PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" + ] + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-reveal.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-reveal.sample.json new file mode 100644 index 000000000000..5e5c37e058f0 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-reveal.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "reveal", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-seed-nonce-revelation.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-seed-nonce-revelation.sample.json new file mode 100644 index 000000000000..19dd3b8d9cc1 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-seed-nonce-revelation.sample.json @@ -0,0 +1,9 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "seed_nonce_revelation", + "level": 1331, + "nonce": "0000000000000000000000000000000000000000000000000000000000000000" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-implicit.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-implicit.sample.json new file mode 100644 index 000000000000..a8385a84d26e --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-implicit.sample.json @@ -0,0 +1,14 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-originated.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-originated.sample.json new file mode 100644 index 000000000000..c9bf769a3eea --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-transaction-to-originated.sample.json @@ -0,0 +1,20 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [{ + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": { + "entrypoint": "action", + "value": [{ + "prim": "UNIT" + }] + } + }], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +} diff --git a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.out b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.out new file mode 100644 index 000000000000..cf0e30ff4387 --- /dev/null +++ b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.out @@ -0,0 +1,557 @@ + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a804c55cf02dbeecc978d9c84625dcae72bb77ea4fbd41f98b15efc63fa893d61d7d6eee4a2ce9427ac466804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a804c55cf02dbeecc978d9c84625dcae72bb77ea4fbd41f98b15efc63fa893d61d7d6eee4a2ce9427ac466804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "attestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "ballot", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8060002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c0066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8060002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c0066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "ballot", "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4010066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4010066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7866804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7866804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "attestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_baking_evidence", + "bh1": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0 + }, + "bh2": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0 + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a803000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a803000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_baking_evidence", + "bh1": + { "level": 1331, "proto": 1, + "predecessor": + "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", "validation_pass": 4, + "operations_hash": + "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ "01", "000000000000000a" ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0, "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "bh2": + { "level": 1331, "proto": 1, + "predecessor": + "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", "validation_pass": 4, + "operations_hash": + "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ "01", "000000000000000a" ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0, "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preattestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_preattestation_evidence", + "op1": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preattestation", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "op2": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preattestation", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": { + "code": [ + { + "prim": "parameter", + "args": [ + { + "prim": "string" + } + ] + }, + { + "prim": "storage", + "args": [ + { + "prim": "option", + "args": [ + { + "prim": "string" + } + ] + } + ] + }, + { + "prim": "code", + "args": [ + [ + { + "prim": "CAR" + }, + { + "prim": "SOME" + }, + { + "prim": "NIL", + "args": [ + { + "prim": "operation" + } + ] + }, + { + "prim": "PAIR" + } + ] + ] + } + ], + "storage": [ + { + "string": "test" + } + ] + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86d0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401af9105ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7800000020020000001b050003680501056303680502020000000a03160346053d036d03420000000e020000000901000000047465737466804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86d0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401af9105ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7800000020020000001b050003680501056303680502020000000a03160346053d036d03420000000e020000000901000000047465737466804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": + { "code": + [ { "prim": "parameter", "args": [ { "prim": "string" } ] }, + { "prim": "storage", + "args": + [ { "prim": "option", "args": [ { "prim": "string" } ] } ] }, + { "prim": "code", + "args": + [ [ { "prim": "CAR" }, { "prim": "SOME" }, + { "prim": "NIL", + "args": [ { "prim": "operation" } ] }, + { "prim": "PAIR" } ] ] } ], + "storage": [ { "string": "test" } ] } } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "preattestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposals": [ + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" + ] + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8050002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf000000407663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8050002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf000000407663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "period": 719, + "proposals": + [ "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" ] } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "reveal", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86b0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401004798d2cc98473d7e250c898885718afd2e4efbcb1a1595ab9730761ed830de0f66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86b0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401004798d2cc98473d7e250c898885718afd2e4efbcb1a1595ab9730761ed830de0f66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "reveal", "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": + "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "seed_nonce_revelation", + "level": 1331, + "nonce": "0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a80100000533000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a80100000533000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "seed_nonce_revelation", "level": 1331, + "nonce": + "0000000000000000000000000000000000000000000000000000000000000000" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4019703000002298c03ed7d454a101eb7022bc95f7e5f41ac780066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4019703000002298c03ed7d454a101eb7022bc95f7e5f41ac780066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } + +./octez-codec encode alpha.operation_with_attestation from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": { + "entrypoint": "action", + "value": [ + { + "prim": "UNIT" + } + ] + } + } + ], + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40197030138560805b4c8d7b7fbbafad5c59dbfa3878ca70500ffff06616374696f6e000000070200000002034f66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40197030138560805b4c8d7b7fbbafad5c59dbfa3878ca70500ffff06616374696f6e000000070200000002034f66804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": + { "entrypoint": "action", "value": [ { "prim": "UNIT" } ] } } ], + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } diff --git a/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.unsigned.out b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.unsigned.out new file mode 100644 index 000000000000..b1ec74e5075d --- /dev/null +++ b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation_with_attestation.unsigned.out @@ -0,0 +1,544 @@ + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a804c55cf02dbeecc978d9c84625dcae72bb77ea4fbd41f98b15efc63fa893d61d7d6eee4a2ce9427ac4 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a804c55cf02dbeecc978d9c84625dcae72bb77ea4fbd41f98b15efc63fa893d61d7d6eee4a2ce9427ac4 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "activate_account", + "pkh": "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv", + "secret": "41f98b15efc63fa893d61d7d6eee4a2ce9427ac4" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a815000000000533000000000000000000000000000000000000000000000000000000000000000000000000 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a815000000000533000000000000000000000000000000000000000000000000000000000000000000000000 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "attestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "ballot", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8060002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c00 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8060002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c00 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "ballot", "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposal": "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "ballot": "yay" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40100 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40100 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401ff0002298c03ed7d454a101eb7022bc95f7e5f41ac78 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86e0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401ff0002298c03ed7d454a101eb7022bc95f7e5f41ac78 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "delegation", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_attestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "attestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8020000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8020000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81500000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_attestation_evidence", + "op1": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "attestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "op2": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "attestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_baking_evidence", + "bh1": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0 + }, + "bh2": { + "level": 1331, + "proto": 1, + "predecessor": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", + "validation_pass": 4, + "operations_hash": "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ + "01", + "000000000000000a" + ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ", + "payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0 + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a803000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a803000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c000000f100000533010e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8000000005e9dcbb00442e9bc4583d4f9fa6ba422733f45d3a44397141a953d2237bf8df62e5046eef700000011000000010100000008000000000000000a4c7319284b55068bb7c4e0b9f8585729db7fb27ab4ca9cff2038a1fc324f650c000000000000000000000000000000000000000000000000000000000000000000000000101895ca00000000000166804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_baking_evidence", + "bh1": + { "level": 1331, "proto": 1, + "predecessor": + "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", "validation_pass": 4, + "operations_hash": + "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ "01", "000000000000000a" ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0, "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "bh2": + { "level": 1331, "proto": 1, + "predecessor": + "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "timestamp": "2020-04-20T16:20:00Z", "validation_pass": 4, + "operations_hash": + "LLoZqBDX1E2ADRXbmwYo8VtMNeHG6Ygzmm4Zqv97i91UPBQHy9Vq3", + "fitness": [ "01", "000000000000000a" ], + "context": "CoVDyf9y9gHfAkPWofBJffo4X4bWjmehH2LeVonDcCKKzyQYwqdk", + "payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "payload_round": 0, "proof_of_work_nonce": "101895ca00000000", + "liquidity_baking_toggle_vote": "off", + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "double_preattestation_evidence", + "op1": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + }, + "op2": { + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + }, + "signature": "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8070000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c0000008b0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a81400000000053300000000000000000000000000000000000000000000000000000000000000000000000066804fe735e06e97e26da8236b6341b91c625d5e82b3524ec0a88cc982365e70f8a5b9bc65df2ea6d21ee244cc3a96fb33031c394c78b1179ff1b8a44237740c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "double_preattestation_evidence", + "op1": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preattestation", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" }, + "op2": + { "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "operations": + { "kind": "preattestation", "slot": 0, "level": 1331, + "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" }, + "signature": + "sigbQ5ZNvkjvGssJgoAnUAfY4Wvvg3QZqawBYB1j1VDBNTMBAALnCzRHWzer34bnfmzgHg3EvwdzQKdxgSghB897cono6gbQ" } } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": { + "code": [ + { + "prim": "parameter", + "args": [ + { + "prim": "string" + } + ] + }, + { + "prim": "storage", + "args": [ + { + "prim": "option", + "args": [ + { + "prim": "string" + } + ] + } + ] + }, + { + "prim": "code", + "args": [ + [ + { + "prim": "CAR" + }, + { + "prim": "SOME" + }, + { + "prim": "NIL", + "args": [ + { + "prim": "operation" + } + ] + }, + { + "prim": "PAIR" + } + ] + ] + } + ], + "storage": [ + { + "string": "test" + } + ] + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86d0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401af9105ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7800000020020000001b050003680501056303680502020000000a03160346053d036d03420000000e0200000009010000000474657374 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86d0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401af9105ff0002298c03ed7d454a101eb7022bc95f7e5f41ac7800000020020000001b050003680501056303680502020000000a03160346053d036d03420000000e0200000009010000000474657374 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "origination", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "balance": "84143", + "delegate": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "script": + { "code": + [ { "prim": "parameter", "args": [ { "prim": "string" } ] }, + { "prim": "storage", + "args": + [ { "prim": "option", "args": [ { "prim": "string" } ] } ] }, + { "prim": "code", + "args": + [ [ { "prim": "CAR" }, { "prim": "SOME" }, + { "prim": "NIL", + "args": [ { "prim": "operation" } ] }, + { "prim": "PAIR" } ] ] } ], + "storage": [ { "string": "test" } ] } } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preattestation", + "level": 1331, + "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", + "round": 0, + "slot": 0 + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a814000000000533000000000000000000000000000000000000000000000000000000000000000000000000 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a814000000000533000000000000000000000000000000000000000000000000000000000000000000000000 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "preattestation", "slot": 0, "level": 1331, "round": 0, + "block_payload_hash": + "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "period": 719, + "proposals": [ + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" + ] + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8050002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf000000407663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8050002298c03ed7d454a101eb7022bc95f7e5f41ac78000002cf000000407663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c7663cf120f3dc8189d5dc7d4d7a0483bcc53f3f18e700f5a2f5076aa8b9dc55c +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "proposals", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "period": 719, + "proposals": + [ "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp", + "PscqRYywd243M2eZspXZEJGsRmNchp4ZKfKmoyEZTRHeLQvVGjp" ] } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "reveal", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86b0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401004798d2cc98473d7e250c898885718afd2e4efbcb1a1595ab9730761ed830de0f + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86b0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d401004798d2cc98473d7e250c898885718afd2e4efbcb1a1595ab9730761ed830de0f +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "reveal", "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", + "public_key": + "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "seed_nonce_revelation", + "level": 1331, + "nonce": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a801000005330000000000000000000000000000000000000000000000000000000000000000 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a801000005330000000000000000000000000000000000000000000000000000000000000000 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "seed_nonce_revelation", "level": 1331, + "nonce": + "0000000000000000000000000000000000000000000000000000000000000000" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4019703000002298c03ed7d454a101eb7022bc95f7e5f41ac7800 + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d4019703000002298c03ed7d454a101eb7022bc95f7e5f41ac7800 +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "amount": "407", + "destination": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" } ] } + +./octez-codec encode alpha.operation_with_attestation.unsigned from '{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", + "fee": "33", + "counter": "732", + "gas_limit": "9451117", + "storage_limit": "57024931117", + "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": { + "entrypoint": "action", + "value": [ + { + "prim": "UNIT" + } + ] + } + } + ] +}' +0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40197030138560805b4c8d7b7fbbafad5c59dbfa3878ca70500ffff06616374696f6e000000070200000002034f + +./octez-codec decode alpha.operation_with_attestation.unsigned from 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a86c0002298c03ed7d454a101eb7022bc95f7e5f41ac7821dc05edecc004adcacdb7d40197030138560805b4c8d7b7fbbafad5c59dbfa3878ca70500ffff06616374696f6e000000070200000002034f +{ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": + [ { "kind": "transaction", + "source": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", "fee": "33", + "counter": "732", "gas_limit": "9451117", + "storage_limit": "57024931117", "amount": "407", + "destination": "KT1DieU51jzXLerQx5AqMCiLC1SsCeM8yRat", + "parameters": + { "entrypoint": "action", "value": [ { "prim": "UNIT" } ] } } ] } -- GitLab From 6b649e913395d3b55b3d1fe76ce5e5fe6e2f4dd2 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 3 May 2023 10:22:04 +0200 Subject: [PATCH 08/10] tezt/tests: add sample as tag in encoding tests --- tezt/tests/encoding.ml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tezt/tests/encoding.ml b/tezt/tests/encoding.ml index 85f179c8b923..85717d1be2bc 100644 --- a/tezt/tests/encoding.ml +++ b/tezt/tests/encoding.ml @@ -44,6 +44,8 @@ the list of encodings. *) +let sample_as_tags sample = String.split_on_char '.' sample + let check_dump_encodings () = Test.register ~__FILE__ @@ -80,7 +82,7 @@ let check_protocol_sample_encoding ?supports sample = Protocol.register_regression_test ~__FILE__ ~title:(sf "protocol encoding regression test: %s" sample) - ~tags:["encoding"; "protocol"] + ~tags:(["encoding"; "protocol"] @ sample_as_tags sample) ?supports @@ fun protocol -> let base_path = @@ -95,7 +97,7 @@ let check_shell_sample_encoding sample = Regression.register ~__FILE__ ~title:(sf "shell encoding regression test: %s" sample) - ~tags:["encoding"; "shell"] + ~tags:(["encoding"; "shell"] @ sample_as_tags sample) @@ fun () -> let base_path = "tezt" // "tests" // "encoding_samples" // "shell" // sample -- GitLab From 5a812a5ecd7ac1c38d6c2abb19edfa2056fa56b4 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 26 Apr 2023 14:31:23 +0200 Subject: [PATCH 09/10] changes: add a client entry for the new registered encodings --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 05b73d129c81..9d6052f3546e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -95,6 +95,9 @@ Client ./octez-client list smart rollups +- Add an ``operation_v2`` and ``operation_v2.unsigned`` registered encoding that + supports ``attestation`` kind instead of ``endorsement``. (MR :gl:`!8563`) + Baker ----- -- GitLab From 9eccbfc53879796048eb10163298259075af1096 Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Wed, 26 Apr 2023 14:34:25 +0200 Subject: [PATCH 10/10] changes/alpha: add an entry for legacy operation encoding --- docs/protocols/alpha.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 83d6a9257777..3ac88a5994ba 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -58,3 +58,7 @@ Internal type. (MR :gl:`!8546`) - Add an internal represention case for the ``UNIT`` Michelson instruction. (MR :gl:`!8579`) + +- Encoding that supports ``endorsement`` kind in JSON are now suffixed with + ``_with_legacy_attestation_name``. Non legacy encoding supports + ``attestation`` kind. (MR :gl:`!8563`) -- GitLab