UNPKG

@orca-so/whirlpool-sdk

Version:

Whirlpool SDK for the Orca protocol.

84 lines (83 loc) 2.4 kB
/// <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 {};