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/increaseAdditionalValidatorStake.d.ts export declare const INCREASE_ADDITIONAL_VALIDATOR_STAKE_DISCRIMINATOR = 19; export declare function getIncreaseAdditionalValidatorStakeDiscriminatorBytes(): ReadonlyUint8Array; export type IncreaseAdditionalValidatorStakeInstruction = string, TAccountStaker extends string | AccountMeta = string, TAccountWithdrawAuthority extends string | AccountMeta = string, TAccountValidatorList extends string | AccountMeta = string, TAccountReserveStake extends string | AccountMeta = string, TAccountEphemeralStake extends string | AccountMeta = string, TAccountTransientStake extends string | AccountMeta = string, TAccountValidatorStake extends string | AccountMeta = string, TAccountValidatorVote extends string | AccountMeta = string, TAccountClockSysvar extends string | AccountMeta = "SysvarC1ock11111111111111111111111111111111", 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, TAccountEphemeralStake extends string ? WritableAccount : TAccountEphemeralStake, TAccountTransientStake extends string ? WritableAccount : TAccountTransientStake, TAccountValidatorStake extends string ? ReadonlyAccount : TAccountValidatorStake, TAccountValidatorVote extends string ? ReadonlyAccount : TAccountValidatorVote, TAccountClockSysvar extends string ? ReadonlyAccount : TAccountClockSysvar, TAccountStakeHistorySysvar extends string ? ReadonlyAccount : TAccountStakeHistorySysvar, TAccountStakeConfigSysvar extends string ? ReadonlyAccount : TAccountStakeConfigSysvar, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountStakeProgram extends string ? ReadonlyAccount : TAccountStakeProgram, ...TRemainingAccounts]>; export type IncreaseAdditionalValidatorStakeInstructionData = { discriminator: number; lamports: bigint; transientStakeSeed: bigint; ephemeralStakeSeed: bigint; }; export type IncreaseAdditionalValidatorStakeInstructionDataArgs = { lamports: number | bigint; transientStakeSeed: number | bigint; ephemeralStakeSeed: number | bigint; }; export declare function getIncreaseAdditionalValidatorStakeInstructionDataEncoder(): FixedSizeEncoder; export declare function getIncreaseAdditionalValidatorStakeInstructionDataDecoder(): FixedSizeDecoder; export declare function getIncreaseAdditionalValidatorStakeInstructionDataCodec(): FixedSizeCodec; export type IncreaseAdditionalValidatorStakeAsyncInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority?: Address; validatorList: Address; reserveStake: Address; ephemeralStake: Address; transientStake: Address; validatorStake: Address; validatorVote: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; stakeConfigSysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: IncreaseAdditionalValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: IncreaseAdditionalValidatorStakeInstructionDataArgs["transientStakeSeed"]; ephemeralStakeSeed: IncreaseAdditionalValidatorStakeInstructionDataArgs["ephemeralStakeSeed"]; }; /** * (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())`. * 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]` Uninitialized ephemeral stake account to receive stake * 6. `[w]` Transient stake account * 7. `[]` Validator stake account * 8. `[]` Validator vote account to delegate to * 9. '[]' Clock 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 getIncreaseAdditionalValidatorStakeInstructionAsync(input: IncreaseAdditionalValidatorStakeAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise>; export type IncreaseAdditionalValidatorStakeInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority: Address; validatorList: Address; reserveStake: Address; ephemeralStake: Address; transientStake: Address; validatorStake: Address; validatorVote: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; stakeConfigSysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: IncreaseAdditionalValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: IncreaseAdditionalValidatorStakeInstructionDataArgs["transientStakeSeed"]; ephemeralStakeSeed: IncreaseAdditionalValidatorStakeInstructionDataArgs["ephemeralStakeSeed"]; }; /** * (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())`. * 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]` Uninitialized ephemeral stake account to receive stake * 6. `[w]` Transient stake account * 7. `[]` Validator stake account * 8. `[]` Validator vote account to delegate to * 9. '[]' Clock 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 getIncreaseAdditionalValidatorStakeInstruction(input: IncreaseAdditionalValidatorStakeInput, config?: { programAddress?: TProgramAddress; }): IncreaseAdditionalValidatorStakeInstruction; export type ParsedIncreaseAdditionalValidatorStakeInstruction = { programAddress: Address; accounts: { stakePool: TAccountMetas[0]; staker: TAccountMetas[1]; withdrawAuthority: TAccountMetas[2]; validatorList: TAccountMetas[3]; reserveStake: TAccountMetas[4]; ephemeralStake: TAccountMetas[5]; transientStake: TAccountMetas[6]; validatorStake: TAccountMetas[7]; validatorVote: TAccountMetas[8]; clockSysvar: TAccountMetas[9]; stakeHistorySysvar: TAccountMetas[10]; stakeConfigSysvar: TAccountMetas[11]; systemProgram: TAccountMetas[12]; stakeProgram: TAccountMetas[13]; }; data: IncreaseAdditionalValidatorStakeInstructionData; }; export declare function parseIncreaseAdditionalValidatorStakeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedIncreaseAdditionalValidatorStakeInstruction; //#endregion //# sourceMappingURL=increaseAdditionalValidatorStake.d.ts.map