@polyester/sdk 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/catalogs/decimal.js +6 -4
  3. package/dist/catalogs/decimal.js.map +1 -1
  4. package/dist/catalogs/readers.js +1 -1
  5. package/dist/gen/auth/v1/policies_pb.d.ts +28 -10
  6. package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
  7. package/dist/gen/auth/v1/policies_pb.js +37 -31
  8. package/dist/gen/auth/v1/policies_pb.js.map +1 -1
  9. package/dist/gen/fees/v1/fees_pb.d.ts +0 -6
  10. package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -1
  11. package/dist/gen/fees/v1/fees_pb.js +1 -1
  12. package/dist/gen/fees/v1/fees_pb.js.map +1 -1
  13. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +6 -11
  14. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
  15. package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
  16. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  17. package/dist/gen/orderbook/v1/orderbook_pb.d.ts +3 -3
  18. package/dist/gen/orderbook/v1/orderbook_pb.js +1 -1
  19. package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
  20. package/dist/gen/orders/v1/orders_pb.d.ts +11 -11
  21. package/dist/gen/orders/v1/orders_pb.js +1 -1
  22. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  23. package/dist/gen/triggers/v1/triggers_pb.d.ts +6 -12
  24. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  25. package/dist/gen/triggers/v1/triggers_pb.js +1 -1
  26. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  27. package/dist/services/fees/fees.schemas.d.ts +2 -3
  28. package/dist/services/fees/fees.schemas.d.ts.map +1 -1
  29. package/dist/services/fees/fees.schemas.js +3 -4
  30. package/dist/services/fees/fees.schemas.js.map +1 -1
  31. package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
  32. package/dist/services/market-data/market-data.schemas.js +1 -1
  33. package/dist/services/market-overview/market-overview.d.ts +1 -1
  34. package/dist/services/market-overview/market-overview.js +1 -1
  35. package/dist/services/market-overview/market-overview.js.map +1 -1
  36. package/dist/services/market-overview/market-overview.schemas.d.ts +20 -7
  37. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  38. package/dist/services/market-overview/market-overview.schemas.js +8 -6
  39. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  40. package/dist/services/orderbook/orderbook.d.ts +3 -4
  41. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  42. package/dist/services/orderbook/orderbook.js +13 -10
  43. package/dist/services/orderbook/orderbook.js.map +1 -1
  44. package/dist/services/orderbook/orderbook.schemas.d.ts +8 -9
  45. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  46. package/dist/services/orderbook/orderbook.schemas.js +9 -8
  47. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  48. package/dist/services/orders/orders-batch.schemas.d.ts +209 -35
  49. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  50. package/dist/services/orders/orders-batch.schemas.js +11 -9
  51. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  52. package/dist/services/orders/orders-input.schemas.d.ts +50 -50
  53. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  54. package/dist/services/orders/orders-input.schemas.js +12 -12
  55. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  56. package/dist/services/orders/orders-modify.schemas.d.ts +18 -18
  57. package/dist/services/orders/orders-modify.schemas.js +1 -1
  58. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  59. package/dist/services/orders/orders-risk.schemas.d.ts +12 -12
  60. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  61. package/dist/services/orders/orders-risk.schemas.js +8 -7
  62. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  63. package/dist/services/orders/orders.d.ts +4 -4
  64. package/dist/services/orders/orders.d.ts.map +1 -1
  65. package/dist/services/orders/orders.js +7 -7
  66. package/dist/services/orders/orders.js.map +1 -1
  67. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +15 -15
  68. package/dist/services/policies/shared.d.ts.map +1 -1
  69. package/dist/services/policies/shared.js +2 -1
  70. package/dist/services/policies/shared.js.map +1 -1
  71. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +9 -9
  72. package/dist/services/shared.js +4 -1
  73. package/dist/services/shared.js.map +1 -1
  74. package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
  75. package/dist/services/trades/trades.schemas.js +1 -1
  76. package/dist/services/trailing-oneof-inputs.js +1 -1
  77. package/dist/services/triggers/trigger-child-order.schemas.js +5 -3
  78. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  79. package/dist/services/triggers/trigger-input.schemas.d.ts +36 -32
  80. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  81. package/dist/services/triggers/trigger-input.schemas.js +8 -8
  82. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  83. package/dist/services/triggers/triggers-output.schemas.d.ts +17 -18
  84. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  85. package/dist/services/triggers/triggers-output.schemas.js +3 -3
  86. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  87. package/dist/services/triggers/triggers.d.ts +2 -2
  88. package/dist/services/triggers/triggers.js +2 -2
  89. package/dist/services/triggers/triggers.js.map +1 -1
  90. package/dist/shared/decimal-surface.d.ts.map +1 -1
  91. package/dist/shared/decimal-surface.js +2 -2
  92. package/dist/shared/decimal-surface.js.map +1 -1
  93. package/package.json +2 -2
@@ -2,14 +2,14 @@ import { LimitFokSchema, LimitGtcSchema, LimitIocSchema, MarketIocSchema } from
2
2
  import { idToBigInt } from "../../utils/base58-id.js";
3
3
  import { tsNsToMs } from "../../utils/time.js";
4
4
  import { OptionalPublicIdSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampMsSchema, optionalIdInputSchema, optionalUint64DecimalFilterSchema } from "../../shared/schemas.js";
5
+ import { SideSchema, SymbolIdInputSchema } from "../shared.js";
5
6
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
6
7
  import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
7
- import { SideSchema } from "../shared.js";
8
8
  import { FEE_ASSET_VALUES, FeeAssetCodec, OrderSideCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec } from "./order-enums.codecs.js";
9
9
  import { ORDER_STATUS_FILTER_VALUES, OrderStatusFilterCodec } from "./orders.codecs.js";
10
10
  import { OrderErrorDetailSchema } from "./order-errors.schemas.js";
11
11
  import { MarketMaxSlippageSchema, createRiskPolicyInputSchema, parseMarketMaxSlippage } from "./orders-risk.schemas.js";
12
- import { OptionalClientOrderIdInputSchema } from "./orders-identifiers.schemas.js";
12
+ import { OptionalClientOrderIdInputSchema, OrderRequestIdInputSchema } from "./orders-identifiers.schemas.js";
13
13
  import { create } from "@bufbuild/protobuf";
