Uniswapv2汇款中的addLiquidity Decimal错误(大数字)



我正在为一个项目测试Uniswapv2,并收到以下错误:

transact to UniswapV2Router02.addLiquidity errored: Error encoding arguments: Error: invalid BigNumber string (argument="value", value=".004", code=INVALID_ARGUMENT, version=bignumber/5.1.1) 

Uniswapv2代码是正常的,未经编辑。我在Uniswap上测试了这些数字,以确保这些数字在我在Remix中尝试之前有效。这些是我试图通过的:

tokenA: 0xc778417e063141139fce010982780140aa0cd5ab (WETH since I can't find ETH address)
tokenB: 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 (UNI)
amountADesired: 0.004
amountBDesired: 0.03
amountAMin:1
amountBMin:2
to: 0xd50eCE9501a1f63e449DbBBbBdc5CB59f3e2c231
deadline: 255

Solidity合约不接受十进制参数。相反,您需要传递最小单位的数量。

WETH(注意-你的问题中有一个错误的地址(有18位小数,UNI也有18位。


1 WETH为1000000000000000000(或10^18(个单位。

因此,如果要在参数中传递0.004 WETH,则需要输入数字40000000000000000(即0.004*10^18(。


注意:ETH是以太坊网络的本地货币,因此没有ETH的令牌地址。Uniswap v2路由器2有一个函数addLiquidityETH(),用于当您想向ETH的一对代币添加流动性时。

最新更新