From 0f5b7acae1ceb0b9d3bff9726d28126849c67b46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Sun, 12 Nov 2023 17:26:02 +0100 Subject: [PATCH] client: store validator protocol key in the regular wallet --- apps/src/lib/client/tx.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/src/lib/client/tx.rs b/apps/src/lib/client/tx.rs index 5a2483c5d5c..ce99a3c65f0 100644 --- a/apps/src/lib/client/tx.rs +++ b/apps/src/lib/client/tx.rs @@ -365,6 +365,7 @@ pub async fn submit_init_validator<'a>( let validator_key_alias = format!("{}-key", alias); let consensus_key_alias = format!("{}-consensus-key", alias); + let protocol_key_alias = format!("{}-protocol-key", alias); let threshold = match threshold { Some(threshold) => threshold, @@ -479,7 +480,25 @@ pub async fn submit_init_validator<'a>( scheme, ) .unwrap(); - let protocol_key = validator_keys.get_protocol_keypair().to_public(); + let protocol_sk = validator_keys.get_protocol_keypair(); + let protocol_key = protocol_sk.to_public(); + + // Store the protocol key in the wallet so that we can sign the tx with it + // to verify ownership + display_line!(namada.io(), "Storing protocol key in the wallet..."); + let password = read_and_confirm_encryption_password(unsafe_dont_encrypt); + namada + .wallet_mut() + .await + .insert_keypair( + protocol_key_alias, + tx_args.wallet_alias_force, + protocol_sk.clone(), + password, + None, + None, + ) + .map_err(|err| error::Error::Other(err.to_string()))?; let validator_vp_code_hash = query_wasm_code_hash(namada, validator_vp_code_path.to_str().unwrap())