diff --git a/cli/src/cli.rs b/cli/src/cli.rs index ec0078af7..740007021 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -395,6 +395,7 @@ pub enum CliCommand { VoteUpdateCommission { vote_account_pubkey: Pubkey, commission: u8, + withdraw_authority: SignerIndex, }, // Wallet Commands Address, @@ -2214,7 +2215,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 1c45ae896..20e4d3de4 100644 --- a/cli/src/vote.rs +++ b/cli/src/vote.rs @@ -342,7 +342,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; @@ -357,6 +358,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, }) @@ -603,8 +605,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_with_commitment(config.commitment)? .value; @@ -990,6 +993,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(),