开发者平台
主题

确定订单#

用户完成 Solana 交易签名后,OKX 调用该接口,将 rfqId 与用户已签名交易提交给 MM。MM 必须完成最终校验与签名,并按选定结算模式返回 txHashsignedTx

请求地址#

POST
https://your-api-endpoint.com/OKXDEX/rfq/firm-order

请求参数#

参数类型必传描述
chainIndexString链的唯一标识;Solana 固定为 501
rfqIdStringOKX 生成的 RFQ 关联标识。
callDataString用户已签名的 Base58 编码 Solana 交易。

必须完成的校验#

  1. 校验 rfqId 的存在性、归属和有效状态。
  2. 校验交易指令、账户、Mint、数量、接收方与预期 RFQ 一致。
  3. 校验用户签名有效。
  4. 校验成交价格与当前流动性仍可接受。
  5. 校验 recent blockhash、账户状态和交易当前仍可执行。
  6. 完成 MM 所需签名。
  7. 按照已约定的广播模式返回 txHashsignedTx

响应参数#

参数类型必传描述
codeString0 表示成功。
msgString成功时为空;失败时返回原因。
data.chainIndexString链的唯一标识。
data.rfqIdString回显请求中的 rfqId
data.txHashString条件必传仅 MM 广播模式返回;Base58 Solana 交易哈希。
data.signedTxString条件必传仅 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..."
  }
}