Transactions

在視圖函式中發出事件或

  • April 20, 2018

是否可以在視圖函式中發出事件(通過事件或 logi)?或者是否可以在沒有(之前)在事務函式中探勘的情況下將值返回給 javascript?我的目標是避免由於使用事件日誌進行探勘而導致的等待。

是否可以在視圖函式中發出事件(通過事件或 logi)?

由於事件日誌儲存在交易收據中,我認為不可能在視圖函式中發出事件,因為沒有交易發生。

或者是否可以在沒有(之前)在事務函式中探勘的情況下將值返回給 javascript?

我認為這也不可能。創建交易的函式的返回值將是交易收據。在收據中,您可以找到在該函式中發出的任何事件。

**Q1:**事件是狀態變化。不可能從vieworpure函式或constant舊語法中發出它們。

**Q2:**無法從已簽名的交易中獲取響應值。您將始終收到交易收據。

這些模式需要一些時間來適應。我非常相信為每個重要的狀態變化發出可審計的事件日誌。當交易被探勘時,相關資訊會隨著事件日誌參數的確認到達。這些是針對鏈下客戶的。

return價值觀還是很重要的。如果從另一個函式或合約呼叫該函式,則它們是響應值。

例如:

bool result = myOtherContract.insertSomething(); // expecting "true"/success

如果這對客戶很重要,例如:

emit LogResult(msg.sender, result);

希望能幫助到你。

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