[英]ERC20 - How to split the initial token supply on multiple accounts?
有人可以向我解释为什么不能将带有 Transfer 事件的初始总供应量拆分到多个不是 _msgSender() 地址的地址吗?
这里的目标是使用 0x00 地址“铸造”多个钱包上的代币(开发钱包中 12%,营销钱包中 5%,另一个钱包中 3%),但直接在构造函数中不使用我将拥有的外部 function在部署期间调用脚本。
但它不起作用,我没有收到任何错误......真的不明白
这是我的代码:
constructor () public payable{
uint256 _tTotransfer = _tTotal;
uint256 _tToDevs = (_tTotal.mul(12)).div(100);
_tTotransfer = _tTotransfer.sub((_tTotal.mul(12)).div(100));
uint256 _tToMarketing = (_tTotal.mul(5)).div(100);
_tTotransfer = _tTotransfer.sub((_tTotal.mul(5)).div(100));
uint256 _tToApes = (_tTotal.mul(3)).div(100);
_tTotransfer = _tTotransfer.sub((_tTotal.mul(3)).div(100));
_rOwned[_msgSender()] = _rTotal;
emit Transfer(address(0), _msgSender(), _tTotransfer);
emit Transfer(address(0), _devsWallet, _tToDevs);
emit Transfer(address(0), _marketingWallet, _tToMarketing);
emit Transfer(address(0), _apesWallet, _tToApes);
}
此外,我不明白为什么不能直接“铸造”另一个钱包(不是拆分而是整个)上的总供应量而不是 _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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.