Контракт ERC20 не может передавать большие токены - PullRequest
1 голос
/ 27 мая 2020

Я создаю токен ERC20. Я правильно использовал десятичные дроби. Итак, я передаю 10 ^ 21 токенов функции для передачи моего токена.

Minted tokens : 1000000 * (10**decimals) # decimals = 18

Значит, я смогу перевести эту сумму?

Я сделал пользовательский интерфейс и использовал web3. js, где я получил эту ошибку.

Unhandled Rejection (Error): 
invalid number value (arg="_price", coderType="uint256", value="1e+21")

Затем я также попробовал в Remix для тех же значений. там также транзакция не удалась. Выполнение не выполняется для чисел, например, если я хочу передать токен 10 * 20. тогда транзакция также не выполняется.

Спасибо за помощь.

1 Ответ

2 голосов
/ 27 мая 2020

Решил с помощью этого: 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")
...