Payments

為什麼發送返回一個布爾值

  • August 12, 2018

當從智能合約中提取資金時,發送返回一個布爾值

function withdrawFromContract(uint amount) onlyOwner returns(bool success) {
   if(amount > this.balance) throw; // not enough money
   if(msg.sender.send(amount)) {
       LogWithdrawal(amount);
       return true;
   } else {
       throw;
   }
}

什麼情況下send return false?

<address>.send(amount)發送失敗時返回 false amount。例如,如果您沒有檢查this.balance大於的行amount,您可能會不小心嘗試發送超過合約有權訪問的內容,在這種情況下,函式將返回false

您可以在此處閱讀solidity 文件獲得更多見解。

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