Solidity
有沒有辦法讓使用者知道合約交易/功能失敗的原因?
例如,如果使用者嘗試向眾籌合約發送低於最低投資金額的資金,或者如果使用者發送的資金高於最高投資金額。
無論如何,乙太坊錢包只會說“此交易將失敗……”。對於一些買家來說,這可能會非常令人困惑。
如何解決這個問題並使其更加使用者友好?
不,這在撰寫本文時是不可能的。目前必須從客戶端實現。我們只允許將條件傳遞給 require 和 assert,或者在滿足條件後恢復。
然而,在不久的將來,我們將能夠將錯誤消息傳遞給這些異常。如果我沒有記錯但未啟動,這些操作碼已經存在。
NOW: require(a == b); FUTURE: require(a==b, "A does not equal B");
或者
NOW: revert(); FUTURE: revert("Transaction failed, not enough balance");