无法以大数字作为参数从 web3 调用合约函数

Far*_*asi 6 bignum bigdecimal web3-donotuse

嗨,我正在尝试调用需要 unit256 参数的合同的自定义函数。

我使用这个值作为参数从 web3 调用这个函数:10000000000000000000(10 有 18 个零)一旦这个调用被 web3 击中,我就面临以下大数字错误:

错误:溢出(故障=“溢出”,操作=“BigNumber.from”,值=10000000000000000000,代码=NUMERIC_FAULT,版本=bignumber/5.0.0-beta.138)

有人知道原因吗?

这是我正在调用的合同的功能:

function lock(
    address tokenAddress,
    uint256 amount
)
Run Code Online (Sandbox Code Playgroud)

这是 web3 代码片段:

Contract.methods.lock(0x57AA33D53351eA4BF00C6F10c816B3037E268b7a, 10000000000000000000,
        ).send({
            from: accounts[0],
            gasLimit: 500000,
            value: 0
        });
Run Code Online (Sandbox Code Playgroud)

我用小值尝试了相同的函数,它的工作原理是 1(有 18 个零)

Far*_*asi 25

我尝试将参数作为字符串发送并且它起作用了。

发布此答案,因此可能对某人有所帮助。

  • 很有魅力 (2认同)