@kamino-finance/kliquidity-sdk
Version:
Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol
47 lines • 2.74 kB
TypeScript
import { PersonalPositionLayout } from '@raydium-io/raydium-sdk-v2/lib';
import { PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
import Decimal from 'decimal.js';
export type ReturnTypeGetTickPrice = {
tick: number;
price: Decimal;
tickSqrtPriceX64: BN;
};
export type RaydiumPersonalPositionInfo = ReturnType<typeof PersonalPositionLayout.decode>;
export declare function decodeRaydiumPersonalPosition(data: Buffer): RaydiumPersonalPositionInfo;
export declare function i32ToBytes(num: number): Uint8Array;
export declare function getPdaProtocolPositionAddress(programId: PublicKey, poolId: PublicKey, tickLower: number, tickUpper: number): {
publicKey: PublicKey;
nonce: number;
};
export declare class RaydiumSqrtPriceMath {
static sqrtPriceX64ToPrice(sqrtPriceX64: BN, decimalsA: number, decimalsB: number): Decimal;
static priceToSqrtPriceX64(price: Decimal, decimalsA: number, decimalsB: number): BN;
static getSqrtPriceX64FromTick(tick: number): BN;
static getTickFromPrice(price: Decimal, decimalsA: number, decimalsB: number): number;
static getTickFromSqrtPriceX64(sqrtPriceX64: BN): number;
}
export declare class RaydiumTickMath {
static getTickWithPriceAndTickspacing(price: Decimal, tickSpacing: number, mintDecimalsA: number, mintDecimalsB: number): number;
static roundPriceWithTickspacing(price: Decimal, tickSpacing: number, mintDecimalsA: number, mintDecimalsB: number): Decimal;
}
export declare class RaydiumLiquidityMath {
static addDelta(x: BN, y: BN): BN;
static getTokenAmountAFromLiquidity(sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, roundUp: boolean): BN;
static getTokenAmountBFromLiquidity(sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, roundUp: boolean): BN;
static getLiquidityFromTokenAmountA(sqrtPriceX64A: BN, sqrtPriceX64B: BN, amountA: BN, _roundUp: boolean): BN;
static getLiquidityFromTokenAmountB(sqrtPriceX64A: BN, sqrtPriceX64B: BN, amountB: BN): BN;
static getLiquidityFromTokenAmounts(sqrtPriceCurrentX64: BN, sqrtPriceX64A: BN, sqrtPriceX64B: BN, amountA: BN, amountB: BN): BN;
static getAmountsFromLiquidity(sqrtPriceCurrentX64: BN, sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, roundUp: boolean): {
amountA: BN;
amountB: BN;
};
static getAmountsFromLiquidityWithSlippage(sqrtPriceCurrentX64: BN, sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, amountMax: boolean, roundUp: boolean, amountSlippage: number): {
amountSlippageA: BN;
amountSlippageB: BN;
};
}
export declare class RaydiumTickUtils {
static getTickArrayStartIndexByTick(tickIndex: number, tickSpacing: number): number;
}
//# sourceMappingURL=raydiumSdkCompat.d.ts.map