Solidity

如何向代幣合約添加要求:1)所有者有足夠的代幣和 2)更新余額前接收者的 ETH 最小總和

  • October 8, 2017

您能否檢查這些行是否正確並且有效?在這段程式碼中,我有兩個要求:我想在更新余額之前檢查所有者是否有足夠的代幣(1000 萬代幣),並且只將代幣發送到至少 2 ETH 餘額的地址

 function getEthBalance(address _addr) constant
 returns(uint) {
     return _addr.balance;
 }

 function distributeToken(address[] addresses, uint256 _value) onlyOwner {
  for (uint i = 0; i < addresses.length; i++) {
  require(balanceOf[owner] >= 10000000); // FIRST REQUIREMENT
  if (getEthBalance(addresses[i]) <= 200000000000000)) {
     continue;
     }; // SECOND REQUIREMENT
  balances[owner] -= _value;
  balances[addresses[i]] += _value;
  Transfer(owner, addresses[i], _value);
  }
  }

謝謝你的幫助!

一些建議:

不要寫200000000000000。它使數字不可讀。

相反,您可以只寫2 ether

if (getEthBalance(addresses[i]) <= 2 ether) {

如果一切都是如此,為什麼你有一個getEthBalance功能.balance?您可以.balance代替呼叫該函式:

if (addresses[i].balance <= 2 ether) {

你說’至少2個乙太’。如果你願意,你應該使用<而不是<=

if (addresses[i].balance < 2 ether) {

對我來說,它似乎會起作用,但我不能保證。如果您想知道某些東西是否可行,您應該始終在本地開發鍊或乙太坊測試網路上對其進行測試。

引用自:https://ethereum.stackexchange.com/questions/28013