我需要在ERC20令牌代码中实现Distribute函数,该代码在执行时会在地址数组上发送相同数量的令牌。以下是我将用于此的源代码。我当然会更改令牌的变量:
我在合同末尾添加的Distribute函数是否合适,并且不会干扰其余的源代码?如果我在区块链上使用该功能部署合同,我可以通过Myetherwallet或Mist在稍后的阶段执行分配吗?
function distributeToken(address[] addresses, uint256 _value) onlyOwner{
for (uint i = 0; i < addresses.length; i++) {
balances[owner] -= _value;
balances[addresses[i]] += _value;
Transfer(owner, addresses[i], _value);
}
}
答案 0 :(得分:0)
最好有一个声明功能,并让用户调用该函数来获取其令牌,而不是让所有者尝试分发它们。所有者为分发代币而必须支付的燃气量将令人叹为观止。
如果一个人将以太送到合同,可能会立即发出代币是更好的解决方案。
答案 1 :(得分:0)
确保为该功能添加一些健全性检查,您应该进行一些基本检查以避免用户错误。
e.g
Geokit::default_units = params[:unit].to_sym