14
14
  import * as v from "valibot";
15
15
  //#region src/services/orders/orders-input.schemas.ts
@@ -50,7 +50,7 @@ const OrderHistoryInputSchema = v.pipe(v.strictObject({
50
50
  const DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));
51
51
  function createOrderIntentBaseEntries(scales) {
52
52
  return {
53
- symbol: v.pipe(v.string(), v.trim(), v.minLength(1)),
53
+ symbolId: SymbolIdInputSchema,
54
54
  side: v.pipe(SideSchema, v.transform((v) => OrderSideCodec.inputToProto[v])),
55
55
  execution: createOrderExecutionInputSchema(scales),
56
56
  clientOrderId: OptionalClientOrderIdInputSchema,
@@ -90,10 +90,10 @@ function toOrderIntent(input, scales) {
90
90
  const { risk, qty, maxQuoteDebit, ...intent } = input;
91
91
  const sizing = qty !== void 0 ? {
92
92
  case: "baseQtyScaled",
93
- value: positiveDecimalInputToScaled("qty", qty, scales.baseQty(intent.symbol))
93
+ value: positiveDecimalInputToScaled("qty", qty, scales.baseQty(intent.symbolId))
94
94
  } : {
95
95
  case: "maxQuoteDebitScaled",
96
- value: positiveDecimalInputToScaled("maxQuoteDebit", maxQuoteDebit, scales.quoteAmount(intent.symbol))
96
+ value: positiveDecimalInputToScaled("maxQuoteDebit", maxQuoteDebit, scales.quoteAmount(intent.symbolId))
97
97
  };
98
98
  return {
99
99
  ...intent,
@@ -191,10 +191,10 @@ const CancelOrderResultSchema = v.pipe(v.object({
191
191
  })));
192
192
  const CancelAllOrdersInputSchema = v.pipe(v.strictObject({
193
193
  ...AccountScopeInputEntries,
194
- symbol: v.optional(v.pipe(v.string(), v.trim())),
194
+ symbolId: v.optional(SymbolIdInputSchema),
195
195
  side: v.pipe(v.optional(SideSchema), v.transform((v) => v ? OrderSideCodec.inputToProto[v] : void 0)),
196
196
  dryRun: v.optional(v.boolean(), false),
197
- requestId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(64)))
197
+ requestId: v.optional(OrderRequestIdInputSchema)
198
198
  }), v.transform(({ account, ...input }) => ({
199
199
  ...input,
200
200
  subaccountId: accountScopeToSubaccountId(account)
@@ -234,7 +234,7 @@ const GetOrderDetailsInputSchema = v.pipe(v.strictObject({
234
234
  key
235
235
  };
236
236
  }));
237
- function createCreateOrderResultSchema(scales, symbol) {
237
+ function createCreateOrderResultSchema(scales, symbolId) {
238
238
  return v.pipe(v.object({
239
239
  orderId: PublicIdSchema,
240
240
  clientOrderId: v.string(),
@@ -249,11 +249,11 @@ function createCreateOrderResultSchema(scales, symbol) {
249
249
  ...result,
250
250
  acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),
251
251
  acceptedAtNs: acceptedAtTsNs.toString(),
252
- resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbol)),
253
- ...submittedMaxQuoteDebitScaled === void 0 ? {} : { submittedMaxQuoteDebit: scaledToDecimalOutput(submittedMaxQuoteDebitScaled, scales.quoteAmount(symbol)) }
252
+ resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbolId)),
253
+ ...submittedMaxQuoteDebitScaled === void 0 ? {} : { submittedMaxQuoteDebit: scaledToDecimalOutput(submittedMaxQuoteDebitScaled, scales.quoteAmount(symbolId)) }
254
254
  })));
255
255
  }
256
- function createPreviewOrderResultSchema(scales, symbol) {
256
+ function createPreviewOrderResultSchema(scales, symbolId) {
257
257
  return v.pipe(v.object({
258
258
  admissible: v.optional(v.boolean()),
259
259
  rejection: v.optional(OrderErrorDetailSchema),
@@ -262,7 +262,7 @@ function createPreviewOrderResultSchema(scales, symbol) {
262
262
  evaluatedAt: TimestampMsSchema
263
263
  }), v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({
264
264
  ...result,
265
- ...resolvedBaseQtyScaled === void 0 ? {} : { resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbol)) },
265
+ ...resolvedBaseQtyScaled === void 0 ? {} : { resolvedBaseQty: scaledToDecimalOutput(resolvedBaseQtyScaled, scales.baseQty(symbolId)) },
266
266
  ...protectedPriceBoundTicks === void 0 ? {} : { protectedPriceBound: scaledToDecimalOutput(protectedPriceBoundTicks, scales.price()) }
267
267
  })));
268
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orders-input.schemas.js","names":["ProtoWrite.MarketIocSchema","ProtoWrite.LimitGtcSchema","ProtoWrite.LimitIocSchema","ProtoWrite.LimitFokSchema"],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport { SideSchema } from \"../shared.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n OptionalPublicIdSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampMsSchema,\n optionalIdInputSchema,\n optionalUint64DecimalFilterSchema,\n} from \"../../shared/schemas.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport {\n FEE_ASSET_VALUES,\n ORDER_STATUS_FILTER_VALUES,\n OrderSideCodec,\n OrderStatusFilterCodec,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n} from \"./orders.codecs.js\";\nimport {\n MarketMaxSlippageSchema,\n createRiskPolicyInputSchema,\n parseMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\nimport { OptionalClientOrderIdInputSchema } from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst OrderStatusSchema = v.picklist(ORDER_STATUS_FILTER_VALUES);\nconst FeeAssetSchema = v.picklist(FEE_ASSET_VALUES);\nconst SelfTradePreventionModeSchema = v.picklist(SELF_TRADE_PREVENTION_MODE_VALUES);\n\nconst BaseOrdersFilterInputEntries = {\n ...AccountScopeInputEntries,\n symbolId: v.optional(v.array(v.number())),\n triggerId: optionalIdInputSchema(\"triggerId\"),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n limit: v.optional(v.number()),\n pageToken: v.optional(v.pipe(v.string(), v.trim())),\n};\n\nexport const BaseOrdersFilterInputSchema = v.pipe(\n v.strictObject(BaseOrdersFilterInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport const OpenOrdersInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OpenOrdersInput = v.InferInput<typeof OpenOrdersInputSchema>;\n\nexport const OrderHistoryInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n status: v.pipe(\n v.optional(OrderStatusSchema),\n v.transform((v) => (v ? OrderStatusFilterCodec.inputToProto[v] : undefined)),\n ),\n startTsNs: optionalUint64DecimalFilterSchema(\"startTsNs\"),\n endTsNs: optionalUint64DecimalFilterSchema(\"endTsNs\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OrderHistoryInput = v.InferInput<typeof OrderHistoryInputSchema>;\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction createOrderIntentBaseEntries(scales: SdkScales) {\n return {\n symbol: v.pipe(v.string(), v.trim(), v.minLength(1)),\n side: v.pipe(\n SideSchema,\n v.transform((v) => OrderSideCodec.inputToProto[v]),\n ),\n execution: createOrderExecutionInputSchema(scales),\n clientOrderId: OptionalClientOrderIdInputSchema,\n feeAsset: v.pipe(\n v.optional(FeeAssetSchema),\n v.transform((v) => (v ? FeeAssetCodec.inputToProto[v] : undefined)),\n ),\n selfTradePreventionMode: v.pipe(\n v.optional(SelfTradePreventionModeSchema),\n v.transform((v) => (v ? SelfTradePreventionModeCodec.inputToProto[v] : undefined)),\n ),\n risk: createRiskPolicyInputSchema(scales),\n };\n}\n\ntype ParsedOrderIntentInput = v.InferOutput<ReturnType<typeof createOrderIntentInputObjectSchema>>;\n\nfunction createOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = createOrderIntentBaseEntries(scales);\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction createScopedOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = {\n ...AccountScopeInputEntries,\n ...createOrderIntentBaseEntries(scales),\n };\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction toOrderIntent(input: ParsedOrderIntentInput, scales: SdkScales) {\n const { risk, qty, maxQuoteDebit, ...intent } = input;\n const sizing =\n qty !== undefined\n ? ({\n case: \"baseQtyScaled\",\n value: positiveDecimalInputToScaled(\"qty\", qty, scales.baseQty(intent.symbol)),\n } as const)\n : ({\n case: \"maxQuoteDebitScaled\",\n value: positiveDecimalInputToScaled(\n \"maxQuoteDebit\",\n maxQuoteDebit,\n scales.quoteAmount(intent.symbol),\n ),\n } as const);\n return {\n ...intent,\n sizing,\n feeAsset: intent.feeAsset ?? ProtoWrite.FeeAsset.QUOTE,\n attachedRisk: risk,\n };\n}\n\nexport function createOrderIntentInputSchema(scales: SdkScales) {\n return v.pipe(\n createOrderIntentInputObjectSchema(scales),\n v.transform((input) => toOrderIntent(input, scales)),\n );\n}\n\nexport type OrderIntentInput = v.InferInput<ReturnType<typeof createOrderIntentInputSchema>>;\n\nfunction createOrderExecutionInputSchema(scales: SdkScales) {\n const priceToTicks = (fieldName: string, price: string) =>\n positiveDecimalInputToScaled(fieldName, price, scales.price());\n\n return v.variant(\"type\", [\n v.pipe(\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n maxSlippage: v.optional(MarketMaxSlippageSchema),\n clientRefPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform(({ maxSlippage, clientRefPrice }) => ({\n case: \"marketIoc\" as const,\n value: create(ProtoWrite.MarketIocSchema, {\n maxSlippage: parseMarketMaxSlippage(scales, maxSlippage),\n clientRefPriceTicks:\n clientRefPrice === undefined\n ? 0n\n : priceToTicks(\"execution.clientRefPrice\", clientRefPrice),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n postOnly: v.optional(v.boolean(), false),\n }),\n v.transform(({ price, postOnly }) => ({\n case: \"limitGtc\" as const,\n value: create(ProtoWrite.LimitGtcSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n postOnly,\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_ioc\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitIoc\" as const,\n value: create(ProtoWrite.LimitIocSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_fok\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitFok\" as const,\n value: create(ProtoWrite.LimitFokSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n ]);\n}\n\nexport function createNewOrderInputSchema(scales: SdkScales) {\n return v.pipe(\n createScopedOrderIntentInputObjectSchema(scales),\n v.transform(({ account, ...input }) => {\n return {\n subaccountId: accountScopeToSubaccountId(account),\n order: toOrderIntent(input, scales),\n };\n }),\n );\n}\n\nexport type NewOrderInput = v.InferInput<ReturnType<typeof createNewOrderInputSchema>>;\n\nconst CancelOrderScopeInputEntries = {\n symbolId: v.optional(v.number()),\n ...AccountScopeInputEntries,\n};\n\nexport const CancelOrderInputSchema = v.pipe(\n v.union([\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((v) => idToBigInt(v, \"orderId\")),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.optional(v.never()),\n clientOrderId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n v.transform(({ orderId, clientOrderId, account, ...rest }) => {\n const key =\n orderId !== undefined\n ? ({ case: \"orderId\", value: orderId } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type CancelOrderInput = v.InferInput<typeof CancelOrderInputSchema>;\n\nexport const CancelOrderResultSchema = v.pipe(\n v.object({\n status: v.string(),\n orderId: PublicIdSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelOrderResult = v.InferOutput<typeof CancelOrderResultSchema>;\n\nexport const CancelAllOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbol: v.optional(v.pipe(v.string(), v.trim())),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n dryRun: v.optional(v.boolean(), false),\n requestId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(64))),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllOrdersInput = v.InferInput<typeof CancelAllOrdersInputSchema>;\n\nexport const CancelAllOrdersResponseSchema = v.pipe(\n v.object({\n status: v.string(),\n matchedOrders: v.number(),\n submittedCancels: v.number(),\n failedCancels: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((o) => ({\n status: o.status,\n matchedOrders: o.matchedOrders,\n submittedCancels: o.submittedCancels,\n failedCancels: o.failedCancels,\n ts: tsNsToMs(o.tsNs),\n })),\n);\n\nexport type CancelAllOrdersResponse = v.InferOutput<typeof CancelAllOrdersResponseSchema>;\n\nexport const GetOrderDetailsInputSchema = v.pipe(\n v.strictObject({\n orderId: v.optional(v.pipe(v.string(), v.trim())),\n clientOrderId: v.optional(v.pipe(v.string(), v.trim())),\n ...AccountScopeInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), true),\n }),\n v.check((input) => {\n const hasOrderId = (input.orderId ?? \"\").length > 0;\n const hasClientOrderId = (input.clientOrderId ?? \"\").length > 0;\n return hasOrderId !== hasClientOrderId;\n }, \"Provide exactly one of orderId or clientOrderId\"),\n v.transform(({ account, orderId, clientOrderId, ...rest }) => {\n const hasOrderId = (orderId ?? \"\").length > 0;\n const key = hasOrderId\n ? ({ case: \"orderId\", value: idToBigInt(orderId ?? \"\", \"orderId\") } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId ?? \"\" } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type GetOrderDetailsInput = v.InferInput<typeof GetOrderDetailsInputSchema>;\n\nexport function createCreateOrderResultSchema(scales: SdkScales, symbol: string) {\n return v.pipe(\n v.object({\n orderId: PublicIdSchema,\n clientOrderId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: v.bigint(),\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n }),\n v.transform(\n ({\n acceptedAt,\n acceptedAtTsNs,\n resolvedBaseQtyScaled,\n submittedMaxQuoteDebitScaled,\n ...result\n }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),\n acceptedAtNs: acceptedAtTsNs.toString(),\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbol),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbol),\n ),\n }),\n }),\n ),\n );\n}\n\nexport type CreateOrderResult = v.InferOutput<ReturnType<typeof createCreateOrderResultSchema>>;\n\nexport function createPreviewOrderResultSchema(scales: SdkScales, symbol: string) {\n return v.pipe(\n v.object({\n admissible: v.optional(v.boolean()),\n rejection: v.optional(OrderErrorDetailSchema),\n resolvedBaseQtyScaled: v.optional(v.bigint()),\n protectedPriceBoundTicks: v.optional(v.bigint()),\n evaluatedAt: TimestampMsSchema,\n }),\n v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({\n ...result,\n ...(resolvedBaseQtyScaled === undefined\n ? {}\n : {\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbol),\n ),\n }),\n ...(protectedPriceBoundTicks === undefined\n ? {}\n : {\n protectedPriceBound: scaledToDecimalOutput(\n protectedPriceBoundTicks,\n scales.price(),\n ),\n }),\n })),\n );\n}\n\nexport type PreviewOrderResult = v.InferOutput<ReturnType<typeof createPreviewOrderResultSchema>>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"orders-input.schemas.js","names":["ProtoWrite.MarketIocSchema","ProtoWrite.LimitGtcSchema","ProtoWrite.LimitIocSchema","ProtoWrite.LimitFokSchema"],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport { SideSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n OptionalPublicIdSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampMsSchema,\n optionalIdInputSchema,\n optionalUint64DecimalFilterSchema,\n} from \"../../shared/schemas.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport {\n FEE_ASSET_VALUES,\n ORDER_STATUS_FILTER_VALUES,\n OrderSideCodec,\n OrderStatusFilterCodec,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n} from \"./orders.codecs.js\";\nimport {\n MarketMaxSlippageSchema,\n createRiskPolicyInputSchema,\n parseMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\nimport {\n OptionalClientOrderIdInputSchema,\n OrderRequestIdInputSchema,\n} from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst OrderStatusSchema = v.picklist(ORDER_STATUS_FILTER_VALUES);\nconst FeeAssetSchema = v.picklist(FEE_ASSET_VALUES);\nconst SelfTradePreventionModeSchema = v.picklist(SELF_TRADE_PREVENTION_MODE_VALUES);\n\nconst BaseOrdersFilterInputEntries = {\n ...AccountScopeInputEntries,\n symbolId: v.optional(v.array(v.number())),\n triggerId: optionalIdInputSchema(\"triggerId\"),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n limit: v.optional(v.number()),\n pageToken: v.optional(v.pipe(v.string(), v.trim())),\n};\n\nexport const BaseOrdersFilterInputSchema = v.pipe(\n v.strictObject(BaseOrdersFilterInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport const OpenOrdersInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OpenOrdersInput = v.InferInput<typeof OpenOrdersInputSchema>;\n\nexport const OrderHistoryInputSchema = v.pipe(\n v.strictObject({\n ...BaseOrdersFilterInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), false),\n status: v.pipe(\n v.optional(OrderStatusSchema),\n v.transform((v) => (v ? OrderStatusFilterCodec.inputToProto[v] : undefined)),\n ),\n startTsNs: optionalUint64DecimalFilterSchema(\"startTsNs\"),\n endTsNs: optionalUint64DecimalFilterSchema(\"endTsNs\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type OrderHistoryInput = v.InferInput<typeof OrderHistoryInputSchema>;\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction createOrderIntentBaseEntries(scales: SdkScales) {\n return {\n symbolId: SymbolIdInputSchema,\n side: v.pipe(\n SideSchema,\n v.transform((v) => OrderSideCodec.inputToProto[v]),\n ),\n execution: createOrderExecutionInputSchema(scales),\n clientOrderId: OptionalClientOrderIdInputSchema,\n feeAsset: v.pipe(\n v.optional(FeeAssetSchema),\n v.transform((v) => (v ? FeeAssetCodec.inputToProto[v] : undefined)),\n ),\n selfTradePreventionMode: v.pipe(\n v.optional(SelfTradePreventionModeSchema),\n v.transform((v) => (v ? SelfTradePreventionModeCodec.inputToProto[v] : undefined)),\n ),\n risk: createRiskPolicyInputSchema(scales),\n };\n}\n\ntype ParsedOrderIntentInput = v.InferOutput<ReturnType<typeof createOrderIntentInputObjectSchema>>;\n\nfunction createOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = createOrderIntentBaseEntries(scales);\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction createScopedOrderIntentInputObjectSchema(scales: SdkScales) {\n const baseEntries = {\n ...AccountScopeInputEntries,\n ...createOrderIntentBaseEntries(scales),\n };\n return v.pipe(\n v.union([\n v.strictObject({\n ...baseEntries,\n qty: DecimalInputStringSchema,\n maxQuoteDebit: v.optional(v.never()),\n }),\n v.strictObject({\n ...baseEntries,\n qty: v.optional(v.never()),\n maxQuoteDebit: DecimalInputStringSchema,\n }),\n ]),\n v.check(\n (input) =>\n input.maxQuoteDebit === undefined ||\n (input.side === ProtoWrite.Side.BUY &&\n (input.execution.case === \"marketIoc\" || input.execution.case === \"limitIoc\")),\n \"maxQuoteDebit is supported only for BUY market IOC and BUY limit IOC orders\",\n ),\n v.check(\n (input) =>\n input.side !== ProtoWrite.Side.SELL ||\n input.feeAsset === undefined ||\n input.feeAsset === ProtoWrite.FeeAsset.QUOTE,\n \"SELL orders must use the quote fee asset\",\n ),\n );\n}\n\nfunction toOrderIntent(input: ParsedOrderIntentInput, scales: SdkScales) {\n const { risk, qty, maxQuoteDebit, ...intent } = input;\n const sizing =\n qty !== undefined\n ? ({\n case: \"baseQtyScaled\",\n value: positiveDecimalInputToScaled(\"qty\", qty, scales.baseQty(intent.symbolId)),\n } as const)\n : ({\n case: \"maxQuoteDebitScaled\",\n value: positiveDecimalInputToScaled(\n \"maxQuoteDebit\",\n maxQuoteDebit,\n scales.quoteAmount(intent.symbolId),\n ),\n } as const);\n return {\n ...intent,\n sizing,\n feeAsset: intent.feeAsset ?? ProtoWrite.FeeAsset.QUOTE,\n attachedRisk: risk,\n };\n}\n\nexport function createOrderIntentInputSchema(scales: SdkScales) {\n return v.pipe(\n createOrderIntentInputObjectSchema(scales),\n v.transform((input) => toOrderIntent(input, scales)),\n );\n}\n\nexport type OrderIntentInput = v.InferInput<ReturnType<typeof createOrderIntentInputSchema>>;\n\nfunction createOrderExecutionInputSchema(scales: SdkScales) {\n const priceToTicks = (fieldName: string, price: string) =>\n positiveDecimalInputToScaled(fieldName, price, scales.price());\n\n return v.variant(\"type\", [\n v.pipe(\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n maxSlippage: v.optional(MarketMaxSlippageSchema),\n clientRefPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform(({ maxSlippage, clientRefPrice }) => ({\n case: \"marketIoc\" as const,\n value: create(ProtoWrite.MarketIocSchema, {\n maxSlippage: parseMarketMaxSlippage(scales, maxSlippage),\n clientRefPriceTicks:\n clientRefPrice === undefined\n ? 0n\n : priceToTicks(\"execution.clientRefPrice\", clientRefPrice),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n postOnly: v.optional(v.boolean(), false),\n }),\n v.transform(({ price, postOnly }) => ({\n case: \"limitGtc\" as const,\n value: create(ProtoWrite.LimitGtcSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n postOnly,\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_ioc\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitIoc\" as const,\n value: create(ProtoWrite.LimitIocSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n v.pipe(\n v.strictObject({\n type: v.literal(\"limit_fok\"),\n price: DecimalInputStringSchema,\n }),\n v.transform(({ price }) => ({\n case: \"limitFok\" as const,\n value: create(ProtoWrite.LimitFokSchema, {\n priceTicks: priceToTicks(\"execution.price\", price),\n }),\n })),\n ),\n ]);\n}\n\nexport function createNewOrderInputSchema(scales: SdkScales) {\n return v.pipe(\n createScopedOrderIntentInputObjectSchema(scales),\n v.transform(({ account, ...input }) => {\n return {\n subaccountId: accountScopeToSubaccountId(account),\n order: toOrderIntent(input, scales),\n };\n }),\n );\n}\n\nexport type NewOrderInput = v.InferInput<ReturnType<typeof createNewOrderInputSchema>>;\n\nconst CancelOrderScopeInputEntries = {\n symbolId: v.optional(v.number()),\n ...AccountScopeInputEntries,\n};\n\nexport const CancelOrderInputSchema = v.pipe(\n v.union([\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((v) => idToBigInt(v, \"orderId\")),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.strictObject({\n ...CancelOrderScopeInputEntries,\n orderId: v.optional(v.never()),\n clientOrderId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n v.transform(({ orderId, clientOrderId, account, ...rest }) => {\n const key =\n orderId !== undefined\n ? ({ case: \"orderId\", value: orderId } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type CancelOrderInput = v.InferInput<typeof CancelOrderInputSchema>;\n\nexport const CancelOrderResultSchema = v.pipe(\n v.object({\n status: v.string(),\n orderId: PublicIdSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelOrderResult = v.InferOutput<typeof CancelOrderResultSchema>;\n\nexport const CancelAllOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbolId: v.optional(SymbolIdInputSchema),\n side: v.pipe(\n v.optional(SideSchema),\n v.transform((v) => (v ? OrderSideCodec.inputToProto[v] : undefined)),\n ),\n dryRun: v.optional(v.boolean(), false),\n requestId: v.optional(OrderRequestIdInputSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllOrdersInput = v.InferInput<typeof CancelAllOrdersInputSchema>;\n\nexport const CancelAllOrdersResponseSchema = v.pipe(\n v.object({\n status: v.string(),\n matchedOrders: v.number(),\n submittedCancels: v.number(),\n failedCancels: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((o) => ({\n status: o.status,\n matchedOrders: o.matchedOrders,\n submittedCancels: o.submittedCancels,\n failedCancels: o.failedCancels,\n ts: tsNsToMs(o.tsNs),\n })),\n);\n\nexport type CancelAllOrdersResponse = v.InferOutput<typeof CancelAllOrdersResponseSchema>;\n\nexport const GetOrderDetailsInputSchema = v.pipe(\n v.strictObject({\n orderId: v.optional(v.pipe(v.string(), v.trim())),\n clientOrderId: v.optional(v.pipe(v.string(), v.trim())),\n ...AccountScopeInputEntries,\n includeAttachedRisk: v.optional(v.boolean(), true),\n includeAttachedRiskState: v.optional(v.boolean(), true),\n }),\n v.check((input) => {\n const hasOrderId = (input.orderId ?? \"\").length > 0;\n const hasClientOrderId = (input.clientOrderId ?? \"\").length > 0;\n return hasOrderId !== hasClientOrderId;\n }, \"Provide exactly one of orderId or clientOrderId\"),\n v.transform(({ account, orderId, clientOrderId, ...rest }) => {\n const hasOrderId = (orderId ?? \"\").length > 0;\n const key = hasOrderId\n ? ({ case: \"orderId\", value: idToBigInt(orderId ?? \"\", \"orderId\") } as const)\n : ({ case: \"clientOrderId\", value: clientOrderId ?? \"\" } as const);\n return {\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n key,\n };\n }),\n);\n\nexport type GetOrderDetailsInput = v.InferInput<typeof GetOrderDetailsInputSchema>;\n\nexport function createCreateOrderResultSchema(scales: SdkScales, symbolId: number) {\n return v.pipe(\n v.object({\n orderId: PublicIdSchema,\n clientOrderId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: v.bigint(),\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n }),\n v.transform(\n ({\n acceptedAt,\n acceptedAtTsNs,\n resolvedBaseQtyScaled,\n submittedMaxQuoteDebitScaled,\n ...result\n }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(acceptedAtTsNs),\n acceptedAtNs: acceptedAtTsNs.toString(),\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbolId),\n ),\n }),\n }),\n ),\n );\n}\n\nexport type CreateOrderResult = v.InferOutput<ReturnType<typeof createCreateOrderResultSchema>>;\n\nexport function createPreviewOrderResultSchema(scales: SdkScales, symbolId: number) {\n return v.pipe(\n v.object({\n admissible: v.optional(v.boolean()),\n rejection: v.optional(OrderErrorDetailSchema),\n resolvedBaseQtyScaled: v.optional(v.bigint()),\n protectedPriceBoundTicks: v.optional(v.bigint()),\n evaluatedAt: TimestampMsSchema,\n }),\n v.transform(({ resolvedBaseQtyScaled, protectedPriceBoundTicks, ...result }) => ({\n ...result,\n ...(resolvedBaseQtyScaled === undefined\n ? {}\n : {\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n }),\n ...(protectedPriceBoundTicks === undefined\n ? {}\n : {\n protectedPriceBound: scaledToDecimalOutput(\n protectedPriceBoundTicks,\n scales.price(),\n ),\n }),\n })),\n );\n}\n\nexport type PreviewOrderResult = v.InferOutput<ReturnType<typeof createPreviewOrderResultSchema>>;\n"],"mappings":"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"}
@@ -221,7 +221,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
221
221
  }>]>;
