UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

278 lines (275 loc) 8.13 kB
import { PublicKey } from '@solana/web3.js'; import BN__default from 'bn.js'; import Decimal from 'decimal.js'; import { q as ApiV3PoolInfoStandardItem, x as AmmV4Keys, y as AmmV5Keys, ce as TokenAmount, bU as ComputeBudgetConfig, bV as TxTipConfig, ag as BigNumberish } from '../../api-c27cc5ec.js'; import { TxVersion } from '../../common/txTool/txType.js'; import { liquidityStateV4Layout } from './layout.js'; import 'axios'; import '../../solana/type.js'; import '@solana/spl-token'; import '../../api/url.js'; import '../../common/owner.js'; import '../../common/txTool/lookupTable.js'; import '../../module/token.js'; import '../../common/pubKey.js'; import '../../common/logger.js'; import '../../module/currency.js'; import '../../marshmallow/index.js'; import '../../marshmallow/buffer-layout.js'; declare type LiquiditySide = "a" | "b"; declare type AmountSide = "base" | "quote"; interface AddLiquidityParams<T = TxVersion.LEGACY> { poolInfo: ApiV3PoolInfoStandardItem; poolKeys?: AmmV4Keys | AmmV5Keys; payer?: PublicKey; amountInA: TokenAmount; amountInB: TokenAmount; otherAmountMin: TokenAmount; fixedSide: LiquiditySide; config?: { bypassAssociatedCheck?: boolean; checkCreateATAOwner?: boolean; }; txVersion?: T; computeBudgetConfig?: ComputeBudgetConfig; txTipConfig?: TxTipConfig; feePayer?: PublicKey; } interface RemoveParams<T = TxVersion.LEGACY> { poolInfo: ApiV3PoolInfoStandardItem; poolKeys?: AmmV4Keys | AmmV5Keys; payer?: PublicKey; lpAmount: BN__default; baseAmountMin: BN__default; quoteAmountMin: BN__default; config?: { bypassAssociatedCheck?: boolean; checkCreateATAOwner?: boolean; }; txVersion?: T; computeBudgetConfig?: ComputeBudgetConfig; txTipConfig?: TxTipConfig; feePayer?: PublicKey; } interface LiquidityUserKeys { baseTokenAccount: PublicKey; quoteTokenAccount: PublicKey; lpTokenAccount: PublicKey; owner: PublicKey; } interface LiquidityAddInstructionParams { poolInfo: ApiV3PoolInfoStandardItem; poolKeys: AmmV4Keys | AmmV5Keys; userKeys: LiquidityUserKeys; baseAmountIn: BigNumberish; quoteAmountIn: BigNumberish; otherAmountMin: BigNumberish; fixedSide: AmountSide; modelDataPubKey?: PublicKey; } interface RemoveLiquidityInstruction { poolInfo: ApiV3PoolInfoStandardItem; poolKeys: AmmV4Keys | AmmV5Keys; userKeys: LiquidityUserKeys; lpAmount: BigNumberish; baseAmountMin: BigNumberish; quoteAmountMin: BigNumberish; modelDataPubKey?: PublicKey; } interface LiquidityPoolKeys { id: PublicKey; baseMint: PublicKey; quoteMint: PublicKey; lpMint: PublicKey; baseDecimals: number; quoteDecimals: number; lpDecimals: number; version: 4 | 5; programId: PublicKey; authority: PublicKey; nonce: number; baseVault: PublicKey; quoteVault: PublicKey; lpVault: PublicKey; openOrders: PublicKey; targetOrders: PublicKey; withdrawQueue: PublicKey; marketVersion: 3; marketProgramId: PublicKey; marketId: PublicKey; marketAuthority: PublicKey; lookupTableAccount: PublicKey; configId: PublicKey; } interface CreatePoolParam<T> { programId: PublicKey; marketInfo: { marketId: PublicKey; programId: PublicKey; }; baseMintInfo: { mint: PublicKey; decimals: number; }; quoteMintInfo: { mint: PublicKey; decimals: number; }; baseAmount: BN__default; quoteAmount: BN__default; startTime: BN__default; ownerInfo: { feePayer?: PublicKey; useSOLBalance?: boolean; }; associatedOnly: boolean; checkCreateATAOwner?: boolean; tokenProgram?: PublicKey; feeDestinationId: PublicKey; computeBudgetConfig?: ComputeBudgetConfig; txVersion?: T; txTipConfig?: TxTipConfig; feePayer?: PublicKey; } interface CreateMarketAndPoolParam<T> { programId?: PublicKey; marketProgram?: PublicKey; feeDestinationId?: PublicKey; baseMintInfo: { mint: PublicKey; decimals: number; }; quoteMintInfo: { mint: PublicKey; decimals: number; }; baseAmount: BN__default; quoteAmount: BN__default; startTime: BN__default; lowestFeeMarket?: boolean; assignSeed?: string; lotSize?: number; tickSize?: number; ownerInfo: { feePayer?: PublicKey; useSOLBalance?: boolean; }; associatedOnly: boolean; checkCreateATAOwner?: boolean; tokenProgram?: PublicKey; computeBudgetConfig?: ComputeBudgetConfig; txVersion?: T; txTipConfig?: TxTipConfig; feePayer?: PublicKey; } interface CreatePoolAddress { programId: PublicKey; ammId: PublicKey; ammAuthority: PublicKey; ammOpenOrders: PublicKey; lpMint: PublicKey; coinMint: PublicKey; pcMint: PublicKey; coinVault: PublicKey; pcVault: PublicKey; withdrawQueue: PublicKey; ammTargetOrders: PublicKey; poolTempLp: PublicKey; marketProgramId: PublicKey; marketId: PublicKey; ammConfigId: PublicKey; feeDestinationId: PublicKey; } interface SwapFixedInInstructionParamsV4 { poolKeys: AmmV4Keys | AmmV5Keys; userKeys: { tokenAccountIn: PublicKey; tokenAccountOut: PublicKey; owner: PublicKey; }; amountIn: BigNumberish; minAmountOut: BigNumberish; modelDataPubKey?: PublicKey; } interface SwapFixedOutInstructionParamsV4 { poolKeys: AmmV4Keys | AmmV5Keys; userKeys: { tokenAccountIn: PublicKey; tokenAccountOut: PublicKey; owner: PublicKey; }; maxAmountIn: BigNumberish; amountOut: BigNumberish; modelDataPubKey?: PublicKey; } declare type SwapSide = "in" | "out"; interface SwapInstructionParams { version: number; poolKeys: AmmV4Keys | AmmV5Keys; userKeys: { tokenAccountIn: PublicKey; tokenAccountOut: PublicKey; owner: PublicKey; }; amountIn: BigNumberish; amountOut: BigNumberish; fixedSide: SwapSide; } interface InitPoolInstructionParamsV4 { poolKeys: AmmV4Keys | AmmV5Keys; userKeys: { lpTokenAccount: PublicKey; payer: PublicKey; }; startTime: BigNumberish; } interface ComputeAmountOutParam { poolInfo: ApiV3PoolInfoStandardItem & { baseReserve: BN__default; quoteReserve: BN__default; version: 4 | 5; status: number; }; mintIn: string | PublicKey; mintOut: string | PublicKey; amountIn: BN__default; slippage: number; } interface ComputeAmountInParam { poolInfo: ApiV3PoolInfoStandardItem & { baseReserve: BN__default; quoteReserve: BN__default; version: 4 | 5; status: number; }; mintIn: string | PublicKey; mintOut: string | PublicKey; amountOut: BN__default; slippage: number; } interface SwapParam<T = TxVersion.LEGACY> { poolInfo: ApiV3PoolInfoStandardItem; poolKeys?: AmmV4Keys | AmmV5Keys; amountIn: BN__default; amountOut: BN__default; inputMint: string; fixedSide: SwapSide; config?: { associatedOnly?: boolean; inputUseSolBalance?: boolean; outputUseSolBalance?: boolean; }; computeBudgetConfig?: ComputeBudgetConfig; txVersion?: T; txTipConfig?: TxTipConfig; feePayer?: PublicKey; } declare type AmmRpcData = ReturnType<typeof liquidityStateV4Layout.decode> & { baseReserve: BN__default; quoteReserve: BN__default; mintAAmount: BN__default; mintBAmount: BN__default; poolPrice: Decimal; programId: PublicKey; }; export { AddLiquidityParams, AmmRpcData, AmountSide, ComputeAmountInParam, ComputeAmountOutParam, CreateMarketAndPoolParam, CreatePoolAddress, CreatePoolParam, InitPoolInstructionParamsV4, LiquidityAddInstructionParams, LiquidityPoolKeys, LiquiditySide, LiquidityUserKeys, RemoveLiquidityInstruction, RemoveParams, SwapFixedInInstructionParamsV4, SwapFixedOutInstructionParamsV4, SwapInstructionParams, SwapParam, SwapSide };