diff --git a/src/api/exchange/_methods/order.ts b/src/api/exchange/_methods/order.ts index 0f5f4ff0..edc107f7 100644 --- a/src/api/exchange/_methods/order.ts +++ b/src/api/exchange/_methods/order.ts @@ -259,6 +259,8 @@ export const OrderResponse = /* @__PURE__ */ (() => { v.description("Error message."), ), }), + v.literal("waitingForFill"), + v.literal("waitingForTrigger"), ]), ), v.description("Array of statuses for each placed order."), diff --git a/tests/api/exchange/_t.ts b/tests/api/exchange/_t.ts index 5b8051d0..14b78858 100644 --- a/tests/api/exchange/_t.ts +++ b/tests/api/exchange/_t.ts @@ -238,7 +238,10 @@ export async function openOrder( }); // Extract order info - const [order] = result.response.data.statuses; + const [order] = result.response.data.statuses as ( + | { resting: { oid: number; cloid: `0x${string}` } }[] + | { filled: { oid: number; cloid: `0x${string}` } }[] + ); return { a: id, b: side === "buy", diff --git a/tests/api/exchange/batchModify.test.ts b/tests/api/exchange/batchModify.test.ts index 07f196da..1eca64e5 100644 --- a/tests/api/exchange/batchModify.test.ts +++ b/tests/api/exchange/batchModify.test.ts @@ -98,7 +98,11 @@ runTest({ }); })(), ]); - schemaCoverage(excludeErrorResponse(BatchModifyResponse), data); + schemaCoverage(excludeErrorResponse(BatchModifyResponse), data, { + ignoreBranches: { + "#/properties/response/properties/data/properties/statuses/items": [2, 3], + }, + }); }, cliTestFn: async (_t, runCommand) => { const data = await runCommand([ diff --git a/tests/api/exchange/order.test.ts b/tests/api/exchange/order.test.ts index e141e9c3..370077e9 100644 --- a/tests/api/exchange/order.test.ts +++ b/tests/api/exchange/order.test.ts @@ -72,8 +72,40 @@ runTest({ }], grouping: "na", }), + // waitingForTrigger + exchClient.order({ + orders: [ + { + a: id, + b: false, + p: pxDown, + s: sz, + r: false, + t: { limit: { tif: "Gtc" } }, + }, + { + a: id, + b: true, + p: pxDown, + s: sz, + r: true, + t: { + trigger: { + isMarket: true, + tpsl: "tp", + triggerPx: pxUp, + }, + }, + }, + ], + grouping: "normalTpsl", + }), ]); - schemaCoverage(excludeErrorResponse(OrderResponse), data); + schemaCoverage(excludeErrorResponse(OrderResponse), data, { + ignoreBranches: { + "#/properties/response/properties/data/properties/statuses/items": [2], + }, + }); }, cliTestFn: async (_t, runCommand) => { const data = await runCommand([