222
222
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
223
223
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
224
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
224
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
225
225
  }, undefined>, v.StrictObjectSchema<{
226
226
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
227
227
  readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -253,7 +253,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
253
253
  };
254
254
  }>]>;
255
255
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
256
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
256
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
257
257
  }, undefined>, v.StrictObjectSchema<{
258
258
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
259
259
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
@@ -320,7 +320,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
320
320
  };
321
321
  activationPriceTicks: bigint;
322
322
  }>]>;
323
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
323
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
324
324
  }, undefined>], undefined>, v.TransformAction<{
325
325
  takeProfit: {
326
326
  triggerPriceTicks: bigint;
@@ -401,7 +401,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
401
401
  };
402
402
  stopLoss?: undefined;
403
403
  trailingStop?: undefined;
404
- oco?: boolean | undefined;
404
+ oco?: false | undefined;
405
405
  } | {
406
406
  takeProfit?: undefined;
407
407
  stopLoss: {
@@ -417,7 +417,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
417
417
  };
418
418
  };
419
419
  trailingStop?: undefined;
420
- oco?: boolean | undefined;
420
+ oco?: false | undefined;
421
421
  } | {
422
422
  takeProfit?: undefined;
423
423
  stopLoss?: undefined;
@@ -444,7 +444,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
444
444
  };
