内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
预测市场
证券与期货
链上与自定义接入
通用协议
Web3
exchange.IO("abi", ...)
exchange.IO("api", blockChain, ...)
exchange.IO("encode", ...)
exchange.IO("encodePacked", ...)
exchange.IO("decode", ...)
exchange.IO("hash", ...)
exchange.IO("key", ...)
exchange.IO("sign", ...)
exchange.IO("signTypedData", ...)
exchange.IO("signMessage", ...)
exchange.IO("api", ...)
exchange.IO("call", ...)
exchange.IO("multicall", ...)
exchange.IO("logs", ...)
exchange.IO("waitReceipt", ...)
exchange.IO("nonce", ...)
exchange.IO("speedUp", ...)
exchange.IO("cancelTx", ...)
exchange.IO("toUnits", ...)
exchange.IO("fromUnits", ...)
exchange.IO("uniswapV3", ...)
exchange.IO("contracts", ...)
exchange.IO("address")
exchange.IO("base", ...)
exchange.IO("sendBase", ...)
exchange.IO("speedUp", ...)
对卡住(长时间未上链)的交易进行加价重发:保持接收地址、金额、调用数据和gas上限不变,仅提高手续费。
exchange.IO(k, txHash)
exchange.IO(k, txHash, options)示例
交易在一段时间内未上链时加价重发。
javascript
function main() {
var USDC = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
var spender = "0x1111111254EEB25477B68fb85Ed929f73A960582"
var txHash = exchange.IO("api", USDC, "approve", spender, "1000000")
Log("已发送:", txHash)
var rec = exchange.IO("waitReceipt", txHash, { timeout: 30000 })
if (!rec) {
// 30 秒后仍未上链:使用相同的 nonce 加价重发(tip 和 maxFee 至少上涨 12.5%)
txHash = exchange.IO("speedUp", txHash)
Log("已加价重发:", txHash)
rec = exchange.IO("waitReceipt", txHash, { timeout: 30000 })
}
Log(rec ? "已上链,status: " + rec.status : "仍未上链: " + GetLastError())
}返回值
| 类型 | 描述 |
string / object | 返回替换交易的哈希; |
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
txHash | string | 是 | 待替换的、尚未上链的交易哈希,该交易必须由当前钱包发出。 |
options | object | 否 | 可选设置: |
参考
备注
替换交易沿用原交易的nonce,手续费按multiplier放大(默认值为1.125,最小值为1.1;节点要求替换交易的tip和maxFee均至少上涨10%),且不低于当前网络的建议值。
当原交易已上链、节点查询不到原交易(例如通过私有通道发送)或原交易并非由当前钱包发出时,函数返回空值并报错。
目前仅支持以太坊(EVM)链,暂不支持波场(TRON)。
手续费的计算:原交易为EIP-1559交易时,小费取原小费×multiplier与当前建议小费中的较大者,最高费用取原最高费用×multiplier与2 × baseFee + 小费中的较大者;原交易为传统交易时,gas价格取原gas价格×multiplier与节点eth_gasPrice中的较大者。接收地址、金额、调用数据和gas上限与原交易相同。
原交易在交易所对象配置的节点上查询;设置了exchange.IO("sendBase", ...)时,替换交易从该节点广播。