#[repr(C)]
pub enum StakePoolInstruction {
Show 27 variants Initialize { fee: Fee, withdrawal_fee: Fee, deposit_fee: Fee, referral_fee: u8, max_validators: u32, }, AddValidatorToPool(u32), RemoveValidatorFromPool, DecreaseValidatorStake { lamports: u64, transient_stake_seed: u64, }, IncreaseValidatorStake { lamports: u64, transient_stake_seed: u64, }, SetPreferredValidator { validator_type: PreferredValidatorType, validator_vote_address: Option<Pubkey>, }, UpdateValidatorListBalance { start_index: u32, no_merge: bool, }, UpdateStakePoolBalance, CleanupRemovedValidatorEntries, DepositStake, WithdrawStake(u64), SetManager, SetFee { fee: FeeType, }, SetStaker, DepositSol(u64), SetFundingAuthority(FundingType), WithdrawSol(u64), CreateTokenMetadata { name: String, symbol: String, uri: String, }, UpdateTokenMetadata { name: String, symbol: String, uri: String, }, IncreaseAdditionalValidatorStake { lamports: u64, transient_stake_seed: u64, ephemeral_stake_seed: u64, }, DecreaseAdditionalValidatorStake { lamports: u64, transient_stake_seed: u64, ephemeral_stake_seed: u64, }, DecreaseValidatorStakeWithReserve { lamports: u64, transient_stake_seed: u64, }, Redelegate { lamports: u64, source_transient_stake_seed: u64, ephemeral_stake_seed: u64, destination_transient_stake_seed: u64, }, DepositStakeWithSlippage { minimum_pool_tokens_out: u64, }, WithdrawStakeWithSlippage { pool_tokens_in: u64, minimum_lamports_out: u64, }, DepositSolWithSlippage { lamports_in: u64, minimum_pool_tokens_out: u64, }, WithdrawSolWithSlippage { pool_tokens_in: u64, minimum_lamports_out: u64, },
}
Expand description

Instructions supported by the StakePool program.

Variants§

§

Initialize

Fields

§fee: Fee

Fee assessed as percentage of perceived rewards

§withdrawal_fee: Fee

Fee charged per withdrawal as percentage of withdrawal

§deposit_fee: Fee

Fee charged per deposit as percentage of deposit

§referral_fee: u8

Percentage [0-100] of deposit_fee that goes to referrer

§max_validators: u32

Maximum expected number of validators

Initializes a new StakePool.

  1. [w] New StakePool to create.
  2. [s] Manager
  3. [] Staker
  4. [] Stake pool withdraw authority
  5. [w] Uninitialized validator stake list storage account
  6. [] Reserve stake account must be initialized, have zero balance, and staker / withdrawer authority set to pool withdraw authority.
  7. [] Pool token mint. Must have zero supply, owned by withdraw authority.
  8. [] Pool account to deposit the generated fee for manager.
  9. [] Token program id
  10. [] (Optional) Deposit authority that must sign all deposits. Defaults to the program address generated using find_deposit_authority_program_address, making deposits permissionless.
§

AddValidatorToPool(u32)

(Staker only) Adds stake account delegated to validator to the pool’s list of managed validators.

The stake account will have the rent-exempt amount plus max( crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation() ). It is funded from the stake pool reserve.

  1. [w] Stake pool
  2. [s] Staker
  3. [w] Reserve stake account
  4. [] Stake pool withdraw authority
  5. [w] Validator stake list storage account
  6. [w] Stake account to add to the pool
  7. [] Validator this stake account will be delegated to
  8. [] Rent sysvar
  9. [] Clock sysvar
  10. ‘[]’ Stake history sysvar
  11. ‘[]’ Stake config sysvar
  12. [] System program
  13. [] Stake program

userdata: optional non-zero u32 seed used for generating the validator stake address

§

RemoveValidatorFromPool

(Staker only) Removes validator from the pool, deactivating its stake

