eth_getFilterLogs

Returns an array of all logs matching filter with given id.

πŸ“˜

Note on Filters

  1. Filters expire after 5 minutes of inactivity (no queries).
  2. This method only works for filters created with eth_newFilter not for filters created using eth_newBlockFilter or eth_newPendingTransactionFilter, which will return "filter not found".
  3. eth_getLogs vs. eth_getFilterLogs
    These two computations will return the same results:
    1. Calling eth_getLogs with params []
    2. Calling eth_newFilter with params [], getting a filter id back, then calling eth_getFilterLogs with params []

Parameters

  • QUANTITY - The filter id.
curl https://ethereum-mainnet-rpc.allthatnode.com/8U3JLUhzIDg3GShvy9hkCCSYkLGc11kj \
--request POST \
--header "Content-Type: application/json" \
--data '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"eth_getFilterLogs",
    "params":[
       "0xa9a4be98323351dcef2c7bffea1344c3"
    ]
}'

Returns

  • Array - Array of log objects, or an empty array if nothing has changed since last poll.
    • For filters created with eth_newBlockFilter the return are block hashes (DATA, 32 Bytes), e.g. ["0x3454645634534..."].
    • For filters created with eth_newPendingTransactionFilter the return are transaction hashes (DATA, 32 Bytes), e.g. ["0x6345343454645..."].
    • For filters created with eth_newFilter logs are objects with following params:
      • removed: TAG - true when the log was removed, due to a chain reorganization. false if its a valid log.
      • logIndex: QUANTITY - integer of the log index position in the block. null when its pending log.
      • transactionIndex: QUANTITY - integer of the transactions index position log was created from. null when its pending log.
      • transactionHash: DATA, 32 Bytes - hash of the transactions this log was created from. null when its pending log.
      • blockHash: DATA, 32 Bytes - hash of the block where this log was in. null when its pending. null when its pending log.
      • blockNumber: QUANTITY - the block number where this log was in. null when its pending. null when its pending log.
      • address: DATA, 20 Bytes - address from which this log originated.
      • data: DATA - contains one or more 32 Bytes non-indexed arguments of the log.
      • topics: Array of DATA - Array of 0 to 4 32 Bytes DATA of indexed log arguments. (In solidity: The first topic is the hash of the signature of the event (e.g. Deposit(address,bytes32,uint256)), except you declared the event with the anonymous specifier.)
{
  "id":1,
  "jsonrpc":"2.0",
  "result": [{
    "logIndex": "0x1", // 1
    "blockNumber":"0x1b4", // 436
    "blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d",
    "transactionHash":  "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf",
    "transactionIndex": "0x0", // 0
    "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d",
    "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"]
    },{
      ...
    }]
}

Try Yourself

Language
Click Try It! to start a request and see the response here!