import { Fee, FeeArgs } from "../types/fee.js"; import "../types/index.js"; 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/initialize.d.ts export declare const INITIALIZE_DISCRIMINATOR = 0; export declare function getInitializeDiscriminatorBytes(): ReadonlyUint8Array; export type InitializeInstruction = string, TAccountManager extends string | AccountMeta = string, TAccountStaker extends string | AccountMeta = string, TAccountWithdrawAuthority extends string | AccountMeta = string, TAccountValidatorList extends string | AccountMeta = string, TAccountReserveStake extends string | AccountMeta = string, TAccountPoolMint extends string | AccountMeta = string, TAccountFeeAccount extends string | AccountMeta = string, TAccountTokenProgram extends string | AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountDepositAuthority extends string | AccountMeta = string, TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[TAccountStakePool extends string ? WritableAccount : TAccountStakePool, TAccountManager extends string ? ReadonlySignerAccount & AccountSignerMeta : TAccountManager, TAccountStaker extends string ? ReadonlyAccount : TAccountStaker, TAccountWithdrawAuthority extends string ? ReadonlyAccount : TAccountWithdrawAuthority, TAccountValidatorList extends string ? WritableAccount : TAccountValidatorList, TAccountReserveStake extends string ? ReadonlyAccount : TAccountReserveStake, TAccountPoolMint extends string ? ReadonlyAccount : TAccountPoolMint, TAccountFeeAccount extends string ? ReadonlyAccount : TAccountFeeAccount, TAccountTokenProgram extends string ? ReadonlyAccount : TAccountTokenProgram, TAccountDepositAuthority extends string ? ReadonlyAccount : TAccountDepositAuthority, ...TRemainingAccounts]>; export type InitializeInstructionData = { discriminator: number; fee: Fee; withdrawalFee: Fee; depositFee: Fee; referralFee: number; maxValidators: number; }; export type InitializeInstructionDataArgs = { fee: FeeArgs; withdrawalFee: FeeArgs; depositFee: FeeArgs; referralFee: number; maxValidators: number; }; export declare function getInitializeInstructionDataEncoder(): FixedSizeEncoder; export declare function getInitializeInstructionDataDecoder(): FixedSizeDecoder; export declare function getInitializeInstructionDataCodec(): FixedSizeCodec; export type InitializeAsyncInput = { stakePool: Address; manager: TransactionSigner; staker: Address; withdrawAuthority?: Address; validatorList: Address; reserveStake: Address; poolMint: Address; feeAccount: Address; tokenProgram?: Address; depositAuthority: Address | TransactionSigner; fee: InitializeInstructionDataArgs["fee"]; withdrawalFee: InitializeInstructionDataArgs["withdrawalFee"]; depositFee: InitializeInstructionDataArgs["depositFee"]; referralFee: InitializeInstructionDataArgs["referralFee"]; maxValidators: InitializeInstructionDataArgs["maxValidators"]; }; /** * Initializes a new `StakePool`. * 0. `[w]` New `StakePool` to create. * 1. `[s]` Manager * 2. `[]` Staker * 3. `[]` Stake pool withdraw authority * 4. `[w]` Uninitialized validator stake list storage account * 5. `[]` Reserve stake account must be initialized, have zero balance, * and staker / withdrawer authority set to pool withdraw authority. * 6. `[]` Pool token mint. Must have zero supply, owned by withdraw * authority. * 7. `[]` Pool account to deposit the generated fee for manager. * 8. `[]` Token program id * 9. `[]` (Optional) Deposit authority that must sign all deposits. * Defaults to the program address generated using * `find_deposit_authority_program_address`, making deposits * permissionless. */ export declare function getInitializeInstructionAsync(input: InitializeAsyncInput, config?: { programAddress?: TProgramAddress; }): Promise ? ReadonlySignerAccount & AccountSignerMeta : TAccountDepositAuthority>>; export type InitializeInput = { stakePool: Address; manager: TransactionSigner; staker: Address; withdrawAuthority: Address; validatorList: Address; reserveStake: Address; poolMint: Address; feeAccount: Address; tokenProgram?: Address; depositAuthority: Address | TransactionSigner; fee: InitializeInstructionDataArgs["fee"]; withdrawalFee: InitializeInstructionDataArgs["withdrawalFee"]; depositFee: InitializeInstructionDataArgs["depositFee"]; referralFee: InitializeInstructionDataArgs["referralFee"]; maxValidators: InitializeInstructionDataArgs["maxValidators"]; }; /** * Initializes a new `StakePool`. * 0. `[w]` New `StakePool` to create. * 1. `[s]` Manager * 2. `[]` Staker * 3. `[]` Stake pool withdraw authority * 4. `[w]` Uninitialized validator stake list storage account * 5. `[]` Reserve stake account must be initialized, have zero balance, * and staker / withdrawer authority set to pool withdraw authority. * 6. `[]` Pool token mint. Must have zero supply, owned by withdraw * authority. * 7. `[]` Pool account to deposit the generated fee for manager. * 8. `[]` Token program id * 9. `[]` (Optional) Deposit authority that must sign all deposits. * Defaults to the program address generated using * `find_deposit_authority_program_address`, making deposits * permissionless. */ export declare function getInitializeInstruction(input: InitializeInput, config?: { programAddress?: TProgramAddress; }): InitializeInstruction ? ReadonlySignerAccount & AccountSignerMeta : TAccountDepositAuthority>; export type ParsedInitializeInstruction = { programAddress: Address; accounts: { stakePool: TAccountMetas[0]; manager: TAccountMetas[1]; staker: TAccountMetas[2]; withdrawAuthority: TAccountMetas[3]; validatorList: TAccountMetas[4]; reserveStake: TAccountMetas[5]; poolMint: TAccountMetas[6]; feeAccount: TAccountMetas[7]; tokenProgram: TAccountMetas[8]; depositAuthority: TAccountMetas[9]; }; data: InitializeInstructionData; }; export declare function parseInitializeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedInitializeInstruction; //#endregion //# sourceMappingURL=initialize.d.ts.map