fix for the estimated output amount of LP tokens during addLiquidity
Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
parent
ab8ca19a69
commit
bb98a8aea7
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ghost-dao-interface",
|
"name": "ghost-dao-interface",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.23",
|
"version": "0.0.24",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
@ -60,14 +60,11 @@ const PoolContainer = ({
|
|||||||
} = useTotalSupply(chainId, pairAddress);
|
} = useTotalSupply(chainId, pairAddress);
|
||||||
const {
|
const {
|
||||||
reserves: pairReserves,
|
reserves: pairReserves,
|
||||||
|
tokens: tokenAddresses,
|
||||||
refetch: pairReservesRefetch,
|
refetch: pairReservesRefetch,
|
||||||
} = useUniswapV2PairReserves(
|
} = useUniswapV2PairReserves(
|
||||||
chainId,
|
chainId,
|
||||||
pairAddress,
|
pairAddress,
|
||||||
balanceTop._decimals,
|
|
||||||
balanceBottom._decimals,
|
|
||||||
tokenNameTop,
|
|
||||||
tokenNameBottom,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const onSwap = () => {
|
const onSwap = () => {
|
||||||
@ -110,19 +107,27 @@ const PoolContainer = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const estimatedAmountOut = useMemo(() => {
|
const estimatedAmountOut = useMemo(() => {
|
||||||
|
const pairReserves0 = addressTop.toUpperCase() === tokenAddresses.token0.toUpperCase()
|
||||||
|
? pairReserves.reserve0
|
||||||
|
: pairReserves.reserve1;
|
||||||
|
const pairReserves1 = addressBottom.toUpperCase() === tokenAddresses.token1.toUpperCase()
|
||||||
|
? pairReserves.reserve1
|
||||||
|
: pairReserves.reserve0;
|
||||||
|
|
||||||
const zero = new DecimalBigNumber(0n, 0);
|
const zero = new DecimalBigNumber(0n, 0);
|
||||||
const value0 = new DecimalBigNumber(amountTop, balanceTop._decimals)
|
const value0 = new DecimalBigNumber(amountTop, balanceTop._decimals)
|
||||||
const value1 = new DecimalBigNumber(amountBottom, balanceBottom._decimals)
|
const value1 = new DecimalBigNumber(amountBottom, balanceBottom._decimals);
|
||||||
|
|
||||||
const amountToAddA = new DecimalBigNumber(value0._value.toBigInt(), balanceTop._decimals);
|
const amountToAddA = new DecimalBigNumber(value0._value.toBigInt(), balanceTop._decimals);
|
||||||
const amountToAddB = new DecimalBigNumber(value1._value.toBigInt(), balanceBottom._decimals);
|
const amountToAddB = new DecimalBigNumber(value1._value.toBigInt(), balanceBottom._decimals);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
pairReserves.reserve0.gt(zero) &&
|
pairReserves0.gt(zero) &&
|
||||||
pairReserves.reserve1.gt(zero) &&
|
pairReserves1.gt(zero) &&
|
||||||
lpTotalSupply.gt(new DecimalBigNumber(0n, 0))
|
lpTotalSupply.gt(new DecimalBigNumber(0n, 0))
|
||||||
) {
|
) {
|
||||||
const lpTokensFromA = (amountToAddA.mul(lpTotalSupply).div(pairReserves.reserve0));
|
const lpTokensFromA = (amountToAddA.mul(lpTotalSupply).div(pairReserves0));
|
||||||
const lpTokensFromB = (amountToAddB.mul(lpTotalSupply).div(pairReserves.reserve1));
|
const lpTokensFromB = (amountToAddB.mul(lpTotalSupply).div(pairReserves1));
|
||||||
const lpTokensToMint = lpTokensFromA.gt(lpTokensFromB) ? lpTokensFromB : lpTokensFromA;
|
const lpTokensToMint = lpTokensFromA.gt(lpTokensFromB) ? lpTokensFromB : lpTokensFromA;
|
||||||
return lpTokensToMint;
|
return lpTokensToMint;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user