diff --git a/CHANGES.rst b/CHANGES.rst index 05b73d129c81196c6e71c6a02b72d9eef0f27222..9d6052f3546e9ccb58ce2e057340cb1a4564b416 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 ----- diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 83d6a92577775077cd462a901f1d57377025fc79..3ac88a5994ba8b3b1ac8a9b790420f0c184bddac 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`) diff --git a/src/proto_alpha/lib_client/client_proto_utils.ml b/src/proto_alpha/lib_client/client_proto_utils.ml index be6844cc5cf7a8fbbe36d7c56415db8784587f10..124262686cac433f3dbb41ca9a2a83b1c4feb677 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 bed57a7cbb747f6411fd8eefe91c31242d00d79a..74df530ace43da60e554bc1caf3ddd882f797724 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 abb8c7903981abd987f2cb6e3cbb5c25ae27075d..39ee751dd1941e552ec665f2aad3f5be2f2f5d99 100644 --- a/src/proto_alpha/lib_client/protocol_client_context.ml +++ b/src/proto_alpha/lib_client/protocol_client_context.ml @@ -173,22 +173,37 @@ 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 ; + (* 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" ["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,6 +215,15 @@ let () = @@ def "operation" ["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 ; 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 ac400d1f41cc8f7f652c47043bb39c14363603b0..85256575c89cbeda78c114e925afea360dbed390 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 d5e33b91cb58993252b1d29daac2963d84b600ce..b1e114f7f075bf01a90140868456dbe8d3b31af5 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 b84d61f55128bd85105ee320fa13dd728ef5035a..e7fadd664f145a5144f709db559fa20f12a07c45 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 77029832a4ef4af7fb959267058c5f0e5b93b7c0..e846d9097f7ee9abfb8e04a950100fbbd054178a 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 01a06159e467e4855fa1c5ab7ec30d0fae8f7f0d..21b6f69116d75a9d887d2901bd68460970c1c9a5 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 c4970bb28fe10860b5bb6342c243fcada71f7f7b..691b966033e0ace2385710fac6e9beb1e776cc96 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 a654562fcb436a6b7d979ceb21cd5c12d4805d6e..71a5035c41c455be9072d4b1fa8cd4726b865f73 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 cc33ddbfca71e815d7d409901cb30d0db7a76b1b..eeccc66e1f5ccf991e9d56af167466db1ac12f5c 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 f1e0049511e6b607fffc45ea6e502ab8f614f118..4869459ded9fbed2d612b81a007269db8763a155 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 bdec72bfb9389890b39273f9046c351029107f38..7347f2b19750986215f75b5fedc80eae09c80fcb 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/alpha_context.ml b/src/proto_alpha/lib_protocol/alpha_context.ml index 3e7e28721f3f5274d8263179fc243aa9343f6f01..e3213ecde8ba3b0a54cd84d18b7b1172abedb3c9 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 5c9e3278bfaca3cb144372f3c3fda6caea5699d0..fb356b07c15b11e63ae2bc662523088828dbbbdc 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/apply_results.ml b/src/proto_alpha/lib_protocol/apply_results.ml index bc1f57ea9dbe4b65fe15935a316fccdf193b58f3..9778fad1feb8d04f9199f1677cfaca609ae0f065 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 1dcb83bd372d4109af7ea3d366777a57c3fe63a0..2f346600822988ed41073878e012bac8c18f1450 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 e400de8a42bc1d1074ebafcded5dce78b55c5fca..1e5e3bfe6c4bb1bd7cefc168ccde56ef37613068 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/operation_repr.ml b/src/proto_alpha/lib_protocol/operation_repr.ml index 5d5d989b59ebfe97fdf3fd5f1ca07bd23052f0ad..7d89955b1199c55ed96b11c3513277ad76d1a0ef 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) ; @@ -1493,9 +1613,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_with_legacy_attestation_name) + 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 +1645,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 +1804,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 14d1afd6eb8239e303ebfaf52b8ed082bc45627e..370f4a115f21b49ee99a62758e16bf481d007693 100644 --- a/src/proto_alpha/lib_protocol/operation_repr.mli +++ b/src/proto_alpha/lib_protocol/operation_repr.mli @@ -530,15 +530,37 @@ 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 +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 diff --git a/src/proto_alpha/lib_protocol/test/helpers/block.ml b/src/proto_alpha/lib_protocol/test/helpers/block.ml index 47812d99a6d071aa6e94e2750d83ac44dd3932c5..85504f6a98342eda4444b0bdd97441e0a647e11d 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 413386c3214abdcac2e6460357f2494d2dd285f6..08b512e6834d19b92bb0731357e77e17d3aaf3e5 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 e57b68457d9bfa6c408d58b67fdb6730235f2f8d..52a27fac4d633d6f14250428b54474604c262979 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/pbt/test_operation_encoding.ml b/src/proto_alpha/lib_protocol/test/pbt/test_operation_encoding.ml index b08de8c3ded9e7ee0b725b8aa0ed978f5eed9c99..dcd48ac2cb03a7aa12f3a8474c272d714461585a 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; + ] ); + ] 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 4ae7d506ff3af0255597eb7bfacda69d2186b156..f2bf85c6de348dc7af3d0a5e39068db83804fa37 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 bade3f04e2291261c927878dbe6931030f644302..90ea2170c7cf89ac93f21147b2d24bf219432aa2 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 bc0d0cf333a861982d4f2e52e9e56c222505bbf5..9616f61914057abee296edb01e18aa3de10424fd 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) = diff --git a/tezt/tests/encoding.ml b/tezt/tests/encoding.ml index 2a5db8b1632250aa65eb29e9cc207edffb3c32d6..85717d1be2bcc2a205e104f55b5e9f5f4542ba08 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 @@ -119,8 +121,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.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 0000000000000000000000000000000000000000..bf3abad6186364aaf2bf1d86275ad78f530807d7 --- /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 0000000000000000000000000000000000000000..3cf96e2b0325658f6aa35b662a7a950f025f36a5 --- /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 0000000000000000000000000000000000000000..ad947afaa61acd3cd3b6854a8702aa33917a8abc --- /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-preendorsement.sample.json b/tezt/tests/encoding_samples/alpha/operation/operation-preendorsement.sample.json new file mode 100644 index 0000000000000000000000000000000000000000..12cb8aeca006965c9333296f98af5489a04f1d38 --- /dev/null +++ b/tezt/tests/encoding_samples/alpha/operation/operation-preendorsement.sample.json @@ -0,0 +1,13 @@ +{ + "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", + "contents": [ + { + "kind": "preendorsement", + "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-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 0000000000000000000000000000000000000000..6e0f40dd83fcecf77acb29efb62dddcec7c26cab --- /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 0000000000000000000000000000000000000000..b28f47358ec63a936bc107436c203a3f14632dd8 --- /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 0000000000000000000000000000000000000000..c272cedc4f209a62f44e86bce56b50c7068e3558 --- /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 0000000000000000000000000000000000000000..5e3eaa739a99a843d9b95fdbfa04bf91a9bcd78c --- /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 0000000000000000000000000000000000000000..401bed1ed6a2de4dd1bb21f263104180ce7d7750 --- /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 0000000000000000000000000000000000000000..884957c25aedb59a0825ec65cb531b2338745216 --- /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 0000000000000000000000000000000000000000..8eed2982138e38bc3d8ad2eb98def9c62803d097 --- /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 0000000000000000000000000000000000000000..8aa1305a50e37f50956bac9888d95b5bb6a4fc47 --- /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 0000000000000000000000000000000000000000..e3937027e89cb2fc54a916fae1f0acb3890a528b --- /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 0000000000000000000000000000000000000000..e65a1f2095b9419736cb2447434186807c10ea12 --- /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 0000000000000000000000000000000000000000..ee628b836024e57b72697fbb7e95203036e49890 --- /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 0000000000000000000000000000000000000000..b2bd1b78e79f9a3273038b46db81c16f88d10660 --- /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 0000000000000000000000000000000000000000..3f5b02050587b6ab00d530393520d4c61c5d7362 --- /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 0000000000000000000000000000000000000000..6a22e4a8afa3714713ab966afc75a3a570bd9b69 --- /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 0000000000000000000000000000000000000000..d376b224eb7a1e2939e575c90ff52a32d1875440 --- /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 0000000000000000000000000000000000000000..db9a00a60009b6964336f04c131ebed969323ce0 --- /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/operation-endorsement-with-slot.sample.json b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json similarity index 92% rename from tezt/tests/encoding_samples/alpha/operation/operation-endorsement-with-slot.sample.json rename to tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json index d948f617b95f9583072ea0090b2009f03dab2850..fa6ebd461571339a26c85530b7e4568a6416ef06 100644 --- a/tezt/tests/encoding_samples/alpha/operation/operation-endorsement-with-slot.sample.json +++ b/tezt/tests/encoding_samples/alpha/operation_with_attestation/operation-attestation.sample.json @@ -2,7 +2,7 @@ "branch": "BKpbfCvh777DQHnXjU2sqHvVUNZ7dBAdqEfKkdw8EGSkD9LSYXb", "contents": [ { - "kind": "endorsement", + "kind": "attestation", "level": 1331, "block_payload_hash": "vh1g87ZG6scSYxKhspAUzprQVuLAyoa5qMBKcUfjgnQGnFb3dJcG", "round": 0, 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 0000000000000000000000000000000000000000..e635a124295cb25043fb54a472e2e5642a8eae04 --- /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 0000000000000000000000000000000000000000..a0f728f65b0734f47a576536dcb86bb881d3d2cb --- /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 0000000000000000000000000000000000000000..7b5149b953fa73bfa0d6cfd10bd5e2cd072fc4d4 --- /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 0000000000000000000000000000000000000000..fa6ebd461571339a26c85530b7e4568a6416ef06 --- /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 0000000000000000000000000000000000000000..1c8f236c2deefaf67b93da9f487d2d136404e325 --- /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 0000000000000000000000000000000000000000..371a2d8e4e55ae8f697d8d252af7c8bd04205a76 --- /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 0000000000000000000000000000000000000000..1bb84ef5d4697c74605dfa84356b796d39527d1a --- /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 0000000000000000000000000000000000000000..1911762a443768c44d83eb861877d81c923ca34c --- /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 0000000000000000000000000000000000000000..a7f958de001d6cd4f4575742188a8ba321542522 --- /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 0000000000000000000000000000000000000000..5e5c37e058f0283478929ef039d6f25a77a2f262 --- /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 0000000000000000000000000000000000000000..19dd3b8d9cc17a785dc283d6d0a6a91d003d8887 --- /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 0000000000000000000000000000000000000000..a8385a84d26efc1db195bc26a284f0511ba7ce6c --- /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 0000000000000000000000000000000000000000..c9bf769a3eea5fff3b26cfa6fbdd1c1d37159fa7 --- /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.out b/tezt/tests/expected/encoding.ml/Alpha- protocol encoding regression test- operation.out index e17494ab27c5c4e789ead4d986ce9eb26dd35efd..fe55ffd3f87c493b24802086cca7d85538db7a6e 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 7698a6aaba19899ee5fa868383a98a1e55ba632b..b86292d4e7915723ea4ec14e358b5fbeeb78073c 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": [ 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 0000000000000000000000000000000000000000..cf0e30ff4387b572d6250a6fa1a225a384e696d1 --- /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 0000000000000000000000000000000000000000..b1ec74e5075d3547110efcfe6d8e2e2547ae4447 --- /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" } ] } } ] }