UNPKG

hermes-v2-sdk

Version:

⚒️ An SDK for building applications on top of Hermes V2

101 lines (100 loc) 3.34 kB
import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../utils/balancer/bignumber'; export declare enum SwapTypes { SwapExactIn = 0, SwapExactOut = 1 } export declare enum PoolTypes { Weighted = 0, Stable = 1, Element = 2, MetaStable = 3, Linear = 4, Gyro2 = 5, Gyro3 = 6, GyroE = 7, Fx = 8 } export declare type PoolPairBase = { id: string; address: string; poolType: PoolTypes; swapFee: BigNumber; tokenIn: string; tokenOut: string; decimalsIn: number; decimalsOut: number; balanceIn: BigNumber; balanceOut: BigNumber; }; export interface SubgraphPoolBase { id: string; address: string; swapFee: string; totalShares: string; tokens: SubgraphToken[]; tokensList: string[]; amp?: string; } export declare type SubgraphToken = { address: string; balance: string; decimals: number; priceRate: string; }; export declare enum PoolFilter { All = "All", Weighted = "Weighted", Stable = "Stable", MetaStable = "MetaStable", LiquidityBootstrapping = "LiquidityBootstrapping", Investment = "Investment", Element = "Element", StablePhantom = "StablePhantom", ComposableStable = "ComposableStable", Gyro2 = "Gyro2", Gyro3 = "Gyro3", GyroE = "GyroE", AaveLinear = "AaveLinear", Linear = "Linear", EulerLinear = "EulerLinear", ERC4626Linear = "ERC4626Linear", BeefyLinear = "BeefyLinear", GearboxLinear = "GearboxLinear", MidasLinear = "MidasLinear", ReaperLinear = "ReaperLinear", SiloLinear = "SiloLinear", TetuLinear = "TetuLinear", YearnLinear = "YearnLinear", FX = "FX" } export interface PoolBase<D extends PoolPairBase = PoolPairBase> { poolType: PoolTypes; id: string; address: string; tokensList: string[]; tokens: { address: string; balance: string; decimals: number; }[]; totalShares: BigNumber; mainIndex?: number; isLBP?: boolean; getNormalizedLiquidity: (poolPairData: D) => OldBigNumber; getLimitAmountSwap: (poolPairData: D, swapType: SwapTypes) => OldBigNumber; /** * @param {string} token - Address of token. * @param {BigNumber} newBalance - New balance of token. EVM scaled. */ updateTokenBalanceForPool: (token: string, newBalance: BigNumber) => void; updateTotalShares: (newTotalShares: BigNumber) => void; _exactTokenInForTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; _tokenInForExactTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; _calcTokensOutGivenExactBptIn(bptAmountIn: BigNumber): BigNumber[]; _calcBptOutGivenExactTokensIn(amountsIn: BigNumber[]): BigNumber; _spotPriceAfterSwapExactTokenInForTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; _spotPriceAfterSwapTokenInForExactTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; _derivativeSpotPriceAfterSwapExactTokenInForTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; _derivativeSpotPriceAfterSwapTokenInForExactTokenOut: (poolPairData: D, amount: OldBigNumber) => OldBigNumber; }