@bombearn/sdk
Version:
Interaction framework for the yearn protocol
134 lines (133 loc) • 4.95 kB
TypeScript
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>;
}