Trait solana_stake_program::stake_state::StakeAccount [−][src]
pub trait StakeAccount { fn initialize(
&self,
authorized: &Authorized,
lockup: &Lockup,
rent: &Rent
) -> Result<(), InstructionError>; fn authorize(
&self,
signers: &HashSet<Pubkey>,
new_authority: &Pubkey,
stake_authorize: StakeAuthorize,
require_custodian_for_locked_stake_authorize: bool,
clock: &Clock,
custodian: Option<&Pubkey>
) -> Result<(), InstructionError>; fn authorize_with_seed(
&self,
authority_base: &KeyedAccount<'_>,
authority_seed: &str,
authority_owner: &Pubkey,
new_authority: &Pubkey,
stake_authorize: StakeAuthorize,
require_custodian_for_locked_stake_authorize: bool,
clock: &Clock,
custodian: Option<&Pubkey>
) -> Result<(), InstructionError>; fn delegate(
&self,
vote_account: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
config: &Config,
signers: &HashSet<Pubkey>,
can_reverse_deactivation: bool
) -> Result<(), InstructionError>; fn deactivate(
&self,
clock: &Clock,
signers: &HashSet<Pubkey>
) -> Result<(), InstructionError>; fn set_lockup(
&self,
lockup: &LockupArgs,
signers: &HashSet<Pubkey>,
clock: Option<&Clock>
) -> Result<(), InstructionError>; fn split(
&self,
lamports: u64,
split_stake: &KeyedAccount<'_>,
signers: &HashSet<Pubkey>
) -> Result<(), InstructionError>; fn merge(
&self,
invoke_context: &dyn InvokeContext,
source_stake: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
signers: &HashSet<Pubkey>,
can_merge_expired_lockups: bool
) -> Result<(), InstructionError>; fn withdraw(
&self,
lamports: u64,
to: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
withdraw_authority: &KeyedAccount<'_>,
custodian: Option<&KeyedAccount<'_>>,
prevent_withdraw_to_zero: bool
) -> Result<(), InstructionError>; }
Required methods
fn initialize(
&self,
authorized: &Authorized,
lockup: &Lockup,
rent: &Rent
) -> Result<(), InstructionError>
fn delegate(
&self,
vote_account: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
config: &Config,
signers: &HashSet<Pubkey>,
can_reverse_deactivation: bool
) -> Result<(), InstructionError>
fn deactivate(
&self,
clock: &Clock,
signers: &HashSet<Pubkey>
) -> Result<(), InstructionError>
fn set_lockup(
&self,
lockup: &LockupArgs,
signers: &HashSet<Pubkey>,
clock: Option<&Clock>
) -> Result<(), InstructionError>
fn split(
&self,
lamports: u64,
split_stake: &KeyedAccount<'_>,
signers: &HashSet<Pubkey>
) -> Result<(), InstructionError>
fn merge(
&self,
invoke_context: &dyn InvokeContext,
source_stake: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
signers: &HashSet<Pubkey>,
can_merge_expired_lockups: bool
) -> Result<(), InstructionError>
fn withdraw(
&self,
lamports: u64,
to: &KeyedAccount<'_>,
clock: &Clock,
stake_history: &StakeHistory,
withdraw_authority: &KeyedAccount<'_>,
custodian: Option<&KeyedAccount<'_>>,
prevent_withdraw_to_zero: bool
) -> Result<(), InstructionError>
Implementations on Foreign Types
Authorize the given pubkey to manage stake (deactivate, withdraw). This may be called multiple times, but will implicitly withdraw authorization from the previously authorized staker. The default staker is the owner of the stake account’s pubkey.