From 6666e54a1fcf7acd562f5bb819e1698cd1b8c1f1 Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Mon, 13 Jul 2020 20:30:49 -0600 Subject: [PATCH] CLI: Fix explicitly plumb withdraw_authority through vote-update-commission (cherry picked from commit 3392ecc310f2a47ba54eda2d0510a96a7803de0d) --- cli/src/cli.rs | 10 +++++++++- cli/src/vote.rs | 8 ++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 202769692e..00156768e5 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -411,6 +411,7 @@ pub enum CliCommand { VoteUpdateCommission { vote_account_pubkey: Pubkey, commission: u8, + withdraw_authority: SignerIndex, }, // Wallet Commands Address, @@ -2227,7 +2228,14 @@ pub fn process_command(config: &CliConfig) -> ProcessResult { CliCommand::VoteUpdateCommission { vote_account_pubkey, commission, - } => process_vote_update_commission(&rpc_client, config, &vote_account_pubkey, *commission), + withdraw_authority, + } => process_vote_update_commission( + &rpc_client, + config, + &vote_account_pubkey, + *commission, + *withdraw_authority, + ), // Wallet Commands diff --git a/cli/src/vote.rs b/cli/src/vote.rs index 4df27c2665..85100b3890 100644 --- a/cli/src/vote.rs +++ b/cli/src/vote.rs @@ -366,7 +366,8 @@ pub fn parse_vote_update_commission( ) -> Result { let vote_account_pubkey = pubkey_of_signer(matches, "vote_account_pubkey", wallet_manager)?.unwrap(); - let (authorized_withdrawer, _) = signer_of(matches, "authorized_withdrawer", wallet_manager)?; + let (authorized_withdrawer, authorized_withdrawer_pubkey) = + signer_of(matches, "authorized_withdrawer", wallet_manager)?; let commission = value_t_or_exit!(matches, "commission", u8); let payer_provided = None; @@ -381,6 +382,7 @@ pub fn parse_vote_update_commission( command: CliCommand::VoteUpdateCommission { vote_account_pubkey, commission, + withdraw_authority: signer_info.index_of(authorized_withdrawer_pubkey).unwrap(), }, signers: signer_info.signers, }) @@ -597,8 +599,9 @@ pub fn process_vote_update_commission( config: &CliConfig, vote_account_pubkey: &Pubkey, commission: u8, + withdraw_authority: SignerIndex, ) -> ProcessResult { - let authorized_withdrawer = config.signers[1]; + let authorized_withdrawer = config.signers[withdraw_authority]; let (recent_blockhash, fee_calculator) = rpc_client.get_recent_blockhash()?; let ixs = vec![vote_instruction::update_commission( vote_account_pubkey, @@ -953,6 +956,7 @@ mod tests { command: CliCommand::VoteUpdateCommission { vote_account_pubkey: pubkey, commission: 42, + withdraw_authority: 1, }, signers: vec![ read_keypair_file(&default_keypair_file).unwrap().into(),