eth_getFilterChanges
轮询指定的过滤器,并返回自上次轮询之后新生成的日志数组。
参数
QUANTITY
- 过滤器编号
params: [
"0x16" // 22
]
返回值
Array
- 日志对象数组,如果没有新生成的日志,则返回空数组
使用eth_newBlockFilter
创建的过滤器将返回块哈希(32字节),例如["0x3454645634534..."]
。
使用eth_newPendingTransactionFilter
创建的过滤器将返回交易哈希 (32字节),例如["0x6345343454645..."]
。
使用eth_newFilter
创建的过滤器,日志对象具有如下参数:
- removed: TAG - 如果日志已被删除则返回true,如果是有效日志则返回false
- logIndex: QUANTITY - 日志在块内的索引序号。对于挂起日志,该值为null
- transactionIndex: QUANTITY - 创建日志的交易索引序号,对于挂起日志,该值为null
- transactionHash: DATA, 32字节 - 创建该日志的交易的哈希。对于挂起日志,该值为null
- blockHash: DATA, 32字节 - 该日志所在块的哈希。对于挂起日志,该值为null
- blockNumber: QUANTITY - 该日志所在块的编号。对于挂起日志,该值为null
- address: DATA, 20字节 - 该日志的源地址
- data: DATA - 包含该日志的一个或多个32字节无索引参数
- topics: Array of DATA -0~4个32字节索引日志参数的数据。在solidity中,第一个主题是事件签名,例如
Deposit(address,bytes32,uint256)
,除非你声明的是匿名事件
示例代码
请求:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}'
响应:
{
"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"]
},{
...
}]
}