Only succeeds if the validator stake account has the minimum of max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()). plus the rent-exempt amount.

  1. [w] Stake pool
  2. [s] Staker
  3. [] Stake pool withdraw authority
  4. [w] Validator stake list storage account
  5. [w] Stake account to remove from the pool
  6. [w] Transient stake account, to deactivate if necessary
  7. [] Sysvar clock
  8. [] Stake program id,
§

DecreaseValidatorStake

Fields

§lamports: u64

amount of lamports to split into the transient stake account

§transient_stake_seed: u64

seed used to create transient stake account

NOTE: This instruction has been deprecated since version 0.7.0. Please use DecreaseValidatorStakeWithReserve instead.

(Staker only) Decrease active stake on a validator, eventually moving it to the reserve

Internally, this instruction splits a validator stake account into its corresponding transient stake account and deactivates it.

In order to rebalance the pool without taking custody, the staker needs a way of reducing the stake on a stake account. This instruction splits some amount of stake, up to the total activated stake, from the canonical validator stake account, into its “transient” stake account.

The instruction only succeeds if the transient stake account does not exist. The amount of lamports to move must be at least rent-exemption plus max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()).

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Canonical stake account to split from
  6. [w] Transient stake account to receive split
  7. [] Clock sysvar
  8. [] Rent sysvar
  9. [] System program
  10. [] Stake program
§

IncreaseValidatorStake

Fields

§lamports: u64

amount of lamports to increase on the given validator

§transient_stake_seed: u64

seed used to create transient stake account

(Staker only) Increase stake on a validator from the reserve account

Internally, this instruction splits reserve stake into a transient stake account and delegate to the appropriate validator. UpdateValidatorListBalance will do the work of merging once it’s ready.

This instruction only succeeds if the transient stake account does not exist. The minimum amount to move is rent-exemption plus max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()).

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Stake pool reserve stake
  6. [w] Transient stake account
  7. [] Validator stake account
  8. [] Validator vote account to delegate to
  9. ‘[]’ Clock sysvar
  10. ‘[]’ Rent sysvar
  11. [] Stake History sysvar
  12. [] Stake Config sysvar
  13. [] System program
  14. [] Stake program userdata: amount of lamports to increase on the given validator. The actual amount split into the transient stake account is: lamports + stake_rent_exemption The rent-exemption of the stake account is withdrawn back to the reserve after it is merged.
§

SetPreferredValidator

Fields

§validator_type: PreferredValidatorType

Affected operation (deposit or withdraw)

§validator_vote_address: Option<Pubkey>

Validator vote account that deposits or withdraws must go through, unset with None

(Staker only) Set the preferred deposit or withdraw stake account for the stake pool

In order to avoid users abusing the stake pool as a free conversion between SOL staked on different validators, the staker can force all deposits and/or withdraws to go to one chosen account, or unset that account.

  1. [w] Stake pool
  2. [s] Stake pool staker
  3. [] Validator list

Fails if the validator is not part of the stake pool.

§

UpdateValidatorListBalance

Fields

§start_index: u32

Index to start updating on the validator list

§no_merge: bool

If true, don’t try merging transient stake accounts into the reserve or validator stake account. Useful for testing or if a particular stake account is in a bad state, but we still want to update

Updates balances of validator and transient stake accounts in the pool

