hermes-v2-sdk
Version:
⚒️ An SDK for building applications on top of Hermes V2
42 lines (41 loc) • 4.27 kB
TypeScript
import { BigNumber } from '@ethersproject/bignumber';
import { StablePoolPairData } from '.';
import { BigNumber as OldBigNumber } from '../../../../utils/balancer/bignumber';
/**********************************************************************************************
// invariant //
// D = invariant to compute //
// A = amplifier n * D^2 + A * n^n * S * (n^n * P / D^(n−1)) //
// S = sum of balances ____________________________________________ //
// P = product of balances (n+1) * D + ( A * n^n − 1)* (n^n * P / D^(n−1)) //
// n = number of tokens //
**********************************************************************************************/
export declare function _invariant(A: BigNumber, balances: OldBigNumber[]): OldBigNumber;
/**********************************************************************************************
// outGivenIn token x for y - polynomial equation to solve //
// ay = amount out to calculate //
// by = balance token out //
// y = by - ay //
// D = invariant D D^(n+1) //
// A = amplifier y^2 + ( S - ---------- - 1) * y - ------------- = 0 //
// n = number of tokens (A * n^n) A * n^2n * P //
// S = sum of final balances but y //
// P = product of final balances but y //
**********************************************************************************************/
export declare function _exactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;
/**********************************************************************************************
// inGivenOut token x for y - polynomial equation to solve //
// ax = amount in to calculate //
// bx = balance token in //
// x = bx + ax //
// D = invariant D D^(n+1) //
// A = amplifier x^2 + ( S - ---------- - 1) * x - ------------- = 0 //
// n = number of tokens (A * n^n) A * n^2n * P //
// S = sum of final balances but x //
// P = product of final balances but x //
**********************************************************************************************/
export declare function _tokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;
export declare function _solveAnalyticalBalance(sum: OldBigNumber, inv: OldBigNumber, A: BigNumber, n_pow_n: OldBigNumber, p: OldBigNumber): OldBigNumber;
export declare function _spotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;
export declare function _spotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;
export declare function _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;
export declare function _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;