根据地址和 Topic 获取事件日志#
查询指定合约地址下匹配指定事件签名(topic0)的事件日志,按游标(cursor)翻页返回。本接口仅支持 EVM 系公链。
游标为扫描式游标:服务端每次请求扫描该地址日志流中固定数量的日志并按 topic0 过滤(保证单次请求耗时有界),因此单页返回的命中条数可能少于 limit,甚至为 0;只要 cursor 非空即表示还有未扫描的数据,客户端须以返回的 cursor 继续翻页,直至 cursor 为空串。
支持的链:见获取事件日志 API 支持的链(apiName:by-address-and-topic)。
请求地址#
GET
https://web3.okx.com/api/v6/explorer/log/by-address-and-topic请求参数#
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| chainIndex | String | 是 | 链唯一标识,如 ETH 为 1、BTC 为 0;支持范围见获取事件日志 API 支持的链 |
| address | String | 是 | 合约地址 |
| topic0 | String | 是 | 事件签名哈希(topic0),如 ERC-20 Transfer 事件为 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef |
| cursor | String | 否 | 上次响应返回的扫描游标;不传或传空串从最新日志开始扫描 |
| limit | String | 否 | 每页最多返回的命中条数,默认 100,最大 1000(扫描式游标下单页实际返回可能少于该值) |
响应参数#
| 参数名 | 类型 | 描述 |
|---|---|---|
| limit | String | 本页条数上限 |
| cursor | String | 下一页游标;空串表示没有更多。请求时原样回传,客户端不应解析或构造 |
| logList | Array | 事件日志列表 |
| > height | String | 区块高度 |
| > address | String | 产生该事件日志的合约地址 |
| > topics | Array | topic 列表,元素为 String |
| > data | String | 事件日志的 data 数据,十六进制字符串 |
| > methodId | String | methodId,触发该日志的方法标识 |
| > blockHash | String | 区块哈希 |
| > transactionTime | String | 交易时间,Unix 时间戳的毫秒数格式 |
| > logIndex | String | 日志 index |
| > txId | String | 交易哈希 |
请求示例#
shell
curl --location --request GET 'https://web3.okx.com/api/v6/explorer/log/by-address-and-topic?chainIndex=1&address=0xdac17f958d2ee523a2206206994597c13d831ec7&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' \
--header 'OK-ACCESS-KEY: 37c541a1-****-****-****-10fe7a038418' \
--header 'OK-ACCESS-SIGN: leaV********3uw=' \
--header 'OK-ACCESS-PASSPHRASE: 1****6' \
--header 'OK-ACCESS-TIMESTAMP: 2023-10-18T12:21:41.274Z'
响应示例#
json
{
"code": "0",
"msg": "",
"data": [
{
"limit": "100",
"cursor": "100",
"logList": [
{
"height": "21283946",
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x000000000000000000000000f89d7b9c864f589bbf53a82105107622b35eaa40",
"0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60"
],
"data": "0x000000000000000000000000000000000000000000000000000000174876e800",
"methodId": "0xa9059cbb",
"blockHash": "0x9b2e4c6a8d0f31f3c5a0d9e7b2c4a6d8f0b1c3e5a7d9f2b4c6e8a0d1f3b5c7e9",
"transactionTime": "1733196827000",
"logIndex": "87",
"txId": "0x3a5f70d2b8e6c4a1f9d3b5e7c0a2d4f6b8e1c3a5d7f9b2e4c6a8d0f37d4b1e9c"
}
]
}
]
}
