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/decreaseAdditionalValidatorStake.d.ts export declare const DECREASE_ADDITIONAL_VALIDATOR_STAKE_DISCRIMINATOR = 20; export declare function getDecreaseAdditionalValidatorStakeDiscriminatorBytes(): ReadonlyUint8Array; export type DecreaseAdditionalValidatorStakeInstruction = string, TAccountStaker extends string | AccountMeta = string, TAccountWithdrawAuthority extends string | AccountMeta = string, TAccountValidatorList extends string | AccountMeta = string, TAccountReserveStake extends string | AccountMeta = string, TAccountCanonicalStake extends string | AccountMeta = string, TAccountEphemeralStake extends string | AccountMeta = string, TAccountTransientStake extends string | AccountMeta = string, TAccountClockSysvar extends string | AccountMeta = "SysvarC1ock11111111111111111111111111111111", TAccountStakeHistorySysvar extends string | AccountMeta = "SysvarStakeHistory1111111111111111111111111", 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, TAccountCanonicalStake extends string ? WritableAccount : TAccountCanonicalStake, TAccountEphemeralStake extends string ? WritableAccount : TAccountEphemeralStake, TAccountTransientStake extends string ? WritableAccount : TAccountTransientStake, TAccountClockSysvar extends string ? ReadonlyAccount : TAccountClockSysvar, TAccountStakeHistorySysvar extends string ? ReadonlyAccount : TAccountStakeHistorySysvar, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountStakeProgram extends string ? ReadonlyAccount : TAccountStakeProgram, ...TRemainingAccounts]>; export type DecreaseAdditionalValidatorStakeInstructionData = { discriminator: number; lamports: bigint; transientStakeSeed: bigint; ephemeralStakeSeed: bigint; }; export type DecreaseAdditionalValidatorStakeInstructionDataArgs = { lamports: number | bigint; transientStakeSeed: number | bigint; ephemeralStakeSeed: number | bigint; }; export declare function getDecreaseAdditionalValidatorStakeInstructionDataEncoder(): FixedSizeEncoder; export declare function getDecreaseAdditionalValidatorStakeInstructionDataDecoder(): FixedSizeDecoder; export declare function getDecreaseAdditionalValidatorStakeInstructionDataCodec(): FixedSizeCodec; export type DecreaseAdditionalValidatorStakeAsyncInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority?: Address; validatorList: Address; reserveStake: Address; canonicalStake: Address; ephemeralStake: Address; transientStake: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: DecreaseAdditionalValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: DecreaseAdditionalValidatorStakeInstructionDataArgs["transientStakeSeed"]; ephemeralStakeSeed: DecreaseAdditionalValidatorStakeInstructionDataArgs["ephemeralStakeSeed"]; }; /** * (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())`. * 0. `[]` Stake pool * 1. `[s]` Stake pool staker * 2. `[]` Stake pool withdraw authority * 3. `[w]` Validator list * 4. `[w]` Reserve stake account, to fund rent exempt reserve * 5. `[w]` Canonical stake account to split from * 6. `[w]` Uninitialized ephemeral stake account to receive stake * 7. `[w]` Transient stake account * 8. `[]` Clock sysvar * 9. '[]' Stake history sysvar * 10. `[]` System program * 11. `[]` Stake program */ export declare function getDecreaseAdditionalValidatorStakeInstructionAsync(input: DecreaseAdditionalValidatorStakeAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise>; export type DecreaseAdditionalValidatorStakeInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority: Address; validatorList: Address; reserveStake: Address; canonicalStake: Address; ephemeralStake: Address; transientStake: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: DecreaseAdditionalValidatorStakeInstructionDataArgs["lamports"]; transientStakeSeed: DecreaseAdditionalValidatorStakeInstructionDataArgs["transientStakeSeed"]; ephemeralStakeSeed: DecreaseAdditionalValidatorStakeInstructionDataArgs["ephemeralStakeSeed"]; }; /** * (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())`. * 0. `[]` Stake pool * 1. `[s]` Stake pool staker * 2. `[]` Stake pool withdraw authority * 3. `[w]` Validator list * 4. `[w]` Reserve stake account, to fund rent exempt reserve * 5. `[w]` Canonical stake account to split from * 6. `[w]` Uninitialized ephemeral stake account to receive stake * 7. `[w]` Transient stake account * 8. `[]` Clock sysvar * 9. '[]' Stake history sysvar * 10. `[]` System program * 11. `[]` Stake program */ export declare function getDecreaseAdditionalValidatorStakeInstruction(input: DecreaseAdditionalValidatorStakeInput, config?: { programAddress?: TProgramAddress; }): DecreaseAdditionalValidatorStakeInstruction; export type ParsedDecreaseAdditionalValidatorStakeInstruction = { programAddress: Address; accounts: { stakePool: TAccountMetas[0]; staker: TAccountMetas[1]; withdrawAuthority: TAccountMetas[2]; validatorList: TAccountMetas[3]; reserveStake: TAccountMetas[4]; canonicalStake: TAccountMetas[5]; ephemeralStake: TAccountMetas[6]; transientStake: TAccountMetas[7]; clockSysvar: TAccountMetas[8]; stakeHistorySysvar: TAccountMetas[9]; systemProgram: TAccountMetas[10]; stakeProgram: TAccountMetas[11]; }; data: DecreaseAdditionalValidatorStakeInstructionData; }; export declare function parseDecreaseAdditionalValidatorStakeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedDecreaseAdditionalValidatorStakeInstruction; //#endregion //# sourceMappingURL=decreaseAdditionalValidatorStake.d.ts.map