445
445
  activationPriceTicks: bigint;
446
446
  };
447
- oco?: boolean | undefined;
447
+ oco?: false | undefined;
448
448
  }, {
449
449
  takeProfit: {
450
450
  triggerPriceTicks: bigint;
@@ -698,7 +698,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
698
698
  }>]>;
699
699
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
700
700
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
701
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
701
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
702
702
  }, undefined>, v.StrictObjectSchema<{
703
703
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
704
704
  readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -730,7 +730,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
730
730
  };
731
731
  }>]>;
732
732
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
733
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
733
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
734
734
  }, undefined>, v.StrictObjectSchema<{
735
735
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
736
736
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
@@ -797,7 +797,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
797
797
  };
798
798
  activationPriceTicks: bigint;
799
799
  }>]>;
800
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
800
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
801
801
  }, undefined>], undefined>, v.TransformAction<{
802
802
  takeProfit: {
803
803
  triggerPriceTicks: bigint;
@@ -878,7 +878,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
878
878
  };
879
879
  stopLoss?: undefined;
880
880
  trailingStop?: undefined;
881
- oco?: boolean | undefined;
881
+ oco?: false | undefined;
882
882
  } | {
883
883
  takeProfit?: undefined;
884
884
  stopLoss: {
@@ -894,7 +894,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
894
894
  };
895
895
  };
