eth_getLogs

Returns an array of all logs matching a given filter object.

The eth_getLogs command allows users to view events that occurred on the blockchain based on one or more of the filter objects listed below.

Limits

Parameters

Object - The filter options:

  • fromBlock: QUANTITY|TAG - (optional, default: "latest") Value:

    • Integer block number

    • Hexadecimal string block number (e.g. "0xabcd")

    • "latest" for the last mined block

    • "pending" and "earliest" are not supported

  • toBlock: QUANTITY|TAG - (optional, default: "latest") Value:

    • Integer block number

    • Hexadecimal string block number (e.g. "0xabcd"

    • "latest" for the last mined block - only valid if fromBlock is also "latest"

    • "pending" and "earliest" are not supported

  • address: DATA|Array, 20 Bytes - (optional) Contract address or a list of addresses from which logs should originate.

  • topics: Array of DATA, - (optional) Array of 32 Bytes DATA topics.

    • Topics are order-dependent. Each topic can also be an array of DATA with "or" options.

  • blockHash: DATA, 32 Bytes - (optional) With the addition of EIP-234 (Geth >= v1.8.13 or Parity >= v2.1.0), blockHash is a new filter option which restricts the logs returned to the single block with the 32-byte hash blockHash. Using blockHash is equivalent to fromBlock = toBlock = the block number with hash blockHash. If blockHash is present in the filter criteria, then neither fromBlock nor toBlock are allowed.

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 declare the event with the anonymous specifier.

Topics are order-dependent. A transaction with a log with topics [A, B] will be matched by the following topic filters:

  • [] “anything”

  • [A] “A in first position (and anything after)”

  • [null, B] “anything in first position AND B in second position (and anything after)”

  • [A, B] “A in first position AND B in second position (and anything after)”

  • [[A, B], [A, B]] “(A OR B) in first position AND (A OR B) in second position (and anything after)”

Example Request and Result for eth_getLogs

Request

Result

Last updated