@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
82 lines (81 loc) • 3.36 kB
TypeScript
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>;
}