parent
56667e17c9
commit
3a6cdf02e5
|
@ -71,6 +71,14 @@ fn resolve_base_pubkey(
|
||||||
pubkey_from_path(&matches, key_url, "base pubkey", wallet_manager)
|
pubkey_from_path(&matches, key_url, "base pubkey", wallet_manager)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn resolve_new_base_keypair(
|
||||||
|
wallet_manager: Option<&Arc<RemoteWalletManager>>,
|
||||||
|
key_url: &str,
|
||||||
|
) -> Result<Box<dyn Signer>, Box<dyn Error>> {
|
||||||
|
let matches = ArgMatches::default();
|
||||||
|
signer_from_path(&matches, key_url, "new base pubkey", wallet_manager)
|
||||||
|
}
|
||||||
|
|
||||||
fn get_balance_at(client: &RpcClient, pubkey: &Pubkey, i: usize) -> Result<u64, ClientError> {
|
fn get_balance_at(client: &RpcClient, pubkey: &Pubkey, i: usize) -> Result<u64, ClientError> {
|
||||||
let address = stake_accounts::derive_stake_account_address(pubkey, i);
|
let address = stake_accounts::derive_stake_account_address(pubkey, i);
|
||||||
client.get_balance(&address)
|
client.get_balance(&address)
|
||||||
|
@ -183,6 +191,8 @@ fn process_rebase_stake_accounts(
|
||||||
) -> Result<(), Box<dyn Error>> {
|
) -> Result<(), Box<dyn Error>> {
|
||||||
let fee_payer_keypair = resolve_fee_payer(wallet_manager, &rebase_config.fee_payer)?;
|
let fee_payer_keypair = resolve_fee_payer(wallet_manager, &rebase_config.fee_payer)?;
|
||||||
let base_pubkey = resolve_base_pubkey(wallet_manager, &rebase_config.base_pubkey)?;
|
let base_pubkey = resolve_base_pubkey(wallet_manager, &rebase_config.base_pubkey)?;
|
||||||
|
let new_base_keypair =
|
||||||
|
resolve_new_base_keypair(wallet_manager, &rebase_config.new_base_keypair)?;
|
||||||
let stake_authority_keypair =
|
let stake_authority_keypair =
|
||||||
resolve_stake_authority(wallet_manager, &rebase_config.stake_authority)?;
|
resolve_stake_authority(wallet_manager, &rebase_config.stake_authority)?;
|
||||||
let addresses =
|
let addresses =
|
||||||
|
@ -191,11 +201,15 @@ fn process_rebase_stake_accounts(
|
||||||
|
|
||||||
let messages = stake_accounts::rebase_stake_accounts(
|
let messages = stake_accounts::rebase_stake_accounts(
|
||||||
&fee_payer_keypair.pubkey(),
|
&fee_payer_keypair.pubkey(),
|
||||||
&base_pubkey,
|
&new_base_keypair.pubkey(),
|
||||||
&stake_authority_keypair.pubkey(),
|
&stake_authority_keypair.pubkey(),
|
||||||
&balances,
|
&balances,
|
||||||
);
|
);
|
||||||
let signers = vec![&*fee_payer_keypair, &*stake_authority_keypair];
|
let signers = vec![
|
||||||
|
&*fee_payer_keypair,
|
||||||
|
&*new_base_keypair,
|
||||||
|
&*stake_authority_keypair,
|
||||||
|
];
|
||||||
for message in messages {
|
for message in messages {
|
||||||
let signature = send_message(client, message, &signers)?;
|
let signature = send_message(client, message, &signers)?;
|
||||||
println!("{}", signature);
|
println!("{}", signature);
|
||||||
|
@ -209,8 +223,11 @@ fn process_move_stake_accounts(
|
||||||
move_config: &MoveCommandConfig,
|
move_config: &MoveCommandConfig,
|
||||||
) -> Result<(), Box<dyn Error>> {
|
) -> Result<(), Box<dyn Error>> {
|
||||||
let authorize_config = &move_config.authorize_config;
|
let authorize_config = &move_config.authorize_config;
|
||||||
|
let rebase_config = &move_config.rebase_config;
|
||||||
let fee_payer_keypair = resolve_fee_payer(wallet_manager, &authorize_config.fee_payer)?;
|
let fee_payer_keypair = resolve_fee_payer(wallet_manager, &authorize_config.fee_payer)?;
|
||||||
let base_pubkey = resolve_base_pubkey(wallet_manager, &authorize_config.base_pubkey)?;
|
let base_pubkey = resolve_base_pubkey(wallet_manager, &authorize_config.base_pubkey)?;
|
||||||
|
let new_base_keypair =
|
||||||
|
resolve_new_base_keypair(wallet_manager, &rebase_config.new_base_keypair)?;
|
||||||
let stake_authority_keypair =
|
let stake_authority_keypair =
|
||||||
resolve_stake_authority(wallet_manager, &authorize_config.stake_authority)?;
|
resolve_stake_authority(wallet_manager, &authorize_config.stake_authority)?;
|
||||||
let withdraw_authority_keypair =
|
let withdraw_authority_keypair =
|
||||||
|
@ -225,7 +242,7 @@ fn process_move_stake_accounts(
|
||||||
|
|
||||||
let messages = stake_accounts::move_stake_accounts(
|
let messages = stake_accounts::move_stake_accounts(
|
||||||
&fee_payer_keypair.pubkey(),
|
&fee_payer_keypair.pubkey(),
|
||||||
&base_pubkey,
|
&new_base_keypair.pubkey(),
|
||||||
&stake_authority_keypair.pubkey(),
|
&stake_authority_keypair.pubkey(),
|
||||||
&withdraw_authority_keypair.pubkey(),
|
&withdraw_authority_keypair.pubkey(),
|
||||||
&new_stake_authority_pubkey,
|
&new_stake_authority_pubkey,
|
||||||
|
@ -234,6 +251,7 @@ fn process_move_stake_accounts(
|
||||||
);
|
);
|
||||||
let signers = vec![
|
let signers = vec![
|
||||||
&*fee_payer_keypair,
|
&*fee_payer_keypair,
|
||||||
|
&*new_base_keypair,
|
||||||
&*stake_authority_keypair,
|
&*stake_authority_keypair,
|
||||||
&*withdraw_authority_keypair,
|
&*withdraw_authority_keypair,
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in New Issue