exchange.IO("waitReceipt", ...)
等待交易上链并达到指定的确认数,返回交易回执及解码后的事件日志。
exchange.IO(k, txHash)
exchange.IO(k, txHash, options)示例
发送交易后等待其上链,并检查执行结果和事件。
javascript
function main() {
// 发送交易后会得到交易哈希,例如:
// var txHash = exchange.IO("api", "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "approve",
// spender, amount)
var txHash = "TX_HASH" // 需要等待的交易哈希
// 最多等待 2 分钟,直到达到 2 个确认
var rec = exchange.IO("waitReceipt", txHash, { timeout: 120000, confirmations: 2 })
if (!rec) {
Log("等待失败:", GetLastError())
return
}
if (rec.status !== 1) {
Log("交易执行失败:", rec.revertReason)
return
}
Log("区块:", rec.blockNumber, "gasUsed:", rec.gasUsed, "gas价格:", rec.effectiveGasPrice)
// events 为解码后的事件;代币的 Transfer/Approval 事件无需注册 ABI
rec.events.forEach(function (e) {
Log(e.address, e.event, JSON.stringify(e.args))
})
}返回值
| 类型 | 描述 |
object | 返回交易回执,保留节点返回的原始字段,并做如下处理: |
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
txHash | string | 是 | 交易哈希(以 |
options | object | 否 | 可选设置 |
参考
Web3 exchange.IO exchange.IO("logs") exchange.IO("speedUp") exchange.IO("cancelTx") exchange.IO("api")
备注
事件按照通过exchange.IO("abi", ...)注册的ABI进行解码;代币的Transfer、Approval事件已内置支持,无需注册。没有匹配ABI的日志不会出现在events中,可在logs中查看其原始数据。
目前仅支持以太坊(EVM)链,暂不支持波场(TRON)。