@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
84 lines (83 loc) • 2.4 kB
TypeScript
/// <reference types="bn.js" />
import { u64 } from "@solana/spl-token";
import { Address, BN, Provider } from "@project-serum/anchor";
import Decimal from "decimal.js";
import { Percentage } from "../../utils/public/percentage";
/*** Transactions ***/
export declare type OpenPositionTxParam = {
provider: Provider;
quote: OpenPositionQuote;
};
export declare type ClosePositionTxParam = {
provider: Provider;
quote: ClosePositionQuote;
};
export declare type SwapTxParam = {
provider: Provider;
quote: SwapQuote;
};
export declare type FillTickArraysParam = {
provider: Provider;
poolAddress: Address;
};
/*** Quotes ***/
export declare type OpenPositionQuoteParam = OpenPositionQuoteByPrice | OpenPositionQuoteByTickIndex;
export declare type OpenPositionQuoteByPrice = BaseOpenPositionQuoteParam & {
priceLower: Decimal;
priceUpper: Decimal;
};
export declare type OpenPositionQuoteByTickIndex = BaseOpenPositionQuoteParam & {
tickLowerIndex: number;
tickUpperIndex: number;
};
declare type BaseOpenPositionQuoteParam = {
poolAddress: Address;
tokenMint: Address;
tokenAmount: u64;
refresh: boolean;
slippageTolerance?: Percentage;
};
export declare type OpenPositionQuote = {
poolAddress: Address;
tickLowerIndex: number;
tickUpperIndex: number;
maxTokenA: u64;
maxTokenB: u64;
estTokenA: u64;
estTokenB: u64;
liquidity: BN;
};
export declare type ClosePositionQuoteParam = {
positionAddress: Address;
refresh: boolean;
slippageTolerance?: Percentage;
};
export declare type ClosePositionQuote = {
positionAddress: Address;
minTokenA: u64;
minTokenB: u64;
estTokenA: u64;
estTokenB: u64;
liquidity: BN;
};
export declare type SwapQuoteParam = {
poolAddress: Address;
tokenMint: Address;
tokenAmount: u64;
isInput: boolean;
slippageTolerance?: Percentage;
refresh: boolean;
};
export declare type SwapQuote = {
poolAddress: Address;
otherAmountThreshold: u64;
sqrtPriceLimitX64: BN;
amountIn: u64;
amountOut: u64;
aToB: boolean;
fixedInput: boolean;
};
/*** Type Guards ***/
export declare function isQuoteByPrice(param: OpenPositionQuoteParam): param is OpenPositionQuoteByPrice;
export declare function isQuoteByTickIndex(param: OpenPositionQuoteParam): param is OpenPositionQuoteByTickIndex;
export {};