hermes-v2-sdk
Version:
⚒️ An SDK for building applications on top of Hermes V2
101 lines (100 loc) • 3.34 kB
TypeScript
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;
}