Event监听注册接口
更新时间:2019-09-24
Event监听注册接口
接口描述
Event(事件)触发后形成日志记录在区块里,通过对Event的监听,可以掌握交易的上链确认情况。
权限说明
API权限认证采用Basic Auth方式,请求发起人需要具有合法的Username和Password才能发起请求,其中Username和Password详见所创建的Quorum网络。查看Quorum网络
注意事项
如果请求中没有用户认证信息(即匿名访问),返回401 Unauthorized
,错误信息:401 Authorization Required
。
服务域名
Quorum合约网关接口服务域名地址<ContractGateWayHost>
详见BBE中所创建的Quorum网络详情。查看Quorum网络
请求结构
POST /v2/quorum/event/{contract}/{eventName}?clientToken={clientToken} HTTP/1.1
Host: <ContractGateWayHost>
Content-Type: application/json
请求头域
头域 | 说明 | 是否必须 |
---|---|---|
Content-Type | 值为application/json | 必须 |
请求参数
名称 | 类型 | 位置 | 描述 | 是否必须 |
---|---|---|---|---|
contract | String | URL参数 | 合约地址 | 必须 |
eventName | String | URL参数 | 需要监听的事件名称 | 必须 |
clientToken | String | Query参数 | 幂等性Token,是一个长度不超过64位的ASCII字符串 | 非必须 |
jsonrpcUrl | String | RequestBody参数 | 节点JSON-RPC地址,隐私交易必选,公开交易非必选 | 选填 |
subscribeUrl | String | RequestBody参数 | 接收事件消息地址 | 必须 |
invokeParameters | JsonObject | RequestBody参数 | 根据指定合约事件topic过滤,如未指定,则默认返回全部 | 非必须 |
使用限制
- 事件监听支持主题参数类型: intX/uintX, string, address, bytes, bytes32
- 使用indexed修饰的事件主题输出不支持string和动态类型数组
- 同一联盟组织最多支持注册20个Event监听
响应头域
除公共头域外,无其它特殊头域。
响应参数
名称 | 类型 | 描述 |
---|---|---|
requestId | String | 用户请求携带的X-Request-Id |
result | JsonObject | 请求返回数据 |
subscribeId | String | 事件监听ID |
请求示例
说明:
- Quorum Event支持对indexed修饰的topic进行多条件过滤,即指定多个topic关键字则会按照多个关键字进行过滤。如本请求示例中,对隐私交易使用address类型的from和int64类型的i进行事件日志过滤,只有触发的事件同时满足过滤条件时,事件数据才会被推送给用户的接收地址。
- 当监听的事件被触发时,推送事件内容详见:交易结果查询接口
POST /v2/quorum/event/0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469/ChangeEvent?clientToken=25773871-af56-4878-8b3b-7f59de41f22c HTTP/1.1
Host: 106.12.189.XXX:8080
Content-Type: application/json
{
"jsonrpcUrl":"http://106.13.189.xxx:8081/quorum-jsonrpc/a11e5052-a7ce-41dd-ae55-769bdbca5342/17440778",
"subscribeUrl":"http://XXX",
"invokeParameters":{
"i":[111,222]
}
}
请求响应示例
HTTP/1.1 200 OK
Date: Thu, 19 Sep 2019 10:46:35 GMT
Content Type: application/json; charset=utf-8
Content-Length: 134
{
"requestId": "7a739a8e-dd26-48df-9119-1fa9ca19f71d",
"result": {
"subscribeId": "7a739a8e-dd26-48df-9119-1fa9ca19f71d"
}
}