UNPKG

@orca-so/whirlpool-sdk

Version:

Whirlpool SDK for the Orca protocol.

82 lines (81 loc) 3.36 kB
import { Address, Provider } from "@project-serum/anchor"; import { PublicKey } from "@solana/web3.js"; import { ClosePositionQuote, ClosePositionQuoteParam, ClosePositionTxParam, FillTickArraysParam, OpenPositionQuote, OpenPositionQuoteParam, OpenPositionTxParam, SwapQuote, SwapQuoteParam, SwapTxParam } from "./public/types"; import { OrcaDAL } from "../dal/orca-dal"; import { MultiTransactionBuilder } from "../utils/public/multi-transaction-builder"; import { LiquidityDistribution } from "./ux/liquidity-distribution"; import { PDA, TransactionBuilder, InitTickArrayParams } from "@orca-so/whirlpool-client-sdk"; export declare class OrcaPool { private readonly dal; constructor(dal: OrcaDAL); /*** Utilities ***/ /** * Create liquidity distribution across three tick-arrays for a pool. * Useful for visualizing the liquidity in the pool. * * @param poolAddress * @param tickLower * @param tickUpper * @param refresh * @returns liquidity distribution */ getLiquidityDistribution(poolAddress: Address, tickLower: number, tickUpper: number, refresh?: boolean): Promise<LiquidityDistribution>; /** * Derive the pool pda given token mints and tick spacing * * @param tokenMintA * @param tokenMintB * @param stable * @returns */ derivePDA(tokenMintA: Address, tokenMintB: Address, tickSpacing: number): PDA; /*** Transactions ***/ /** * Construct a transaction for opening an new position */ getOpenPositionTx(param: OpenPositionTxParam): Promise<{ tx: MultiTransactionBuilder; mint: PublicKey; }>; /** * Construct a transaction for opening an new position */ getOpenPositionWithMetadataTx(param: OpenPositionTxParam): Promise<{ tx: MultiTransactionBuilder; mint: PublicKey; }>; /** * Construct a transaction for opening an new position with optional metadata */ getOpenPositionWithOptMetadataTx(param: OpenPositionTxParam, withMetadata?: boolean): Promise<{ tx: MultiTransactionBuilder; mint: PublicKey; }>; getInitTickArrayTx(provider: Provider, param: InitTickArrayParams): Promise<TransactionBuilder>; /** * Construct a transaction for closing an existing position */ getClosePositionTx(param: ClosePositionTxParam): Promise<TransactionBuilder>; getLowestInitializedTickArrayTickIndex(poolAddress: Address, tickSpacing: number): Promise<number>; getHighestInitializedTickArrayTickIndex(poolAddress: Address, tickSpacing: number): Promise<number>; getInitializeGapTickArraysTx(param: FillTickArraysParam): Promise<MultiTransactionBuilder>; /** * Construct a transaction for a swap */ getSwapTx(param: SwapTxParam): Promise<MultiTransactionBuilder>; private getDefaultSqrtPriceLimit; private getTickArrayPublicKeysForSwap; /*** Quotes ***/ /** * Construct a quote for opening a new position */ getOpenPositionQuote(param: OpenPositionQuoteParam): Promise<OpenPositionQuote>; /** * Construct a quote for closing an existing position */ getClosePositionQuote(param: ClosePositionQuoteParam): Promise<ClosePositionQuote>; /** * Construct a quote for swap */ getSwapQuote(param: SwapQuoteParam): Promise<SwapQuote>; }