While going through the pairs of validator and transient stake accounts, if the transient stake is inactive, it is merged into the reserve stake account. If the transient stake is active and has matching credits observed, it is merged into the canonical validator stake account. In all other states, nothing is done, and the balance is simply added to the canonical stake account balance.

  1. [] Stake pool
  2. [] Stake pool withdraw authority
  3. [w] Validator stake list storage account
  4. [w] Reserve stake account
  5. [] Sysvar clock
  6. [] Sysvar stake history
  7. [] Stake program
  8. ..7+2N ` [] N pairs of validator and transient stake accounts
§

UpdateStakePoolBalance

Updates total pool balance based on balances in the reserve and validator list

  1. [w] Stake pool
  2. [] Stake pool withdraw authority
  3. [w] Validator stake list storage account
  4. [] Reserve stake account
  5. [w] Account to receive pool fee tokens
  6. [w] Pool mint account
  7. [] Pool token program
§

CleanupRemovedValidatorEntries

Cleans up validator stake account entries marked as ReadyForRemoval

  1. [] Stake pool
  2. [w] Validator stake list storage account
§

DepositStake

Deposit some stake into the pool. The output is a “pool” token representing ownership into the pool. Inputs are converted to the current ratio.

  1. [w] Stake pool
  2. [w] Validator stake list storage account
  3. [s]/[] Stake pool deposit authority
  4. [] Stake pool withdraw authority
  5. [w] Stake account to join the pool (withdraw authority for the stake account should be first set to the stake pool deposit authority)
  6. [w] Validator stake account for the stake account to be merged with
  7. [w] Reserve stake account, to withdraw rent exempt reserve
  8. [w] User account to receive pool tokens
  9. [w] Account to receive pool fee tokens
  10. [w] Account to receive a portion of pool fee tokens as referral fees
  11. [w] Pool token mint account
  12. ‘[]’ Sysvar clock account
  13. ‘[]’ Sysvar stake history account
  14. [] Pool token program id,
  15. [] Stake program id,
§

WithdrawStake(u64)

Withdraw the token from the pool at the current ratio.

Succeeds if the stake account has enough SOL to cover the desired amount of pool tokens, and if the withdrawal keeps the total staked amount above the minimum of rent-exempt amount + max( crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation() ).

When allowing withdrawals, the order of priority goes:

  • preferred withdraw validator stake account (if set)
  • validator stake accounts
  • transient stake accounts
  • reserve stake account OR totally remove validator stake accounts

A user can freely withdraw from a validator stake account, and if they are all at the minimum, then they can withdraw from transient stake accounts, and if they are all at minimum, then they can withdraw from the reserve or remove any validator from the pool.

  1. [w] Stake pool
  2. [w] Validator stake list storage account
  3. [] Stake pool withdraw authority
  4. [w] Validator or reserve stake account to split
  5. [w] Unitialized stake account to receive withdrawal
  6. [] User account to set as a new withdraw authority
  7. [s] User transfer authority, for pool token account
  8. [w] User account with pool tokens to burn from
  9. [w] Account to receive pool fee tokens
  10. [w] Pool token mint account
  11. [] Sysvar clock account (required)
  12. [] Pool token program id
  13. [] Stake program id, userdata: amount of pool tokens to withdraw
§

SetManager

(Manager only) Update manager

  1. [w] StakePool
  2. [s] Manager
  3. [s] New manager
  4. [] New manager fee account
§

SetFee

Fields

§fee: FeeType

Type of fee to update and value to update it to

(Manager only) Update fee

  1. [w] StakePool
  2. [s] Manager
§

SetStaker

(Manager or staker only) Update staker

  1. [w] StakePool
  2. [s] Manager or current staker
  3. ’[]` New staker pubkey
§

DepositSol(u64)

Deposit SOL directly into the pool’s reserve account. The output is a “pool” token representing ownership into the pool. Inputs are converted to the current ratio.

  1. [w] Stake pool
  2. [] Stake pool withdraw authority
  3. [w] Reserve stake account, to deposit SOL
  4. [s] Account providing the lamports to be deposited into the pool
  5. [w] User account to receive pool tokens
  6. [w] Account to receive fee tokens
  7. [w] Account to receive a portion of fee as referral fees
  8. [w] Pool token mint account
  9. [] System program account
  10. [] Token program id
  11. [s] (Optional) Stake pool sol deposit authority.
§

SetFundingAuthority(FundingType)

