@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
142 lines (123 loc) • 2.97 kB
text/typescript
import BN from "bn.js";
export const ZERO = new BN(0);
export const ONE = new BN(1);
export const NEGATIVE_ONE = new BN(-1);
export const Q64 = new BN(1).shln(64);
export const Q128 = new BN(1).shln(128);
export const MaxU64 = Q64.sub(ONE);
export const U64Resolution = 64;
export const MaxUint128 = Q128.subn(1);
export const MIN_TICK = -443636;
export const MAX_TICK = -MIN_TICK;
export const MIN_SQRT_PRICE_X64: BN = new BN("4295048016");
export const MAX_SQRT_PRICE_X64: BN = new BN("79226673521066979257578248091");
export const MIN_SQRT_PRICE_X64_ADD_ONE: BN = new BN("4295048017");
export const MAX_SQRT_PRICE_X64_SUB_ONE: BN = new BN("79226673521066979257578248090");
// export const MIN_TICK_ARRAY_START_INDEX = -307200;
// export const MAX_TICK_ARRAY_START_INDEX = 306600;
export const BIT_PRECISION = 16;
export const LOG_B_2_X32 = "59543866431248";
export const LOG_B_P_ERR_MARGIN_LOWER_X64 = "184467440737095516";
export const LOG_B_P_ERR_MARGIN_UPPER_X64 = "15793534762490258745";
export const FEE_RATE_DENOMINATOR = new BN(10).pow(new BN(6));
export enum Fee {
rate_500 = 500, // 500 / 10e6 = 0.0005
rate_3000 = 3000, // 3000/ 10e6 = 0.003
rate_10000 = 10000, // 10000 /10e6 = 0.01
}
export const TICK_SPACINGS: { [amount in Fee]: number } = {
[Fee.rate_500]: 10,
[Fee.rate_3000]: 60,
[Fee.rate_10000]: 200,
};
export const mockCreatePoolInfo = {
version: 6,
liquidity: ZERO,
tickCurrent: 0,
feeGrowthGlobalX64A: ZERO,
feeGrowthGlobalX64B: ZERO,
protocolFeesTokenA: ZERO,
protocolFeesTokenB: ZERO,
swapInAmountTokenA: ZERO,
swapOutAmountTokenB: ZERO,
swapInAmountTokenB: ZERO,
swapOutAmountTokenA: ZERO,
tickArrayBitmap: [],
rewardInfos: [],
day: {
volume: 0,
volumeFee: 0,
feeA: 0,
feeB: 0,
feeApr: 0,
rewardApr: { A: 0, B: 0, C: 0 },
apr: 0,
priceMax: 0,
priceMin: 0,
},
week: {
volume: 0,
volumeFee: 0,
feeA: 0,
feeB: 0,
feeApr: 0,
rewardApr: { A: 0, B: 0, C: 0 },
apr: 0,
priceMax: 0,
priceMin: 0,
},
month: {
volume: 0,
volumeFee: 0,
feeA: 0,
feeB: 0,
feeApr: 0,
rewardApr: { A: 0, B: 0, C: 0 },
apr: 0,
priceMax: 0,
priceMin: 0,
},
tvl: 0,
};
export const mockV3CreatePoolInfo = {
tvl: 0,
volumeQuote: 0,
mintAmountA: 0,
mintAmountB: 0,
rewardDefaultInfos: [],
farmUpcomingCount: 0,
farmOngoingCount: 0,
farmFinishedCount: 0,
day: {
volume: 0,
volumeQuote: 0,
volumeFee: 0,
apr: 0,
feeApr: 0,
priceMin: 0,
priceMax: 0,
rewardApr: [0],
},
week: {
volume: 0,
volumeQuote: 0,
volumeFee: 0,
apr: 0,
feeApr: 0,
priceMin: 0,
priceMax: 0,
rewardApr: [0],
},
month: {
volume: 0,
volumeQuote: 0,
volumeFee: 0,
apr: 0,
feeApr: 0,
priceMin: 0,
priceMax: 0,
rewardApr: [0],
},
pooltype: [],
};
export const U64_IGNORE_RANGE = new BN("18446744073700000000");