UNPKG

@frakters/nft-lending-v2

Version:

Client library for interacting with nft lenging solana program

162 lines (161 loc) 5.43 kB
import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js'; import { TokenAmount } from './safe-math'; import { TokenInfo } from './tokens'; export interface IdoPoolInfo { startTime: number; endTime: number; startWithdrawTime: number; minDepositLimit: TokenAmount; maxDepositLimit: TokenAmount; stakePoolId: PublicKey; minStakeLimit: TokenAmount; quoteTokenDeposited: TokenAmount; } export interface IdoLotteryPoolInfo { status: number; nonce: number; startTime: number; endTime: number; startWithdrawTime: number; numerator: number; denominator: number; quoteTokenDeposited: TokenAmount; baseTokenSupply: TokenAmount; perUserMaxLottery: number; perUserMinLottery: number; perLotteryNeedMinStake: number; perLotteryWorthQuoteAmount: TokenAmount; totalWinLotteryLimit: number; totalDepositUserNumber: number; currentLotteryNumber: number; luckyInfos: Array<{ luckyTailDigits: number; luckyTailNumber: number; luckyWithinNumber: number; luckyNumberExist: number; }>; quoteTokenMint: PublicKey; baseTokenMint: PublicKey; quoteTokenVault: PublicKey; baseTokenVault: PublicKey; stakePoolId: PublicKey; stakeProgramId: PublicKey; checkProgramId: PublicKey; idoOwner: PublicKey; poolSeedId: PublicKey; } export interface IdoUserInfo { deposited: TokenAmount; snapshoted: boolean; } export interface IdoLotteryUserInfo { deposited: TokenAmount; snapshoted: boolean; eligibleTicketAmount: number; quoteTokenDeposited: number; quoteTokenWithdrawn: number; baseTokenWithdrawn: number; lotteryBeginNumber: number; lotteryEndNumber: number; } export interface IdoPool { base: TokenInfo; quote: TokenInfo; version: number; programId: string; snapshotProgramId: string; isRayPool: boolean; isPrivate: boolean; status?: string; idoId: string; baseVault: string; quoteVault: string; info?: IdoPoolInfo | IdoLotteryPoolInfo; userInfo?: IdoUserInfo | IdoLotteryUserInfo; price: TokenAmount; raise: TokenAmount; seedId?: string; } export declare const IDO_POOLS: IdoPool[]; export declare function getIdoPoolById(idoId: string): IdoPool; export declare const IDO_POOL_INFO_LAYOUT: any; export declare const IDO_LOTTERY_POOL_INFO_LAYOUT: any; export declare const IDO_USER_INFO_LAYOUT: any; export declare const IDO_LOTTERY_USER_INFO_LAYOUT: any; export declare const IDO_LOTTERY_SNAPSHOT_DATA_LAYOUT: any; export declare function findAssociatedIdoInfoAddress(idoId: PublicKey, walletAddress: PublicKey, programId: PublicKey): Promise<PublicKey>; export declare function findAssociatedIdoCheckAddress(idoId: PublicKey, walletAddress: PublicKey, snapshotProgramId: PublicKey): Promise<PublicKey>; export declare function purchase({ connection, wallet, poolInfo, userQuoteTokenAccount, stakeInfoAccount, amount, }: { connection: Connection; wallet: any; poolInfo: IdoPool; userQuoteTokenAccount: string; stakeInfoAccount: string; amount: string | number; }): Promise<string>; export declare function claim({ connection, wallet, poolInfo, userBaseTokenAccount, userQuoteTokenAccount, aim, }: { connection: Connection; wallet: any; poolInfo: IdoPool; userBaseTokenAccount: string; userQuoteTokenAccount: string; /** * this is only for lottery * the property indicate which coin user want to withdraw */ aim?: 'quote' | 'base'; }): Promise<string>; interface PurchaseInstructionKeys { idoId: PublicKey; authority: PublicKey; poolQuoteTokenAccount: PublicKey; userQuoteTokenAccount: PublicKey; userIdoInfo: PublicKey; userStakeInfo: PublicKey; userIdoCheck: PublicKey; userOwner: PublicKey; } interface PurchaseInstructionKeysV3 { idoId: PublicKey; authority: PublicKey; poolQuoteTokenAccount: PublicKey; userQuoteTokenAccount: PublicKey; userIdoInfo: PublicKey; userIdoCheck: PublicKey; userOwner: PublicKey; } interface PurchaseInstructionKeysPrivate { idoId: PublicKey; authority: PublicKey; poolQuoteTokenAccount: PublicKey; userQuoteTokenAccount: PublicKey; userIdoInfo: PublicKey; userIdoCheck: PublicKey; userOwner: PublicKey; } export declare function purchaseInstruction<Flag extends '' | '3' | 'private' = ''>({ programId, amount }: { programId: PublicKey; amount: string | number; }, instructionKeys: Flag extends '3' ? PurchaseInstructionKeysV3 : Flag extends 'private' ? PurchaseInstructionKeysPrivate : PurchaseInstructionKeys): TransactionInstruction; interface ClaimInstructionKeys { idoId: PublicKey; authority: PublicKey; poolQuoteTokenAccount: PublicKey; poolBaseTokenAccount: PublicKey; userQuoteTokenAccount: PublicKey; userBaseTokenAccount: PublicKey; userIdoInfo: PublicKey; userOwner: PublicKey; } interface ClaimInstructionKeysV3 { idoId: PublicKey; authority: PublicKey; poolTokenAccount: PublicKey; userTokenAccount: PublicKey; userIdoInfo: PublicKey; userOwner: PublicKey; } export declare function claimInstruction<Version extends '' | '3' = ''>({ programId }: { programId: PublicKey; }, instructionKeys: Version extends '3' ? ClaimInstructionKeysV3 : ClaimInstructionKeys): TransactionInstruction; export {};