eth_getFilterChanges

半兽人 发表于: 2020-03-14   最后更新时间: 2020-03-14 16:39:05  
{{totalSubscript}} 订阅, 2,428 游览

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"]
    },{
      ...
    }]
}
更新于 2020-03-14

查看ethereumj更多相关的文章或提一个关于ethereumj的问题,也可以与我们一起分享文章