StakePoolInstruction

Enum StakePoolInstruction 

Source
#[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

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.

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

§

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

User data: 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

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

Fields

§lamports: u64

amount of lamports to split into the transient stake account

§transient_stake_seed: u64

seed used to create transient stake account

§

IncreaseValidatorStake

(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

User data: 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.

Fields

§lamports: u64

amount of lamports to increase on the given validator

§transient_stake_seed: u64

seed used to create transient stake account

§

SetPreferredValidator

(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.

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

§

UpdateValidatorListBalance

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

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

§

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 plus 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] Uninitialized 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,

User data: amount of pool tokens to withdraw

§

SetManager

(Manager only) Update manager

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

SetFee

(Manager only) Update fee

  1. [w] Stake pool
  2. [s] Manager

Fields

§fee: FeeType

Type of fee to update and value to update it to

§

SetStaker

(Manager or staker only) Update staker

  1. [w] Stake pool
  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] Stake pool
  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

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

Fields

§name: String

Token name

§symbol: String

Token symbol e.g. stkSOL

§uri: String

URI of the uploaded metadata of the spl-token

§

UpdateTokenMetadata

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

Fields

§name: String

Token name

§symbol: String

Token symbol e.g. stkSOL

§uri: String

URI of the uploaded metadata of the spl-token

§

IncreaseAdditionalValidatorStake

(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

User data: 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.

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.

§

DecreaseAdditionalValidatorStake

(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

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.

§

DecreaseValidatorStakeWithReserve

(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

Fields

§lamports: u64

amount of lamports to split into the transient stake account

§transient_stake_seed: u64

seed used to create transient stake account

§

Redelegate

👎Deprecated since 2.0.0: The stake redelegate instruction used in this will not be enabled.

(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

Fields

§lamports: u64
👎Deprecated since 2.0.0: The stake redelegate instruction used in this will not be enabled.

Amount of lamports to redelegate

§source_transient_stake_seed: u64
👎Deprecated since 2.0.0: The stake redelegate instruction used in this will not be enabled.

Seed used to create source transient stake account

§ephemeral_stake_seed: u64
👎Deprecated since 2.0.0: The stake redelegate instruction used in this will not be enabled.

Seed used to create destination ephemeral account.

§destination_transient_stake_seed: u64
👎Deprecated since 2.0.0: The stake redelegate instruction used in this will not be enabled.

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

§

DepositStakeWithSlippage

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,

Fields

§minimum_pool_tokens_out: u64

Minimum amount of pool tokens that must be received

§

WithdrawStakeWithSlippage

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 plus 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] Uninitialized 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,

User data: amount of pool tokens to withdraw

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

§

DepositSolWithSlippage

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.

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

§

WithdrawSolWithSlippage

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

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

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§

impl Clone for StakePoolInstruction

Source§

fn clone(&self) -> StakePoolInstruction

Returns a duplicate 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_tag: 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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

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§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V