Skip to main content

StableMath

Git Source

Constants​

_MIN_AMP​

uint256 internal constant _MIN_AMP = 1;

_MAX_AMP​

uint256 internal constant _MAX_AMP = 5000;

_AMP_PRECISION​

uint256 internal constant _AMP_PRECISION = 1e3;

_MAX_STABLE_TOKENS​

uint256 internal constant _MAX_STABLE_TOKENS = 5;

Functions​

_calculateInvariant​

function _calculateInvariant(
uint256 amplificationParameter,
uint256[] memory balances
) internal pure returns (uint256);

Parameters

NameTypeDescription
amplificationParameteruint256
balancesuint256[]

Returns

NameTypeDescription
<none>uint256

_calcOutGivenIn​

function _calcOutGivenIn(
uint256 amplificationParameter,
uint256[] memory balances,
uint256 tokenIndexIn,
uint256 tokenIndexOut,
uint256 tokenAmountIn,
uint256 invariant
) internal pure returns (uint256);

Parameters

NameTypeDescription
amplificationParameteruint256
balancesuint256[]
tokenIndexInuint256
tokenIndexOutuint256
tokenAmountInuint256
invariantuint256

Returns

NameTypeDescription
<none>uint256

_calcInGivenOut​

function _calcInGivenOut(
uint256 amplificationParameter,
uint256[] memory balances,
uint256 tokenIndexIn,
uint256 tokenIndexOut,
uint256 tokenAmountOut,
uint256 invariant
) internal pure returns (uint256);

Parameters

NameTypeDescription
amplificationParameteruint256
balancesuint256[]
tokenIndexInuint256
tokenIndexOutuint256
tokenAmountOutuint256
invariantuint256

Returns

NameTypeDescription
<none>uint256

_calcBptOutGivenExactTokensIn​

function _calcBptOutGivenExactTokensIn(
uint256 amp,
uint256[] memory balances,
uint256[] memory amountsIn,
uint256 bptTotalSupply,
uint256 currentInvariant,
uint256 swapFeePercentage
) internal pure returns (uint256);

Parameters

NameTypeDescription
ampuint256
balancesuint256[]
amountsInuint256[]
bptTotalSupplyuint256
currentInvariantuint256
swapFeePercentageuint256

Returns

NameTypeDescription
<none>uint256

_calcTokenInGivenExactBptOut​

function _calcTokenInGivenExactBptOut(
uint256 amp,
uint256[] memory balances,
uint256 tokenIndex,
uint256 bptAmountOut,
uint256 bptTotalSupply,
uint256 currentInvariant,
uint256 swapFeePercentage
) internal pure returns (uint256);

Parameters

NameTypeDescription
ampuint256
balancesuint256[]
tokenIndexuint256
bptAmountOutuint256
bptTotalSupplyuint256
currentInvariantuint256
swapFeePercentageuint256

Returns

NameTypeDescription
<none>uint256

_calcBptInGivenExactTokensOut​

function _calcBptInGivenExactTokensOut(
uint256 amp,
uint256[] memory balances,
uint256[] memory amountsOut,
uint256 bptTotalSupply,
uint256 currentInvariant,
uint256 swapFeePercentage
) internal pure returns (uint256);

Parameters

NameTypeDescription
ampuint256
balancesuint256[]
amountsOutuint256[]
bptTotalSupplyuint256
currentInvariantuint256
swapFeePercentageuint256

Returns

NameTypeDescription
<none>uint256

_calcTokenOutGivenExactBptIn​

function _calcTokenOutGivenExactBptIn(
uint256 amp,
uint256[] memory balances,
uint256 tokenIndex,
uint256 bptAmountIn,
uint256 bptTotalSupply,
uint256 currentInvariant,
uint256 swapFeePercentage
) internal pure returns (uint256);

Parameters

NameTypeDescription
ampuint256
balancesuint256[]
tokenIndexuint256
bptAmountInuint256
bptTotalSupplyuint256
currentInvariantuint256
swapFeePercentageuint256

Returns

NameTypeDescription
<none>uint256

_getTokenBalanceGivenInvariantAndAllOtherBalances​

function _getTokenBalanceGivenInvariantAndAllOtherBalances(
uint256 amplificationParameter,
uint256[] memory balances,
uint256 invariant,
uint256 tokenIndex
) internal pure returns (uint256);

Parameters

NameTypeDescription
amplificationParameteruint256
balancesuint256[]
invariantuint256
tokenIndexuint256

Returns

NameTypeDescription
<none>uint256