UNPKG

@orca-so/whirlpool-sdk

Version:

Whirlpool SDK for the Orca protocol.

45 lines (44 loc) 1.94 kB
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>; }