确定订单#
用户完成 Solana 交易签名后,OKX 调用该接口,将 rfqId 与用户已签名交易提交给 MM。MM 必须完成最终校验与签名,并按选定结算模式返回 txHash 或 signedTx。
请求地址#
POST
https://your-api-endpoint.com/OKXDEX/rfq/firm-order请求参数#
| 参数 | 类型 | 必传 | 描述 |
|---|---|---|---|
| chainIndex | String | 是 | 链的唯一标识;Solana 固定为 501。 |
| rfqId | String | 是 | OKX 生成的 RFQ 关联标识。 |
| callData | String | 是 | 用户已签名的 Base58 编码 Solana 交易。 |
必须完成的校验#
- 校验
rfqId的存在性、归属和有效状态。 - 校验交易指令、账户、Mint、数量、接收方与预期 RFQ 一致。
- 校验用户签名有效。
- 校验成交价格与当前流动性仍可接受。
- 校验 recent blockhash、账户状态和交易当前仍可执行。
- 完成 MM 所需签名。
- 按照已约定的广播模式返回
txHash或signedTx。
响应参数#
| 参数 | 类型 | 必传 | 描述 |
|---|---|---|---|
| code | String | 是 | 0 表示成功。 |
| msg | String | 是 | 成功时为空;失败时返回原因。 |
| data.chainIndex | String | 是 | 链的唯一标识。 |
| data.rfqId | String | 是 | 回显请求中的 rfqId。 |
| data.txHash | String | 条件必传 | 仅 MM 广播模式返回;Base58 Solana 交易哈希。 |
| data.signedTx | String | 条件必传 | 仅 OKX 广播模式返回;包含用户和 MM 签名的完整 Base58 交易。 |
请求示例#
shell
curl --location --request POST \
'https://your-api-endpoint.com/OKXDEX/rfq/firm-order' \
--header 'X-API-KEY: <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"chainIndex": "501",
"rfqId": "1748612345678",
"callData": "2TTazkUnUv..."
}'
响应示例:MM 广播#
json
{
"code": "0",
"msg": "",
"data": {
"chainIndex": "501",
"rfqId": "1748612345678",
"txHash": "5Uf8PqzKLtVBh3J2mN9xYrQwDcEf7GiHkM4oP6sT1uV2wX8yZ3aB4cD5eF6gH7iJ"
}
}
响应示例:OKX 广播#
json
{
"code": "0",
"msg": "",
"data": {
"chainIndex": "501",
"rfqId": "1748612345678",
"signedTx": "THBYXUKt46Gg..."
}
}
