StakePoolProgram class

Stake Pool Program

Inheritance

Properties

hashCode int
The hash code for this object.
no setterinherited
pubkey Pubkey
The public key that identifies this program (i.e. program id).
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

checkDeployed(Connection connection) Future<void>
Check that the program has been deployed to the cluster and is an executable program.
inherited
createTransactionIntruction(Enum instruction, {required List<AccountMeta> keys, List<Iterable<int>> data = const []}) TransactionInstruction
Creates a TransactionInstruction for the program instruction.
inherited
encodeInstruction<T extends Enum>(T instruction) Iterable<int>
Encodes the program instruction.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

programId Pubkey
The program id.
no setter

Static Methods

addValidatorToPool({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey reserveStake, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey stakeAccount, required Pubkey voteAccount, u32? seed}) TransactionInstruction
(Staker only) Adds a stake account delegated to validator, to the pool's list of managed validators.
cleanupRemovedValidatorEntries({required Pubkey stakePoolAddress, required Pubkey validatorList}) TransactionInstruction
Cleans up validator stake account entries marked as ready for removal.
createTokenMetadata({required Pubkey stakePoolAddress, required Pubkey manager, required Pubkey withdrawAuthority, required Pubkey poolMint, required Pubkey payer, required Pubkey tokenMetadataAccount, required String name, required String symbol, required String uri}) TransactionInstruction
Create token metadata for the stake-pool token in the metaplex-token program.
decreaseAdditionalValidatorStake({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey stakeAccount, required Pubkey uninitializedStakeAccount, required Pubkey transientStakeAccount, required bu64 lamports, required bu64 transientStakeSeed, required bu64 ephemeralStakeSeed}) TransactionInstruction
(Staker only) Decrease active stake again from a validator, eventually moving it to the reserve.
decreaseValidatorStake({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey stakeAccount, required Pubkey transientStakeAccount, required bu64 lamports, required bu64 transientStakeSeed}) TransactionInstruction
(Staker only) Decrease active stake on a validator, eventually moving it to the reserve.
depositSol({required Pubkey stakePoolAddress, required Pubkey withdrawAuthority, required Pubkey reserveStake, required Pubkey payer, required Pubkey payerTokenAccount, required Pubkey feeAccount, required Pubkey referralFeeAccount, required Pubkey poolMint, Pubkey? depositAuthority, required bu64 lamports}) TransactionInstruction
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.
depositStake({required Pubkey stakePoolAddress, required Pubkey validatorList, required Pubkey depositAuthority, bool isDepositAuthoritySigner = false, required Pubkey withdrawAuthority, required Pubkey stakeAccount, required Pubkey validatorStakeAccount, required Pubkey reserveStake, required Pubkey userTokenAccount, required Pubkey tokenAccount, required Pubkey referralFeeAccount, required Pubkey poolMint}) TransactionInstruction
Deposit some stake into the pool. The output is a "pool" token representing ownership into the pool. Inputs are converted to the current ratio.
findDepositAuthorityProgramAddress(Pubkey stakePoolAddress) ProgramAddress
Find the deposit authority account address of the given stakePoolAddress.
findEphemeralStakeProgramAddress(Pubkey stakePoolAddress, bu64 seed) ProgramAddress
Find the ephemeral stake account address of stakePoolAddress and seed (u64).
findStakeProgramAddress(Pubkey voteAccountAddress, Pubkey stakePoolAddress, [bu64? seed]) ProgramAddress
Find the stake account address of the given validator voteAccountAddress and stakePoolAddress.
findTransientStakeProgramAddress(Pubkey voteAccountAddress, Pubkey stakePoolAddress, bu64 seed) ProgramAddress
Find the transient stake account address of the given validator voteAccountAddress, stakePoolAddress and seed (u64).
findWithdrawAuthorityProgramAddress(Pubkey stakePoolAddress) ProgramAddress
Find the withdraw authority account address of the given stakePoolAddress.
increaseAdditionalValidatorStake({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey reserveStake, required Pubkey uninitializedStakeAccount, required Pubkey transientStakeAccount, required Pubkey validatorStakeAccount, required Pubkey voteAccount, required bu64 lamports, required bu64 transientStakeSeed, required bu64 ephemeralStakeSeed}) TransactionInstruction
(Staker only) Increase stake on a validator again in an epoch.
increaseValidatorStake({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey reserveStake, required Pubkey transientStakeAccount, required Pubkey validatorStakeAccount, required Pubkey validatorVoteAccount, required bu64 lamports, required bu64 transientStakeSeed}) TransactionInstruction
(Staker only) Increase stake on a validator from the reserve account.
initialize({required Pubkey stakePoolAddress, required Pubkey manager, required Pubkey staker, Pubkey? withdrawAuthority, required Pubkey validatorList, required Pubkey reserveStake, required Pubkey poolMint, required Pubkey managerFeeAccount, Pubkey? depositAuthority, required Fee fee, required Fee withdrawalFee, required Fee depositFee, required u8 referralFee, required u32 maxValidators}) TransactionInstruction
Initializes a new StakePool.
redelegate({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey sourceStakeAccount, required Pubkey sourceTransientStakeAccount, required Pubkey uninitializedEphemeralStakeAccount, required Pubkey destinationTransientStakeAccount, required Pubkey destinationStakeAccount, required Pubkey destinationVoteAccount, required bu64 lamports, required bu64 sourceTransientStakeSeed, required bu64 ephemeralStakeSeed, required bu64 destinationTransientStakeSeed}) TransactionInstruction
(Staker only) Redelegate active stake on a validator, eventually moving it to another.
removeValidatorFromPool({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey stakeAccount, required Pubkey transientStakeAccount}) TransactionInstruction
(Staker only) Removes a validator from the pool, deactivating its stake.
setFee({required Pubkey stakePoolAddress, required Pubkey manager, required FeeType fee}) TransactionInstruction
(Manager only) Update fee.
setFundingAuthority({required Pubkey stakePoolAddress, required Pubkey manager, required Pubkey? newAuthority, required FundingType fundingType}) TransactionInstruction
(Manager only) Update SOL deposit, stake deposit, or SOL withdrawal authority.
setManager({required Pubkey stakePoolAddress, required Pubkey manager, required Pubkey newManager, required Pubkey newManagerFeeAccount}) TransactionInstruction
(Manager only) Update manager.
setPreferredValidator({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey validatorList, required PreferredValidatorType validatorType, required Pubkey? validatorVoteAddress}) TransactionInstruction
(Staker only) Set the preferred deposit or withdraw stake account for the stake pool.
setStaker({required Pubkey stakePoolAddress, required Pubkey staker, required Pubkey newStaker}) TransactionInstruction
(Manager or staker only) Update staker.
updateStakePoolBalance({required Pubkey stakePoolAddress, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey reserveStake, required Pubkey managerFeeAccount, required Pubkey poolMint}) TransactionInstruction
Updates total pool balance based on balances in the reserve and validator list.
updateTokenMetadata({required Pubkey stakePoolAddress, required Pubkey manager, required Pubkey withdrawAuthority, required Pubkey tokenMetadataAccount, required String name, required String symbol, required String uri}) TransactionInstruction
Update token metadata for the stake-pool token in the metaplex-token program.
updateValidatorListBalance({required Pubkey stakePoolAddress, required Pubkey withdrawAuthority, required Pubkey validatorList, required Pubkey reserveStake, required List<Pubkey> validatorAndTransientStakeAccounts, required u32 startIndex, required bool noMerge}) TransactionInstruction
Updates balances of validator and transient stake accounts in the pool.
withdrawSol({required Pubkey stakePoolAddress, required Pubkey withdrawAuthority, required Pubkey userTransferAuthority, required Pubkey userTokenAccount, required Pubkey reserveStake, required Pubkey receiverAccount, required Pubkey receiverTokenAccount, required Pubkey poolMint, Pubkey? solWithdrawAuthority, required bu64 lamports}) TransactionInstruction
Withdraw SOL directly from the pool's reserve account. Fails if the reserve does not have enough SOL.
withdrawStake({required Pubkey stakePoolAddress, required Pubkey validatorList, required Pubkey withdrawAuthority, required Pubkey validatorOrReserveStakeAccount, required Pubkey unitializedStakeAccount, required Pubkey userWithdrawAuthority, required Pubkey userTransferAuthority, required Pubkey userTokenAccount, required Pubkey managerFeeAccount, required Pubkey poolMint, required bu64 lamports}) TransactionInstruction
Withdraw the token from the pool at the current ratio.

Constants

depositAuthoritySeed → const String
The deposit authority seed.
ephemeralStakeSeedPrefix → const String
The ephemeral stake account seed.
maxValidatorsToUpdate → const int
Maximum number of validators to update during UpdateValidatorListBalance.
minimumActiveStake → const int
Minimum amount of staked SOL required in a validator stake account to allow for merges without a mismatch on credits observed.
transientStakeSeedPrefix → const String
The transient stake account seed.
withdrawAuthoritySeed → const String
The withdrawal authority seed.