Contract-Design
然而,為一個功能設置了兩個要求,交易不成功的原因僅顯示一個原因
我設置了兩個提款要求;(a) 受益人必須是智能合約 (SM) 的發起人,並且 (b) 如果條件 (a) 不滿足,合約將暫停。但是,執行(SM)時牽引不成功的原因僅顯示一個原因,即條件(a)。為什麼顯示“契約暫停”的第二條消息。
pragma 穩固性 ^0.8.13; contract selftest { //資金轉賬地址 public Beneficiary; 布爾公共暫停;建構子 (){ 受益人 = msg.sender;
} function TransferMoney() public payable{ } function ContractPause(bool _paused) public { require(msg.sender == Beneficiary, "Beneficiary only"); Pause = _paused ; } // Withdrawinging Money function WithdrawMoney(address payable _to) public { require(Beneficiary == msg.sender, "Trasaction Declined"); require(Pause == false, "Contract Paused"); _to.transfer(address(this).balance); }
}
那是因為如果
require
失敗,它也會停止並恢復,就像assert
在其他語言中一樣。