Contract-Design

然而,為一個功能設置了兩個要求,交易不成功的原因僅顯示一個原因

  • May 8, 2022

我設置了兩個提款要求;(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在其他語言中一樣。

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