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/decreaseValidatorStakeWithReserve.d.ts export declare const DECREASE_VALIDATOR_STAKE_WITH_RESERVE_DISCRIMINATOR = 21; export declare function getDecreaseValidatorStakeWithReserveDiscriminatorBytes(): ReadonlyUint8Array; export type DecreaseValidatorStakeWithReserveInstruction = 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, 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, 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 DecreaseValidatorStakeWithReserveInstructionData = { discriminator: number; lamports: bigint; transientStakeSeed: bigint; }; export type DecreaseValidatorStakeWithReserveInstructionDataArgs = { lamports: number | bigint; transientStakeSeed: number | bigint; }; export declare function getDecreaseValidatorStakeWithReserveInstructionDataEncoder(): FixedSizeEncoder; export declare function getDecreaseValidatorStakeWithReserveInstructionDataDecoder(): FixedSizeDecoder; export declare function getDecreaseValidatorStakeWithReserveInstructionDataCodec(): FixedSizeCodec; export type DecreaseValidatorStakeWithReserveAsyncInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority?: Address; validatorList: Address; reserveStake: Address; canonicalStake: Address; transientStake: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: DecreaseValidatorStakeWithReserveInstructionDataArgs["lamports"]; transientStakeSeed: DecreaseValidatorStakeWithReserveInstructionDataArgs["transientStakeSeed"]; }; /** * (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())`. * 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]` Transient stake account to receive split * 7. `[]` Clock sysvar * 8. '[]' Stake history sysvar * 9. `[]` System program * 10. `[]` Stake program */ export declare function getDecreaseValidatorStakeWithReserveInstructionAsync(input: DecreaseValidatorStakeWithReserveAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise>; export type DecreaseValidatorStakeWithReserveInput = { stakePool: Address; staker: TransactionSigner; withdrawAuthority: Address; validatorList: Address; reserveStake: Address; canonicalStake: Address; transientStake: Address; clockSysvar?: Address; stakeHistorySysvar?: Address; systemProgram?: Address; stakeProgram?: Address; lamports: DecreaseValidatorStakeWithReserveInstructionDataArgs["lamports"]; transientStakeSeed: DecreaseValidatorStakeWithReserveInstructionDataArgs["transientStakeSeed"]; }; /** * (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())`. * 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]` Transient stake account to receive split * 7. `[]` Clock sysvar * 8. '[]' Stake history sysvar * 9. `[]` System program * 10. `[]` Stake program */ export declare function getDecreaseValidatorStakeWithReserveInstruction(input: DecreaseValidatorStakeWithReserveInput, config?: { programAddress?: TProgramAddress; }): DecreaseValidatorStakeWithReserveInstruction; export type ParsedDecreaseValidatorStakeWithReserveInstruction = { programAddress: Address; accounts: { stakePool: TAccountMetas[0]; staker: TAccountMetas[1]; withdrawAuthority: TAccountMetas[2]; validatorList: TAccountMetas[3]; reserveStake: TAccountMetas[4]; canonicalStake: TAccountMetas[5]; transientStake: TAccountMetas[6]; clockSysvar: TAccountMetas[7]; stakeHistorySysvar: TAccountMetas[8]; systemProgram: TAccountMetas[9]; stakeProgram: TAccountMetas[10]; }; data: DecreaseValidatorStakeWithReserveInstructionData; }; export declare function parseDecreaseValidatorStakeWithReserveInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedDecreaseValidatorStakeWithReserveInstruction; //#endregion //# sourceMappingURL=decreaseValidatorStakeWithReserve.d.ts.map