896
896
  trailingStop?: undefined;
897
- oco?: boolean | undefined;
897
+ oco?: false | undefined;
898
898
  } | {
899
899
  takeProfit?: undefined;
900
900
  stopLoss?: undefined;
@@ -921,7 +921,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
921
921
  };
922
922
  activationPriceTicks: bigint;
923
923
  };
924
- oco?: boolean | undefined;
924
+ oco?: false | undefined;
925
925
  }, {
926
926
  takeProfit: {
927
927
  triggerPriceTicks: bigint;
@@ -1175,7 +1175,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1175
1175
  }>]>;
1176
1176
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
1177
1177
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
1178
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1178
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
1179
1179
  }, undefined>, v.StrictObjectSchema<{
1180
1180
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
1181
1181
  readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -1207,7 +1207,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1207
1207
  };
1208
1208
  }>]>;
1209
1209
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
1210
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1210
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
1211
1211
  }, undefined>, v.StrictObjectSchema<{
1212
1212
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
1213
1213
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
@@ -1274,7 +1274,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1274
1274
  };
1275
1275
  activationPriceTicks: bigint;
1276
1276
  }>]>;
1277
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1277
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
1278
1278
  }, undefined>], undefined>, v.TransformAction<{
1279
1279
  takeProfit: {
1280
1280
  triggerPriceTicks: bigint;
@@ -1355,7 +1355,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1355
1355
  };
1356
1356
  stopLoss?: undefined;
1357
1357
  trailingStop?: undefined;
1358
- oco?: boolean | undefined;
1358
+ oco?: false | undefined;
1359
1359
  } | {
1360
1360
  takeProfit?: undefined;
1361
1361
  stopLoss: {
@@ -1371,7 +1371,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1371
1371
  };
1372
1372
  };
