兑换 API

意图交易solver求解#

POST /solve#

接收一場拍賣並返回一個或多個 Solution。

回應內容包含 Solver 所能找到的最佳 Solution 的目標值(Objective Value),但不包含 calldata。Autopilot 確定獲勝者後,會呼叫 /settle 端點,通知獲勝 Solver 執行其 Solution。

注意事項#

  • Solver 應快速回應:多筆訂單拍賣的回應時間需 ≤ 8 秒,單筆訂單拍賣需 ≤ 2 秒。逾時將視為放棄該輪拍賣(含網路延遲)。
  • 對於同一個 Auction ID,Autopilot 最多只會呼叫此端點一次。
  • 若某筆 RWA 單筆訂單拍賣在第一輪未能被求解,該未解訂單會與其他正常訂單於下一輪一同批次處理。
http
POST /solve
Content-Type: application/json

請求參數(SolveRequest)#

參數型別必填說明範例
chainIndexString鏈 ID1-eth
auctionIdString拍賣唯一 ID12345
settlementContractString用以結算此場拍賣的結算合約地址0xabcd...
deadlineTimestamp期望取得回應的截止時間戳172120120102
stressTestBooleantrue 時表示壓測訂單,/solve 將跳過 Simulation 驗證,直接於 solutions 回傳結果true
ordersArray<Order>此場拍賣中可被求解的訂單列表
┗ orderUidString訂單唯一識別碼(56 bytes,0x 前綴十六進位)0x30cff40d...76a6
┗ ownerString訂單擁有者地址0x1234...5678
┗ fromTokenAddressString賣出 Token 地址0xa0b8...eb48
┗ toTokenAddressString買入 Token 地址0xdac1...1ec7
┗ fromTokenAmountString賣出數量(以最小單位表示)1000000000
┗ toTokenAmountString買入數量(以最小單位表示)990000000
┗ swapModeString訂單類型:exactIn / exactOut,目前 OKX 僅支援 exactInexactIn
┗ partiallyFillableBoolean是否允許部分成交,目前 OKX 不支援部分成交false
┗ validToString訂單到期時間(Unix 時間戳,秒)1737400518
┗ appDataHashStringApp data hash(32 bytes,0x 前綴十六進位)0x0000...0000
┗ signatureString簽章(0x 前綴十六進位)0x1234...
┗ signingSchemeString簽章方式:eip712 / ethsign / presign / eip1271eip712
┗ receiverString收款地址0x1234...5678
┗ createTimeString訂單建立時間(epoch 秒)1737396918
┗ commissionInfosArray手續費資訊列表
┗┗ feePercentString最多支援 9 位小數;若超出位數,系統將自動向上取整20000000
┗┗ feeAmountString手續費金額100000
┗┗ referrerWalletAddressString手續費收款地址0x1234...
┗┗ feeDirectionBoolean收費方向:true = 從 fromToken 收取,false = 從 toToken 收取true
┗┗ commissionTypeString手續費類型:okx = OKX 平台費、parent = 上層節點分成、child = 下層節點分成okx
┗┗ toBBoolean訂單類型:true = ToB、false = ToCfalse
tokensArray此場拍賣使用的 Token 資料(會包含 WETH 價格資訊)
┗ addressStringToken 地址0x1234...5611
┗ priceString參考價格(以 USD 計價,最多支援 18 位小數),用於計算 Surplus1000000000000000000
┗ decimalsStringToken 小數位數18
┗ tagsArrayToken 標籤列表["RWA_ONDO","RWA"]

回應參數#

參數型別必填說明範例
solutionsArraySolution 列表
┗ solutionIdStringSolution 唯一識別碼(僅需在當前拍賣中唯一,不需全域唯一)。必須為數字字串,最大值為 2^63 - 11
┗ clearingPricesObjectToken 地址至統一結算價格(扣除手續費前的價格)的對應表
┗ submissionAddressString用於提交該 Solution 進行結算的地址0xaFe9...3596
┗ ordersArraySolver 此 Solution 中所包含的訂單列表,包含 Solver 自身的 JIT 訂單
┗┗ orderUidString訂單唯一識別碼(56 bytes,0x 前綴十六進位)0xb91949...46e
┗┗ swapModeString訂單類型:exactIn / exactOutexactIn
┗┗ fromTokenAddressString賣出 Token 地址0xc02a...6cc2
┗┗ toTokenAddressString買入 Token 地址0xdac1...1ec7
┗┗ fromTokenAmountString允許賣出的最大數量1750000000000000
┗┗ toTokenAmountString允許買入的最小數量3529500
┗┗ executedFromTokenAmountString實際從使用者錢包扣除的數量(含所有手續費)1750000000000000
┗┗ executedToTokenAmountString使用者實際收到的淨數量(扣除所有手續費後)3694070
┗┗ solverFeeInfoObjectSolver 手續費資訊
┗┗┗ feePercentString最多支援 9 位小數;若超出位數,系統將自動向上取整0
┗┗┗ feeAmountStringSolver 手續費金額0
┗┗┗ solverAddressStringSolver 手續費收款地址0xaFe9...3596
┗┗┗ feeDirectionBoolean收費方向:true = 從 fromToken 收取,false = 從 toToken 收取false
┗┗ surplusFeeInfoObjectSurplus 手續費資訊
┗┗┗ feePercentStringSurplus 手續費百分比0
┗┗┗ trimReceiverStringSurplus 截留部分的接收地址0xaFe9...3596
┗┗ commissionInfosArray平台費與分潤資訊
┗┗┗ feePercentString最多支援 9 位小數;若超出位數,系統將自動向上取整3000000
┗┗┗ feeAmountString手續費金額11132
┗┗┗ referrerWalletAddressString手續費收款地址0x29e2...6925
┗┗┗ feeDirectionBoolean收費方向:true = 從 fromToken 收取,false = 從 toToken 收取false
┗┗┗ commissionTypeString手續費類型:okx = OKX 平台費、parent = 上層節點分成、child = 下層節點分成okx
┗┗┗ toBBoolean訂單類型:true = ToB、false = ToCfalse

