uniswap V2对JSBI负值的BigNumber值无效



嗨,我正在跟踪uniswapV2文档执行交易,遇到错误,因为跟踪无效的大数值

我得到的输入量是2941991120,在JSBI表格中是-1352971676,这给了我无效的bignumber值错误。这是我的代码截图。但我完全按照教程所说的去做https://uniswap.org/docs/v2/javascript-SDK/trading/

有人能告诉我哪里做错了吗?

示例告诉应该将值转换为hex:

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();
...

接受的答案过于复杂。JSBI::toString()方法采用基数参数,因此链接的示例看起来很简单:

trade.minimumAmountOut(slippageTolerance).raw.toString(16);

相关内容

最新更新