在区块链应用开发中,高效且准确地获取链上交易记录是至关重要的功能。本文将以以太坊系列公链为例,详细介绍交易记录列表查询与详情获取的接口使用方法、参数说明及常见问题解析,助力开发者快速实现相关功能。
交易记录列表查询接口
接口功能概述
交易记录列表查询接口主要用于获取指定地址在特定区块链上的交易历史记录。该接口支持分页查询与条件筛选,可返回包含交易哈希、金额、状态等关键信息的列表数据。
请求方法与地址
- 请求方法:GET
- 接口路径:
/v1/transaction_action/universal_list
核心请求参数说明
以下为必须传入的关键参数(示例中的域名已做通用化处理):
address:要查询的交易地址(必需)blockchain_id或chain_id:区块链标识(二者选一)count:每页返回记录数量page:页码(从0开始)contract_address:筛选特定合约地址的交易(可选)type:交易类型筛选(可选)
响应数据结构解析
接口返回的JSON数据中,"data"字段为交易记录数组,每条记录包含以下核心字段:
hash:交易哈希(唯一标识)block_number:交易所在区块号from/to:交易发起与接收地址value:交易金额(原始数值,需结合decimal计算实际值)status:交易状态(1成功、0失败、2待处理、99未知)gas/used_gas/gas_price:Gas相关参数timestamp:交易时间戳(Unix时间格式)
实战调用示例
// 示例请求URL(测试环境)
https://api-service.example.com/v1/transaction_action/universal_list?address=0x0Dd3758c...&blockchain_id=26&count=20&page=0开发者可根据实际业务需求调整分页参数与筛选条件,👉查看实时交易数据工具可帮助验证接口返回结果。
交易记录详情查询接口
接口功能定位
当需要获取单笔交易的完整详细信息时,可使用详情查询接口。该接口通过交易哈希等唯一标识符返回交易的完整底层数据。
请求方法与地址
- 请求方法:GET
- 接口路径:
/v1/transaction_action/universal
关键请求参数
hash:交易哈希(必需)block_hash:区块哈希(建议提供以加速查询)blockchain_id:区块链标识log_index:日志索引(合约交易需关注)
响应数据深度解析
详情接口返回的数据包含更多技术细节,特别适合需要深度分析交易的场景:
input:交易输入数据(合约调用时包含函数签名与参数)input_status:输入数据解析状态token_value:代币交易金额(当交易涉及代币转移时)tx_type:交易类型标识internal_index:内部交易索引(可选参数)
详情查询示例
// 示例请求URL
https://api-service.example.com/v1/transaction_action/universal?blockchain_id=26&hash=0x539839a5a2dc3bf4...&block_hash=0xf07696455e6bb138...常见问题解答
如何选择 blockchain_id 与 chain_id?
两者为替代关系,传入任一即可。推荐使用 blockchain_id,因其标识更明确且与多数系统兼容。典型值示例:以太坊主网为1,Goerli测试网为5,其他公链有特定编号。
交易状态 status 的 99 未知是什么情况?
当交易已被广播但尚未被打包确认,或节点同步出现延迟时,可能返回状态99。建议设置重试机制,或通过区块确认数判断最终状态。
分页查询时 count 参数的最大值是多少?
一般建议每页查询20-100条记录,具体最大值需参考API提供方的限制。过大值可能导致响应缓慢或请求被拒。
为什么需要同时传入 hash 和 block_hash?
双哈希验证可确保查询结果的绝对准确性,防止潜在的重放攻击或链分叉导致的数据歧义。在高性能场景下,block_hash还能显著加速查询过程。
如何处理 decimal 字段与金额显示?
返回的 value 字段为原始整数值,实际金额需要除以10的decimal次方。例如:value为1000000000000000000,decimal为18,则实际金额为1 ETH。
合约交易与普通转账的主要区别?
合约交易的 input 字段不为空,包含调用方法与参数编码数据,且 to 地址为合约地址。普通转账 input 一般为空,value字段直接表示转账金额。
通过以上接口的组合使用,开发者可以构建功能完善的交易查询系统,满足大多数区块链数据分析与展示的需求。在实际集成过程中,建议增加错误重试、数据缓存等机制以提升系统稳定性。