Remove legacy_stake program
This commit is contained in:
parent
4a4881d30f
commit
2b50433099
|
@ -1,88 +0,0 @@
|
||||||
use crate::{config, legacy_stake_state::StakeAccount, stake_instruction::StakeInstruction};
|
|
||||||
use log::*;
|
|
||||||
use solana_sdk::{
|
|
||||||
instruction::InstructionError,
|
|
||||||
keyed_account::{from_keyed_account, get_signers, next_keyed_account, KeyedAccount},
|
|
||||||
process_instruction::InvokeContext,
|
|
||||||
program_utils::limited_deserialize,
|
|
||||||
pubkey::Pubkey,
|
|
||||||
sysvar::{clock::Clock, rent::Rent, stake_history::StakeHistory},
|
|
||||||
};
|
|
||||||
|
|
||||||
pub fn process_instruction(
|
|
||||||
_program_id: &Pubkey,
|
|
||||||
keyed_accounts: &[KeyedAccount],
|
|
||||||
data: &[u8],
|
|
||||||
_invoke_context: &mut dyn InvokeContext,
|
|
||||||
) -> Result<(), InstructionError> {
|
|
||||||
trace!("process_instruction: {:?}", data);
|
|
||||||
trace!("keyed_accounts: {:?}", keyed_accounts);
|
|
||||||
|
|
||||||
let signers = get_signers(keyed_accounts);
|
|
||||||
|
|
||||||
let keyed_accounts = &mut keyed_accounts.iter();
|
|
||||||
let me = &next_keyed_account(keyed_accounts)?;
|
|
||||||
|
|
||||||
match limited_deserialize(data)? {
|
|
||||||
StakeInstruction::Initialize(authorized, lockup) => me.initialize(
|
|
||||||
&authorized,
|
|
||||||
&lockup,
|
|
||||||
&from_keyed_account::<Rent>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
),
|
|
||||||
StakeInstruction::Authorize(authorized_pubkey, stake_authorize) => {
|
|
||||||
me.authorize(&signers, &authorized_pubkey, stake_authorize)
|
|
||||||
}
|
|
||||||
StakeInstruction::AuthorizeWithSeed(args) => {
|
|
||||||
let authority_base = next_keyed_account(keyed_accounts)?;
|
|
||||||
me.authorize_with_seed(
|
|
||||||
&authority_base,
|
|
||||||
&args.authority_seed,
|
|
||||||
&args.authority_owner,
|
|
||||||
&args.new_authorized_pubkey,
|
|
||||||
args.stake_authorize,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
StakeInstruction::DelegateStake => {
|
|
||||||
let vote = next_keyed_account(keyed_accounts)?;
|
|
||||||
|
|
||||||
me.delegate(
|
|
||||||
&vote,
|
|
||||||
&from_keyed_account::<Clock>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&from_keyed_account::<StakeHistory>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&config::from_keyed_account(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&signers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
StakeInstruction::Split(lamports) => {
|
|
||||||
let split_stake = &next_keyed_account(keyed_accounts)?;
|
|
||||||
me.split(lamports, split_stake, &signers)
|
|
||||||
}
|
|
||||||
StakeInstruction::Merge => {
|
|
||||||
let source_stake = &next_keyed_account(keyed_accounts)?;
|
|
||||||
me.merge(
|
|
||||||
source_stake,
|
|
||||||
&from_keyed_account::<Clock>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&from_keyed_account::<StakeHistory>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&signers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
StakeInstruction::Withdraw(lamports) => {
|
|
||||||
let to = &next_keyed_account(keyed_accounts)?;
|
|
||||||
me.withdraw(
|
|
||||||
lamports,
|
|
||||||
to,
|
|
||||||
&from_keyed_account::<Clock>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&from_keyed_account::<StakeHistory>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
next_keyed_account(keyed_accounts)?,
|
|
||||||
keyed_accounts.next(),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
StakeInstruction::Deactivate => me.deactivate(
|
|
||||||
&from_keyed_account::<Clock>(next_keyed_account(keyed_accounts)?)?,
|
|
||||||
&signers,
|
|
||||||
),
|
|
||||||
|
|
||||||
StakeInstruction::SetLockup(lockup) => me.set_lockup(&lockup, &signers),
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,8 +2,6 @@
|
||||||
use solana_sdk::genesis_config::GenesisConfig;
|
use solana_sdk::genesis_config::GenesisConfig;
|
||||||
|
|
||||||
pub mod config;
|
pub mod config;
|
||||||
pub mod legacy_stake_processor;
|
|
||||||
pub mod legacy_stake_state;
|
|
||||||
pub mod stake_instruction;
|
pub mod stake_instruction;
|
||||||
pub mod stake_state;
|
pub mod stake_state;
|
||||||
|
|
||||||
|
|
|
@ -60,14 +60,10 @@ fn genesis_builtins() -> Vec<Builtin> {
|
||||||
solana_vote_program::id(),
|
solana_vote_program::id(),
|
||||||
with_program_logging!(solana_vote_program::vote_instruction::process_instruction),
|
with_program_logging!(solana_vote_program::vote_instruction::process_instruction),
|
||||||
),
|
),
|
||||||
// Remove legacy_stake_processor and move stake_instruction::process_instruction back to
|
|
||||||
// genesis_builtins around the v1.6 timeframe
|
|
||||||
Builtin::new(
|
Builtin::new(
|
||||||
"stake_program",
|
"stake_program",
|
||||||
solana_stake_program::id(),
|
solana_stake_program::id(),
|
||||||
with_program_logging!(
|
with_program_logging!(solana_stake_program::stake_instruction::process_instruction),
|
||||||
solana_stake_program::legacy_stake_processor::process_instruction
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
Builtin::new(
|
Builtin::new(
|
||||||
"config_program",
|
"config_program",
|
||||||
|
@ -92,8 +88,7 @@ pub enum ActivationType {
|
||||||
/// normal child Bank creation.
|
/// normal child Bank creation.
|
||||||
/// https://github.com/solana-labs/solana/blob/84b139cc94b5be7c9e0c18c2ad91743231b85a0d/runtime/src/bank.rs#L1723
|
/// https://github.com/solana-labs/solana/blob/84b139cc94b5be7c9e0c18c2ad91743231b85a0d/runtime/src/bank.rs#L1723
|
||||||
fn feature_builtins() -> Vec<(Builtin, Pubkey, ActivationType)> {
|
fn feature_builtins() -> Vec<(Builtin, Pubkey, ActivationType)> {
|
||||||
vec![
|
vec![(
|
||||||
(
|
|
||||||
Builtin::new(
|
Builtin::new(
|
||||||
"secp256k1_program",
|
"secp256k1_program",
|
||||||
solana_sdk::secp256k1_program::id(),
|
solana_sdk::secp256k1_program::id(),
|
||||||
|
@ -101,17 +96,7 @@ fn feature_builtins() -> Vec<(Builtin, Pubkey, ActivationType)> {
|
||||||
),
|
),
|
||||||
feature_set::secp256k1_program_enabled::id(),
|
feature_set::secp256k1_program_enabled::id(),
|
||||||
ActivationType::NewProgram,
|
ActivationType::NewProgram,
|
||||||
),
|
)]
|
||||||
(
|
|
||||||
Builtin::new(
|
|
||||||
"stake_program_v3",
|
|
||||||
solana_stake_program::id(),
|
|
||||||
solana_stake_program::stake_instruction::process_instruction,
|
|
||||||
),
|
|
||||||
feature_set::stake_program_v3::id(),
|
|
||||||
ActivationType::NewVersion,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get() -> Builtins {
|
pub(crate) fn get() -> Builtins {
|
||||||
|
|
Loading…
Reference in New Issue