UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

325 lines (322 loc) 19.2 kB
import { bP as ReturnTypeMakeInstructions, q as ApiV3PoolInfoConcentratedItem, G as ClmmKeys, j as ApiV3Token } from '../../api-23ae421b.js'; import { PublicKey, TransactionInstruction, Connection } from '@solana/web3.js'; import BN__default from 'bn.js'; import { PersonalPositionLayout } from './layout.js'; import { SimpleClmmPoolInfo, OpenPositionFromBaseExtInfo, OpenPositionFromLiquidityExtInfo, ClosePositionExtInfo, ManipulateLiquidityExtInfo, ClmmPoolPersonalPosition, InitRewardExtInfo, ClmmLockAddress } from './type.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 '../../common/txTool/txType.js'; import 'decimal.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'; import './libraries/constants.js'; interface CreatePoolInstruction { connection: Connection; programId: PublicKey; owner: PublicKey; mintA: ApiV3Token; mintB: ApiV3Token; ammConfigId: PublicKey; initialPriceX64: BN__default; forerunCreate?: boolean; extendMintAccount?: PublicKey[]; } declare class ClmmInstrument { static createPoolInstruction(programId: PublicKey, poolId: PublicKey, poolCreator: PublicKey, ammConfigId: PublicKey, observationId: PublicKey, mintA: PublicKey, vaultA: PublicKey, mintProgramIdA: PublicKey, mintB: PublicKey, vaultB: PublicKey, mintProgramIdB: PublicKey, tickArrayBitmap: PublicKey, sqrtPriceX64: BN__default, supperMintEx: PublicKey[] | undefined): TransactionInstruction; static createCustomizablePoolInstruction(programId: PublicKey, poolId: PublicKey, poolCreator: PublicKey, ammConfig: PublicKey, mintA: PublicKey, mintB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, observationId: PublicKey, tickArrayBitmap: PublicKey, mintProgramIdA: PublicKey, mintProgramIdB: PublicKey, sqrtPriceX64: BN__default, collectFeeOn: number, // new supperMintEx: PublicKey[], dynamicFeeConfig?: PublicKey): TransactionInstruction; static initializeRewardInstruction(programId: PublicKey, rewardFunder: PublicKey, poolId: PublicKey, operationId: PublicKey, ammConfigId: PublicKey, funderTokenAccount: PublicKey, tokenProgramId: PublicKey, rewardTokenMint: PublicKey, rewardTokenVault: PublicKey, openTime: BN__default, endTime: BN__default, emissionsPerSecondX64: BN__default): TransactionInstruction; static updateRewardInfosInstruction(programId: PublicKey, poolId: PublicKey): TransactionInstruction; static setRewardParamsInstruction(programId: PublicKey, authority: PublicKey, poolId: PublicKey, operationId: PublicKey, ammConfigId: PublicKey, ownerTokenAccount: PublicKey, rewardVault: PublicKey, rewardMint: PublicKey, rewardIndex: number, openTime: BN__default, endTime: BN__default, emissionsPerSecondX64: BN__default): TransactionInstruction; static closePositionInstruction(programId: PublicKey, nftOwner: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, personalPosition: PublicKey, nft2022?: boolean): TransactionInstruction; static openPositionV2Instruction(programId: PublicKey, payer: PublicKey, poolId: PublicKey, positionNftOwner: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, metadataAccount: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, personalPosition: PublicKey, ownerVaultA: PublicKey, ownerVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, tickLower: number, tickUpper: number, tickArrayLowerStart: number, tickArrayUpperStart: number, liquidity: BN__default, amountMaxA: BN__default, amountMaxB: BN__default, withMetadata: boolean, baseFlag: boolean | null, exTickArrayBitmap?: PublicKey): TransactionInstruction; static increaseLiquidityV2Instruction(programId: PublicKey, nftOwner: PublicKey, nftAccount: PublicKey, personalPosition: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, ownerVaultA: PublicKey, ownerVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, liquidity: BN__default, amountMaxA: BN__default, amountMaxB: BN__default, baseFlag: boolean | null, exTickArrayBitmap?: PublicKey): TransactionInstruction; static decreaseLiquidityV2Instruction(programId: PublicKey, nftOwner: PublicKey, nftAccount: PublicKey, personalPosition: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, ownerVaultA: PublicKey, ownerVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, rewardAccounts: { poolRewardVault: PublicKey; ownerRewardVault: PublicKey; rewardMint: PublicKey; }[], liquidity: BN__default, amountMinA: BN__default, amountMinB: BN__default, exTickArrayBitmap?: PublicKey): TransactionInstruction; static swapV2Instruction(programId: PublicKey, payer: PublicKey, poolId: PublicKey, ammConfig: PublicKey, inputTokenAccount: PublicKey, outputTokenAccount: PublicKey, inputVault: PublicKey, outputVault: PublicKey, inputTokenMint: PublicKey, outputTokenMint: PublicKey, tickArray: PublicKey[], observationId: PublicKey, amount: BN__default, otherAmountThreshold: BN__default, sqrtPriceLimitX64: BN__default, isBaseInput: boolean, tickArrayBitmapExtension?: PublicKey): TransactionInstruction; static collectRemainingRewardsInstruction(programId: PublicKey, rewardFunder: PublicKey, poolId: PublicKey, funderTokenAccount: PublicKey, rewardTokenVault: PublicKey, rewardMint: PublicKey, rewardIndex: number): TransactionInstruction; static openPositionWithToken22NftInstruction(programId: PublicKey, payer: PublicKey, poolId: PublicKey, positionNftOwner: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, personalPosition: PublicKey, ownerVaultA: PublicKey, ownerVaultB: PublicKey, vaultA: PublicKey, vaultB: PublicKey, mintA: PublicKey, mintB: PublicKey, tickLower: number, tickUpper: number, tickArrayLowerStart: number, tickArrayUpperStart: number, liquidity: BN__default, amountMaxA: BN__default, amountMaxB: BN__default, withMetadata: boolean, baseFlag: boolean | null, exTickArrayBitmap?: PublicKey): TransactionInstruction; static openLimitOrderInstruction(programId: PublicKey, payer: PublicKey, poolId: PublicKey, tickArray: PublicKey, limitOrderNonce: PublicKey, limitOrder: PublicKey, inputTokenAccount: PublicKey, inputVault: PublicKey, inputVaultMint: PublicKey, inputTokenProgram: PublicKey, nonceIndex: number, zeroForOne: boolean, tickIndex: number, amount: BN__default, tickArrayBitmap?: PublicKey): TransactionInstruction; static increaseLimitOrderInstruction(programId: PublicKey, owner: PublicKey, poolId: PublicKey, tickArray: PublicKey, limitOrder: PublicKey, inputTokenAccount: PublicKey, inputVault: PublicKey, inputVaultMint: PublicKey, inputTokenProgram: PublicKey, amount: BN__default): TransactionInstruction; static decreaseLimitOrderInstruction(programId: PublicKey, owner: PublicKey, poolId: PublicKey, tickArray: PublicKey, limitOrder: PublicKey, inputTokenAccount: PublicKey, outputTokenAccount: PublicKey, inputVault: PublicKey, outputVault: PublicKey, inputVaultMint: PublicKey, outputVaultMint: PublicKey, amount: BN__default, amountMin: BN__default, tickArrayBitmap?: PublicKey): TransactionInstruction; static settleLimitOrderInstruction(programId: PublicKey, signer: PublicKey, poolId: PublicKey, tickArray: PublicKey, limitOrder: PublicKey, outputTokenAccount: PublicKey, outputVault: PublicKey, outputVaultMint: PublicKey, outputTokenProgram: PublicKey): TransactionInstruction; static closeLimitOrderInstruction(programId: PublicKey, signer: PublicKey, rentReceiver: PublicKey, limitOrder: PublicKey): TransactionInstruction; static createPoolInstructions(props: CreatePoolInstruction): ReturnTypeMakeInstructions<{ poolId: PublicKey; observationId: PublicKey; exBitmapAccount: PublicKey; mintA: PublicKey; mintB: PublicKey; mintAProgram: PublicKey; mintBProgram: PublicKey; mintAVault: PublicKey; mintBVault: PublicKey; }>; static openPositionInstructions({ poolInfo, poolKeys, ownerInfo, tickLower, tickUpper, liquidity, amountMaxA, amountMaxB, base, withMetadata, getEphemeralSigners, nft2022, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerInfo: { feePayer: PublicKey; wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; tickLower: number; tickUpper: number; liquidity: BN__default; amountMaxA: BN__default; amountMaxB: BN__default; base: "MintA" | "MintB" | null; withMetadata: "create" | "no-create"; getEphemeralSigners?: (k: number) => any; nft2022?: boolean; }): Promise<ReturnTypeMakeInstructions>; static openPositionFromBaseInstructions({ poolInfo, poolKeys, ownerInfo, tickLower, tickUpper, base, baseAmount, otherAmountMax, liquidity, withMetadata, getEphemeralSigners, nft2022, }: { poolInfo: SimpleClmmPoolInfo; poolKeys: { vault: { A: string | PublicKey; B: string | PublicKey; }; lookupTableAccount?: string; }; ownerInfo: { feePayer: PublicKey; wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; tickLower: number; tickUpper: number; base: "MintA" | "MintB" | null; baseAmount: BN__default; otherAmountMax: BN__default; liquidity: BN__default; withMetadata: "create" | "no-create"; getEphemeralSigners?: (k: number) => any; nft2022?: boolean; }): Promise<ReturnTypeMakeInstructions<OpenPositionFromBaseExtInfo>>; static openPositionFromLiquidityInstructions({ poolInfo, poolKeys, ownerInfo, tickLower, tickUpper, liquidity, amountMaxA, amountMaxB, base, withMetadata, getEphemeralSigners, nft2022, }: { poolInfo: SimpleClmmPoolInfo; poolKeys: ClmmKeys; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; tickLower: number; tickUpper: number; liquidity: BN__default; amountMaxA: BN__default; amountMaxB: BN__default; base: "MintA" | "MintB" | null; withMetadata: "create" | "no-create"; getEphemeralSigners?: (k: number) => any; nft2022?: boolean; }): Promise<ReturnTypeMakeInstructions<OpenPositionFromLiquidityExtInfo["address"]>>; static closePositionInstructions({ poolInfo, poolKeys, ownerInfo, ownerPosition, nft2022, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerPosition: ReturnType<typeof PersonalPositionLayout.decode>; ownerInfo: { wallet: PublicKey; }; nft2022?: boolean; }): ReturnTypeMakeInstructions<ClosePositionExtInfo["address"]>; static increasePositionFromLiquidityInstructions({ poolInfo, poolKeys, ownerPosition, ownerInfo, liquidity, amountMaxA, amountMaxB, nft2022, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerPosition: ReturnType<typeof PersonalPositionLayout.decode>; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; liquidity: BN__default; amountMaxA: BN__default; amountMaxB: BN__default; nft2022?: boolean; }): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>; static increasePositionFromBaseInstructions({ poolInfo, poolKeys, ownerPosition, ownerInfo, base, baseAmount, otherAmountMax, nft2022, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerPosition: ClmmPoolPersonalPosition; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; base: "MintA" | "MintB"; baseAmount: BN__default; otherAmountMax: BN__default; nft2022?: boolean; }): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>; static decreaseLiquidityInstructions({ poolInfo, poolKeys, ownerPosition, ownerInfo, liquidity, amountMinA, amountMinB, programId, nft2022, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerPosition: ReturnType<typeof PersonalPositionLayout.decode>; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; rewardAccounts: PublicKey[]; }; liquidity: BN__default; amountMinA: BN__default; amountMinB: BN__default; programId?: PublicKey; nft2022?: boolean; }): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>; static makeSwapBaseInInstructions({ poolInfo, poolKeys, observationId, ownerInfo, inputMint, amountIn, amountOutMin, sqrtPriceLimitX64, remainingAccounts, }: { poolInfo: SimpleClmmPoolInfo; poolKeys: Pick<ClmmKeys, "vault" | "lookupTableAccount">; observationId: PublicKey; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; inputMint: PublicKey; amountIn: BN__default; amountOutMin: BN__default; sqrtPriceLimitX64: BN__default; remainingAccounts: PublicKey[]; }): ReturnTypeMakeInstructions; static makeSwapBaseOutInstructions({ poolInfo, poolKeys, observationId, ownerInfo, outputMint, amountOut, amountInMax, sqrtPriceLimitX64, remainingAccounts, }: { poolInfo: SimpleClmmPoolInfo; poolKeys: Pick<ClmmKeys, "vault" | "lookupTableAccount">; observationId: PublicKey; ownerInfo: { wallet: PublicKey; tokenAccountA: PublicKey; tokenAccountB: PublicKey; }; outputMint: PublicKey; amountOut: BN__default; amountInMax: BN__default; sqrtPriceLimitX64: BN__default; remainingAccounts: PublicKey[]; }): ReturnTypeMakeInstructions; static initRewardInstructions({ poolInfo, poolKeys, ownerInfo, rewardInfo, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerInfo: { wallet: PublicKey; tokenAccount: PublicKey; }; rewardInfo: { programId: PublicKey; mint: PublicKey; openTime: number; endTime: number; emissionsPerSecondX64: BN__default; }; }): ReturnTypeMakeInstructions<InitRewardExtInfo["address"]>; static setRewardInstructions({ poolInfo, poolKeys, ownerInfo, rewardInfo, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerInfo: { wallet: PublicKey; tokenAccount: PublicKey; }; rewardInfo: { mint: PublicKey; openTime: number; endTime: number; emissionsPerSecondX64: BN__default; }; }): ReturnTypeMakeInstructions; static collectRewardInstructions({ poolInfo, poolKeys, ownerInfo, rewardMint, }: { poolInfo: ApiV3PoolInfoConcentratedItem; poolKeys: ClmmKeys; ownerInfo: { wallet: PublicKey; tokenAccount: PublicKey; }; rewardMint: PublicKey; }): ReturnTypeMakeInstructions; static makeLockPositions({ programId, authProgramId, poolProgramId, payer, wallet, nftMint, nft2022, getEphemeralSigners, }: { programId: PublicKey; authProgramId: PublicKey; poolProgramId: PublicKey; wallet: PublicKey; payer: PublicKey; nftMint: PublicKey; nft2022?: boolean; getEphemeralSigners?: (k: number) => any; }): Promise<ReturnTypeMakeInstructions<ClmmLockAddress>>; static lockPositionInstructionV2({ programId, auth, payer, positionOwner, lockOwner, positionNftAccount, positionId, positionNftMint, authPositionNftAccount, positionNftProgram, lockPositionId, lockNftMint, lockNftAccount, metadataAccount, withMetadata, }: { programId: PublicKey; auth: PublicKey; payer: PublicKey; positionOwner: PublicKey; lockOwner: PublicKey; positionNftAccount: PublicKey; positionId: PublicKey; positionNftMint: PublicKey; authPositionNftAccount: PublicKey; positionNftProgram: PublicKey; lockPositionId: PublicKey; lockNftMint: PublicKey; lockNftAccount: PublicKey; metadataAccount: PublicKey; withMetadata: boolean; nft2022?: boolean; }): TransactionInstruction; static lockPositionInstruction({ programId, authProgramId, poolProgramId, owner, positionNft, }: { programId: PublicKey; authProgramId: PublicKey; poolProgramId: PublicKey; owner: PublicKey; positionNft: PublicKey; }): TransactionInstruction; static harvestLockPositionInstruction(props: { poolKeys: ClmmKeys; programId: PublicKey; authProgramId: PublicKey; ownerPosition: ReturnType<typeof PersonalPositionLayout.decode>; owner: PublicKey; ownerRewardAccounts: PublicKey[]; userVaultA: PublicKey; userVaultB: PublicKey; }): TransactionInstruction; static harvestLockPositionInstructionV2({ programId, auth, lockPositionId, clmmProgram, lockOwner, lockNftMint, lockNftAccount, positionNftAccount, positionId, poolId, protocolPosition, vaultA, vaultB, tickArrayLower, tickArrayUpper, userVaultA, userVaultB, mintA, mintB, rewardAccounts, exTickArrayBitmap, }: { programId: PublicKey; auth: PublicKey; lockPositionId: PublicKey; clmmProgram: PublicKey; lockOwner: PublicKey; lockNftMint: PublicKey; lockNftAccount: PublicKey; positionNftAccount: PublicKey; positionId: PublicKey; poolId: PublicKey; protocolPosition: PublicKey; vaultA: PublicKey; vaultB: PublicKey; tickArrayLower: PublicKey; tickArrayUpper: PublicKey; userVaultA: PublicKey; userVaultB: PublicKey; mintA: PublicKey; mintB: PublicKey; rewardAccounts: { poolRewardVault: PublicKey; ownerRewardVault: PublicKey; rewardMint: PublicKey; }[]; exTickArrayBitmap?: PublicKey; }): TransactionInstruction; } export { ClmmInstrument };