Skip to content

Commit

Permalink
stake pool: dont pass unnecessary program infos (solana-labs#4090)
Browse files Browse the repository at this point in the history
  • Loading branch information
2501babe authored and HaoranYi committed Jul 19, 2023
1 parent bcc0ef6 commit 7aeb3c4
Showing 1 changed file with 10 additions and 53 deletions.
63 changes: 10 additions & 53 deletions stake-pool/program/src/processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -339,17 +339,16 @@ fn check_transient_stake_account(
fn create_stake_account<'a>(
stake_account_info: AccountInfo<'a>,
stake_account_signer_seeds: &[&[u8]],
system_program_info: AccountInfo<'a>,
stake_space: usize,
) -> Result<(), ProgramError> {
invoke_signed(
&system_instruction::allocate(stake_account_info.key, stake_space as u64),
&[stake_account_info.clone(), system_program_info.clone()],
&[stake_account_info.clone()],
&[stake_account_signer_seeds],
)?;
invoke_signed(
&system_instruction::assign(stake_account_info.key, &stake::program::id()),
&[stake_account_info, system_program_info],
&[stake_account_info],
&[stake_account_signer_seeds],
)
}
Expand Down Expand Up @@ -446,7 +445,6 @@ impl Processor {
destination_account: AccountInfo<'a>,
clock: AccountInfo<'a>,
stake_history: AccountInfo<'a>,
stake_program_info: AccountInfo<'a>,
) -> Result<(), ProgramError> {
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
let signers = &[&authority_signature_seeds[..]];
Expand All @@ -462,7 +460,6 @@ impl Processor {
clock,
stake_history,
authority,
stake_program_info,
],
signers,
)
Expand All @@ -474,7 +471,6 @@ impl Processor {
stake_authority: AccountInfo<'a>,
new_stake_authority: &Pubkey,
clock: AccountInfo<'a>,
stake_program_info: AccountInfo<'a>,
) -> Result<(), ProgramError> {
let authorize_instruction = stake::instruction::authorize(
stake_account.key,
Expand All @@ -490,7 +486,6 @@ impl Processor {
stake_account.clone(),
clock.clone(),
stake_authority.clone(),
stake_program_info.clone(),
],
)?;

Expand All @@ -504,7 +499,7 @@ impl Processor {

invoke(
&authorize_instruction,
&[stake_account, clock, stake_authority, stake_program_info],
&[stake_account, clock, stake_authority],
)
}

Expand All @@ -518,7 +513,6 @@ impl Processor {
bump_seed: u8,
new_stake_authority: &Pubkey,
clock: AccountInfo<'a>,
stake_program_info: AccountInfo<'a>,
) -> Result<(), ProgramError> {
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
let signers = &[&authority_signature_seeds[..]];
Expand All @@ -537,7 +531,6 @@ impl Processor {
stake_account.clone(),
clock.clone(),
stake_authority.clone(),
stake_program_info.clone(),
],
signers,
)?;
Expand All @@ -551,7 +544,7 @@ impl Processor {
);
invoke_signed(
&authorize_instruction,
&[stake_account, clock, stake_authority, stake_program_info],
&[stake_account, clock, stake_authority],
signers,
)
}
Expand All @@ -567,7 +560,6 @@ impl Processor {
destination_account: AccountInfo<'a>,
clock: AccountInfo<'a>,
stake_history: AccountInfo<'a>,
stake_program_info: AccountInfo<'a>,
lamports: u64,
) -> Result<(), ProgramError> {
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
Expand All @@ -590,7 +582,6 @@ impl Processor {
clock,
stake_history,
authority,
stake_program_info,
],
signers,
)
Expand Down Expand Up @@ -649,7 +640,7 @@ impl Processor {
amount,
)?;

invoke(&ix, &[burn_account, mint, authority, token_program])
invoke(&ix, &[burn_account, mint, authority])
}

/// Issue a spl_token `MintTo` instruction.
Expand All @@ -676,7 +667,7 @@ impl Processor {
amount,
)?;

invoke_signed(&ix, &[mint, destination, authority, token_program], signers)
invoke_signed(&ix, &[mint, destination, authority], signers)
}

/// Issue a spl_token `Transfer` instruction.
Expand All @@ -700,17 +691,16 @@ impl Processor {
amount,
decimals,
)?;
invoke(&ix, &[source, mint, destination, authority, token_program])
invoke(&ix, &[source, mint, destination, authority])
}

fn sol_transfer<'a>(
source: AccountInfo<'a>,
destination: AccountInfo<'a>,
system_program: AccountInfo<'a>,
amount: u64,
) -> Result<(), ProgramError> {
let ix = solana_program::system_instruction::transfer(source.key, destination.key, amount);
invoke(&ix, &[source, destination, system_program])
invoke(&ix, &[source, destination])
}

/// Processes `Initialize` instruction.
Expand Down Expand Up @@ -1058,12 +1048,7 @@ impl Processor {
}

