Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit ff58a06

Browse files
authored
stake-pool: Use Pubkey::as_ref() instead of to_bytes() (#4014)
1 parent 3c02459 commit ff58a06

File tree

4 files changed

+26
-38
lines changed

4 files changed

+26
-38
lines changed

stake-pool/program/src/processor.rs

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -372,8 +372,7 @@ impl Processor {
372372
authority_type: &[u8],
373373
bump_seed: u8,
374374
) -> Result<(), ProgramError> {
375-
let authority_signature_seeds =
376-
[&stake_pool.to_bytes()[..32], authority_type, &[bump_seed]];
375+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
377376
let signers = &[&authority_signature_seeds[..]];
378377

379378
let ix = stake::instruction::delegate_stake(
@@ -405,8 +404,7 @@ impl Processor {
405404
authority_type: &[u8],
406405
bump_seed: u8,
407406
) -> Result<(), ProgramError> {
408-
let authority_signature_seeds =
409-
[&stake_pool.to_bytes()[..32], authority_type, &[bump_seed]];
407+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
410408
let signers = &[&authority_signature_seeds[..]];
411409

412410
let ix = stake::instruction::deactivate_stake(stake_info.key, authority_info.key);
@@ -424,8 +422,7 @@ impl Processor {
424422
amount: u64,
425423
split_stake: AccountInfo<'a>,
426424
) -> Result<(), ProgramError> {
427-
let me_bytes = stake_pool.to_bytes();
428-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
425+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
429426
let signers = &[&authority_signature_seeds[..]];
430427

431428
let split_instruction =
@@ -453,8 +450,7 @@ impl Processor {
453450
stake_history: AccountInfo<'a>,
454451
stake_program_info: AccountInfo<'a>,
455452
) -> Result<(), ProgramError> {
456-
let me_bytes = stake_pool.to_bytes();
457-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
453+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
458454
let signers = &[&authority_signature_seeds[..]];
459455

460456
let merge_instruction =
@@ -526,8 +522,7 @@ impl Processor {
526522
clock: AccountInfo<'a>,
527523
stake_program_info: AccountInfo<'a>,
528524
) -> Result<(), ProgramError> {
529-
let me_bytes = stake_pool.to_bytes();
530-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
525+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
531526
let signers = &[&authority_signature_seeds[..]];
532527

533528
let authorize_instruction = stake::instruction::authorize(
@@ -577,8 +572,7 @@ impl Processor {
577572
stake_program_info: AccountInfo<'a>,
578573
lamports: u64,
579574
) -> Result<(), ProgramError> {
580-
let me_bytes = stake_pool.to_bytes();
581-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
575+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
582576
let signers = &[&authority_signature_seeds[..]];
583577
let custodian_pubkey = None;
584578

@@ -616,8 +610,7 @@ impl Processor {
616610
vote_account: AccountInfo<'a>,
617611
stake_config: AccountInfo<'a>,
618612
) -> Result<(), ProgramError> {
619-
let me_bytes = stake_pool.to_bytes();
620-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
613+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
621614
let signers = &[&authority_signature_seeds[..]];
622615

623616
let redelegate_instruction = &stake::instruction::redelegate(
@@ -673,8 +666,7 @@ impl Processor {
673666
bump_seed: u8,
674667
amount: u64,
675668
) -> Result<(), ProgramError> {
676-
let me_bytes = stake_pool.to_bytes();
677-
let authority_signature_seeds = [&me_bytes[..32], authority_type, &[bump_seed]];
669+
let authority_signature_seeds = [stake_pool.as_ref(), authority_type, &[bump_seed]];
678670
let signers = &[&authority_signature_seeds[..]];
679671

680672
let ix = spl_token_2022::instruction::mint_to(
@@ -1389,7 +1381,7 @@ impl Processor {
13891381
)?;
13901382
let ephemeral_stake_account_signer_seeds: &[&[_]] = &[
13911383
EPHEMERAL_STAKE_SEED_PREFIX,
1392-
&stake_pool_info.key.to_bytes(),
1384+
stake_pool_info.key.as_ref(),
13931385
&ephemeral_stake_seed.to_le_bytes(),
13941386
&[ephemeral_stake_bump_seed],
13951387
];
@@ -1452,8 +1444,8 @@ impl Processor {
14521444
} else {
14531445
let transient_stake_account_signer_seeds: &[&[_]] = &[
14541446
TRANSIENT_STAKE_SEED_PREFIX,
1455-
&vote_account_address.to_bytes(),
1456-
&stake_pool_info.key.to_bytes(),
1447+
vote_account_address.as_ref(),
1448+
stake_pool_info.key.as_ref(),
14571449
&transient_stake_seed.to_le_bytes(),
14581450
&[transient_stake_bump_seed],
14591451
];
@@ -1664,7 +1656,7 @@ impl Processor {
16641656
)?;
16651657
let ephemeral_stake_account_signer_seeds: &[&[_]] = &[
16661658
EPHEMERAL_STAKE_SEED_PREFIX,
1667-
&stake_pool_info.key.to_bytes(),
1659+
stake_pool_info.key.as_ref(),
16681660
&ephemeral_stake_seed.to_le_bytes(),
16691661
&[ephemeral_stake_bump_seed],
16701662
];
@@ -1730,8 +1722,8 @@ impl Processor {
17301722
// no transient stake, split
17311723
let transient_stake_account_signer_seeds: &[&[_]] = &[
17321724
TRANSIENT_STAKE_SEED_PREFIX,
1733-
&vote_account_address.to_bytes(),
1734-
&stake_pool_info.key.to_bytes(),
1725+
vote_account_address.as_ref(),
1726+
stake_pool_info.key.as_ref(),
17351727
&transient_stake_seed.to_le_bytes(),
17361728
&[transient_stake_bump_seed],
17371729
];
@@ -1940,8 +1932,8 @@ impl Processor {
19401932
)?;
19411933
let source_transient_stake_account_signer_seeds: &[&[_]] = &[
19421934
TRANSIENT_STAKE_SEED_PREFIX,
1943-
&vote_account_address.to_bytes(),
1944-
&stake_pool_info.key.to_bytes(),
1935+
vote_account_address.as_ref(),
1936+
stake_pool_info.key.as_ref(),
19451937
&source_transient_stake_seed.to_le_bytes(),
19461938
&[source_transient_stake_bump_seed],
19471939
];
@@ -1973,7 +1965,7 @@ impl Processor {
19731965
)?;
19741966
let ephemeral_stake_account_signer_seeds: &[&[_]] = &[
19751967
EPHEMERAL_STAKE_SEED_PREFIX,
1976-
&stake_pool_info.key.to_bytes(),
1968+
stake_pool_info.key.as_ref(),
19771969
&ephemeral_stake_seed.to_le_bytes(),
19781970
&[ephemeral_stake_bump_seed],
19791971
];
@@ -2076,8 +2068,8 @@ impl Processor {
20762068
)?;
20772069
let destination_transient_stake_account_signer_seeds: &[&[_]] = &[
20782070
TRANSIENT_STAKE_SEED_PREFIX,
2079-
&vote_account_address.to_bytes(),
2080-
&stake_pool_info.key.to_bytes(),
2071+
vote_account_address.as_ref(),
2072+
stake_pool_info.key.as_ref(),
20812073
&destination_transient_stake_seed.to_le_bytes(),
20822074
&[destination_transient_stake_bump_seed],
20832075
];
@@ -3560,7 +3552,7 @@ impl Processor {
35603552
crate::find_withdraw_authority_program_address(program_id, stake_pool_info.key);
35613553

35623554
let token_mint_authority_signer_seeds: &[&[_]] = &[
3563-
&stake_pool_info.key.to_bytes()[..32],
3555+
stake_pool_info.key.as_ref(),
35643556
AUTHORITY_WITHDRAW,
35653557
&[stake_withdraw_bump_seed],
35663558
];
@@ -3640,7 +3632,7 @@ impl Processor {
36403632
crate::find_withdraw_authority_program_address(program_id, stake_pool_info.key);
36413633

36423634
let token_mint_authority_signer_seeds: &[&[_]] = &[
3643-
&stake_pool_info.key.to_bytes()[..32],
3635+
stake_pool_info.key.as_ref(),
36443636
AUTHORITY_WITHDRAW,
36453637
&[stake_withdraw_bump_seed],
36463638
];

stake-pool/program/src/state.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub struct StakePool {
6262
/// signed by this authority. If no deposit authority is specified,
6363
/// then the stake pool will default to the result of:
6464
/// `Pubkey::find_program_address(
65-
/// &[&stake_pool_address.to_bytes()[..32], b"deposit"],
65+
/// &[&stake_pool_address.as_ref(), b"deposit"],
6666
/// program_id,
6767
/// )`
6868
pub stake_deposit_authority: Pubkey,
@@ -273,11 +273,7 @@ impl StakePool {
273273
bump_seed: u8,
274274
) -> Result<(), ProgramError> {
275275
let expected_address = Pubkey::create_program_address(
276-
&[
277-
&stake_pool_address.to_bytes()[..32],
278-
authority_seed,
279-
&[bump_seed],
280-
],
276+
&[stake_pool_address.as_ref(), authority_seed, &[bump_seed]],
281277
program_id,
282278
)?;
283279

stake-pool/program/tests/helpers/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2429,8 +2429,8 @@ pub fn add_stake_pool_account(
24292429
) {
24302430
let mut stake_pool_bytes = stake_pool.try_to_vec().unwrap();
24312431
// more room for optionals
2432-
stake_pool_bytes.extend_from_slice(&Pubkey::default().to_bytes());
2433-
stake_pool_bytes.extend_from_slice(&Pubkey::default().to_bytes());
2432+
stake_pool_bytes.extend_from_slice(Pubkey::default().as_ref());
2433+
stake_pool_bytes.extend_from_slice(Pubkey::default().as_ref());
24342434
let stake_pool_account = SolanaAccount::create(
24352435
ACCOUNT_RENT_EXEMPTION,
24362436
stake_pool_bytes,

stake-pool/program/tests/huge_pool.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use {
2525
// the test require so many helper accounts.
2626
// 20k is also a very safe number for the current upper bound of the network.
2727
const MAX_POOL_SIZE_WITH_REQUESTED_COMPUTE_UNITS: u32 = 20_000;
28-
const MAX_POOL_SIZE: u32 = 3_000;
28+
const MAX_POOL_SIZE: u32 = 3_200;
2929
const STAKE_AMOUNT: u64 = 200_000_000_000;
3030

3131
async fn setup(

0 commit comments

Comments
 (0)