From 9df99e4553112968280353ba81c6a44561aa8100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Henry?= Date: Wed, 6 Jun 2018 13:17:36 +0200 Subject: [PATCH] Alpha: use the `zero` signature for anonymous operation --- src/proto_alpha/lib_baking/client_baking_revelation.ml | 1 + src/proto_alpha/lib_protocol/src/operation_repr.ml | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/proto_alpha/lib_baking/client_baking_revelation.ml b/src/proto_alpha/lib_baking/client_baking_revelation.ml index 032545a05..c7ab41b54 100644 --- a/src/proto_alpha/lib_baking/client_baking_revelation.ml +++ b/src/proto_alpha/lib_baking/client_baking_revelation.ml @@ -15,6 +15,7 @@ let inject_seed_nonce_revelation rpc_config ?(chain = `Main) block ?async nonces (fun (level, nonce) -> Alpha_services.Forge.seed_nonce_revelation rpc_config (chain, block) ~branch ~level ~nonce () >>=? fun bytes -> + let bytes = Signature.concat bytes Signature.zero in Shell_services.Injection.operation rpc_config ?async ~chain bytes) nonces >>=? fun ophs -> return ophs diff --git a/src/proto_alpha/lib_protocol/src/operation_repr.ml b/src/proto_alpha/lib_protocol/src/operation_repr.ml index 478bbde8e..35071e29d 100644 --- a/src/proto_alpha/lib_protocol/src/operation_repr.ml +++ b/src/proto_alpha/lib_protocol/src/operation_repr.ml @@ -540,7 +540,13 @@ module Encoding = struct ] let contents_list_encoding = - conv to_list of_list (list contents_encoding) + conv to_list of_list (Variable.list contents_encoding) + + let optional_signature_encoding = + conv + (function Some s -> s | None -> Signature.zero) + (fun s -> if Signature.equal s Signature.zero then None else Some s) + Signature.encoding let protocol_data_encoding = def "operation.alpha.contents_and_signature" @@ @@ -551,7 +557,7 @@ module Encoding = struct Operation_data { contents ; signature }) (obj2 (req "contents" contents_list_encoding) - (varopt "signature" Signature.encoding)) + (req "signature" optional_signature_encoding)) let operation_encoding = conv