在区块链交易中,获取准确的交易状态对于开发者与用户都至关重要。本文详细解析如何通过交易哈希(txHash)查询单链交易的最终状态,并深入解读相关API的使用方法与响应参数。
核心API概述
通过GET方法调用聚合器历史接口,您可以获取指定链上交易的详细状态信息。该接口支持查询交易的成功、失败或待处理状态,并返回包括交易时间、燃料费用、代币详情在内的完整数据。
请求URL
https://web3.okx.com/api/v5/dex/aggregator/history必备请求参数
以下参数为调用接口时必须提供:
- chainIndex(字符串,必填):链的唯一标识符,例如“1”代表以太坊主网。
- chainId(字符串,必填):链的唯一标识符,请注意该字段未来将被弃用。
- txHash(字符串,必填):通过DEX API发起的兑换交易的交易哈希。
- isFromMyProject(布尔值,可选):设置为
true可校验该交易是否由当前API Key发起;设置为false或忽略可查询任何由DEX API产生的交易。
响应参数详解
接口调用成功后将返回一个包含丰富交易状态信息的JSON对象。以下是各响应字段的详细说明:
基础交易信息
- chainIndex:交易所在链的唯一标识符。
- chainId:链标识符(即将弃用)。
- txHash:查询的交易哈希值。
- height:交易被打包进的区块高度。
- txTime:交易发生的时间戳(毫秒单位)。
- status:交易当前状态,可能值为:
pending(处理中)、success(成功)、fail(失败)。
交易类型与地址信息
- txType:交易类型,例如:
Approve(授权)、Wrap(封装)、Unwrap(解封)、Swap(兑换)。 - fromAddress:交易发起方的钱包地址。
- dexRouter:交易交互的路由合约地址。
- toAddress:交易接收方的钱包地址。
代币与资金详情
fromTokenDetails:支出代币的详细信息数组。
symbol:支出代币的符号(如ETH, USDC)。amount:支出的数量(以该代币的最小单位表示,如wei)。tokenAddress:支出代币的合约地址。
toTokenDetails:收到代币的详细信息数组。
symbol:收到代币的符号。amount:收到的数量(最小单位)。tokenAddress:收到代币的合约地址。
- referalAmount:推荐费金额。
燃料费与错误信息
- gasLimit:交易设定的燃料限制。
- gasUsed:交易实际消耗的燃料量(最小单位)。
- gasPrice:交易执行时的燃料价格(最小单位)。
- txFee:以主网币种计算的总交易手续费。
- errorMsg:若交易失败,此处将显示详细的错误信息。
常见问题
如何获取交易哈希(txHash)?
交易哈希通常在您通过钱包或SDK成功发起一笔交易后,由区块链网络返回。它是一串唯一的、用于标识该次交易的字符串,您可以通过区块链浏览器或相关的开发者工具查询到它。
chainIndex 和 chainId 有什么区别?为什么两者都需要?
chainIndex 和 chainId 都是用于标识不同区块链网络的参数。目前两者都需要提供以确保兼容性,但请注意 chainId 参数已被标记为“即将弃用”,在未来的开发中应优先使用 chainIndex 来指定网络。
交易状态一直显示为 pending 是什么意思?
状态为 pending 表示该笔交易已被广播到网络,但尚未被矿工或验证者打包进区块。这通常是由于网络拥堵或设置的燃料价格过低导致的。您可以耐心等待,或通过提高燃料费来加速交易确认。
如何解析响应中的代币金额?
响应中 amount 字段均以该代币的最小单位(如以太坊的 wei)表示,而非通常的整数单位。您需要根据该代币的精度(decimals)进行换算才能得到用户可读的金额。例如,1 ETH = 10^18 wei。