1373
1373
  trailingStop?: undefined;
1374
- oco?: boolean | undefined;
1374
+ oco?: false | undefined;
1375
1375
  } | {
1376
1376
  takeProfit?: undefined;
1377
1377
  stopLoss?: undefined;
@@ -1398,7 +1398,7 @@ declare function createModifyOrderInputSchema(scales: SdkScales): v.SchemaWithPi
1398
1398
  };
1399
1399
  activationPriceTicks: bigint;
1400
1400
  };
1401
- oco?: boolean | undefined;
1401
+ oco?: false | undefined;
1402
1402
  }, {
1403
1403
  takeProfit: {
1404
1404
  triggerPriceTicks: bigint;
@@ -3,8 +3,8 @@ import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
3
3
  import { idToBigInt } from "../../utils/base58-id.js";
4
4
  import { tsNsToMs } from "../../utils/time.js";
5
5
  import { OptionalPublicIdSchema, PublicIdSchema } from "../../shared/schemas.js";
6
- import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
7
6
  import { PROTOBUF_UINT32_MAX } from "../../shared/wire-bounds.js";
7
+ import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
8
8
  import { positiveDecimalInputToScaled } from "../../shared/decimal-surface.js";
9
9
  import { MODIFY_BEHAVIOR_VALUES, ModifyActionCodec, ModifyBehaviorCodec } from "./orders.codecs.js";
10
10
  import { createRequiredRiskPolicyInputSchema } from "./orders-risk.schemas.js";
@@ -74,7 +74,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
74
74
  }, undefined>, undefined>;
75
75
  readonly origin: v.OptionalSchema<v.ObjectSchema<{
76
76
  readonly scope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderOriginScope, undefined>, v.TransformAction<OrderOriginScope, "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system">]>;
77
- readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder">]>;
77
+ readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop">]>;
78
78
  readonly triggerId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
79
79
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
80
80
  readonly childSeq: v.NumberSchema<undefined>;
@@ -155,7 +155,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
155
155
  } | undefined;
