eth_getFilterChanges,过滤器的poll方法,该方法返回自上次poll以来发生的日志数组。
参数
- QUANTITY - 过滤id。
params: [ "0x16" // 22 ]
返回
Array - 日志对象数组,或者如果自上次poll以来没有任何更改,则为空数组。
对于用eth_newBlockFilter创建的过滤器,返回是块hahs(DATA,32字节),例如,[“0x3454645634534......”]。
对于使用eth_newPendingTransactionFilter创建的过滤器,返回是事务hash(DATA,32字节),例如,[“0x6345343454645......”。
对于使用eth_newFilter创建的过滤器,日志是具有以下参数:
type: TAG - 等待日志处于待处理状态。如果日志已被开采,则开采。
logIndex: QUANTITY - 块中日志索引位置。当状态为pending的日志时为null。
transactionIndex: QUANTITY - 日志从交易index位置创建的整数。当其panding的日志时为null。
transactionHash: DATA, 32 Bytes - 这个日志创建的交易的hash。 当其处于pending的日志时为null。
blockHash: DATA, 32 Bytes - 该日志所在块的散列,当其处于pending,则为空。当其pending日志时也为null。
blockNumber: QUANTITY - 此日志中的区块号,当它处于pending,则为null,当其日志处于pending,也为null。
address: DATA, 20 Bytes - 该日志源的地址。
data: DATA - 包含日志的一个或多个32字节未index的参数。
topics: DATA的数组 - 索引日志参数的0到4 32字节数组数据。(在solidity中:第一个topic是事件签名的hash(例如Deposit(address,bytes32,uint256)),除非你使用匿名说明符声明该事件。)
例如
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}'
// Result
{
"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"]
},{
...
}]
}