跳转到主要内容
所有取消端点都需要 L2 身份验证。响应始终包含 canceled(已取消订单 ID 列表)和 not_canceled(订单 ID 到失败原因的映射)。

取消单个订单

const resp = await client.cancelOrder("0xb816482a...");
console.log(resp);
// { canceled: ["0xb816482a..."], not_canceled: {} }

取消多个订单

const resp = await client.cancelOrders(["0xb816482a...", "0xc927593b..."]);

取消所有订单

取消所有市场中的每个未完成订单:
const resp = await client.cancelAll();

按市场取消

取消特定市场的所有订单,可选择性地筛选到单个代币。marketasset_id 都是可选的——同时省略两者将取消所有订单。
const resp = await client.cancelMarketOrders({
  market: "0xbd31dc8a...", // optional: condition ID
  asset_id: "52114319501245...", // optional: specific token
});

链上取消

如果 API 不可用,你可以直接在 Exchange 合约上通过调用链上的 cancelOrder(Order order) 来取消订单。传递下单时签名的完整订单结构。 根据市场类型使用 CTFExchangeNegRiskCTFExchange 合约。地址详见合约地址 这是一种回退机制——API 取消是即时的,而链上取消需要一笔交易。

查询订单

获取单个订单

const order = await client.getOrder("0xb816482a...");
console.log(order.status, order.size_matched);

获取未完成订单

检索所有未完成订单,可选择性地按市场或代币筛选:
// All open orders
const orders = await client.getOpenOrders();

// Filtered by market
const marketOrders = await client.getOpenOrders({
  market: "0xbd31dc8a...",
});

// Filtered by token
const tokenOrders = await client.getOpenOrders({
  asset_id: "52114319501245...",
});

OpenOrder 对象

字段类型描述
idstring订单 ID
statusstring当前订单状态
marketstringCondition ID
asset_idstringToken ID
sidestringBUYSELL
original_sizestring下单时的数量
size_matchedstring已成交数量
pricestring限价
outcomestring人类可读的结果(例如,“Yes”,“No”)
order_typestring订单类型(GTC, GTD, FOK, FAK)
maker_addressstring资金提供者地址
ownerstring订单所有者的 API key
associate_tradesstring[]此订单包含的交易 ID
expirationstringUnix 过期时间戳(如果没有则为 0)
created_atstringUnix 创建时间戳

交易历史

当订单匹配时,会创建一笔交易。交易经历以下状态:
StatusTerminalDescription
MATCHEDNo已匹配并发送至链上提交
MINEDNo已在链上挖出,尚未最终确认
CONFIRMEDYes已达到最终性——交易成功
RETRYINGNo交易失败——正在重试
FAILEDYes永久失败
// All trades
const trades = await client.getTrades();

// Filtered by market
const marketTrades = await client.getTrades({
  market: "0xbd31dc8a...",
});
其他筛选参数: id, maker_address, asset_id, before, after 对于大型结果集,使用分页变体:
const page = await client.getTradesPaginated({ market: "0xbd31dc8a..." });
console.log(page.trades, page.count); // trades array + total count

Trade 对象

字段类型描述
idstring交易 ID
taker_order_idstringTaker 订单哈希
marketstringCondition ID
asset_idstringToken ID
sidestringBUYSELL
sizestring交易数量
pricestring执行价格
fee_rate_bpsstring费率(基点)
statusstring交易状态(见上表)
match_timestring匹配时的 Unix 时间戳
last_updatestring最后状态更改的 Unix 时间戳
outcomestring人类可读的结果(例如,“Yes”)
maker_addressstringMaker 的资金提供者地址
ownerstring交易所有者的 API key
transaction_hashstring链上交易哈希
bucket_indexnumber用于交易对账的索引
trader_sidestringTAKERMAKER
maker_ordersMakerOrder[]填充此交易的 Maker 订单
由于 gas 限制,单笔交易可能会被拆分到多个链上交易中。使用 bucket_indexmatch_time 将相关交易对账回单个逻辑交易。

订单评分

检查你的挂单是否符合 maker 返利评分资格:
// Single order
const scoring = await client.isOrderScoring({ orderId: "0x..." });

// Multiple orders
const batch = await client.areOrdersScoring({
  orderIds: ["0x...", "0x..."],
});

下一步