156
156
  origin?: {
157
157
  scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
158
- triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
158
+ triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
159
159
  triggerId?: string | undefined;
160
160
  parentOrderId?: string | undefined;
161
161
  childSeq: number;
@@ -174,7 +174,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
174
174
  marketClientRefPrice?: string | undefined;
175
175
  origin?: {
176
176
  scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
177
- triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
177
+ triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
178
178
  triggerId?: string | undefined;
179
179
  parentOrderId?: string | undefined;
180
180
  childSeq: number;
@@ -348,7 +348,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
348
348
  }, undefined>, undefined>;
349
349
  readonly origin: v.OptionalSchema<v.ObjectSchema<{
350
350
  readonly scope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderOriginScope, undefined>, v.TransformAction<OrderOriginScope, "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system">]>;
351
- readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder">]>;
351
+ readonly triggerType: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderTriggerType, undefined>, v.TransformAction<OrderTriggerType, "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop">]>;
352
352
  readonly triggerId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
353
353
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
354
354
  readonly childSeq: v.NumberSchema<undefined>;
@@ -429,7 +429,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
429
429
  } | undefined;
430
430
  origin?: {
431
431
  scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
432
- triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
432
+ triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
433
433
  triggerId?: string | undefined;
434
434
  parentOrderId?: string | undefined;
435
435
  childSeq: number;
@@ -448,7 +448,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
448
448
  marketClientRefPrice?: string | undefined;
449
449
  origin?: {
450
450
  scope: "unspecified" | "direct" | "attached_risk" | "standalone_trigger" | "system";
451
- triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
451
+ triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
452
452
  triggerId?: string | undefined;
453
453
  parentOrderId?: string | undefined;
454
454
  childSeq: number;
@@ -277,7 +277,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
277
277
  }>]>;
278
278
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
279
279
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
280
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
280
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
281
281
  }, undefined>, v.StrictObjectSchema<{
282
282
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
283
283
  readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -309,7 +309,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
309
309
  };
310
310
  }>]>;
311
311
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
312
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
312
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
313
313
  }, undefined>, v.StrictObjectSchema<{
314
314
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
315
315
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
@@ -376,7 +376,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
376
376
  };
377
377
  activationPriceTicks: bigint;
378
378
  }>]>;
379
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
379
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
380
380
  }, undefined>], undefined>, undefined>, v.TransformAction<{
381
381
  takeProfit: {
382
382
  triggerPriceTicks: bigint;
@@ -457,7 +457,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
457
457
  };
458
458
  stopLoss?: undefined;
459
459
  trailingStop?: undefined;
460
- oco?: boolean | undefined;
460
+ oco?: false | undefined;
461
461
  } | {
462
462
  takeProfit?: undefined;
463
463
  stopLoss: {
@@ -473,7 +473,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
473
473
  };
474
474
  };
475
475
  trailingStop?: undefined;
476
- oco?: boolean | undefined;
476
+ oco?: false | undefined;
477
477
  } | {
478
478
  takeProfit?: undefined;
479
479
  stopLoss?: undefined;
@@ -500,7 +500,7 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
500
500
  };
501
501
  activationPriceTicks: bigint;
502
502
  };
503
- oco?: boolean | undefined;
503
+ oco?: false | undefined;
504
504
  } | undefined, {
505
505
  takeProfit: {
506
506
  triggerPriceTicks: bigint;
@@ -743,7 +743,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
743
743
  }>]>;
744
744
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
745
745
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
746
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
746
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
747
747
  }, undefined>, v.StrictObjectSchema<{
748
748
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
749
749
  readonly stopLoss: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
@@ -775,7 +775,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
775
775
  };
