UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

148 lines (145 loc) 5.9 kB
import { PublicKey, Connection } from '@solana/web3.js'; import BN__default from 'bn.js'; import Decimal from 'decimal.js'; import { PoolInfoLayout, TickArrayBitmapExtensionLayout, TickArrayLayout, TickLayout } from '../layout.js'; import '../../../marshmallow/index.js'; import '../../../marshmallow/buffer-layout.js'; interface LimitOrderMatchResult { amountIn: BN__default; amountOut: BN__default; ammFeeAmount: BN__default; } declare class TickArrayBitmapUtil { private static scanLinearBitmap; private static findPoolBitmap; private static findPositiveTickArrayBitmap; private static findNegativeTickArrayBitmap; static findTickArrayStartIndex({ tickSpacing, poolBitmap, tickArrayBitmap, findInfo, }: { tickSpacing: number; poolBitmap: ReturnType<typeof PoolInfoLayout.decode>["tickArrayBitmap"]; tickArrayBitmap: ReturnType<typeof TickArrayBitmapExtensionLayout.decode>; findInfo: { type: "zeroForOne" | "oneForZero"; count?: number; tickArrayCurrent: number; } | { type: "all"; }; }): number[]; private static collectUntil; static findTickArrayAddress(params: { programId: PublicKey; poolId: PublicKey; tickSpacing: number; poolBitmap: ReturnType<typeof PoolInfoLayout.decode>["tickArrayBitmap"]; tickArrayBitmap: ReturnType<typeof TickArrayBitmapExtensionLayout.decode>; findInfo: { type: "zeroForOne" | "oneForZero"; count?: number; tickArrayCurrent: number; } | { type: "all"; }; }): PublicKey[]; static maxTickInTickarrayBitmap(tickSpacing: number): number; } declare class TickArrayUtil { static firstinitializedTick({ data, zeroForOne, }: { data: ReturnType<typeof TickArrayLayout.decode>; zeroForOne: boolean; }): { tick: number; liquidityNet: BN__default; liquidityGross: BN__default; feeGrowthOutsideX64A: BN__default; feeGrowthOutsideX64B: BN__default; rewardGrowthsOutsideX64: BN__default[]; orderPhase: BN__default; ordersAmount: BN__default; partFilledOrdersRemaining: BN__default; unfilledRatioX64: BN__default; } | undefined; static nextInitalizedTick({ data, currentTickIndex, tickSpacing, zeroForOne, }: { data: ReturnType<typeof TickArrayLayout.decode>; currentTickIndex: number; tickSpacing: number; zeroForOne: boolean; }): { tick: number; liquidityNet: BN__default; liquidityGross: BN__default; feeGrowthOutsideX64A: BN__default; feeGrowthOutsideX64B: BN__default; rewardGrowthsOutsideX64: BN__default[]; orderPhase: BN__default; ordersAmount: BN__default; partFilledOrdersRemaining: BN__default; unfilledRatioX64: BN__default; } | undefined; static getTickArrayStartIndex(tickIndex: number, tickSpacing: number): number; static getTickOffsetInArray(tick: number, tickSpacing: number): number; static tickCount(tickSpacing: number): number; static getMinTick(tickSpacing: number): number; static getMaxTick(tickSpacing: number): number; } declare class TickUtil { static isInitialized({ data }: { data: ReturnType<typeof TickLayout.decode>; }): boolean; static hasLimitOrders({ data }: { data: ReturnType<typeof TickLayout.decode>; }): boolean; static hasLiquidity({ data }: { data: ReturnType<typeof TickLayout.decode>; }): boolean; static isValidTick(tick: number): boolean; static checkTick(tick: number): void; static getSqrtPriceAtTick(tick: number): BN__default; static getLimitOrderOutput({ amountIn, tick, zeroForOne }: { amountIn: BN__default; tick: number; zeroForOne: boolean; }): BN__default; static getLimitOrderInput({ amountOut, tick, zeroForOne }: { amountOut: BN__default; tick: number; zeroForOne: boolean; }): BN__default; static limitOrderUnfilledAmount({ tick }: { tick: ReturnType<typeof TickLayout.decode>; }): BN__default; static matchLimitOrder({ tick, swapAmount, swapDirectionZeroForOne, isBaseInput, feeRate, isFeeOnInput, }: { tick: ReturnType<typeof TickLayout.decode>; swapAmount: BN__default; swapDirectionZeroForOne: boolean; isBaseInput: boolean; feeRate: number; isFeeOnInput: boolean; }): LimitOrderMatchResult; private static getPriceAtTick; static getTickAtSqrtPrice(sqrtPriceX64: BN__default): number; private static signedShrn64; static sqrtPriceX64ToPrice(sqrtPriceX64: BN__default, decimalsA: number, decimalsB: number): Decimal; static tickToPrice(tick: number, decimalsA: number, decimalsB: number): Decimal; static priceToTick(price: Decimal, decimalsA: number, decimalsB: number): number; static priceToSqrtPriceX64(price: Decimal, decimalsA: number, decimalsB: number): BN__default; static toTickIndex(tick: number, tickSpacing: number): number; static getPriceAndTick({ price, mintADecimals, mintBDecimals, zeroForOne, tickSpacing, }: { price: Decimal; mintADecimals: number; mintBDecimals: number; zeroForOne: boolean; tickSpacing: number; }): { tick: number; price: Decimal; }; } /** * Fetch tick arrays for swap simulation */ declare function fetchTickArrays(programId: PublicKey, connection: Connection, poolId: PublicKey, currentTick: number, tickSpacing: number, tickArrayBitmap: Buffer, zeroForOne?: boolean): Promise<{ address: PublicKey; value: ReturnType<typeof TickArrayLayout.decode>; }[]>; export { LimitOrderMatchResult, TickArrayBitmapUtil, TickArrayUtil, TickUtil, fetchTickArrays };