UNPKG

@bombearn/sdk

Version:

Interaction framework for the yearn protocol

134 lines (133 loc) 4.95 kB
import { CallOverrides } from "@ethersproject/contracts"; import { ChainId } from "../chain"; import { ContractAddressId, ContractService, WrappedContract } from "../common"; import { Address, Integer, Usdc } from "../types"; export declare const OracleAbi: string[]; /** * [[OracleService]] is the main pricing engine, used by all price calculations. * It's implemented in the form of a contract that lives on all networks * supported by yearn. */ export declare class OracleService<T extends ChainId> extends ContractService<T> { static abi: string[]; static contractId: ContractAddressId; get contract(): Promise<WrappedContract>; /** * Fetch all the active Oracle calculations. * @param overrides * @returns list of calculations contract addresses */ getCalculations(overrides?: CallOverrides): Promise<Address[]>; /** * Get the suggested Usdc exchange rate for an token. * @param token * @param overrides * @returns Usdc exchange rate (6 decimals) */ getPriceUsdc(token: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get the normalized Usdc value for the token and corresponding quantity. * @param token * @param amount * @param overrides * @returns Usdc exchange rate (6 decimals) */ getNormalizedValueUsdc(token: Address, amount: Integer, overrides?: CallOverrides): Promise<Usdc>; /** * Get the token address that lens considers Usdc. * @param overrides * @returns address */ getUsdcAddress(overrides?: CallOverrides): Promise<Address>; /** * Test if a token address is a curve liquidity provider token. * @param lpToken * @param overrides * @returns test result */ isCurveLpToken(lpToken: Address, overrides?: CallOverrides): Promise<boolean>; /** * Get Usdc exchange rate for a curve liquidity provider token. * @param lpToken * @param overrides * @returns Usdc exchange rate (6 decimals) */ getCurvePriceUsdc(lpToken: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get Usdc exchange rate of underlying token of the curve liquidity provider * token's pool. * @param lpToken * @param overrides * @returns Usdc exchange rate (6 decimals) */ getBasePrice(lpToken: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get virtual price for a curve liquidity provider token. * @param lpToken * @param overrides * @returns virtual price */ getVirtualPrice(lpToken: Address, overrides?: CallOverrides): Promise<Integer>; /** * Get the contract address that lens considers as Curve Registry. * @param overrides * @returns */ getCurveRegistryAddress(overrides?: CallOverrides): Promise<Integer>; /** * Test if a token address is an iron bank market. * @param token * @param overrides * @returns test result */ isIronBankMarket(token: Address, overrides?: CallOverrides): Promise<boolean>; /** * Get Usdc exchange rate for an iron bank market token. * @param token * @param overrides * @returns Usdc exchange rate (6 decimals) */ getIronBankMarketPriceUsdc(token: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get all the iron bank market addresses. * @param overrides * @returns list of iron bank market addresses */ getIronBankMarkets(overrides?: CallOverrides): Promise<Address[]>; /** * Test if a token address is a sushiswap liquidity provider token. * @param token * @param overrides * @returns test result */ isLpToken(token: Address, overrides?: CallOverrides): Promise<boolean>; /** * Get exchange rate between two tokens from the sushiswap router. * @param token0 * @param token1 * @param overrides * @returns exchange rate */ getPriceFromRouter(token0: Address, token1: Address, overrides?: CallOverrides): Promise<Integer>; /** * Get Usdc exchange rate for a token. * @param token * @param overrides * @returns Usdc exchange rate (6 decimals) */ getPriceFromRouterUsdc(token: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get total liquidity for a liquidity provider token in Usdc * @param token * @param overrides * @returns Usdc liquidity (6 decimals) */ getLpTokenTotalLiquidityUsdc(token: Address, overrides?: CallOverrides): Promise<Usdc>; /** * Get Usdc exchange rate for a sushiswap liquidity provider token. * @param token * @param overrides * @returns Usdc exchange rate (6 decimals) */ getLpTokenPriceUsdc(token: Address, overrides?: CallOverrides): Promise<Integer>; }