776
776
  }>]>;
777
777
  readonly trailingStop: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
778
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
778
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
779
779
  }, undefined>, v.StrictObjectSchema<{
780
780
  readonly takeProfit: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
781
781
  readonly stopLoss: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
@@ -842,7 +842,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
842
842
  };
843
843
  activationPriceTicks: bigint;
844
844
  }>]>;
845
- readonly oco: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
845
+ readonly oco: v.OptionalSchema<v.LiteralSchema<false, "oco requires takeProfit and exactly one stop leg">, undefined>;
846
846
  }, undefined>], undefined>, v.TransformAction<{
847
847
  takeProfit: {
848
848
  triggerPriceTicks: bigint;
@@ -923,7 +923,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
923
923
  };
924
924
  stopLoss?: undefined;
925
925
  trailingStop?: undefined;
926
- oco?: boolean | undefined;
926
+ oco?: false | undefined;
927
927
  } | {
928
928
  takeProfit?: undefined;
929
929
  stopLoss: {
@@ -939,7 +939,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
939
939
  };
940
940
  };
941
941
  trailingStop?: undefined;
942
- oco?: boolean | undefined;
942
+ oco?: false | undefined;
943
943
  } | {
944
944
  takeProfit?: undefined;
945
945
  stopLoss?: undefined;
@@ -966,7 +966,7 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
966
966
  };
967
967
  activationPriceTicks: bigint;
968
968
  };
969
- oco?: boolean | undefined;
969
+ oco?: false | undefined;
970
970
  }, {
971
971
  takeProfit: {
972
972
  triggerPriceTicks: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"orders-risk.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"mappings":";;;;iBAkBS,2BAA2B,QAAQ,WAAW,yCAAsC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiGpF,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8ExC,4BAA4B,QAAQ,YAAS,EAAA,yBAAA,EAAA,eAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7C,oCAAoC,QAAQ,YAAS,EAAA,yBAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOzD,kBAAkB,EAAE,WAAW,kBAAkB;KACjD,gBAAgB,EAAE,WAAW,kBAAkB;KAC/C,oBAAoB,EAAE,WAAW,kBAAkB;KACnD,kBAAkB,EAAE,WAAW,kBAAkB;KAOjD;EACJ;EAAkB;;EAClB;EAAa"}
1
+ {"version":3,"file":"orders-risk.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"mappings":";;;;iBAkBS,2BAA2B,QAAQ,WAAW,yCAAsC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkGpF,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgFxC,4BAA4B,QAAQ,YAAS,EAAA,yBAAA,EAAA,eAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7C,oCAAoC,QAAQ,YAAS,EAAA,yBAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOzD,kBAAkB,EAAE,WAAW,kBAAkB;KACjD,gBAAgB,EAAE,WAAW,kBAAkB;KAC/C,oBAAoB,EAAE,WAAW,kBAAkB;KACnD,kBAAkB,EAAE,WAAW,kBAAkB;KAOjD;EACJ;EAAkB;;EAClB;EAAa"}
@@ -1,6 +1,6 @@
1
1
  import { RiskLimitGtcSchema, RiskMarketIocSchema } from "../../gen/orders/v1/orders_pb.js";
2
- import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
3
2
  import { BpsStringOrNumberInputSchema, NoneInputSchema, PriceDistanceInputSchema, PriceSlippageInputSchema } from "../shared.js";
3
+ import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
4
4
  import { parseSlippageInput, parseTrailingDistanceInput } from "../trailing-oneof-inputs.js";
5
5
  import { create } from "@bufbuild/protobuf";
6
6
  import * as v from "valibot";
@@ -54,7 +54,8 @@ function parseMaxSlippage(scales, slippage) {
54
54
  return parseSlippageInput(scales, slippage, {
55
55
  fieldName: "trailingStop.maxSlippage",
56
56
  ticksCase: "maxSlippageTicks",
57
- bpsCase: "maxSlippageBps"
57
+ bpsCase: "maxSlippageBps",
58
+ maxBps: MAX_BPS
58
59
  });
59
60
  }
60
61
  function parseMarketMaxSlippage(scales, slippage) {
@@ -80,6 +81,7 @@ function createRiskPolicyObjectInputSchema(scales) {
80
81
  const TakeProfitInputSchema = attachedTriggerInputSchema(scales, "takeProfit");
81
82
  const StopLossInputSchema = attachedTriggerInputSchema(scales, "stopLoss");
82
83
  const TrailingStopInputSchema = createTrailingStopInputSchema(scales);
84
+ const InactiveOcoInputSchema = v.optional(v.literal(false, "oco requires takeProfit and exactly one stop leg"));
83
85
  return v.union([
84
86
  v.strictObject({
85
87
  takeProfit: TakeProfitInputSchema,
@@ -97,19 +99,19 @@ function createRiskPolicyObjectInputSchema(scales) {
97
99
  takeProfit: TakeProfitInputSchema,
98
100
  stopLoss: v.optional(v.never()),
99
101
  trailingStop: v.optional(v.never()),
100
- oco: v.optional(v.boolean())
102
+ oco: InactiveOcoInputSchema
101
103
  }),
102
104
  v.strictObject({
103
105
  takeProfit: v.optional(v.never()),
104
106
  stopLoss: StopLossInputSchema,
105
107
  trailingStop: v.optional(v.never()),
106
- oco: v.optional(v.boolean())
108
+ oco: InactiveOcoInputSchema
107
109
  }),
108
110
  v.strictObject({
109
111
  takeProfit: v.optional(v.never()),
110
112
  stopLoss: v.optional(v.never()),
111
113
  trailingStop: TrailingStopInputSchema,
112
- oco: v.optional(v.boolean())
114
+ oco: InactiveOcoInputSchema
113
115
  })
114
116
  ]);
115
117
  }
@@ -124,11 +126,10 @@ function transformRiskPolicyInput(input) {
124
126
  case: void 0,
125
127
  value: void 0
126
128
  };
127
- const oco = input.oco === true && !!input.takeProfit && stopLeg.case !== void 0;
128
129
  return {
129
130
  takeProfit: input.takeProfit,
130
131
  stopLeg,
131
- oco
132
+ oco: input.oco ?? false
132
133
  };
133
134
  }
134
135
  function createRiskPolicyInputSchema(scales) {