|
18 | 18 | state::{Authorized, Lockup, Meta, StakeAuthorize, StakeStateV2}, |
19 | 19 | tools::{acceptable_reference_epoch_credits, eligible_for_deactivate_delinquent}, |
20 | 20 | }, |
21 | | - system_program, |
22 | 21 | sysvar::{epoch_rewards::EpochRewards, stake_history::StakeHistorySysvar, Sysvar}, |
23 | 22 | vote::{program as solana_vote_program, state::VoteState}, |
24 | 23 | }, |
@@ -59,11 +58,6 @@ fn set_stake_state(stake_account_info: &AccountInfo, new_state: &StakeStateV2) - |
59 | 58 | .map_err(|_| ProgramError::InvalidAccountData) |
60 | 59 | } |
61 | 60 |
|
62 | | -fn deallocate_stake_account(stake_account_info: &AccountInfo) -> ProgramResult { |
63 | | - stake_account_info.assign(&system_program::id()); |
64 | | - stake_account_info.realloc(0, false) |
65 | | -} |
66 | | - |
67 | 61 | // dont call this "move" because we have an instruction MoveLamports |
68 | 62 | fn relocate_lamports( |
69 | 63 | source_account_info: &AccountInfo, |
@@ -586,9 +580,9 @@ impl Processor { |
586 | 580 | _ => return Err(ProgramError::InvalidAccountData), |
587 | 581 | } |
588 | 582 |
|
589 | | - // Deinitialize state upon zero balance |
| 583 | + // Truncate state upon zero balance |
590 | 584 | if split_lamports == source_lamport_balance { |
591 | | - deallocate_stake_account(source_stake_account_info)?; |
| 585 | + source_stake_account_info.realloc(0, false)?; |
592 | 586 | } |
593 | 587 |
|
594 | 588 | relocate_lamports( |
@@ -672,8 +666,8 @@ impl Processor { |
672 | 666 | return Err(ProgramError::InsufficientFunds); |
673 | 667 | } |
674 | 668 |
|
675 | | - // Deinitialize state upon zero balance |
676 | | - deallocate_stake_account(source_stake_account_info)?; |
| 669 | + // Truncate state upon zero balance |
| 670 | + source_stake_account_info.realloc(0, false)?; |
677 | 671 | } else { |
678 | 672 | // a partial withdrawal must not deplete the reserve |
679 | 673 | let withdraw_lamports_and_reserve = checked_add(withdraw_lamports, reserve)?; |
@@ -789,8 +783,8 @@ impl Processor { |
789 | 783 | set_stake_state(destination_stake_account_info, &merged_state)?; |
790 | 784 | } |
791 | 785 |
|
792 | | - // Source is about to be drained, deinitialize its state |
793 | | - deallocate_stake_account(source_stake_account_info)?; |
| 786 | + // Source is about to be drained, truncate its state |
| 787 | + source_stake_account_info.realloc(0, false)?; |
794 | 788 |
|
795 | 789 | // Drain the source stake account |
796 | 790 | relocate_lamports( |
|
0 commit comments