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/log/{contract}/{eventName} HTTP/1.1
Host: <ContractGateWayHost>
Content-Type: application/json
请求头域
头域 | 类型 | 说明 | 是否必须 |
---|---|---|---|
Content-Type | String | 值为application/json | 必须 |
请求参数
名称 | 类型 | 位置 | 描述 | 是否必须 |
---|---|---|---|---|
contract | String | URL参数 | 合约地址 | 必须 |
eventName | String | URL参数 | 合约事件名称 | 必须 |
fromBlock | Integer | RequestBody参数 | 起始区块高度,默认为0 | 非必须 |
toBlock | Integer | RequestBody参数 | 结束区块高度,默认为最新区块高度 | 非必须 |
jsonrpcUrl | String | RequestBody参数 | 节点JSON-RPC地址 | 选填,私有交易必填,公开交易选填 |
invokeParameters | JsonObject | RequestBody参数 | 根据指定合约事件topic过滤,如未指定,则默认返回全部 | 选填 |
使用限制
- 事件检索支持主题参数类型: intX/uintX, string, address, bytes, bytes32
- 使用indexed修饰的事件主题输出不支持string和动态类型数组
响应头域
除公共头域外,无其它特殊头域。
响应参数
名称 | 类型 | 描述 |
---|---|---|
requestId | String | 用户请求Id |
result | Array | 日志检索返回结果 |
contract | String | 合约地址 |
data | JsonObject | 检索的日志信息,包括indexed修饰的topics数据和未修饰的data数据 |
blockNumber | Integer | 发生本事件的区块高度 |
blockHash | String | 发生本事件的区块哈希 |
txHash | String | 发生本事件的交易哈希 |
txIndex | Integer | 发生本事件的交易所在区块交易的位置 |
index | Integer | 本日志在收据中的位置 |
removed | Bool | 日志是否被回退 |
请求示例
说明:Quorum支持对indexed修饰的topic进行多条件过滤,即指定多个topic关键字则会按照多个关键字进行过滤。如本请求示例中使用address类型的from和int64类型的i进行日志检索。
POST /v2/quorum/log/0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469/ChangeEvent HTTP/1.1
Host: 106.12.189.XXX:8080
Content-Type: application/json
{
"fromBlock":0,
"toBlock":123439,
"jsonrpcUrl":"http://106.12.189.XXX:8081/quorum-jsonrpc/ba9f7aad-2f49-4aab-8bd2-12d7ab009937/6d398463",
"invokeParameters":{
"from":["0x04c512DEA0943e27D036EA5550987d0fF8b48a60"]
}
}
请求响应示例
HTTP/1.1 200 OK
Date: Thu, 19 Sep 2019 10:07:15 GMT
Content Type: application/json; charset=utf-8
Content-Length: 1412
{
"requestId": "9e7002d3-247d-4686-9555-4e07f81f3a67",
"result": [
{
"contract": "0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469",
"data": {
"from": "0x04c512dea0943e27d036ea5550987d0ff8b48a60",
"i": 111,
"s": "baidu"
},
"blockNumber": 34341,
"txHash": "0x9efd1bae01055189f067d7f0a0095f9626672894f5132bc4573abb3728dde026",
"txIndex": 0,
"blockHash": "0xedff2a83e915169f115bf3bc90d37276411c20df1aa9c2a8dd218d74983646c1",
"index": 0,
"removed": false
}
{
"contract": "0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469",
"data": {
"from": "0x04c512dea0943e27d036ea5550987d0ff8b48a60",
"i": 222,
"s": "bbe"
},
"blockNumber": 34783,
"txHash": "0xf8fbac3d191d4f3e9748c398886a51d06aadab9c84220180c09a8118031e96df",
"txIndex": 0,
"blockHash": "0xe76c51789b84ed9b9a8ff7707957dc34980da0b695ea042d930dad7c2aab86b2",
"index": 0,
"removed": false
}
]
}