Ethers.js
將wei值傳遞給EIP712 _signTypedData時出現溢出錯誤
const domainSeparator = { chainId: 5 }; const TestInfo = [ { name: 'contractAddress', type: 'address' }, { name: 'fee', type: 'uint256' } ]; const data = { contractAddress: '.....', airdropFee: 52009946125155410 // wei value }; const signature = await signer._signTypedData(domainSeparator, { TestInfo }, data);
原因:‘溢出’,程式碼:‘NUMERIC_FAULT’,故障:‘溢出’,操作:‘BigNumber.from’,值:52009946125155410
solidity 函式將
uint256
weth 數量的 wei 值作為參數,所以我發送該數字但出現溢出錯誤。我該如何解決?
您的值高於JavaScript
52009946125155410
中可安全表示為類型的最大整數:因此 ethers.js 拋出錯誤。Number``9007199254740991
只需將其作為字元串傳遞:
airdropFee: "52009946125155410" // wei value
它應該沒問題。