From a595e06b4878668f48912f239e31178b34f9fd8e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 28 Oct 2021 23:10:25 +0000 Subject: [PATCH] Check whether vote-authorize-voter-checked new vote authority is_interactive (#21051) (#21057) * Check interactive signer for vote-authorize-voter-checked * Recommend checked vote reauthorization (cherry picked from commit 0b8fcf080843d5518e2c9ed1c0d0223728f7fb15) Co-authored-by: Tyera Eulberg --- cli/src/vote.rs | 10 +++++++++- docs/src/running-validator/vote-accounts.md | 10 +++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/cli/src/vote.rs b/cli/src/vote.rs index 1dd1dbb142..b29cfd7ac3 100644 --- a/cli/src/vote.rs +++ b/cli/src/vote.rs @@ -683,7 +683,15 @@ pub fn process_vote_authorize( ) })? .1; - check_current_authority(current_authorized_voter, &authorized.pubkey())? + check_current_authority(current_authorized_voter, &authorized.pubkey())?; + if let Some(signer) = new_authorized_signer { + if signer.is_interactive() { + return Err(CliError::BadParameter(format!( + "invalid new authorized vote signer {:?}. Interactive vote signers not supported", + new_authorized_pubkey + )).into()); + } + } } VoteAuthorize::Withdrawer => { check_current_authority(&vote_state.authorized_withdrawer, &authorized.pubkey())? diff --git a/docs/src/running-validator/vote-accounts.md b/docs/src/running-validator/vote-accounts.md index 7af56cc71d..35f0f48ed4 100644 --- a/docs/src/running-validator/vote-accounts.md +++ b/docs/src/running-validator/vote-accounts.md @@ -19,9 +19,9 @@ of the account. - To change the [validator identity](#validator-identity), use [vote-update-validator](../cli/usage.md#solana-vote-update-validator). - To change the [vote authority](#vote-authority), use - [vote-authorize-voter](../cli/usage.md#solana-vote-authorize-voter). + [vote-authorize-voter-checked](../cli/usage.md#solana-vote-authorize-voter-checked). - To change the [authorized withdrawer](#authorized-withdrawer), use - [vote-authorize-withdrawer](../cli/usage.md#solana-vote-authorize-withdrawer). + [vote-authorize-withdrawer-checked](../cli/usage.md#solana-vote-authorize-withdrawer-checked). - To change the [commission](#commission), use [vote-update-commission](../cli/usage.md#solana-vote-update-commission). @@ -84,10 +84,10 @@ different accounts. The vote authority can be set when the vote account is created. If it is not provided, the default behavior is to assign it the same as the validator identity. The vote authority can be changed later with the -[vote-authorize-voter](../cli/usage.md#solana-vote-authorize-voter) command. +[vote-authorize-voter-checked](../cli/usage.md#solana-vote-authorize-voter-checked) command. The vote authority can be changed at most once per epoch. If the authority is -changed with [vote-authorize-voter](../cli/usage.md#solana-vote-authorize-voter), +changed with [vote-authorize-voter-checked](../cli/usage.md#solana-vote-authorize-voter-checked), this will not take effect until the beginning of the next epoch. To support a smooth transition of the vote signing, `solana-validator` allows the `--authorized-voter` argument to be specified @@ -117,7 +117,7 @@ not be set to a keypair that is the same as either the validator identity keypair or the vote authority keypair. The authorized withdrawer can be changed later with the -[vote-authorize-withdrawer](../cli/usage.md#solana-vote-authorize-withdrawer) +[vote-authorize-withdrawer-checked](../cli/usage.md#solana-vote-authorize-withdrawer-checked) command. ### Commission