請求範例#

json
{
  "auctionId": "16979924300771968",
  "chainIndex": "1",
  "deadline": "1773829092242",
  "settlementContract": "0x1a34e1e604d8a55405172c0717b17f7631d5f265",
  "orders": [
    {
      "appDataHash": "0xb44dd4943b8f671e3e555b6e0fb8a882fd4c81d2bf2fbe27bf2bc76794d6f1ce",
      "commissionInfos": [
        {
          "commissionType": "okx",
          "feeDirection": true,
          "feePercent": "3000000",
          "referrerWalletAddress": "0x6ea08ca8f313d860808ef7431fc72c6fbcf4a72d",
          "toB": false
        },
        {
          "commissionType": "child",
          "feeDirection": true,
          "feePercent": "1000000",
          "referrerWalletAddress": "0x2c825edb17c2c04983a481ebd2da2a39424c7cb7",
          "toB": false
        },
        {
          "commissionType": "parent",
          "feeDirection": true,
          "feePercent": "500000",
          "referrerWalletAddress": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
          "toB": false
        }
      ],
      "createTime": "1773828838",
      "fromTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "fromTokenAmount": "1000000000000000",
      "orderUid": "0xac46fe143af2afc7e3614f96cfcf660b0e680ca8d9d8f59591b63fbdc4a871413474fbbc6e43dcb0398e2eacbe1032cced80674269ba81ed",
      "owner": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
      "partiallyFillable": false,
      "receiver": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
      "signature": "0xabe06f2376cd977d47179be4b055df4b4ebb140d48e585c9f742019760fe02f02655eec2b87ae159c7e1a510dfe3524799504c1f6175c5c2cdff35d0ad54b6131c",
      "signingScheme": "eip712",
      "swapMode": "exactIn",
      "toTokenAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "toTokenAmount": "2262246",
      "validTo": "1773830637"
    }
  ],
  "tokens": [
    {
      "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "price": "2333.904192377223440889",
      "decimals": "18",
      "tags": ["RWA_ONDO", "RWA"]
    },
    {
      "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "price": "0.99998",
      "decimals": "6",
      "tags": ["RWA_ONDO", "RWA"]
    }
  ]
}

回應範例#

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "solutions": [
      {
        "solutionId": "1",
        "clearingPrices": {
          "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": "471600415.188469753892516323455589889089688117",
          "0xdac17f958d2ee523a2206206994597c13d831ec7": "1"
        },
        "submissionAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596",
        "orders": [
          {
            "orderUid": "0xb919490fe85e27523f1732fcf09dc398a89deea8f7d9c5fb170cd4f6d6d3bbb729e27c8e9979b9879de65955f172f3623644692569abc46e",
            "swapMode": "exactIn",
            "fromTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
            "toTokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "fromTokenAmount": "1750000000000000",
            "toTokenAmount": "3529500",
            "executedFromTokenAmount": "1750000000000000",
            "executedToTokenAmount": "3694070",
            "solverFeeInfo": {
              "feeAmount": "0",
              "feePercent": "0",
              "feeDirection": false,
              "solverAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
            },
            "surplusFeeInfo": {
              "feePercent": "0",
              "trimReceiver": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
            },
            "commissionInfos": [
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "11132",
                "feePercent": "3000000",
                "toB": false,
                "feeDirection": false,
                "commissionType": "okx"
              },
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "3710",
                "feePercent": "1000000",
                "toB": false,
                "feeDirection": false,
                "commissionType": "child"
              },
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "1855",
                "feePercent": "500000",
                "toB": false,
                "feeDirection": false,
                "commissionType": "parent"
              }
            ]
          },
          {
            "orderUid": "0xe2f6bd4af8ca930b391f321d8ec9d6f772748060aa4bf9b9576d97361af7724f29e27c8e9979b9879de65955f172f3623644692569abc471",
            "swapMode": "exactIn",
            "fromTokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "toTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
            "fromTokenAmount": "5000000",
            "toTokenAmount": "2340413279781192",
            "executedFromTokenAmount": "5000000",
            "executedToTokenAmount": "2347391066600608",
            "solverFeeInfo": {
              "feeAmount": "0",
              "feePercent": "0",
              "feeDirection": true,
              "solverAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
            },
            "surplusFeeInfo": {
              "feePercent": "0",
              "trimReceiver": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
            },
            "commissionInfos": [
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "15000",
                "feePercent": "3000000",
                "toB": false,
                "feeDirection": true,
                "commissionType": "okx"
              },
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "5000",
                "feePercent": "1000000",
                "toB": false,
                "feeDirection": true,
                "commissionType": "child"
              },
              {
                "referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
                "feeAmount": "2500",
                "feePercent": "500000",
                "toB": false,
                "feeDirection": true,
                "commissionType": "parent"
              }
            ]
          }
        ]
      }
    ]
  }
}