以太坊JSON RPC手册

eth_newFilter

基于给定的选项创建一个过滤器对象,接收状态变化时的通知。要检查状态是否变化, 请调用eth_getFilterChanges

关于特定主题过滤器的说明:主题是顺序相关的。如果一个交易的日志有主题[A, B],那么将被 以下的主题过滤器匹配:

  • [] 任何主题
  • [A] 先匹配A主题
  • [null, B] 先匹配其他主题,再匹配B主题
  • [A, B] 先匹配A主题,再匹配B主题,最后匹配其他主题
  • [[A, B], [A, B]] "先匹配A主题或B主题,再匹配A主题或B主题,最后匹配其他主题

参数

Object - 过滤器选项对象:

  • fromBlock: QUANTITY|TAG - 可选,默认值:"latest"。整数块编号,或字符串"latesr"表示最后挖出的块,"pending"或"earliest"用于未挖出的交易。
  • toBlock: QUANTITY|TAG - 可选,默认值:"latest"。整数块编号,或字符串"latesr"表示最后挖出的块,"pending"或"earliest"用于未挖出的交易。
  • address: DATA|Array, 20字节 - 可选,合约地址或生成日志的一组地址
  • topics: Array of DATA, - 可选,32字节主题数组,每个主题可以是数组或使用or选项连接
params: [{
  "fromBlock": "0x1",
  "toBlock": "0x2",
  "address": "0x8888f1f195afa192cfee860698584c030f4c9db1",
  "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", null, ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x0000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebccc"]]
}]

返回值

QUANTITY - 过滤器编号

示例代码

请求:

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics":["0x12341234"]}],"id":73}'

响应:

{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}