Solidity

在 require 語句失敗時發出事件

  • November 16, 2018

我希望能夠記錄一個條件的結果:

if(time > 5) {
   emit Result("time is larger than 5");
} else {
   emit Result("time is less than 5");
}

這可以正常工作,但是在使用require語句時:

 require(time > 5);
 emit Result("time is larger than 5");

我只能在require成功的情況下記錄事件。

如果require出現在修飾符中:

modifier OnlyLargerThan5() {
 require(time > 5);
 emit Result("time is larger than 5");
 _;
}

if..else除了語句之外,有沒有辦法記錄這兩種情況(更大> 5> 更少) ?

if...else聲明是一個完全有效的選項,也是我建議的選項。

如果需要,您可以做的就是在 require 語句中包含一條消息。這不會是一個事件,但看起來像這樣:

require(time > 5, "time is less than 5");
emit Result("time is larger than 5");

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