From 1e5c6da3078c12881e24c565c6272e2d571d63fe Mon Sep 17 00:00:00 2001 From: Pierre Boutillier Date: Wed, 10 Oct 2018 00:14:15 +0200 Subject: [PATCH] Fix bc37fde73eb4a1df3783822256433881e1c0bf59 : Restore compatibily with (old) identity.json that does not contain a `peer_id` --- src/lib_base/p2p_identity.ml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib_base/p2p_identity.ml b/src/lib_base/p2p_identity.ml index b2aa66d71..6194cf0b8 100644 --- a/src/lib_base/p2p_identity.ml +++ b/src/lib_base/p2p_identity.ml @@ -34,11 +34,15 @@ let encoding = let open Data_encoding in conv (fun { peer_id ; public_key ; secret_key ; proof_of_work_stamp } -> - (peer_id, public_key, secret_key, proof_of_work_stamp)) - (fun (peer_id, public_key, secret_key, proof_of_work_stamp) -> + (Some peer_id, public_key, secret_key, proof_of_work_stamp)) + (fun (peer_id_opt, public_key, secret_key, proof_of_work_stamp) -> + let peer_id = + match peer_id_opt with + | Some peer_id -> peer_id + | None -> Tezos_crypto.Crypto_box.hash public_key in { peer_id ; public_key ; secret_key ; proof_of_work_stamp }) (obj4 - (req "peer_id" P2p_peer_id.encoding) + (opt "peer_id" P2p_peer_id.encoding) (req "public_key" Crypto_box.public_key_encoding) (req "secret_key" Crypto_box.secret_key_encoding) (req "proof_of_work_stamp" Crypto_box.nonce_encoding))