raydium-sdk-v2-custody
Version:
An SDK for building applications on top of Raydium.
182 lines (179 loc) • 11.9 kB
TypeScript
import { PublicKey, TransactionInstruction, Connection } from '@solana/web3.js';
import BN__default from 'bn.js';
import { bI as ReturnTypeMakeInstructions, i as ApiV3Token, o as ApiV3PoolInfoConcentratedItem, B as ClmmKeys } from '../../api-03875713.js';
import { B as ClosePositionExtInfo, M as ManipulateLiquidityExtInfo } from '../../type-7ca7f53c.js';
import { ClmmPositionLayout } 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 '../../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';
interface InitializeUserInstruction {
connection: Connection;
programId: PublicKey;
payer: PublicKey;
authority: PublicKey;
}
declare class CustodyInstrument {
static initializeUserInstruction(programId: PublicKey, payer: PublicKey, authority: PublicKey, userState: PublicKey): TransactionInstruction;
static initializeUserInstructions(props: InitializeUserInstruction): ReturnTypeMakeInstructions<{
userState: PublicKey;
}>;
static depositInstruction(programId: PublicKey, payer: PublicKey, userState: PublicKey, userTokenAccount: PublicKey, userTokenCustody: PublicKey, mint: PublicKey, amount: BN__default): TransactionInstruction;
static depositInstructions({ programId, ownerInfo, mint, amount, }: {
programId: PublicKey;
ownerInfo: {
wallet: PublicKey;
tokenAccount: PublicKey;
};
mint: ApiV3Token;
amount: BN__default;
}): Promise<ReturnTypeMakeInstructions>;
static withdrawInstruction(programId: PublicKey, payer: PublicKey, userState: PublicKey, userTokenAccount: PublicKey, userTokenCustody: PublicKey, mint: PublicKey, amount: BN__default): TransactionInstruction;
static withdrawInstructions({ programId, ownerInfo, mint, amount, }: {
programId: PublicKey;
ownerInfo: {
wallet: PublicKey;
tokenAccount: PublicKey;
};
mint: ApiV3Token;
amount: BN__default;
}): Promise<ReturnTypeMakeInstructions>;
static openPositionFromLiquidityInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, personalPosition: PublicKey, userTokenAccountA: PublicKey, userTokenAccountB: PublicKey, tokenCustodyA: PublicKey, tokenCustodyB: PublicKey, tokenVaultA: PublicKey, tokenVaultB: PublicKey, tokenMintA: PublicKey, tokenMintB: PublicKey, tickLowerIndex: number, tickUpperIndex: number, tickArrayLowerStartIndex: number, tickArrayUpperStartIndex: number, liquidity: BN__default, amountMaxA: BN__default, amountMaxB: BN__default, withMetadata: "create" | "no-create", exTickArrayBitmap?: PublicKey): TransactionInstruction;
static openPositionFromLiquidityInstructions({ custodyProgramId, poolInfo, poolKeys, ownerInfo, tickLower, tickUpper, liquidity, amountMaxA, amountMaxB, withMetadata, getEphemeralSigners, }: {
custodyProgramId: PublicKey;
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;
withMetadata: "create" | "no-create";
getEphemeralSigners?: (k: number) => any;
}): Promise<ReturnTypeMakeInstructions>;
static openPositionFromBaseInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, personalPosition: PublicKey, userTokenAccountA: PublicKey, userTokenAccountB: PublicKey, tokenCustodyA: PublicKey, tokenCustodyB: PublicKey, tokenVaultA: PublicKey, tokenVaultB: PublicKey, tokenMintA: PublicKey, tokenMintB: PublicKey, tickLowerIndex: number, tickUpperIndex: number, tickArrayLowerStartIndex: number, tickArrayUpperStartIndex: number, withMetadata: "create" | "no-create", base: "MintA" | "MintB", baseAmount: BN__default, otherAmountMax: BN__default, exTickArrayBitmap?: PublicKey): TransactionInstruction;
static openPositionFromBaseInstructions({ custodyProgramId, poolInfo, poolKeys, ownerInfo, tickLower, tickUpper, base, baseAmount, otherAmountMax, withMetadata, getEphemeralSigners, }: {
custodyProgramId: PublicKey;
poolInfo: ApiV3PoolInfoConcentratedItem;
poolKeys: ClmmKeys;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
tokenAccountA: PublicKey;
tokenAccountB: PublicKey;
};
tickLower: number;
tickUpper: number;
base: "MintA" | "MintB";
baseAmount: BN__default;
otherAmountMax: BN__default;
withMetadata: "create" | "no-create";
getEphemeralSigners?: (k: number) => any;
}): Promise<ReturnTypeMakeInstructions>;
static closePositionInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftMint: PublicKey, positionNftAccount: PublicKey, personalPosition: PublicKey): TransactionInstruction;
static closePositionInstructions({ custodyProgramId, poolInfo, poolKeys, ownerInfo, ownerPosition, }: {
custodyProgramId: PublicKey;
poolInfo: ApiV3PoolInfoConcentratedItem;
poolKeys: ClmmKeys;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
};
ownerPosition: ClmmPositionLayout;
}): ReturnTypeMakeInstructions<ClosePositionExtInfo["address"]>;
static increasePositionFromLiquidityInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftAccount: PublicKey, personalPosition: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, tokenCustodyA: PublicKey, tokenCustodyB: PublicKey, tokenVaultA: PublicKey, tokenVaultB: PublicKey, tokenMintA: PublicKey, tokenMintB: PublicKey, liquidity: BN__default, amountMaxA: BN__default, amountMaxB: BN__default, exTickArrayBitmap?: PublicKey): TransactionInstruction;
static increasePositionFromLiquidityInstructions({ custodyProgramId, poolInfo, poolKeys, ownerPosition, ownerInfo, liquidity, amountMaxA, amountMaxB, }: {
custodyProgramId: PublicKey;
poolInfo: ApiV3PoolInfoConcentratedItem;
poolKeys: ClmmKeys;
ownerPosition: ClmmPositionLayout;
ownerInfo: {
wallet: PublicKey;
feePayer: PublicKey;
};
liquidity: BN__default;
amountMaxA: BN__default;
amountMaxB: BN__default;
}): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>;
static increasePositionFromBaseInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftAccount: PublicKey, personalPosition: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, tokenCustodyA: PublicKey, tokenCustodyB: PublicKey, tokenVaultA: PublicKey, tokenVaultB: PublicKey, tokenMintA: PublicKey, tokenMintB: PublicKey, base: "MintA" | "MintB", baseAmount: BN__default, otherAmountMax: BN__default, exTickArrayBitmap?: PublicKey): TransactionInstruction;
static increasePositionFromBaseInstructions({ custodyProgramId, poolInfo, poolKeys, ownerPosition, ownerInfo, base, baseAmount, otherAmountMax, }: {
custodyProgramId: PublicKey;
poolInfo: ApiV3PoolInfoConcentratedItem;
poolKeys: ClmmKeys;
ownerPosition: ClmmPositionLayout;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
};
base: "MintA" | "MintB";
baseAmount: BN__default;
otherAmountMax: BN__default;
}): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>;
static decreaseLiquidityInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, userState: PublicKey, positionNftAccount: PublicKey, personalPosition: PublicKey, poolId: PublicKey, protocolPosition: PublicKey, tickArrayLower: PublicKey, tickArrayUpper: PublicKey, tokenCustodyA: PublicKey, tokenCustodyB: PublicKey, tokenVaultA: PublicKey, tokenVaultB: PublicKey, tokenMintA: PublicKey, tokenMintB: PublicKey, rewardAccounts: {
poolRewardVault: PublicKey;
ownerRewardVault: PublicKey;
rewardMint: PublicKey;
}[], liquidity: BN__default, amountMinA: BN__default, amountMinB: BN__default, exTickArrayBitmap?: PublicKey): TransactionInstruction;
static decreaseLiquidityInstructions({ custodyProgramId, poolInfo, poolKeys, ownerPosition, ownerInfo, liquidity, amountMinA, amountMinB, }: {
custodyProgramId: PublicKey;
poolInfo: ApiV3PoolInfoConcentratedItem;
poolKeys: ClmmKeys;
ownerPosition: ClmmPositionLayout;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
rewardAccounts: PublicKey[];
};
liquidity: BN__default;
amountMinA: BN__default;
amountMinB: BN__default;
}): ReturnTypeMakeInstructions<ManipulateLiquidityExtInfo["address"]>;
static swapInstruction(custodyProgramId: PublicKey, remoteProgramId: PublicKey, payer: PublicKey, owner: PublicKey, poolId: PublicKey, ammConfigId: PublicKey, inputTokenAccount: PublicKey, outputTokenAccount: PublicKey, inputVault: PublicKey, outputVault: PublicKey, inputMint: PublicKey, outputMint: PublicKey, tickArray: PublicKey[], observationId: PublicKey, amount: BN__default, otherAmountThreshold: BN__default, sqrtPriceLimitX64: BN__default, isBaseInput: boolean, exTickArrayBitmap?: PublicKey): TransactionInstruction;
static makeSwapBaseInInstructions({ custodyProgramId, poolInfo, poolKeys, observationId, ownerInfo, inputMint, amountIn, amountOutMin, sqrtPriceLimitX64, remainingAccounts, }: {
custodyProgramId: PublicKey;
poolInfo: Pick<ApiV3PoolInfoConcentratedItem, "id" | "programId" | "mintA" | "mintB" | "config">;
poolKeys: ClmmKeys;
observationId: PublicKey;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
};
inputMint: PublicKey;
amountIn: BN__default;
amountOutMin: BN__default;
sqrtPriceLimitX64: BN__default;
remainingAccounts: PublicKey[];
}): ReturnTypeMakeInstructions;
static makeSwapBaseOutInstructions({ custodyProgramId, poolInfo, poolKeys, observationId, ownerInfo, outputMint, amountOut, amountInMax, sqrtPriceLimitX64, remainingAccounts, }: {
custodyProgramId: PublicKey;
poolInfo: Pick<ApiV3PoolInfoConcentratedItem, "id" | "programId" | "mintA" | "mintB" | "config">;
poolKeys: ClmmKeys;
observationId: PublicKey;
ownerInfo: {
feePayer: PublicKey;
wallet: PublicKey;
};
outputMint: PublicKey;
amountOut: BN__default;
amountInMax: BN__default;
sqrtPriceLimitX64: BN__default;
remainingAccounts: PublicKey[];
}): ReturnTypeMakeInstructions;
}
export { CustodyInstrument };