CLI: Fix explicitly plumb withdraw_authority through vote-update-commission

This commit is contained in:
Trent Nelson 2020-07-13 20:30:49 -06:00 committed by Trent Nelson
parent e9cbdf711b
commit 3392ecc310
2 changed files with 15 additions and 3 deletions

View File

@ -395,6 +395,7 @@ pub enum CliCommand {
VoteUpdateCommission { VoteUpdateCommission {
vote_account_pubkey: Pubkey, vote_account_pubkey: Pubkey,
commission: u8, commission: u8,
withdraw_authority: SignerIndex,
}, },
// Wallet Commands // Wallet Commands
Address, Address,
@ -2214,7 +2215,14 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
CliCommand::VoteUpdateCommission { CliCommand::VoteUpdateCommission {
vote_account_pubkey, vote_account_pubkey,
commission, 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 // Wallet Commands

View File

@ -342,7 +342,8 @@ pub fn parse_vote_update_commission(
) -> Result<CliCommandInfo, CliError> { ) -> Result<CliCommandInfo, CliError> {
let vote_account_pubkey = let vote_account_pubkey =
pubkey_of_signer(matches, "vote_account_pubkey", wallet_manager)?.unwrap(); 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 commission = value_t_or_exit!(matches, "commission", u8);
let payer_provided = None; let payer_provided = None;
@ -357,6 +358,7 @@ pub fn parse_vote_update_commission(
command: CliCommand::VoteUpdateCommission { command: CliCommand::VoteUpdateCommission {
vote_account_pubkey, vote_account_pubkey,
commission, commission,
withdraw_authority: signer_info.index_of(authorized_withdrawer_pubkey).unwrap(),
}, },
signers: signer_info.signers, signers: signer_info.signers,
}) })
@ -603,8 +605,9 @@ pub fn process_vote_update_commission(
config: &CliConfig, config: &CliConfig,
vote_account_pubkey: &Pubkey, vote_account_pubkey: &Pubkey,
commission: u8, commission: u8,
withdraw_authority: SignerIndex,
) -> ProcessResult { ) -> ProcessResult {
let authorized_withdrawer = config.signers[1]; let authorized_withdrawer = config.signers[withdraw_authority];
let (recent_blockhash, fee_calculator, _) = rpc_client let (recent_blockhash, fee_calculator, _) = rpc_client
.get_recent_blockhash_with_commitment(config.commitment)? .get_recent_blockhash_with_commitment(config.commitment)?
.value; .value;
@ -990,6 +993,7 @@ mod tests {
command: CliCommand::VoteUpdateCommission { command: CliCommand::VoteUpdateCommission {
vote_account_pubkey: pubkey, vote_account_pubkey: pubkey,
commission: 42, commission: 42,
withdraw_authority: 1,
}, },
signers: vec![ signers: vec![
read_keypair_file(&default_keypair_file).unwrap().into(), read_keypair_file(&default_keypair_file).unwrap().into(),