ERC20 合约无法转移大额代币
Posted
技术标签:
【中文标题】ERC20 合约无法转移大额代币【英文标题】:ERC20 contract not able to transfer large tokens 【发布时间】:2020-09-14 20:05:15 【问题描述】:我正在构建一个 ERC20 代币。我已经正确使用了小数。所以,我将 10^21 个令牌转移到一个函数来转移我的令牌。
Minted tokens : 1000000 * (10**decimals) # decimals = 18
所以我应该可以转移这笔钱?
我制作了一个 UI 并使用了 web3.js,但出现了这个错误。
Unhandled Rejection (Error):
invalid number value (arg="_price", coderType="uint256", value="1e+21")
然后我也在 Remix 中尝试了相同的值。那里的交易也失败了。如果我想转移 10*20 令牌等数字,执行失败。那么交易也会失败。
感谢您的帮助。
【问题讨论】:
【参考方案1】:解决了这个问题: https://github.com/ethereum/web3.js/issues/2077#issuecomment-468530879
const dec = window.web3.utils.toBN(this.props.decimals)
const price_ = window.web3.utils.toBN(this.Object.value*(100))
const price ="0x"+ price_.mul(window.web3.utils.toBN(10).pow(dec)).toString("hex")
【讨论】:
以上是关于ERC20 合约无法转移大额代币的主要内容,如果未能解决你的问题,请参考以下文章