@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
45 lines (44 loc) • 1.94 kB
TypeScript
import { Address } from "@project-serum/anchor";
import Decimal from "decimal.js";
import { PoolData } from "../types";
import { TokenUSDPrices } from "../utils/token-price";
import { UserPositionData } from "../types";
import { WhirlpoolContext } from "../context";
export declare class OrcaWhirlpoolClient {
readonly ctx: WhirlpoolContext;
constructor(context: WhirlpoolContext);
/**
* Use on-chain dex data to derive usd prices for tokens.
*
* @param poolAddresses pools to be used for price discovery
* @param baseTokenMint a token mint with known stable usd price (e.g. USDC)
* @param baseTokenUSDPrice baseTokenMint's usd price. defaults to 1, assuming `baseTokenMint` is a USD stable coin
* @param otherBaseTokenMints optional list of token mints to prioritize as base
* @param refresh defaults to refreshing the cache
*/
getTokenPrices(poolAddresses: Address[], baseTokenMint: Address, baseTokenUSDPrice?: Decimal, otherBaseTokenMints?: Address[], refresh?: boolean): Promise<TokenUSDPrices>;
/**
* Fetch position data owned by the wallet address.
*
* @param walletAddress wallet address
* @param refresh defaults to refreshing the cache
* @returns positions owned by the wallet address
*/
getUserPositions(walletAddress: Address, refresh?: boolean): Promise<Record<string, UserPositionData>>;
/**
* Fetch list of pool data.
*
* @param poolAddresses list of pools to retrieve
* @param refresh defaults to refreshing the cache
* @returns list of pool data
*/
getPools(poolAddresses: Address[], refresh?: boolean): Promise<Record<string, PoolData>>;
/**
* Fetch pool data.
*
* @param poolAddress pool address
* @param refresh defaults to refreshing the cache
* @returns pool data
*/
getPool(poolAddress: Address, refresh?: boolean): Promise<PoolData | null>;
}