Cli: check current authorities before attempting to change them (#19853)
* Stake-authorize: check account current authority * Stake-set-lockup: check account current custodian * Make helper fn pub(crate) * Vote-authorize: check account current authority
This commit is contained in:
@@ -1973,17 +1973,36 @@ mod tests {
|
||||
let result = process_command(&config);
|
||||
assert!(result.is_ok());
|
||||
|
||||
let vote_account_info_response = json!(Response {
|
||||
context: RpcResponseContext { slot: 1 },
|
||||
value: json!({
|
||||
"data": ["KLUv/QBYNQIAtAIBAAAAbnoc3Smwt4/ROvTFWY/v9O8qlxZuPKby5Pv8zYBQW/EFAAEAAB8ACQD6gx92zAiAAecDP4B2XeEBSIx7MQeung==", "base64+zstd"],
|
||||
"lamports": 42,
|
||||
"owner": "Vote111111111111111111111111111111111111111",
|
||||
"executable": false,
|
||||
"rentEpoch": 1,
|
||||
}),
|
||||
});
|
||||
let mut mocks = HashMap::new();
|
||||
mocks.insert(RpcRequest::GetAccountInfo, vote_account_info_response);
|
||||
let rpc_client = RpcClient::new_mock_with_mocks("".to_string(), mocks);
|
||||
let mut vote_config = CliConfig {
|
||||
rpc_client: Some(Arc::new(rpc_client)),
|
||||
json_rpc_url: "http://127.0.0.1:8899".to_string(),
|
||||
..CliConfig::default()
|
||||
};
|
||||
let current_authority = keypair_from_seed(&[5; 32]).unwrap();
|
||||
let new_authorized_pubkey = solana_sdk::pubkey::new_rand();
|
||||
config.signers = vec![&bob_keypair];
|
||||
config.command = CliCommand::VoteAuthorize {
|
||||
vote_config.signers = vec![¤t_authority];
|
||||
vote_config.command = CliCommand::VoteAuthorize {
|
||||
vote_account_pubkey: bob_pubkey,
|
||||
new_authorized_pubkey,
|
||||
vote_authorize: VoteAuthorize::Voter,
|
||||
vote_authorize: VoteAuthorize::Withdrawer,
|
||||
memo: None,
|
||||
authorized: 0,
|
||||
new_authorized: None,
|
||||
};
|
||||
let result = process_command(&config);
|
||||
let result = process_command(&vote_config);
|
||||
assert!(result.is_ok());
|
||||
|
||||
let new_identity_keypair = Keypair::new();
|
||||
|
Reference in New Issue
Block a user