curl --request POST \
--url https://nd-907-114-772.p2pify.com/b9b0fb92029d58b396139a9e89cf479b \
--header 'Content-Type: application/json' \
--data '{
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"address": "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
]
}
],
"id": 1,
"jsonrpc": "2.0"
}'
{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}
curl --request POST \
--url https://nd-907-114-772.p2pify.com/b9b0fb92029d58b396139a9e89cf479b \
--header 'Content-Type: application/json' \
--data '{
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"address": "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
]
}
],
"id": 1,
"jsonrpc": "2.0"
}'
{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}
eth_getFilterChanges
method. By creating a filter for specific events, developers can receive notifications when those events occur and use them to trigger actions in their applications.
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 block.safe
— the block that received justification from the beacon chain. Although this block could be involved in a chain reorganization, it would necessitate either a coordinated attack by the majority of validators or an instance of severe propagation latency.finalized
— the block accepted as canonical by more than 2/3 of the validators. A chain reorganization is extremely unlikely, and it would require at least 1/3 of the staked ETH to be burned.earliest
— the earliest available or genesis block.pending
— 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.const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const filter = {
toBlock: 'latest',
address: '0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23',
topics: ['0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef']
};
const createFilter = async () => {
try {
const filterId = await provider.send('eth_newFilter', [filter]);
console.log(filterId); // the filter ID returned by eth_newFilter
return filterId
} catch (error) {
console.log(error);
}
};
createFilter();
eth_newFilter
to create a filter for a specific action on a smart contract, for example, to monitor the transfer transactions from the Wrapped CRO token.
The idea is to create a filter using the eth_newFilter
method to monitor an ERC-20 smart contract, WCRO in this case.The filter ID.
The response is of type object
.
Was this page helpful?