ERC20 - 如何在多个账户上分配初始代币供应?

问题描述

有人可以向我解释为什么不能将具有 Transfer 事件的初始总供应量拆分为多个不是 _msgSender() 地址的地址吗?

这里的目标是使用 0x00 地址“铸造”多个钱包上的代币(12% 在开发钱包中,5% 在营销钱包中,3% 在另一个钱包中),但直接在构造函数中不使用外部函数我将不得不在部署期间调用脚本。

但它不起作用,我没有收到任何错误......真的不明白

这是我的代码

order by

我也不明白为什么不能直接“铸造”另一个钱包的总供应量(不是拆分而是整个)而不是 _msgSender。

Thx 伙计们希望有人能帮助我...

解决方法

假设 _rOwned 持有每个地址的实际代币余额:

您正确地发出了 Transfer 事件,但也需要更新代币余额。


这一行将 _msgSender() 余额设置为 _tTotal,根据您的描述,您不需要。

_rOwned[_msgSender()] = _rTotal; // incorrect

您希望他们拥有剩余的 _tTotransfer


其他初始所有者也是如此

_rOwned[_msgSender()] = _tTotransfer; // replace the above line to this
emit Transfer(address(0),_msgSender(),_tTotransfer);

_rOwned[_devsWallet] = _tToDevs;
emit Transfer(address(0),_devsWallet,_tToDevs);

rOwned[_marketingWallet] = _tToMarketing;
emit Transfer(address(0),_marketingWallet,_tToMarketing);

rOwned[_apesWallet] = _tToApes;
emit Transfer(address(0),_apesWallet,_tToApes);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...