Events

查詢主題最大值的事件

  • December 17, 2017

我的事件輸出一個索引參數uint id

id我可以在不返回並蒐索所有日誌記錄的情況下查詢日誌的最大值嗎?

我猜不是,因為索引值儲存為散列,所以值比較是不可能的,但也許我遺漏了一些東西。

否則如何將單個 uint 值“記憶體”到日誌中而無需檢索該類型的所有日誌?

除非您將值儲存在合約中,否則您將不得不遍歷所有事件。話雖這麼說,您必須擁有一個非常完整的節點來保存所有事件的日誌(通常當日誌太舊時會從節點中刪除)。

可能是一個更簡單的解決方案(不承受天然氣成本)是將最大值儲存在您的契約中。

// store the max val
uint maxVal = 0;

// an event to notify that val has changed
event ValChange(uint _val);

function storeValue(uint _val) {
 // store biggest _val
 if (_val > maxVal) {
    maxVal = _val;
 }
 // trigger event
 ValChange(_val);
}

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