【Indexed】

indexed 作為 event 的參數綴詞是用於在呼叫 event 時我們可以用 indexed 來作為過濾,找到我們要找的參數。

需要注意的是最多只有三個 event 參數可以被宣告 indexed

舉例來說有一個事件為:

event Transfer(address indexed _from, address indexed _to, uint256 _value)

這代表前端可以有效率的查出 token 的交易資訊:

  • 從何地址送出:tokenContract.Transfer({_from: senderAddress})

  • 被何地址接收:tokenContract.Transfer({_to: receiverAddress})

  • 從一個地址送往另一個特定地址:tokenContract.Transfer({_from: senderAddress, _to: receiverAddress})

只有當我們想要這個 event 的參數可以被搜尋的到時才使用 indexed

使用或不使用 indexed 的 gas 花費比較:

event NewEvent(address addr)
event NewEvent(address indexed addr) 

Last updated