uniswap V2的JSBI负值的无效BigNumber值

问题描述

您好,我正在按照uniswapV2文档进行交易,但遇到错误,遵循invalid bignumber value

我输入的金额为2941991120,而在JSBI格式中为-1352976176,这给了我无效的bignumber值错误。这是我的代码code screenshot。但是我完全按照本教程所说的https://uniswap.org/docs/v2/javascript-SDK/trading/

谁能告诉我我做错了什么地方?

解决方法

该示例告诉您应将值转换为十六进制:

const value = trade.inputAmount.raw // // needs to be converted to e.g. hex

与其他值之一相同。你尝试过吗?

如果使用(带符号的)整数,则其符号可以为正/负(+ / -)。无论您发送什么值,都被视为负值,这是意外的,因此响应告诉您。

这个例子似乎建议您可以做:https://ethereum.stackexchange.com/questions/87983/failed-transaction-error-encountered-during-contract-execution-on-uniswap-rout

...
const amountOutMinHex = ethers.BigNumber.from(amountOutMin.toString()).toHexString();
...