Node RPC
  • Introduction
  • Ethereum API endpoints
    • eth_getBlockByHash
    • eth_blocknumber
    • eth_getBlockByNumber
    • eth_getBlockTransactionCountByHash
    • eth_getBlockTransactionCountByNumber
    • eth_getTransactionByHash
    • eth_getTransactionByBlockHashAndIndex
    • eth_getTransactionByBlockNumberAndIndex
    • eth_getTransactionReceipt
    • eth_getTransactionCount
    • eth_sendRawTransaction
    • eth_call
    • eth_getCode
    • eth_getBalance
    • eth_accounts
    • eth_getStorageAt
    • eth_getProof
    • eth_getLogs
    • eth_newFilter
    • eth_newPendingTransactionFilter
    • eth_newBlockFilter
    • eth_getFilterChanges
    • eth_getFilterLogs
    • eth_uninstallFilter
    • eth_chainId
    • eth_protocolVersion
    • net_listening
    • net_version
    • eth_getUncleCountByBlockHash
    • eth_getUncleByBlockNumberAndIndex
    • eth_getUncleByBlockHashAndIndex
    • eth_getUncleCountByBlockNumber
    • eth_estimateGas
    • eth_gasPrice
    • eth_feeHistory
    • eth_maxPriorityFeePerGas
    • eth_createAccessList
    • web3_clientVersion
    • web3_sha3
Powered by GitBook
On this page
  • Parameters
  • Returns
  • Example
  1. Ethereum API endpoints

eth_getLogs

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

NOTE: We enforce a limit of 10,000 block ranges when requesting logs and events. The 10,000 block range limit is not a limit on how far back in time you can query but rather a limit on the number of blocks you can query in a single request. To work around the limit, we recommend breaking down your queries into smaller chunks of 10,000 blocks or less.

Parameters

  1. Object - The filter options:

  • fromBlock: QUANTITY|TAG - (optional, default: "latest") Integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.

  • toBlock: QUANTITY|TAG - (optional, default: "latest") Integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.

  • 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, future) With the addition of EIP-234, blockHash will be 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 declared the event with the anonymous specifier.)

Example

Query

import { ethers } from 'ethers';

const provider =
  new ethers
    .providers
    .JsonRpcProvider("https://www.noderpc.xyz/rpc-mainnet/public")

const fetchLogs = async ()=> {
  const logs = await provider.getLogs({address: "0x8A001303158670E284950565164933372807cD48", topic: "0xdAC17F958D2ee523a2206206994597C13D831ec7"});
  console.log(logs);

}
fetchLogs();

Result

[
    {
        "blockNumber": 17384990,
        "blockHash": "0xfff785b8b971a19b301a8e936e624a7c06331b654d94ec8c68c1a0798dcc15ae",
        "transactionIndex": 71,
        "removed": false,
        "address": "0x8A001303158670E284950565164933372807cD48",
        "data": "0x0000000000000000000000000000000000000000288ab90e3607090cde019017",
        "topics": [
            "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
            "0x000000000000000000000000453b90482eb99a243a245501b0af4cf25f59965a",
            "0x000000000000000000000000505c27a2935d99bf01f62e2ac31f689fb0227418"
        ],
        "transactionHash": "0x2ebc4c64747377f59138ce4e1ba966a06078c2cda0cb1298dd50da76b7290a4a",
        "logIndex": 198
    }
]

Previouseth_getProofNexteth_newFilter

Last updated 1 year ago

NOTE: In this example we are using public Ethereum endpoint. Ideally, for your own projects, you should use your own endpoint, which you can generate for free by connecting to your wallet .

NOTE: ethers used below is a well-known web3 library, check it out .

here
here