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/withdrawSol.d.ts export declare const WITHDRAW_SOL_DISCRIMINATOR = 16; export declare function getWithdrawSolDiscriminatorBytes(): ReadonlyUint8Array; export type WithdrawSolInstruction = string, TAccountWithdrawAuthority extends string | AccountMeta = string, TAccountUserTransferAuthority extends string | AccountMeta = string, TAccountUserPoolTokenAccount extends string | AccountMeta = string, TAccountReserveStake extends string | AccountMeta = string, TAccountDestinationSystemAccount extends string | AccountMeta = string, TAccountFeeAccount extends string | AccountMeta = string, TAccountPoolMint extends string | AccountMeta = string, TAccountClockSysvar extends string | AccountMeta = "SysvarC1ock11111111111111111111111111111111", TAccountStakeHistorySysvar extends string | AccountMeta = "SysvarStakeHistory1111111111111111111111111", TAccountStakeProgram extends string | AccountMeta = "Stake11111111111111111111111111111111111111", TAccountTokenProgram extends string | AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountSolWithdrawAuthority extends string | AccountMeta = string, TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[TAccountStakePool extends string ? WritableAccount : TAccountStakePool, TAccountWithdrawAuthority extends string ? ReadonlyAccount : TAccountWithdrawAuthority, TAccountUserTransferAuthority extends string ? ReadonlySignerAccount & AccountSignerMeta : TAccountUserTransferAuthority, TAccountUserPoolTokenAccount extends string ? WritableAccount : TAccountUserPoolTokenAccount, TAccountReserveStake extends string ? WritableAccount : TAccountReserveStake, TAccountDestinationSystemAccount extends string ? WritableAccount : TAccountDestinationSystemAccount, TAccountFeeAccount extends string ? WritableAccount : TAccountFeeAccount, TAccountPoolMint extends string ? WritableAccount : TAccountPoolMint, TAccountClockSysvar extends string ? ReadonlyAccount : TAccountClockSysvar, TAccountStakeHistorySysvar extends string ? ReadonlyAccount : TAccountStakeHistorySysvar, TAccountStakeProgram extends string ? ReadonlyAccount : TAccountStakeProgram, TAccountTokenProgram extends string ? ReadonlyAccount : TAccountTokenProgram, TAccountSolWithdrawAuthority extends string ? ReadonlySignerAccount & AccountSignerMeta : TAccountSolWithdrawAuthority, ...TRemainingAccounts]>; export type WithdrawSolInstructionData = { discriminator: number; args: bigint; }; export type WithdrawSolInstructionDataArgs = { args: number | bigint; }; export declare function getWithdrawSolInstructionDataEncoder(): FixedSizeEncoder; export declare function getWithdrawSolInstructionDataDecoder(): FixedSizeDecoder; export declare function getWithdrawSolInstructionDataCodec(): FixedSizeCodec; export type WithdrawSolAsyncInput = { /** Stake pool */ stakePool: Address; /** Withdraw authority */ withdrawAuthority?: Address; /** User transfer authority */ userTransferAuthority: TransactionSigner; /** User pool token account */ userPoolTokenAccount: Address; /** Reserve stake */ reserveStake: Address; /** Destination system account */ destinationSystemAccount: Address; /** Fee account */ feeAccount: Address; /** Pool mint */ poolMint: Address; /** Clock sysvar */ clockSysvar?: Address; /** Stake history sysvar */ stakeHistorySysvar?: Address; /** Stake program */ stakeProgram?: Address; /** Token program */ tokenProgram?: Address; /** Sol withdraw authority */ solWithdrawAuthority?: TransactionSigner; args: WithdrawSolInstructionDataArgs["args"]; }; /** * Withdraw SOL directly from the pool's reserve account. Fails if the * reserve does not have enough SOL. * 0. `[w]` Stake pool * 1. `[]` Stake pool withdraw authority * 2. `[s]` User transfer authority, for pool token account * 3. `[w]` User account to burn pool tokens * 4. `[w]` Reserve stake account, to withdraw SOL * 5. `[w]` Account receiving the lamports from the reserve, must be a * system account * 6. `[w]` Account to receive pool fee tokens * 7. `[w]` Pool token mint account * 8. '[]' Clock sysvar * 9. '[]' Stake history sysvar * 10. `[]` Stake program account * 11. `[]` Token program id * 12. `[s]` (Optional) Stake pool sol withdraw authority */ export declare function getWithdrawSolInstructionAsync(input: WithdrawSolAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise>; export type WithdrawSolInput = { /** Stake pool */ stakePool: Address; /** Withdraw authority */ withdrawAuthority: Address; /** User transfer authority */ userTransferAuthority: TransactionSigner; /** User pool token account */ userPoolTokenAccount: Address; /** Reserve stake */ reserveStake: Address; /** Destination system account */ destinationSystemAccount: Address; /** Fee account */ feeAccount: Address; /** Pool mint */ poolMint: Address; /** Clock sysvar */ clockSysvar?: Address; /** Stake history sysvar */ stakeHistorySysvar?: Address; /** Stake program */ stakeProgram?: Address; /** Token program */ tokenProgram?: Address; /** Sol withdraw authority */ solWithdrawAuthority?: TransactionSigner; args: WithdrawSolInstructionDataArgs["args"]; }; /** * Withdraw SOL directly from the pool's reserve account. Fails if the * reserve does not have enough SOL. * 0. `[w]` Stake pool * 1. `[]` Stake pool withdraw authority * 2. `[s]` User transfer authority, for pool token account * 3. `[w]` User account to burn pool tokens * 4. `[w]` Reserve stake account, to withdraw SOL * 5. `[w]` Account receiving the lamports from the reserve, must be a * system account * 6. `[w]` Account to receive pool fee tokens * 7. `[w]` Pool token mint account * 8. '[]' Clock sysvar * 9. '[]' Stake history sysvar * 10. `[]` Stake program account * 11. `[]` Token program id * 12. `[s]` (Optional) Stake pool sol withdraw authority */ export declare function getWithdrawSolInstruction(input: WithdrawSolInput, config?: { programAddress?: TProgramAddress; }): WithdrawSolInstruction; export type ParsedWithdrawSolInstruction = { programAddress: Address; accounts: { /** Stake pool */ stakePool: TAccountMetas[0]; /** Withdraw authority */ withdrawAuthority: TAccountMetas[1]; /** User transfer authority */ userTransferAuthority: TAccountMetas[2]; /** User pool token account */ userPoolTokenAccount: TAccountMetas[3]; /** Reserve stake */ reserveStake: TAccountMetas[4]; /** Destination system account */ destinationSystemAccount: TAccountMetas[5]; /** Fee account */ feeAccount: TAccountMetas[6]; /** Pool mint */ poolMint: TAccountMetas[7]; /** Clock sysvar */ clockSysvar: TAccountMetas[8]; /** Stake history sysvar */ stakeHistorySysvar: TAccountMetas[9]; /** Stake program */ stakeProgram: TAccountMetas[10]; /** Token program */ tokenProgram: TAccountMetas[11]; /** Sol withdraw authority */ solWithdrawAuthority?: TAccountMetas[12] | undefined; }; data: WithdrawSolInstructionData; }; export declare function parseWithdrawSolInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedWithdrawSolInstruction; //#endregion //# sourceMappingURL=withdrawSol.d.ts.map