import { SPL_STAKE_POOL_PROGRAM_ADDRESS } from "../programs/splStakePool.js"; import "../programs/index.js"; import { AccountMeta, AccountSignerMeta, Address, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlySignerAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount } from "@solana/kit"; //#region src/generated/instructions/increaseValidatorStake.d.ts export declare const INCREASE_VALIDATOR_STAKE_DISCRIMINATOR = 4; export declare function getIncreaseValidatorStakeDiscriminatorBytes(): ReadonlyUint8Array; export type IncreaseValidatorStakeInstruction = string, TAccountStaker extends string | AccountMeta = string, TAccountWithdrawAuthority extends string | AccountMeta = string, TAccountValidatorList extends string | AccountMeta = string, TAccountReserveStake extends string | AccountMeta = string, TAccountTransientStakeAccount extends string | AccountMeta = string, TAccountValidatorStakeAccount extends string | AccountMeta = string, TAccountValidatorVoteAccount extends string | AccountMeta = string, TAccountClockSysvar extends string | AccountMeta = "SysvarC1ock11111111111111111111111111111111", TAccountRentSysvar extends string | AccountMeta = "SysvarRent111111111111111111111111111111111", TAccountStakeHistorySysvar extends string | AccountMeta = "SysvarStakeHistory1111111111111111111111111", TAccountStakeConfigSysvar extends string | AccountMeta = "StakeConfig11111111111111111111111111111111", TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TAccountStakeProgram extends string | AccountMeta = "Stake11111111111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[TAccountStakePool extends string ? ReadonlyAccount : TAccountStakePool, TAccountStaker extends string ? ReadonlySignerAccount & AccountSignerMeta : TAccountStaker, TAccountWithdrawAuthority extends string ? ReadonlyAccount : TAccountWithdrawAuthority, TAccountValidatorList extends string ? WritableAccount : TAccountValidatorList, TAccountReserveStake extends string ? WritableAccount : TAccountReserveStake, TAccountTransientStakeAccount extends string ? WritableAccount : TAccountTransientStakeAccount, TAccountValidatorStakeAccount extends string ? ReadonlyAccount : TAccountValidatorStakeAccount, TAccountValidatorVoteAccount extends string ? ReadonlyAccount : TAccountValidatorVoteAccount, TAccountClockSysvar extends string ? ReadonlyAccount : TAccountClockSysvar, TAccountRentSysvar extends string ? ReadonlyAccount : TAccountRentSysvar, TAccountStakeHistorySysvar extends string ? ReadonlyAccount : TAccountStakeHistorySysvar, TAccountStakeConfigSysvar extends string ? ReadonlyAccount : TAccountStakeConfigSysvar, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountStakeProgram extends string ? ReadonlyAccount : TAccountStakeProgram, ...TRemainingAccounts]>; export type IncreaseValidatorStakeInstructionData = { discriminator: number; lamports: bigint; transientStakeSeed: bigint; }; export type IncreaseValidatorStakeInstructionDataArgs = { lamports: number | bigint; transientStakeSeed: number | bigint; }; export declare function getIncreaseValidatorStakeInstructionDataEncoder(): FixedSizeEncoder; export declare function getIncreaseValidatorStakeInstructionDataDecoder(): FixedSizeDecoder; export declare function getIncreaseValidatorStakeInstructionDataCodec(): FixedSizeCodec; export type IncreaseValidatorStakeAsyncInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority?: Address; validatorList: Address; reserveStake: Address; transientStakeAccount?: Address; validatorStakeAccount: Address; validatorVoteAccount: Address; clockSysvar?: Address; rentSysvar?: Address; stakeHistorySysvar?: Address; stakeConfigSysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: IncreaseValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: IncreaseValidatorStakeInstructionDataArgs["transientStakeSeed"]; }; /** * (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())`. * 0. `[]` Stake pool * 1. `[s]` Stake pool staker * 2. `[]` Stake pool withdraw authority * 3. `[w]` Validator list * 4. `[w]` Stake pool reserve stake * 5. `[w]` Transient stake account * 6. `[]` Validator stake account * 7. `[]` Validator vote account to delegate to * 8. '[]' Clock sysvar * 9. '[]' Rent sysvar * 10. `[]` Stake History sysvar * 11. `[]` Stake Config sysvar * 12. `[]` System program * 13. `[]` 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. */ export declare function getIncreaseValidatorStakeInstructionAsync(input: IncreaseValidatorStakeAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise>; export type IncreaseValidatorStakeInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority: Address; validatorList: Address; reserveStake: Address; transientStakeAccount: Address; validatorStakeAccount: Address; validatorVoteAccount: Address; clockSysvar?: Address; rentSysvar?: Address; stakeHistorySysvar?: Address; stakeConfigSysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: IncreaseValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: IncreaseValidatorStakeInstructionDataArgs["transientStakeSeed"]; }; /** * (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())`. * 0. `[]` Stake pool * 1. `[s]` Stake pool staker * 2. `[]` Stake pool withdraw authority * 3. `[w]` Validator list * 4. `[w]` Stake pool reserve stake * 5. `[w]` Transient stake account * 6. `[]` Validator stake account * 7. `[]` Validator vote account to delegate to * 8. '[]' Clock sysvar * 9. '[]' Rent sysvar * 10. `[]` Stake History sysvar * 11. `[]` Stake Config sysvar * 12. `[]` System program * 13. `[]` 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. */ export declare function getIncreaseValidatorStakeInstruction(input: IncreaseValidatorStakeInput, config?: { programAddress?: TProgramAddress; }): IncreaseValidatorStakeInstruction; export type ParsedIncreaseValidatorStakeInstruction = { programAddress: Address; accounts: { stakePool: TAccountMetas[0]; staker: TAccountMetas[1]; withdrawAuthority: TAccountMetas[2]; validatorList: TAccountMetas[3]; reserveStake: TAccountMetas[4]; transientStakeAccount: TAccountMetas[5]; validatorStakeAccount: TAccountMetas[6]; validatorVoteAccount: TAccountMetas[7]; clockSysvar: TAccountMetas[8]; rentSysvar: TAccountMetas[9]; stakeHistorySysvar: TAccountMetas[10]; stakeConfigSysvar: TAccountMetas[11]; systemProgram: TAccountMetas[12]; stakeProgram: TAccountMetas[13]; }; data: IncreaseValidatorStakeInstructionData; }; export declare function parseIncreaseValidatorStakeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedIncreaseValidatorStakeInstruction; //#endregion //# sourceMappingURL=increaseValidatorStake.d.ts.map