(Manager only) Update SOL deposit, stake deposit, or SOL withdrawal authority.

  1. [w] StakePool
  2. [s] Manager
  3. ’[]` New authority pubkey or none
§

WithdrawSol(u64)

Withdraw SOL directly from the pool’s reserve account. Fails if the reserve does not have enough SOL.

  1. [w] Stake pool
  2. [] Stake pool withdraw authority
  3. [s] User transfer authority, for pool token account
  4. [w] User account to burn pool tokens
  5. [w] Reserve stake account, to withdraw SOL
  6. [w] Account receiving the lamports from the reserve, must be a system account
  7. [w] Account to receive pool fee tokens
  8. [w] Pool token mint account
  9. ‘[]’ Clock sysvar
  10. ‘[]’ Stake history sysvar
  11. [] Stake program account
  12. [] Token program id
  13. [s] (Optional) Stake pool sol withdraw authority
§

CreateTokenMetadata

Fields

§name: String

Token name

§symbol: String

Token symbol e.g. stkSOL

§uri: String

URI of the uploaded metadata of the spl-token

Create token metadata for the stake-pool token in the metaplex-token program 0. [] Stake pool

  1. [s] Manager
  2. [] Stake pool withdraw authority
  3. [] Pool token mint account
  4. [s, w] Payer for creation of token metadata account
  5. [w] Token metadata account
  6. [] Metadata program id
  7. [] System program id
§

UpdateTokenMetadata

Fields

§name: String

Token name

§symbol: String

Token symbol e.g. stkSOL

§uri: String

URI of the uploaded metadata of the spl-token

Update token metadata for the stake-pool token in the metaplex-token program

  1. [] Stake pool
  2. [s] Manager
  3. [] Stake pool withdraw authority
  4. [w] Token metadata account
  5. [] Metadata program id
§

IncreaseAdditionalValidatorStake

Fields

§lamports: u64

amount of lamports to increase on the given validator

§transient_stake_seed: u64

seed used to create transient stake account

§ephemeral_stake_seed: u64

seed used to create ephemeral account.

(Staker only) Increase stake on a validator again in an epoch.

Works regardless if the transient stake account exists.

Internally, this instruction splits reserve stake into an ephemeral stake account, activates it, then merges or splits it into the transient stake account delegated to the appropriate validator. UpdateValidatorListBalance will do the work of merging once it’s ready.

The minimum amount to move is rent-exemption plus max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()).

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Stake pool reserve stake
  6. [w] Uninitialized ephemeral stake account to receive stake
  7. [w] Transient stake account
  8. [] Validator stake account
  9. [] Validator vote account to delegate to
  10. ‘[]’ Clock sysvar
  11. [] Stake History sysvar
  12. [] Stake Config sysvar
  13. [] System program
  14. [] Stake program userdata: amount of lamports to increase on the given validator. The actual amount split into the transient stake account is: lamports + stake_rent_exemption The rent-exemption of the stake account is withdrawn back to the reserve after it is merged.
§

DecreaseAdditionalValidatorStake

Fields

§lamports: u64

amount of lamports to split into the transient stake account

§transient_stake_seed: u64

seed used to create transient stake account

§ephemeral_stake_seed: u64

seed used to create ephemeral account.

(Staker only) Decrease active stake again from a validator, eventually moving it to the reserve

Works regardless if the transient stake account already exists.

Internally, this instruction:

  • withdraws rent-exempt reserve lamports from the reserve into the ephemeral stake
  • splits a validator stake account into an ephemeral stake account
  • deactivates the ephemeral account
  • merges or splits the ephemeral account into the transient stake account delegated to the appropriate validator

The amount of lamports to move must be at least max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()).

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Reserve stake account, to fund rent exempt reserve
  6. [w] Canonical stake account to split from
  7. [w] Uninitialized ephemeral stake account to receive stake
  8. [w] Transient stake account
  9. [] Clock sysvar
  10. ‘[]’ Stake history sysvar
  11. [] System program
  12. [] Stake program
§

DecreaseValidatorStakeWithReserve

Fields

§lamports: u64

amount of lamports to split into the transient stake account

§transient_stake_seed: u64

seed used to create transient stake account

(Staker only) Decrease active stake on a validator, eventually moving it to the reserve

Internally, this instruction:

  • withdraws enough lamports to make the transient account rent-exempt
  • splits from a validator stake account into a transient stake account
  • deactivates the transient stake account

In order to rebalance the pool without taking custody, the staker needs a way of reducing the stake on a stake account. This instruction splits some amount of stake, up to the total activated stake, from the canonical validator stake account, into its “transient” stake account.

The instruction only succeeds if the transient stake account does not exist. The amount of lamports to move must be at least rent-exemption plus max(crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation()).

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Reserve stake account, to fund rent exempt reserve
  6. [w] Canonical stake account to split from
  7. [w] Transient stake account to receive split
  8. [] Clock sysvar
  9. ‘[]’ Stake history sysvar
  10. [] System program
  11. [] Stake program
§

Redelegate

Fields

§lamports: u64

Amount of lamports to redelegate

§source_transient_stake_seed: u64

Seed used to create source transient stake account

§ephemeral_stake_seed: u64

Seed used to create destination ephemeral account.

§destination_transient_stake_seed: u64

Seed used to create destination transient stake account. If there is already transient stake, this must match the current seed, otherwise it can be anything

(Staker only) Redelegate active stake on a validator, eventually moving it to another

Internally, this instruction splits a validator stake account into its corresponding transient stake account, redelegates it to an ephemeral stake account, then merges that stake into the destination transient stake account.

In order to rebalance the pool without taking custody, the staker needs a way of reducing the stake on a stake account. This instruction splits some amount of stake, up to the total activated stake, from the canonical validator stake account, into its “transient” stake account.

The instruction only succeeds if the source transient stake account and ephemeral stake account do not exist.

The amount of lamports to move must be at least rent-exemption plus the minimum delegation amount. Rent-exemption plus minimum delegation is required for the destination ephemeral stake account.

The rent-exemption for the source transient account comes from the stake pool reserve, if needed.

The amount that arrives at the destination validator in the end is redelegate_lamports - rent_exemption if the destination transient account does not exist, and redelegate_lamports if the destination transient account already exists. The rent_exemption is not activated when creating the destination transient stake account, but if it already exists, then the full amount is delegated.

  1. [] Stake pool
  2. [s] Stake pool staker
  3. [] Stake pool withdraw authority
  4. [w] Validator list
  5. [w] Reserve stake account, to withdraw rent exempt reserve
  6. [w] Source canonical stake account to split from
  7. [w] Source transient stake account to receive split and be redelegated
  8. [w] Uninitialized ephemeral stake account to receive redelegation
  9. [w] Destination transient stake account to receive ephemeral stake by merge
  10. [] Destination stake account to receive transient stake after activation
  11. [] Destination validator vote account
  12. [] Clock sysvar
  13. [] Stake History sysvar
  14. [] Stake Config sysvar
  15. [] System program
  16. [] Stake program
§

DepositStakeWithSlippage

Fields

§minimum_pool_tokens_out: u64

Minimum amount of pool tokens that must be received

Deposit some stake into the pool, with a specified slippage constraint. The output is a “pool” token representing ownership into the pool. Inputs are converted at the current ratio.

  1. [w] Stake pool
  2. [w] Validator stake list storage account
  3. [s]/[] Stake pool deposit authority
  4. [] Stake pool withdraw authority
  5. [w] Stake account to join the pool (withdraw authority for the stake account should be first set to the stake pool deposit authority)
  6. [w] Validator stake account for the stake account to be merged with
  7. [w] Reserve stake account, to withdraw rent exempt reserve
  8. [w] User account to receive pool tokens
  9. [w] Account to receive pool fee tokens
  10. [w] Account to receive a portion of pool fee tokens as referral fees
  11. [w] Pool token mint account
  12. ‘[]’ Sysvar clock account
  13. ‘[]’ Sysvar stake history account
  14. [] Pool token program id,
  15. [] Stake program id,
§

WithdrawStakeWithSlippage

Fields

§pool_tokens_in: u64

Pool tokens to burn in exchange for lamports

§minimum_lamports_out: u64

Minimum amount of lamports that must be received

Withdraw the token from the pool at the current ratio, specifying a minimum expected output lamport amount.

Succeeds if the stake account has enough SOL to cover the desired amount of pool tokens, and if the withdrawal keeps the total staked amount above the minimum of rent-exempt amount + max( crate::MINIMUM_ACTIVE_STAKE, solana_program::stake::tools::get_minimum_delegation() ).

  1. [w] Stake pool
  2. [w] Validator stake list storage account
  3. [] Stake pool withdraw authority
  4. [w] Validator or reserve stake account to split
  5. [w] Unitialized stake account to receive withdrawal
  6. [] User account to set as a new withdraw authority
  7. [s] User transfer authority, for pool token account
  8. [w] User account with pool tokens to burn from
  9. [w] Account to receive pool fee tokens
  10. [w] Pool token mint account
  11. [] Sysvar clock account (required)
  12. [] Pool token program id
  13. [] Stake program id, userdata: amount of pool tokens to withdraw
§

DepositSolWithSlippage

Fields

§lamports_in: u64

Amount of lamports to deposit into the reserve

§minimum_pool_tokens_out: u64

Minimum amount of pool tokens that must be received

Deposit SOL directly into the pool’s reserve account, with a specified slippage constraint. The output is a “pool” token representing ownership into the pool. Inputs are converted at the current ratio.

  1. [w] Stake pool
  2. [] Stake pool withdraw authority
  3. [w] Reserve stake account, to deposit SOL
  4. [s] Account providing the lamports to be deposited into the pool
  5. [w] User account to receive pool tokens
  6. [w] Account to receive fee tokens
  7. [w] Account to receive a portion of fee as referral fees
  8. [w] Pool token mint account
  9. [] System program account
  10. [] Token program id
  11. [s] (Optional) Stake pool sol deposit authority.
§

WithdrawSolWithSlippage

Fields

§pool_tokens_in: u64

Pool tokens to burn in exchange for lamports

§minimum_lamports_out: u64

Minimum amount of lamports that must be received

Withdraw SOL directly from the pool’s reserve account. Fails if the reserve does not have enough SOL or if the slippage constraint is not met.

  1. [w] Stake pool
  2. [] Stake pool withdraw authority
  3. [s] User transfer authority, for pool token account
  4. [w] User account to burn pool tokens
  5. [w] Reserve stake account, to withdraw SOL
  6. [w] Account receiving the lamports from the reserve, must be a system account
  7. [w] Account to receive pool fee tokens
  8. [w] Pool token mint account
  9. ‘[]’ Clock sysvar
  10. ‘[]’ Stake history sysvar
  11. [] Stake program account
  12. [] Token program id
  13. [s] (Optional) Stake pool sol withdraw authority

Trait Implementations§

source§

impl BorshDeserialize for StakePoolInstruction

source§

fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>

source§

fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>

Deserializes this instance from a given slice of bytes. Updates the buffer to point at the remaining bytes.
source§

fn try_from_slice(v: &[u8]) -> Result<Self, Error>

Deserialize this instance from a slice of bytes.
source§

fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>
where R: Read,

source§

impl BorshSerialize for StakePoolInstruction

source§

fn serialize<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

fn try_to_vec(&self) -> Result<Vec<u8>, Error>

Serialize this instance into a vector of bytes.
source§

impl Clone for StakePoolInstruction

source§

fn clone(&self) -> StakePoolInstruction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StakePoolInstruction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl EnumExt for StakePoolInstruction

source§

fn deserialize_variant<R: Read>( reader: &mut R, variant_idx: u8 ) -> Result<Self, Error>

Deserialises given variant of an enum from the reader. Read more
source§

impl PartialEq for StakePoolInstruction

source§

fn eq(&self, other: &StakePoolInstruction) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for StakePoolInstruction

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> AbiExample for T

§

default fn example() -> T

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V