// Create new stake account
create_stake_account(
stake_info.clone(),
stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;
create_stake_account(stake_info.clone(), stake_account_signer_seeds, stake_space)?;
// split into validator stake account
Self::stake_split(
stake_pool_info.key,
Expand Down Expand Up @@ -1388,7 +1373,6 @@ impl Processor {
create_stake_account(
ephemeral_stake_account_info.clone(),
ephemeral_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;

Expand Down Expand Up @@ -1440,7 +1424,6 @@ impl Processor {
transient_stake_account_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
} else {
let transient_stake_account_signer_seeds: &[&[_]] = &[
Expand All @@ -1454,7 +1437,6 @@ impl Processor {
create_stake_account(
transient_stake_account_info.clone(),
transient_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;

Expand Down Expand Up @@ -1666,7 +1648,6 @@ impl Processor {
create_stake_account(
ephemeral_stake_account_info.clone(),
ephemeral_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;

Expand Down Expand Up @@ -1720,7 +1701,6 @@ impl Processor {
transient_stake_account_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
} else {
// no transient stake, split
Expand All @@ -1735,7 +1715,6 @@ impl Processor {
create_stake_account(
transient_stake_account_info.clone(),
transient_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;

Expand Down Expand Up @@ -1947,7 +1926,6 @@ impl Processor {
create_stake_account(
source_transient_stake_account_info.clone(),
source_transient_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;

Expand Down Expand Up @@ -1979,7 +1957,6 @@ impl Processor {
create_stake_account(
ephemeral_stake_account_info.clone(),
ephemeral_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;
Self::stake_redelegate(
Expand Down Expand Up @@ -2063,7 +2040,6 @@ impl Processor {
destination_transient_stake_account_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
} else {
// otherwise, create the new account and split into it
Expand All @@ -2084,7 +2060,6 @@ impl Processor {
create_stake_account(
destination_transient_stake_account_info.clone(),
destination_transient_stake_account_signer_seeds,
system_program_info.clone(),
stake_space,
)?;
Self::stake_split(
Expand Down Expand Up @@ -2292,7 +2267,6 @@ impl Processor {
reserve_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
validator_stake_record.status.remove_transient_stake();
}
Expand All @@ -2317,7 +2291,6 @@ impl Processor {
reserve_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
validator_stake_record.status.remove_transient_stake();
} else if stake.delegation.activation_epoch < clock.epoch {
Expand All @@ -2334,7 +2307,6 @@ impl Processor {
validator_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
} else {
msg!("Stake activating or just active, not ready to merge");
Expand Down Expand Up @@ -2385,7 +2357,6 @@ impl Processor {
reserve_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
additional_lamports,
)?;
}
Expand Down Expand Up @@ -2413,7 +2384,6 @@ impl Processor {
reserve_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
validator_stake_record.status.remove_validator_stake();
}
Expand Down Expand Up @@ -2443,7 +2413,6 @@ impl Processor {
reserve_stake_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;
validator_stake_record.status.remove_validator_stake();
}
Expand Down Expand Up @@ -2726,15 +2695,13 @@ impl Processor {
deposit_bump_seed,
withdraw_authority_info.key,
clock_info.clone(),
stake_program_info.clone(),
)?;
} else {
Self::stake_authorize(
stake_info.clone(),
stake_deposit_authority_info.clone(),
withdraw_authority_info.key,
clock_info.clone(),
stake_program_info.clone(),
)?;
}

Expand All @@ -2747,7 +2714,6 @@ impl Processor {
validator_stake_account_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
)?;

let (_, post_validator_stake) = get_stake_state(validator_stake_account_info)?;
Expand Down Expand Up @@ -2862,7 +2828,6 @@ impl Processor {
reserve_stake_account_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
sol_deposit_lamports,
)?;
}
Expand Down Expand Up @@ -2979,7 +2944,6 @@ impl Processor {
Self::sol_transfer(
from_user_lamports_info.clone(),
reserve_stake_account_info.clone(),
system_program_info.clone(),
deposit_lamports,
)?;

Expand Down Expand Up @@ -3286,7 +3250,6 @@ impl Processor {
stake_pool.stake_withdraw_bump_seed,
user_stake_authority_info.key,
clock_info.clone(),
stake_program_info.clone(),
)?;

if pool_tokens_fee > 0 {
Expand Down Expand Up @@ -3476,7 +3439,6 @@ impl Processor {
destination_lamports_info.clone(),
clock_info.clone(),
stake_history_info.clone(),
stake_program_info.clone(),
withdraw_lamports,
)?;

Expand Down Expand Up @@ -3575,7 +3537,6 @@ impl Processor {
payer_info.clone(),
withdraw_authority_info.clone(),
system_program_info.clone(),
mpl_token_metadata_program_info.clone(),
],
&[token_mint_authority_signer_seeds],
)?;
Expand Down Expand Up @@ -3648,11 +3609,7 @@ impl Processor {

invoke_signed(
&update_metadata_accounts_instruction,
&[
metadata_info.clone(),
withdraw_authority_info.clone(),
mpl_token_metadata_program_info.clone(),
],
&[metadata_info.clone(), withdraw_authority_info.clone()],
&[token_mint_authority_signer_seeds],
)?;

Expand Down

0 comments on commit 7aeb3c4

Please sign in to comment.