Go-Ethereum
未解碼事件的索引變數
我目前正在返回所有沒有過濾器的事件,並且所有索引變數都被返回,但它們已被編碼。其他沒有索引的變數是可見的,並且可以正常檢索並且未編碼。
fevent.GetAllChanges<TEvent>(filterAll).Result;
如何解碼這些欄位或以未編碼的方式請求它們?
上面的 CampaignId 應該是一個索引整數。
編輯 :
以上應該可以工作,因為這在此處呼叫事件下顯示的 NEtherium 範例中得到了證明
你不能那樣做。
索引主題不包含未散列的值。如果您知道您感興趣的 CampaignId 並對其進行過濾,那很好。如果您嘗試從主題轉換回原始輸入,那並不是很好。
希望能幫助到你。
添加到Rob Hitchens B9lab的答案,來自這裡的solidity doc
您可以將索引的屬性添加到最多三個參數,這會將它們添加到稱為“主題”的特殊資料結構中,而不是日誌的數據部分。如果你使用數組(包括字元串和字節)作為索引參數,它的 Keccak-256 散列被儲存為一個主題,這是因為一個主題只能包含一個單詞(32 個字節)。
並非所有用於主題的數據類型都被散列,只有字元串和字節數據類型被散列。因此,在我的範例中,當我將變數更改為 int 時,這解決了我的問題,並且我能夠看到我的主題/索引變數的結果。