object
— the filter parameters:
fromBlock
— (optional, default: latest
) integer that specifies the starting block number from which the logs should be fetched.toBlock
— (optional, default: latest
) integer that specifies the ending block number until which the logs should be fetched.address
— (optional) the contract address from which the logs should be fetched. It can be a single address or an array of addresses.topics
— (optional) an array of DATA
topics. The event topics for which the logs should be fetched. It can be a single topic or an array of topics.blockhash
— (optional) the hash of the specific block. Limits logs to a specific block with a 32-byte hash value. It takes precedence over fromBlock
and toBlock
.latest
— the most recent block in the blockchain and the current state of the blockchain at the most recent blockearliest
— the earliest available or genesis blockpending
— the pending state and transactions block. The current state of transactions that have been broadcast to the network but have not yet been included in a block.result
— a hexadecimal string representing the ID of the newly created filtereth_newFilter
code examplesweb3.eth.filter
methods have been deprecated and replaced with the web3.eth.subscribe
in web3.js. See web3.js subscriptions.eth_newFilter
to create a filter for a specific action on a smart contract, for example, to monitor the transfer transactions from the Wrapped ETH token.
The idea is to create a filter using the eth_newFilter
method to monitor an ERC-20 smart contract, WETH in this case.
The following filter parameters are selected:
eth_getFilterChanges
method.
Here is the implementation using ethers.js:
createAndPollFilter
function is an asynchronous function that creates and polls a filter for the WETH smart contract on Avalanche.
The eth_newFilter
method creates a new filter with the specified parameters. In this case, it passes in the filter object as the filter parameter. The method returns the ID of the newly created filter, which is then logged into the console.
The setInterval
method is used to poll the filter every 2 seconds. It takes a function as the first argument and an interval in milliseconds as the second argument. The function passed to setInterval
is an asynchronous function that calls eth_getFilterChanges
with the filter ID returned by eth_newFilter
. This method returns an array of all the changes to the filter since the last time it was polled. If there are no changes, it logs “No new logs since the last poll.” to the console. If there are changes, it logs the filter changes to the console.
The createAndPollFilter
function returns the filter ID, and if there are any errors thrown while creating or polling the filter, the catch block logs the error to the console.The filter ID.
The response is of type object
.