hermes-v2-sdk
Version:
⚒️ An SDK for building applications on top of Hermes V2
52 lines (51 loc) • 2.68 kB
TypeScript
import { BigNumber } from '@ethersproject/bignumber';
import { PoolBase, PoolPairBase, PoolTypes, SubgraphPoolBase, SubgraphToken, SwapTypes } from '../../../../types/balancer';
import { BigNumber as OldBigNumber } from '../../../../utils/balancer/bignumber';
declare type StablePoolToken = Pick<SubgraphToken, 'address' | 'balance' | 'decimals'>;
export declare type StablePoolPairData = PoolPairBase & {
allBalances: OldBigNumber[];
allBalancesScaled: BigNumber[];
amp: BigNumber;
tokenIndexIn: number;
tokenIndexOut: number;
};
export declare class StablePool implements PoolBase<StablePoolPairData> {
poolType: PoolTypes;
id: string;
address: string;
amp: BigNumber;
swapFee: BigNumber;
totalShares: BigNumber;
tokens: StablePoolToken[];
tokensList: string[];
MAX_IN_RATIO: BigNumber;
MAX_OUT_RATIO: BigNumber;
static AMP_DECIMALS: number;
static fromPool(pool: SubgraphPoolBase): StablePool;
constructor(id: string, address: string, amp: string, swapFee: string, totalShares: string, tokens: StablePoolToken[], tokensList: string[]);
getNormalizedLiquidity(poolPairData: StablePoolPairData): OldBigNumber;
getLimitAmountSwap(poolPairData: PoolPairBase, swapType: SwapTypes): OldBigNumber;
updateTokenBalanceForPool(token: string, newBalance: BigNumber): void;
updateTotalShares(newTotalShares: BigNumber): void;
_exactTokenInForTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
_tokenInForExactTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
/**
* _calcTokensOutGivenExactBptIn
* @param bptAmountIn EVM scale.
* @returns EVM scale.
*/
_calcTokensOutGivenExactBptIn(bptAmountIn: BigNumber): BigNumber[];
/**
* _calcBptOutGivenExactTokensIn
* @param amountsIn EVM Scale
* @returns EVM Scale
*/
_calcBptOutGivenExactTokensIn(amountsIn: BigNumber[]): BigNumber;
_spotPriceAfterSwapExactTokenInForTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
_spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
_derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
_derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: StablePoolPairData, amount: OldBigNumber): OldBigNumber;
subtractSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber;
addSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber;
}
export {};