hermes-v2-sdk
Version:
⚒️ An SDK for building applications on top of Hermes V2
61 lines (60 loc) • 3.27 kB
TypeScript
import { BigNumber } from '@ethersproject/bignumber';
import { PoolBase, PoolTypes, SubgraphPoolBase, SubgraphToken, SwapTypes } from '../../../../types/balancer';
import { BigNumber as OldBigNumber } from '../../../../utils/balancer/bignumber';
import { StablePoolPairData } from '../stablePool';
export declare enum PairTypes {
BptToToken = 0,
TokenToBpt = 1,
TokenToToken = 2
}
export declare type PhantomStablePoolToken = Pick<SubgraphToken, 'address' | 'balance' | 'decimals' | 'priceRate'>;
export declare type MetaStablePoolPairData = StablePoolPairData & {
tokenInPriceRate: BigNumber;
tokenOutPriceRate: BigNumber;
};
export declare type PhantomStablePoolPairData = MetaStablePoolPairData & {
pairType: PairTypes;
bptIndex: number;
virtualBptSupply: BigNumber;
};
export declare class PhantomStablePool implements PoolBase<PhantomStablePoolPairData> {
poolType: PoolTypes;
id: string;
address: string;
amp: BigNumber;
swapFee: BigNumber;
totalShares: BigNumber;
tokens: PhantomStablePoolToken[];
tokensList: string[];
ALMOST_ONE: BigNumber;
static AMP_DECIMALS: number;
static fromPool(pool: SubgraphPoolBase): PhantomStablePool;
static removeBPT(poolPairData: PhantomStablePoolPairData): PhantomStablePoolPairData;
constructor(id: string, address: string, amp: string, swapFee: string, totalShares: string, tokens: PhantomStablePoolToken[], tokensList: string[]);
parsePoolPairData(tokenIn: string, tokenOut: string): PhantomStablePoolPairData;
getNormalizedLiquidity(poolPairData: PhantomStablePoolPairData): OldBigNumber;
getLimitAmountSwap(poolPairData: PhantomStablePoolPairData, swapType: SwapTypes): OldBigNumber;
updateTokenBalanceForPool(token: string, newBalance: BigNumber): void;
updateTotalShares(newTotalShares: BigNumber): void;
_exactTokenInForTokenOut(poolPairData: PhantomStablePoolPairData, amount: OldBigNumber): OldBigNumber;
_tokenInForExactTokenOut(poolPairData: PhantomStablePoolPairData, 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: PhantomStablePoolPairData, amount: OldBigNumber): OldBigNumber;
_spotPriceExactTokenInForTokenOut(poolPairData: PhantomStablePoolPairData): OldBigNumber;
_spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: PhantomStablePoolPairData, amount: OldBigNumber): OldBigNumber;
_derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: PhantomStablePoolPairData, amount: OldBigNumber): OldBigNumber;
_derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: PhantomStablePoolPairData, amount: OldBigNumber): OldBigNumber;
subtractSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber;
addSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber;
}