Transactions
在視圖函式中發出事件或
是否可以在視圖函式中發出事件(通過事件或 logi)?或者是否可以在沒有(之前)在事務函式中探勘的情況下將值返回給 javascript?我的目標是避免由於使用事件日誌進行探勘而導致的等待。
是否可以在視圖函式中發出事件(通過事件或 logi)?
由於事件日誌儲存在交易收據中,我認為不可能在視圖函式中發出事件,因為沒有交易發生。
或者是否可以在沒有(之前)在事務函式中探勘的情況下將值返回給 javascript?
我認為這也不可能。創建交易的函式的返回值將是交易收據。在收據中,您可以找到在該函式中發出的任何事件。
**Q1:**事件是狀態變化。不可能從
view
orpure
函式或constant
舊語法中發出它們。**Q2:**無法從已簽名的交易中獲取響應值。您將始終收到交易收據。
這些模式需要一些時間來適應。我非常相信為每個重要的狀態變化發出可審計的事件日誌。當交易被探勘時,相關資訊會隨著事件日誌參數的確認到達。這些是針對鏈下客戶的。
return
價值觀還是很重要的。如果從另一個函式或合約呼叫該函式,則它們是響應值。例如:
bool result = myOtherContract.insertSomething(); // expecting "true"/success
如果這對客戶很重要,例如:
emit LogResult(msg.sender, result);
希望能幫助到你。