getShareOfPool
function getShareOfPool(
address _tokenA,
address _tokenB,
uint _amountADesired,
uint _amountBDesired,
bool _owned
)external view returns (uint poolRatio)
μ λμ± νμ μ§λΆμ¨ ꡬν λ μ¬μ©
Parameters
Return Values
β» Reservesλ₯Ό ν΅ν μ°μ° λ°©λ²
// totalLiquidityμ κ²½μ° pairContract totalSupply()λ₯Ό ν΅ν΄ νλ
liquidity = Math.min((amount0*totalLiquidity) / _reserve0, (amount1*totalLiquidity) / _reserve1);
totalLiquidity = totalLiquidity+liquidity;
// 1λ§μ리 μ°μ°μ μν΄..
uint _numerator = liquidity * (10 ** 5);
uint _quotient = ((_numerator / (totalLiquidity)) + 5) / 10;
if( liquidity > 0 )
return _quotient >= 10000 ? 10000 : _quotient;
else
return 0;
Example
// μ§λΆμ¨ μ»κΈ°(κ°μ μν)
await routerContract.getShareOfPool(
mockToken0Contract.address,
mockToken1Contract.address,
ethers.utils.parseEther("10.0"),
ethers.utils.parseEther("5.0"),
false
)
// κ²°κ³Ό (9.09%μ μν₯λ)
BigNumber { value: "909" }
// μ§λΆμ¨ μ»κΈ°(μμ μ€μΈ)
await routerContract..getShareOfPool(
mockToken0Contract.address,
mockToken1Contract.address,
0,
0,
true
)
// κ²°κ³Ό (100%μ μν₯λ)
BigNumber { value: "10000" }
2023.01.11
Last updated