@polyester/sdk 0.9.1 → 0.10.0

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 (127) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/catalogs/readers.d.ts.map +1 -1
  3. package/dist/catalogs/readers.js +22 -0
  4. package/dist/catalogs/readers.js.map +1 -1
  5. package/dist/core-client.d.ts.map +1 -1
  6. package/dist/core-client.js +49 -15
  7. package/dist/core-client.js.map +1 -1
  8. package/dist/environment.d.ts.map +1 -1
  9. package/dist/environment.js +3 -2
  10. package/dist/environment.js.map +1 -1
  11. package/dist/realtime/client.d.ts.map +1 -1
  12. package/dist/realtime/client.js +13 -5
  13. package/dist/realtime/client.js.map +1 -1
  14. package/dist/realtime/ready-gated-subscription.js +68 -0
  15. package/dist/realtime/ready-gated-subscription.js.map +1 -0
  16. package/dist/realtime/snapshot-then-stream.js +19 -10
  17. package/dist/realtime/snapshot-then-stream.js.map +1 -1
  18. package/dist/server-client.d.ts +3 -1
  19. package/dist/server-client.d.ts.map +1 -1
  20. package/dist/server-client.js +9 -4
  21. package/dist/server-client.js.map +1 -1
  22. package/dist/services/auth/session.d.ts.map +1 -1
  23. package/dist/services/auth/session.js +4 -1
  24. package/dist/services/auth/session.js.map +1 -1
  25. package/dist/services/auth/token-storage.js +2 -2
  26. package/dist/services/auth/token-storage.js.map +1 -1
  27. package/dist/services/balances/balances.js +5 -8
  28. package/dist/services/balances/balances.js.map +1 -1
  29. package/dist/services/candles/candles.js +9 -12
  30. package/dist/services/candles/candles.js.map +1 -1
  31. package/dist/services/heatmap/heatmap.js +5 -8
  32. package/dist/services/heatmap/heatmap.js.map +1 -1
  33. package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
  34. package/dist/services/lifecycle/lifecycle.schemas.js +1 -1
  35. package/dist/services/market-data/market-data.d.ts.map +1 -1
  36. package/dist/services/market-data/market-data.js +5 -8
  37. package/dist/services/market-data/market-data.js.map +1 -1
  38. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
  39. package/dist/services/market-data/market-data.schemas.js +3 -2
  40. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  41. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  42. package/dist/services/market-overview/market-overview.js +7 -13
  43. package/dist/services/market-overview/market-overview.js.map +1 -1
  44. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  45. package/dist/services/orderbook/orderbook.js +18 -11
  46. package/dist/services/orderbook/orderbook.js.map +1 -1
  47. package/dist/services/orders/orders-batch.schemas.d.ts +6 -22
  48. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  49. package/dist/services/orders/orders-batch.schemas.js +23 -20
  50. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  51. package/dist/services/orders/orders-identifiers.schemas.js +6 -1
  52. package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
  53. package/dist/services/orders/orders-input.schemas.d.ts +11 -43
  54. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  55. package/dist/services/orders/orders-input.schemas.js +10 -11
  56. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  57. package/dist/services/orders/orders-modify.schemas.d.ts +1 -25
  58. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  59. package/dist/services/orders/orders-modify.schemas.js +2 -4
  60. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  61. package/dist/services/orders/orders-output.schemas.d.ts +165 -27
  62. package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
  63. package/dist/services/orders/orders-output.schemas.js +1 -1
  64. package/dist/services/orders/orders-output.schemas.js.map +1 -1
  65. package/dist/services/orders/orders-risk.schemas.d.ts +1 -20
  66. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  67. package/dist/services/orders/orders-risk.schemas.js +52 -15
  68. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  69. package/dist/services/orders/orders.codecs.js +12 -1
  70. package/dist/services/orders/orders.codecs.js.map +1 -1
  71. package/dist/services/orders/orders.d.ts.map +1 -1
  72. package/dist/services/orders/orders.js +6 -9
  73. package/dist/services/orders/orders.js.map +1 -1
  74. package/dist/services/subaccounts/subaccounts.schemas.d.ts +3 -3
  75. package/dist/services/trades/trades.js +5 -8
  76. package/dist/services/trades/trades.js.map +1 -1
  77. package/dist/services/trailing-oneof-inputs.js +3 -3
  78. package/dist/services/trailing-oneof-inputs.js.map +1 -1
  79. package/dist/services/transfers/index.d.ts +2 -2
  80. package/dist/services/transfers/transfers.d.ts +1 -2
  81. package/dist/services/transfers/transfers.d.ts.map +1 -1
  82. package/dist/services/transfers/transfers.js +8 -13
  83. package/dist/services/transfers/transfers.js.map +1 -1
  84. package/dist/services/transfers/transfers.schemas.d.ts +5 -5
  85. package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
  86. package/dist/services/transfers/transfers.schemas.js +31 -33
  87. package/dist/services/transfers/transfers.schemas.js.map +1 -1
  88. package/dist/services/triggers/trigger-input.schemas.d.ts +21 -8
  89. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  90. package/dist/services/triggers/trigger-input.schemas.js +20 -43
  91. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  92. package/dist/services/triggers/triggers-output.schemas.d.ts +13 -13
  93. package/dist/services/triggers/triggers-output.schemas.js +5 -5
  94. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  95. package/dist/services/triggers/triggers.d.ts.map +1 -1
  96. package/dist/services/triggers/triggers.js +10 -23
  97. package/dist/services/triggers/triggers.js.map +1 -1
  98. package/dist/services/zipper/zipper.d.ts.map +1 -1
  99. package/dist/services/zipper/zipper.js +15 -18
  100. package/dist/services/zipper/zipper.js.map +1 -1
  101. package/dist/shared/connect-error-mapping.d.ts.map +1 -1
  102. package/dist/shared/connect-error-mapping.js +9 -2
  103. package/dist/shared/connect-error-mapping.js.map +1 -1
  104. package/dist/shared/decimal-surface.d.ts.map +1 -1
  105. package/dist/shared/decimal-surface.js +40 -17
  106. package/dist/shared/decimal-surface.js.map +1 -1
  107. package/dist/shared/transports.d.ts.map +1 -1
  108. package/dist/shared/transports.js +33 -11
  109. package/dist/shared/transports.js.map +1 -1
  110. package/dist/utils/base58-id.js +1 -2
  111. package/dist/utils/base58-id.js.map +1 -1
  112. package/dist/utils/errors.d.ts.map +1 -1
  113. package/dist/utils/errors.js +4 -3
  114. package/dist/utils/errors.js.map +1 -1
  115. package/dist/utils/event-emitter.d.ts.map +1 -1
  116. package/dist/utils/event-emitter.js +6 -3
  117. package/dist/utils/event-emitter.js.map +1 -1
  118. package/dist/utils/jwt.d.ts.map +1 -1
  119. package/dist/utils/jwt.js +2 -2
  120. package/dist/utils/jwt.js.map +1 -1
  121. package/dist/utils/numbers.js +20 -3
  122. package/dist/utils/numbers.js.map +1 -1
  123. package/dist/utils/timestamp.js +27 -16
  124. package/dist/utils/timestamp.js.map +1 -1
  125. package/dist/utils/u128.js +6 -18
  126. package/dist/utils/u128.js.map +1 -1
  127. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"orders-output.schemas.js","names":["ProtoRead.OrderStatus","ProtoRead.OrderOriginScope","ProtoRead.OrderTriggerType","ProtoWrite.Side"],"sources":["../../../src/services/orders/orders-output.schemas.ts"],"sourcesContent":["import * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { OptionalPublicIdSchema } from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { E18_SCALE, scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { createUserTradeSchema } from \"../trades/trades.schemas.js\";\nimport { fromU128 } from \"../../utils/u128.js\";\nimport { AccountCodeCodec, TransferCodeCodec } from \"../../shared/ledger-codes.js\";\nimport {\n FeeAssetCodec,\n OrderOriginScopeCodec,\n OrderSideCodec,\n OrderStatusCodec,\n OrderTriggerTypeCodec,\n OrderTypeCodec,\n SelfTradePreventionModeCodec,\n TimeInForceCodec,\n} from \"./orders.codecs.js\";\nimport {\n ReadAttachedRiskSchema,\n formatAttachedRisk,\n formatMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\n\nconst OrderStatusOutputSchema = v.pipe(\n v.enum(ProtoRead.OrderStatus),\n v.transform((status) =>\n requiredEnumLabel(\n OrderStatusCodec.protoToOutput,\n status,\n \"PolyesterClient.OrderSchema\",\n \"status\",\n ),\n ),\n);\n\nconst ReadOrderOriginSchema = v.object({\n scope: v.pipe(\n v.enum(ProtoRead.OrderOriginScope),\n v.transform((v) =>\n requiredEnumLabel(\n OrderOriginScopeCodec.protoToOutput,\n v,\n \"ReadOrderOriginSchema\",\n \"scope\",\n ),\n ),\n ),\n triggerType: v.pipe(\n v.enum(ProtoRead.OrderTriggerType),\n v.transform((v) =>\n requiredEnumLabel(\n OrderTriggerTypeCodec.protoToOutput,\n v,\n \"ReadOrderOriginSchema\",\n \"trigger type\",\n ),\n ),\n ),\n triggerId: OptionalPublicIdSchema,\n parentOrderId: OptionalPublicIdSchema,\n childSeq: v.number(),\n});\n\nexport function createOrderSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n orderId: v.bigint(),\n symbolId: v.number(),\n clientOrderId: v.string(),\n side: v.enum(ProtoWrite.Side),\n status: OrderStatusOutputSchema,\n orderType: v.number(),\n timeInForce: v.number(),\n selfTradePreventionMode: v.number(),\n feeAsset: v.number(),\n postOnly: v.boolean(),\n origQtyScaled: v.bigint(),\n cumQtyScaled: v.bigint(),\n leavesQtyScaled: v.bigint(),\n avgPriceTicks: v.bigint(),\n priceTicks: v.bigint(),\n createdTsNs: v.bigint(),\n terminalTsNs: v.bigint(),\n terminalReason: v.optional(v.string(), \"\"),\n terminalReasonCode: v.number(),\n attachedRisk: v.optional(ReadAttachedRiskSchema),\n origin: v.optional(ReadOrderOriginSchema),\n marketClientRefPriceTicks: v.bigint(),\n marketMaxSlippageTicks: v.number(),\n marketMaxSlippageBps: v.number(),\n version: v.pipe(v.number(), v.integer(), v.minValue(0)),\n batchRequestId: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n }),\n v.transform((o) => {\n const isPartial = o.status === \"working\" && o.cumQtyScaled > 0n;\n const baseQtyScale = scales.baseQty(o.symbolId);\n const marketClientRefPrice =\n o.marketClientRefPriceTicks > 0n\n ? scaledToDecimalOutput(o.marketClientRefPriceTicks, scales.price())\n : undefined;\n const marketMaxSlippage = formatMarketMaxSlippage(\n scales,\n o.marketMaxSlippageTicks,\n o.marketMaxSlippageBps,\n );\n return {\n orderId: formatId(o.orderId),\n symbolId: o.symbolId,\n clientOrderId: o.clientOrderId,\n status: isPartial ? (\"partial\" as const) : o.status,\n side: requiredEnumLabel(\n OrderSideCodec.protoToOutput,\n o.side,\n \"OrderSchema\",\n \"side\",\n ),\n orderType: requiredEnumLabel(\n OrderTypeCodec.protoToOutput,\n o.orderType,\n \"OrderSchema\",\n \"order type\",\n ),\n timeInForce: requiredEnumLabel(\n TimeInForceCodec.protoToOutput,\n o.timeInForce,\n \"OrderSchema\",\n \"time in force\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n o.selfTradePreventionMode,\n \"OrderSchema\",\n \"STP mode\",\n ),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n o.feeAsset,\n \"OrderSchema\",\n \"fee asset\",\n ),\n postOnly: o.postOnly,\n origQty: scaledToDecimalOutput(o.origQtyScaled, baseQtyScale),\n cumQty: scaledToDecimalOutput(o.cumQtyScaled, baseQtyScale),\n leavesQty: scaledToDecimalOutput(o.leavesQtyScaled, baseQtyScale),\n avgPx: scaledToDecimalOutput(o.avgPriceTicks, scales.price()),\n price: scaledToDecimalOutput(o.priceTicks, scales.price()),\n createdTs: tsNsToMs(o.createdTsNs),\n terminalTs: tsNsToMs(o.terminalTsNs),\n terminalReason: humanizeTerminalReason(o.terminalReason),\n terminalReasonCode: o.terminalReasonCode,\n attachedRisk: formatAttachedRisk(scales, o.attachedRisk),\n ...(o.origin ? { origin: o.origin } : {}),\n ...(marketClientRefPrice ? { marketClientRefPrice } : {}),\n ...(marketMaxSlippage ? { marketMaxSlippage } : {}),\n ...(o.batchRequestId > 0n ? { batchRequestId: formatId(o.batchRequestId) } : {}),\n ...(o.submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n o.submittedMaxQuoteDebitScaled,\n scales.quoteAmount(o.symbolId),\n ),\n }),\n version: o.version,\n };\n }),\n );\n}\n\nfunction humanizeTerminalReason(raw: string | null | undefined): string {\n const key = (raw ?? \"\").trim();\n if (!key) return \"\";\n const uppercaseAcronyms = [\"GTC\", \"IOC\", \"FOK\", \"DAY\", \"GTD\", \"STP\"];\n return key\n .split(\"_\")\n .filter(Boolean)\n .map((part) => {\n const upper = part.toUpperCase();\n if (uppercaseAcronyms.includes(upper)) return upper;\n return upper[0] ? upper[0] + upper.slice(1).toLowerCase() : \"\";\n })\n .filter(Boolean)\n .join(\" \");\n}\n\nexport type Order = v.InferOutput<ReturnType<typeof createOrderSchema>>;\n\nexport function createOrderTransferSchema() {\n return v.pipe(\n v.object({\n txId: v.string(),\n matchId: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n assetId: v.number(),\n amountE18: v.optional(\n v.object({\n hi: v.bigint(),\n lo: v.bigint(),\n }),\n ),\n isDebit: v.boolean(),\n transferCode: v.number(),\n accountCode: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((tr) => ({\n txId: tr.txId,\n matchId: tr.matchId,\n assetId: tr.assetId,\n isDebit: tr.isDebit,\n timestamp: tsNsToMs(tr.tsNs),\n amount: scaledToDecimalOutput(fromU128(tr.amountE18), E18_SCALE),\n type: requiredEnumLabel(\n TransferCodeCodec.protoToOutput,\n tr.transferCode,\n \"OrderTransferSchema\",\n \"transfer code\",\n ),\n accountCode: requiredEnumLabel(\n AccountCodeCodec.protoToOutput,\n tr.accountCode,\n \"OrderTransferSchema\",\n \"account code\",\n ),\n })),\n );\n}\n\nexport type OrderTransfer = v.InferOutput<ReturnType<typeof createOrderTransferSchema>>;\n\nexport function createOrderDetailsSchema(scales: SdkScales) {\n return v.object({\n order: createOrderSchema(scales),\n trades: v.optional(v.array(createUserTradeSchema(scales)), []),\n transfers: v.optional(v.array(createOrderTransferSchema()), []),\n });\n}\n\nexport type OrderDetails = v.InferOutput<ReturnType<typeof createOrderDetailsSchema>>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"orders-output.schemas.js","names":["ProtoRead.OrderStatus","ProtoRead.OrderOriginScope","ProtoRead.OrderTriggerType","ProtoWrite.Side"],"sources":["../../../src/services/orders/orders-output.schemas.ts"],"sourcesContent":["import * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { OptionalPublicIdSchema } from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { E18_SCALE, scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { createUserTradeSchema } from \"../trades/trades.schemas.js\";\nimport { fromU128 } from \"../../utils/u128.js\";\nimport { AccountCodeCodec, TransferCodeCodec } from \"../../shared/ledger-codes.js\";\nimport {\n FeeAssetCodec,\n OrderOriginScopeCodec,\n OrderSideCodec,\n OrderStatusCodec,\n OrderTriggerTypeCodec,\n OrderTypeCodec,\n SelfTradePreventionModeCodec,\n TimeInForceCodec,\n} from \"./orders.codecs.js\";\nimport {\n ReadAttachedRiskSchema,\n formatAttachedRisk,\n formatMarketMaxSlippage,\n} from \"./orders-risk.schemas.js\";\n\nconst OrderStatusOutputSchema = v.pipe(\n v.enum(ProtoRead.OrderStatus),\n v.transform((status) =>\n requiredEnumLabel(\n OrderStatusCodec.protoToOutput,\n status,\n \"PolyesterClient.OrderSchema\",\n \"status\",\n ),\n ),\n);\n\nconst ReadOrderOriginSchema = v.object({\n scope: v.pipe(\n v.enum(ProtoRead.OrderOriginScope),\n v.transform((v) =>\n requiredEnumLabel(\n OrderOriginScopeCodec.protoToOutput,\n v,\n \"ReadOrderOriginSchema\",\n \"scope\",\n ),\n ),\n ),\n triggerType: v.pipe(\n v.enum(ProtoRead.OrderTriggerType),\n v.transform((v) =>\n requiredEnumLabel(\n OrderTriggerTypeCodec.protoToOutput,\n v,\n \"ReadOrderOriginSchema\",\n \"trigger type\",\n ),\n ),\n ),\n triggerId: OptionalPublicIdSchema,\n parentOrderId: OptionalPublicIdSchema,\n childSeq: v.number(),\n});\n\nexport function createOrderSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n orderId: v.bigint(),\n symbolId: v.number(),\n clientOrderId: v.string(),\n side: v.enum(ProtoWrite.Side),\n status: OrderStatusOutputSchema,\n orderType: v.number(),\n timeInForce: v.number(),\n selfTradePreventionMode: v.number(),\n feeAsset: v.number(),\n postOnly: v.boolean(),\n origQtyScaled: v.bigint(),\n cumQtyScaled: v.bigint(),\n leavesQtyScaled: v.bigint(),\n avgPriceTicks: v.bigint(),\n priceTicks: v.bigint(),\n createdTsNs: v.bigint(),\n terminalTsNs: v.bigint(),\n terminalReason: v.optional(v.string(), \"\"),\n terminalReasonCode: v.number(),\n attachedRisk: v.optional(ReadAttachedRiskSchema),\n origin: v.optional(ReadOrderOriginSchema),\n marketClientRefPriceTicks: v.bigint(),\n marketMaxSlippageTicks: v.number(),\n marketMaxSlippageBps: v.number(),\n version: v.pipe(v.number(), v.integer(), v.minValue(0)),\n batchRequestId: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n }),\n v.transform((o) => {\n const isPartial = o.status === \"working\" && o.cumQtyScaled > 0n;\n const baseQtyScale = scales.baseQty(o.symbolId);\n const marketClientRefPrice =\n o.marketClientRefPriceTicks > 0n\n ? scaledToDecimalOutput(o.marketClientRefPriceTicks, scales.price())\n : undefined;\n const marketMaxSlippage = formatMarketMaxSlippage(\n scales,\n o.marketMaxSlippageTicks,\n o.marketMaxSlippageBps,\n );\n return {\n orderId: formatId(o.orderId),\n symbolId: o.symbolId,\n clientOrderId: o.clientOrderId,\n status: isPartial ? (\"partial\" as const) : o.status,\n side: requiredEnumLabel(\n OrderSideCodec.protoToOutput,\n o.side,\n \"OrderSchema\",\n \"side\",\n ),\n orderType: requiredEnumLabel(\n OrderTypeCodec.protoToOutput,\n o.orderType,\n \"OrderSchema\",\n \"order type\",\n ),\n timeInForce: requiredEnumLabel(\n TimeInForceCodec.protoToOutput,\n o.timeInForce,\n \"OrderSchema\",\n \"time in force\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n o.selfTradePreventionMode,\n \"OrderSchema\",\n \"STP mode\",\n ),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n o.feeAsset,\n \"OrderSchema\",\n \"fee asset\",\n ),\n postOnly: o.postOnly,\n origQty: scaledToDecimalOutput(o.origQtyScaled, baseQtyScale),\n cumQty: scaledToDecimalOutput(o.cumQtyScaled, baseQtyScale),\n leavesQty: scaledToDecimalOutput(o.leavesQtyScaled, baseQtyScale),\n avgPx: scaledToDecimalOutput(o.avgPriceTicks, scales.price()),\n price: scaledToDecimalOutput(o.priceTicks, scales.price()),\n createdTs: tsNsToMs(o.createdTsNs),\n terminalTs: tsNsToMs(o.terminalTsNs),\n terminalReason: humanizeTerminalReason(o.terminalReason),\n terminalReasonCode: o.terminalReasonCode,\n attachedRisk: formatAttachedRisk(scales, o.attachedRisk),\n ...(o.origin ? { origin: o.origin } : {}),\n ...(marketClientRefPrice ? { marketClientRefPrice } : {}),\n ...(marketMaxSlippage ? { marketMaxSlippage } : {}),\n ...(o.batchRequestId > 0n ? { batchRequestId: formatId(o.batchRequestId) } : {}),\n ...(o.submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n o.submittedMaxQuoteDebitScaled,\n scales.quoteAmount(o.symbolId),\n ),\n }),\n version: o.version,\n };\n }),\n );\n}\n\nfunction humanizeTerminalReason(raw: string | null | undefined): string {\n const key = (raw ?? \"\").trim();\n if (!key) return \"\";\n const uppercaseAcronyms = [\"GTC\", \"IOC\", \"FOK\", \"DAY\", \"GTD\", \"STP\"];\n return key\n .split(\"_\")\n .filter(Boolean)\n .map((part) => {\n const upper = part.toUpperCase();\n if (uppercaseAcronyms.includes(upper)) return upper;\n return upper[0] ? upper[0] + upper.slice(1).toLowerCase() : \"\";\n })\n .filter(Boolean)\n .join(\" \");\n}\n\nexport type Order = v.InferOutput<ReturnType<typeof createOrderSchema>>;\n\nexport function createOrderTransferSchema() {\n return v.pipe(\n v.object({\n txId: v.string(),\n matchId: v.pipe(\n v.bigint(),\n v.transform((value) => value.toString()),\n ),\n assetId: v.number(),\n amountE18: v.optional(\n v.object({\n hi: v.bigint(),\n lo: v.bigint(),\n }),\n ),\n isDebit: v.boolean(),\n transferCode: v.number(),\n accountCode: v.number(),\n tsNs: v.bigint(),\n }),\n v.transform((tr) => ({\n txId: tr.txId,\n matchId: tr.matchId,\n assetId: tr.assetId,\n isDebit: tr.isDebit,\n timestamp: tsNsToMs(tr.tsNs),\n amount: scaledToDecimalOutput(fromU128(tr.amountE18), E18_SCALE),\n type: requiredEnumLabel(\n TransferCodeCodec.protoToOutput,\n tr.transferCode,\n \"OrderTransferSchema\",\n \"transfer code\",\n ),\n accountCode: requiredEnumLabel(\n AccountCodeCodec.protoToOutput,\n tr.accountCode,\n \"OrderTransferSchema\",\n \"account code\",\n ),\n })),\n );\n}\n\nexport type OrderTransfer = v.InferOutput<ReturnType<typeof createOrderTransferSchema>>;\n\nexport function createOrderDetailsSchema(scales: SdkScales) {\n return v.object({\n order: createOrderSchema(scales),\n trades: v.optional(v.array(createUserTradeSchema(scales)), []),\n transfers: v.optional(v.array(createOrderTransferSchema()), []),\n });\n}\n\nexport type OrderDetails = v.InferOutput<ReturnType<typeof createOrderDetailsSchema>>;\n"],"mappings":";;;;;;;;;;;;;;;AA2BA,MAAM,0BAA0B,EAAE,KAC9B,EAAE,KAAKA,WAAqB,GAC5B,EAAE,WAAW,WACT,kBACI,iBAAiB,eACjB,QACA,+BACA,QACJ,CACJ,CACJ;AAEA,MAAM,wBAAwB,EAAE,OAAO;CACnC,OAAO,EAAE,KACL,EAAE,KAAKC,gBAA0B,GACjC,EAAE,WAAW,MACT,kBACI,sBAAsB,eACtB,GACA,yBACA,OACJ,CACJ,CACJ;CACA,aAAa,EAAE,KACX,EAAE,KAAKC,gBAA0B,GACjC,EAAE,WAAW,MACT,kBACI,sBAAsB,eACtB,GACA,yBACA,cACJ,CACJ,CACJ;CACA,WAAW;CACX,eAAe;CACf,UAAU,EAAE,OAAO;AACvB,CAAC;AAED,SAAgB,kBAAkB,QAAmB;CACjD,OAAO,EAAE,KACL,EAAE,OAAO;EACL,SAAS,EAAE,OAAO;EAClB,UAAU,EAAE,OAAO;EACnB,eAAe,EAAE,OAAO;EACxB,MAAM,EAAE,KAAKC,IAAe;EAC5B,QAAQ;EACR,WAAW,EAAE,OAAO;EACpB,aAAa,EAAE,OAAO;EACtB,yBAAyB,EAAE,OAAO;EAClC,UAAU,EAAE,OAAO;EACnB,UAAU,EAAE,QAAQ;EACpB,eAAe,EAAE,OAAO;EACxB,cAAc,EAAE,OAAO;EACvB,iBAAiB,EAAE,OAAO;EAC1B,eAAe,EAAE,OAAO;EACxB,YAAY,EAAE,OAAO;EACrB,aAAa,EAAE,OAAO;EACtB,cAAc,EAAE,OAAO;EACvB,gBAAgB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;EACzC,oBAAoB,EAAE,OAAO;EAC7B,cAAc,EAAE,SAAS,sBAAsB;EAC/C,QAAQ,EAAE,SAAS,qBAAqB;EACxC,2BAA2B,EAAE,OAAO;EACpC,wBAAwB,EAAE,OAAO;EACjC,sBAAsB,EAAE,OAAO;EAC/B,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,SAAS,CAAC,CAAC;EACtD,gBAAgB,EAAE,OAAO;EACzB,8BAA8B,EAAE,SAAS,EAAE,OAAO,CAAC;CACvD,CAAC,GACD,EAAE,WAAW,MAAM;EACf,MAAM,YAAY,EAAE,WAAW,aAAa,EAAE,eAAe;EAC7D,MAAM,eAAe,OAAO,QAAQ,EAAE,QAAQ;EAC9C,MAAM,uBACF,EAAE,4BAA4B,KACxB,sBAAsB,EAAE,2BAA2B,OAAO,MAAM,CAAC,IACjE,KAAA;EACV,MAAM,oBAAoB,wBACtB,QACA,EAAE,wBACF,EAAE,oBACN;EACA,OAAO;GACH,SAAS,SAAS,EAAE,OAAO;GAC3B,UAAU,EAAE;GACZ,eAAe,EAAE;GACjB,QAAQ,YAAa,YAAsB,EAAE;GAC7C,MAAM,kBACF,eAAe,eACf,EAAE,MACF,eACA,MACJ;GACA,WAAW,kBACP,eAAe,eACf,EAAE,WACF,eACA,YACJ;GACA,aAAa,kBACT,iBAAiB,eACjB,EAAE,aACF,eACA,eACJ;GACA,yBAAyB,kBACrB,6BAA6B,eAC7B,EAAE,yBACF,eACA,UACJ;GACA,UAAU,kBACN,cAAc,eACd,EAAE,UACF,eACA,WACJ;GACA,UAAU,EAAE;GACZ,SAAS,sBAAsB,EAAE,eAAe,YAAY;GAC5D,QAAQ,sBAAsB,EAAE,cAAc,YAAY;GAC1D,WAAW,sBAAsB,EAAE,iBAAiB,YAAY;GAChE,OAAO,sBAAsB,EAAE,eAAe,OAAO,MAAM,CAAC;GAC5D,OAAO,sBAAsB,EAAE,YAAY,OAAO,MAAM,CAAC;GACzD,WAAW,SAAS,EAAE,WAAW;GACjC,YAAY,SAAS,EAAE,YAAY;GACnC,gBAAgB,uBAAuB,EAAE,cAAc;GACvD,oBAAoB,EAAE;GACtB,cAAc,mBAAmB,QAAQ,EAAE,YAAY;GACvD,GAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC;GACvC,GAAI,uBAAuB,EAAE,qBAAqB,IAAI,CAAC;GACvD,GAAI,oBAAoB,EAAE,kBAAkB,IAAI,CAAC;GACjD,GAAI,EAAE,iBAAiB,KAAK,EAAE,gBAAgB,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC;GAC9E,GAAI,EAAE,iCAAiC,KAAA,IACjC,CAAC,IACD,EACI,wBAAwB,sBACpB,EAAE,8BACF,OAAO,YAAY,EAAE,QAAQ,CACjC,EACJ;GACN,SAAS,EAAE;EACf;CACJ,CAAC,CACL;AACJ;AAEA,SAAS,uBAAuB,KAAwC;CACpE,MAAM,OAAO,OAAO,GAAA,CAAI,KAAK;CAC7B,IAAI,CAAC,KAAK,OAAO;CACjB,MAAM,oBAAoB;EAAC;EAAO;EAAO;EAAO;EAAO;EAAO;CAAK;CACnE,OAAO,IACF,MAAM,GAAG,CAAC,CACV,OAAO,OAAO,CAAC,CACf,KAAK,SAAS;EACX,MAAM,QAAQ,KAAK,YAAY;EAC/B,IAAI,kBAAkB,SAAS,KAAK,GAAG,OAAO;EAC9C,OAAO,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI;CAChE,CAAC,CAAC,CACD,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACjB;AAIA,SAAgB,4BAA4B;CACxC,OAAO,EAAE,KACL,EAAE,OAAO;EACL,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,KACP,EAAE,OAAO,GACT,EAAE,WAAW,UAAU,MAAM,SAAS,CAAC,CAC3C;EACA,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,SACT,EAAE,OAAO;GACL,IAAI,EAAE,OAAO;GACb,IAAI,EAAE,OAAO;EACjB,CAAC,CACL;EACA,SAAS,EAAE,QAAQ;EACnB,cAAc,EAAE,OAAO;EACvB,aAAa,EAAE,OAAO;EACtB,MAAM,EAAE,OAAO;CACnB,CAAC,GACD,EAAE,WAAW,QAAQ;EACjB,MAAM,GAAG;EACT,SAAS,GAAG;EACZ,SAAS,GAAG;EACZ,SAAS,GAAG;EACZ,WAAW,SAAS,GAAG,IAAI;EAC3B,QAAQ,sBAAsB,SAAS,GAAG,SAAS,GAAA,EAAY;EAC/D,MAAM,kBACF,kBAAkB,eAClB,GAAG,cACH,uBACA,eACJ;EACA,aAAa,kBACT,iBAAiB,eACjB,GAAG,aACH,uBACA,cACJ;CACJ,EAAE,CACN;AACJ;AAIA,SAAgB,yBAAyB,QAAmB;CACxD,OAAO,EAAE,OAAO;EACZ,OAAO,kBAAkB,MAAM;EAC/B,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC;EAC7D,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAC;CAClE,CAAC;AACL"}
@@ -1,4 +1,5 @@
1
1
  import { RiskLimitGtc, RiskMarketIoc } from "../../gen/orders/v1/orders_pb.js";
2
+ import "../../gen/orders/v1/orders_read_pb.js";
2
3
  import { SdkScales } from "../../shared/decimal-surface.js";
3
4
  import * as v from "valibot";
4
5
  //#region src/services/orders/orders-risk.schemas.d.ts
@@ -37,8 +38,6 @@ declare function createTrailingStopInputSchema(scales: SdkScales): v.SchemaWithP
37
38
  }, undefined>, v.StrictObjectSchema<{
38
39
  readonly kind: v.LiteralSchema<"bps", undefined>;
39
40
  readonly bps: v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>], undefined>;
40
- }, undefined>, v.StrictObjectSchema<{
41
- readonly kind: v.LiteralSchema<"none", undefined>;
42
41
  }, undefined>], undefined>;
43
42
  readonly maxSlippage: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
44
43
  readonly kind: v.LiteralSchema<"slippage", undefined>;
@@ -54,8 +53,6 @@ declare function createTrailingStopInputSchema(scales: SdkScales): v.SchemaWithP
54
53
  trailingDistance: {
55
54
  kind: "bps";
56
55
  bps: string | number;
57
- } | {
58
- kind: "none";
59
56
  } | {
60
57
  kind: "distance";
61
58
  distance: string;
@@ -189,8 +186,6 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
189
186
  }, undefined>, v.StrictObjectSchema<{
190
187
  readonly kind: v.LiteralSchema<"bps", undefined>;
191
188
  readonly bps: v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>], undefined>;
192
- }, undefined>, v.StrictObjectSchema<{
193
- readonly kind: v.LiteralSchema<"none", undefined>;
194
189
  }, undefined>], undefined>;
195
190
  readonly maxSlippage: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
196
191
  readonly kind: v.LiteralSchema<"slippage", undefined>;
@@ -206,8 +201,6 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
206
201
  trailingDistance: {
207
202
  kind: "bps";
208
203
  bps: string | number;
209
- } | {
210
- kind: "none";
211
204
  } | {
212
205
  kind: "distance";
213
206
  distance: string;
@@ -320,8 +313,6 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
320
313
  }, undefined>, v.StrictObjectSchema<{
321
314
  readonly kind: v.LiteralSchema<"bps", undefined>;
322
315
  readonly bps: v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>], undefined>;
323
- }, undefined>, v.StrictObjectSchema<{
324
- readonly kind: v.LiteralSchema<"none", undefined>;
325
316
  }, undefined>], undefined>;
326
317
  readonly maxSlippage: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
327
318
  readonly kind: v.LiteralSchema<"slippage", undefined>;
@@ -337,8 +328,6 @@ declare function createRiskPolicyInputSchema(scales: SdkScales): v.SchemaWithPip
337
328
  trailingDistance: {
338
329
  kind: "bps";
339
330
  bps: string | number;
340
- } | {
341
- kind: "none";
342
331
  } | {
343
332
  kind: "distance";
344
333
  distance: string;
@@ -655,8 +644,6 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
655
644
  }, undefined>, v.StrictObjectSchema<{
656
645
  readonly kind: v.LiteralSchema<"bps", undefined>;
657
646
  readonly bps: v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>], undefined>;
658
- }, undefined>, v.StrictObjectSchema<{
659
- readonly kind: v.LiteralSchema<"none", undefined>;
660
647
  }, undefined>], undefined>;
661
648
  readonly maxSlippage: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
662
649
  readonly kind: v.LiteralSchema<"slippage", undefined>;
@@ -672,8 +659,6 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
672
659
  trailingDistance: {
673
660
  kind: "bps";
674
661
  bps: string | number;
675
- } | {
676
- kind: "none";
677
662
  } | {
678
663
  kind: "distance";
679
664
  distance: string;
@@ -786,8 +771,6 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
786
771
  }, undefined>, v.StrictObjectSchema<{
787
772
  readonly kind: v.LiteralSchema<"bps", undefined>;
788
773
  readonly bps: v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>], undefined>;
789
- }, undefined>, v.StrictObjectSchema<{
790
- readonly kind: v.LiteralSchema<"none", undefined>;
791
774
  }, undefined>], undefined>;
792
775
  readonly maxSlippage: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
793
776
  readonly kind: v.LiteralSchema<"slippage", undefined>;
@@ -803,8 +786,6 @@ declare function createRequiredRiskPolicyInputSchema(scales: SdkScales): v.Schem
803
786
  trailingDistance: {
804
787
  kind: "bps";
805
788
  bps: string | number;
806
- } | {
807
- kind: "none";
808
789
  } | {
809
790
  kind: "distance";
810
791
  distance: string;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"version":3,"file":"orders-risk.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"mappings":";;;;;iBAuBS,2BAA2B,QAAQ,WAAW,yCAAsC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8FpF,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,11 @@
1
1
  import { RiskLimitGtcSchema, RiskMarketIocSchema } from "../../gen/orders/v1/orders_pb.js";
2
+ import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
3
+ import { formatId } from "../../utils/base58-id.js";
4
+ import { tsNsToMs } from "../../utils/time.js";
2
5
  import { BpsStringOrNumberInputSchema, NoneInputSchema, PriceDistanceInputSchema, PriceSlippageInputSchema } from "../shared.js";
3
6
  import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
7
+ import { AttachedRiskLegState_Status } from "../../gen/orders/v1/orders_read_pb.js";
8
+ import { AttachedRiskLegStatusCodec } from "./orders.codecs.js";
4
9
  import { parseSlippageInput, parseTrailingDistanceInput } from "../trailing-oneof-inputs.js";
5
10
  import { create } from "@bufbuild/protobuf";
6
11
  import * as v from "valibot";
@@ -27,11 +32,7 @@ function attachedTriggerInputSchema(scales, fieldPrefix) {
27
32
  };
28
33
  }));
29
34
  }
30
- const TrailingDistanceSchema = v.union([
31
- PriceDistanceInputSchema,
32
- BpsStringOrNumberInputSchema,
33
- NoneInputSchema
34
- ]);
35
+ const TrailingDistanceSchema = v.union([PriceDistanceInputSchema, BpsStringOrNumberInputSchema]);
35
36
  const MaxSlippageSchema = v.union([
36
37
  PriceSlippageInputSchema,
37
38
  BpsStringOrNumberInputSchema,
@@ -176,9 +177,25 @@ const ReadTrailingStopPolicySchema = v.object({
176
177
  }),
177
178
  activationPriceTicks: v.bigint()
178
179
  });
179
- const ReadAttachedRiskTakeProfitSchema = v.object({ policy: v.optional(ReadTakeProfitPolicySchema) });
180
- const ReadAttachedRiskStopLossSchema = v.object({ policy: v.optional(ReadStopLossPolicySchema) });
181
- const ReadAttachedRiskTrailingStopSchema = v.object({ policy: v.optional(ReadTrailingStopPolicySchema) });
180
+ const ReadAttachedRiskLegStateSchema = v.object({
181
+ status: v.enum(AttachedRiskLegState_Status),
182
+ armedTsNs: v.bigint(),
183
+ terminalTsNs: v.bigint(),
184
+ triggerId: v.optional(v.bigint()),
185
+ childOrderId: v.optional(v.bigint())
186
+ });
187
+ const ReadAttachedRiskTakeProfitSchema = v.object({
188
+ policy: v.optional(ReadTakeProfitPolicySchema),
189
+ state: v.optional(ReadAttachedRiskLegStateSchema)
190
+ });
191
+ const ReadAttachedRiskStopLossSchema = v.object({
192
+ policy: v.optional(ReadStopLossPolicySchema),
193
+ state: v.optional(ReadAttachedRiskLegStateSchema)
194
+ });
195
+ const ReadAttachedRiskTrailingStopSchema = v.object({
196
+ policy: v.optional(ReadTrailingStopPolicySchema),
197
+ state: v.optional(ReadAttachedRiskLegStateSchema)
198
+ });
182
199
  const ReadAttachedRiskSchema = v.object({
183
200
  takeProfit: v.optional(ReadAttachedRiskTakeProfitSchema),
184
201
  stopLoss: v.optional(ReadAttachedRiskStopLossSchema),
@@ -198,6 +215,17 @@ function formatRiskLeg(scales, leg) {
198
215
  execution: formatRiskExecution(scales, leg.child)
199
216
  };
200
217
  }
218
+ function formatRiskLegState(state) {
219
+ return {
220
+ status: requiredEnumLabel(AttachedRiskLegStatusCodec.protoToOutput, state.status, "AttachedRiskLegStateSchema", "status"),
221
+ armedTs: state.armedTsNs > 0n ? tsNsToMs(state.armedTsNs) : void 0,
222
+ armedTsNs: state.armedTsNs > 0n ? state.armedTsNs.toString() : void 0,
223
+ terminalTs: state.terminalTsNs > 0n ? tsNsToMs(state.terminalTsNs) : void 0,
224
+ terminalTsNs: state.terminalTsNs > 0n ? state.terminalTsNs.toString() : void 0,
225
+ triggerId: state.triggerId !== void 0 && state.triggerId > 0n ? formatId(state.triggerId) : void 0,
226
+ childOrderId: state.childOrderId !== void 0 && state.childOrderId > 0n ? formatId(state.childOrderId) : void 0
227
+ };
228
+ }
201
229
  function formatTrailingDistance(scales, distance) {
202
230
  if (distance.case === "trailingDistanceTicks" && typeof distance.value === "bigint") return {
203
231
  kind: "distance",
@@ -231,17 +259,26 @@ function formatMarketMaxSlippage(scales, ticks, bps) {
231
259
  }
232
260
  function formatAttachedRisk(scales, risk) {
233
261
  if (!risk) return void 0;
234
- const takeProfit = risk.takeProfit?.policy ? formatRiskLeg(scales, risk.takeProfit.policy) : void 0;
235
- const stopLoss = risk.stopLoss?.policy ? formatRiskLeg(scales, risk.stopLoss.policy) : void 0;
236
- const trailingStop = risk.trailingStop?.policy ? {
237
- trailingDistance: formatTrailingDistance(scales, risk.trailingStop.policy.trailingDistance),
238
- maxSlippage: formatTrailingMaxSlippage(scales, risk.trailingStop.policy.maxSlippage),
239
- activationPrice: risk.trailingStop.policy.activationPriceTicks > 0n ? scaledToDecimalOutput(risk.trailingStop.policy.activationPriceTicks, scales.price()) : void 0
262
+ const takeProfit = risk.takeProfit?.policy || risk.takeProfit?.state ? {
263
+ ...risk.takeProfit.policy ? formatRiskLeg(scales, risk.takeProfit.policy) : void 0,
264
+ state: risk.takeProfit.state ? formatRiskLegState(risk.takeProfit.state) : void 0
265
+ } : void 0;
266
+ const stopLoss = risk.stopLoss?.policy || risk.stopLoss?.state ? {
267
+ ...risk.stopLoss.policy ? formatRiskLeg(scales, risk.stopLoss.policy) : void 0,
268
+ state: risk.stopLoss.state ? formatRiskLegState(risk.stopLoss.state) : void 0
269
+ } : void 0;
270
+ const trailingStop = risk.trailingStop?.policy || risk.trailingStop?.state ? {
271
+ ...risk.trailingStop.policy ? {
272
+ trailingDistance: formatTrailingDistance(scales, risk.trailingStop.policy.trailingDistance),
273
+ maxSlippage: formatTrailingMaxSlippage(scales, risk.trailingStop.policy.maxSlippage),
274
+ activationPrice: risk.trailingStop.policy.activationPriceTicks > 0n ? scaledToDecimalOutput(risk.trailingStop.policy.activationPriceTicks, scales.price()) : void 0
275
+ } : void 0,
276
+ state: risk.trailingStop.state ? formatRiskLegState(risk.trailingStop.state) : void 0
240
277
  } : void 0;
241
278
  if (!takeProfit && !stopLoss && !trailingStop) return void 0;
242
279
  return {
243
280
  takeProfit,
244
- stopLoss: trailingStop ? void 0 : stopLoss,
281
+ stopLoss,
245
282
  trailingStop,
246
283
  oco: risk.oco
247
284
  };
@@ -1 +1 @@
1
- {"version":3,"file":"orders-risk.schemas.js","names":["ProtoWrite.RiskMarketIocSchema","ProtoWrite.RiskLimitGtcSchema"],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport {\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n PriceDistanceInputSchema,\n PriceSlippageInputSchema,\n} from \"../shared.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport { parseSlippageInput, parseTrailingDistanceInput } from \"../trailing-oneof-inputs.js\";\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction attachedTriggerInputSchema(scales: SdkScales, fieldPrefix: \"takeProfit\" | \"stopLoss\") {\n return v.pipe(\n v.strictObject({\n triggerPrice: DecimalInputStringSchema,\n execution: v.variant(\"type\", [\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n }),\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n }),\n ]),\n }),\n v.transform((input) => {\n const execution: ProtoWrite.RiskExecution[\"execution\"] =\n input.execution.type === \"market_ioc\"\n ? {\n case: \"marketIoc\",\n value: create(ProtoWrite.RiskMarketIocSchema),\n }\n : {\n case: \"limitGtc\",\n value: create(ProtoWrite.RiskLimitGtcSchema, {\n priceTicks: positiveDecimalInputToScaled(\n `${fieldPrefix}.execution.price`,\n input.execution.price,\n scales.price(),\n ),\n }),\n };\n return {\n triggerPriceTicks: positiveDecimalInputToScaled(\n `${fieldPrefix}.triggerPrice`,\n input.triggerPrice,\n scales.price(),\n ),\n child: { execution },\n };\n }),\n );\n}\n\nconst TrailingDistanceSchema = v.union([\n PriceDistanceInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nconst MaxSlippageSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nexport const MarketMaxSlippageSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nconst MAX_BPS = 10_000;\nconst UNSET_TRAILING_STOP_MAX_SLIPPAGE: ProtoWrite.TrailingStopPolicy[\"maxSlippage\"] = {\n case: undefined,\n value: undefined,\n};\n\nfunction parseTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof TrailingDistanceSchema>,\n): ProtoWrite.TrailingStopPolicy[\"trailingDistance\"] {\n return parseTrailingDistanceInput(scales, distance, \"trailingStop.trailingDistance\");\n}\n\nfunction parseMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MaxSlippageSchema>,\n): ProtoWrite.TrailingStopPolicy[\"maxSlippage\"] {\n return parseSlippageInput(scales, slippage, {\n fieldName: \"trailingStop.maxSlippage\",\n ticksCase: \"maxSlippageTicks\",\n bpsCase: \"maxSlippageBps\",\n maxBps: MAX_BPS,\n });\n}\n\nexport function parseMarketMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MarketMaxSlippageSchema> | undefined,\n): ProtoWrite.MarketIoc[\"maxSlippage\"] {\n return parseSlippageInput(scales, slippage, {\n fieldName: \"execution.maxSlippage\",\n ticksCase: \"maxSlippageTicks\",\n bpsCase: \"maxSlippageBps\",\n maxBps: MAX_BPS,\n });\n}\n\nfunction createTrailingStopInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n trailingDistance: TrailingDistanceSchema,\n maxSlippage: v.optional(MaxSlippageSchema),\n activationPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform((input) => ({\n trailingDistance: parseTrailingDistance(scales, input.trailingDistance),\n maxSlippage: input.maxSlippage\n ? parseMaxSlippage(scales, input.maxSlippage)\n : UNSET_TRAILING_STOP_MAX_SLIPPAGE,\n activationPriceTicks:\n input.activationPrice === undefined\n ? 0n\n : positiveDecimalInputToScaled(\n \"trailingStop.activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n })),\n );\n}\n\nfunction createRiskPolicyObjectInputSchema(scales: SdkScales) {\n const TakeProfitInputSchema = attachedTriggerInputSchema(scales, \"takeProfit\");\n const StopLossInputSchema = attachedTriggerInputSchema(scales, \"stopLoss\");\n const TrailingStopInputSchema = createTrailingStopInputSchema(scales);\n const InactiveOcoInputSchema = v.optional(\n v.literal(false, \"oco requires takeProfit and exactly one stop leg\"),\n );\n return v.union([\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: StopLossInputSchema,\n trailingStop: v.optional(v.never()),\n oco: v.optional(v.boolean()),\n }),\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: v.optional(v.never()),\n trailingStop: TrailingStopInputSchema,\n oco: v.optional(v.boolean()),\n }),\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: v.optional(v.never()),\n trailingStop: v.optional(v.never()),\n oco: InactiveOcoInputSchema,\n }),\n v.strictObject({\n takeProfit: v.optional(v.never()),\n stopLoss: StopLossInputSchema,\n trailingStop: v.optional(v.never()),\n oco: InactiveOcoInputSchema,\n }),\n v.strictObject({\n takeProfit: v.optional(v.never()),\n stopLoss: v.optional(v.never()),\n trailingStop: TrailingStopInputSchema,\n oco: InactiveOcoInputSchema,\n }),\n ]);\n}\n\ntype RiskPolicyObjectInput = v.InferOutput<ReturnType<typeof createRiskPolicyObjectInputSchema>>;\n\nfunction transformRiskPolicyInput(input: RiskPolicyObjectInput) {\n const stopLeg = input.stopLoss\n ? ({ case: \"stopLoss\", value: input.stopLoss } as const)\n : input.trailingStop\n ? ({ case: \"trailingStop\", value: input.trailingStop } as const)\n : ({ case: undefined, value: undefined } as const);\n return {\n takeProfit: input.takeProfit,\n stopLeg,\n oco: input.oco ?? false,\n };\n}\n\nexport function createRiskPolicyInputSchema(scales: SdkScales) {\n return v.pipe(\n v.optional(createRiskPolicyObjectInputSchema(scales)),\n v.transform((input) => (input ? transformRiskPolicyInput(input) : undefined)),\n );\n}\n\nexport function createRequiredRiskPolicyInputSchema(scales: SdkScales) {\n return v.pipe(\n createRiskPolicyObjectInputSchema(scales),\n v.transform((input) => transformRiskPolicyInput(input)),\n );\n}\n\nexport type TakeProfitInput = v.InferInput<ReturnType<typeof attachedTriggerInputSchema>>;\nexport type StopLossInput = v.InferInput<ReturnType<typeof attachedTriggerInputSchema>>;\nexport type TrailingStopInput = v.InferInput<ReturnType<typeof createTrailingStopInputSchema>>;\nexport type RiskPolicyInput = v.InferInput<ReturnType<typeof createRiskPolicyInputSchema>>;\n\ntype TrailingDistance =\n | { kind: \"distance\"; distance: string }\n | { kind: \"bps\"; bps: number }\n | { kind: \"none\" };\ntype TrailingMaxSlippage = { kind: \"slippage\"; slippage: string } | { kind: \"bps\"; bps: number };\nexport type MarketMaxSlippage =\n | { kind: \"slippage\"; slippage: string }\n | { kind: \"bps\"; bps: number };\n\nconst ReadRiskExecutionSchema = v.object({\n execution: v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({}),\n }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({\n priceTicks: v.bigint(),\n }),\n }),\n ]),\n});\n\nconst ReadTakeProfitPolicySchema = v.object({\n triggerPriceTicks: v.bigint(),\n child: ReadRiskExecutionSchema,\n});\n\nconst ReadStopLossPolicySchema = v.object({\n triggerPriceTicks: v.bigint(),\n child: ReadRiskExecutionSchema,\n});\n\nconst ReadTrailingStopPolicySchema = v.object({\n trailingDistance: v.object({\n case: v.optional(\n v.union([\n v.literal(\"trailingDistanceTicks\"),\n v.literal(\"trailingDistanceBps\"),\n v.undefined(),\n ]),\n ),\n value: v.optional(v.union([v.bigint(), v.number(), v.undefined()])),\n }),\n maxSlippage: v.object({\n case: v.union([v.literal(\"maxSlippageTicks\"), v.literal(\"maxSlippageBps\"), v.undefined()]),\n value: v.optional(v.union([v.number(), v.undefined()])),\n }),\n activationPriceTicks: v.bigint(),\n});\n\nconst ReadAttachedRiskTakeProfitSchema = v.object({\n policy: v.optional(ReadTakeProfitPolicySchema),\n});\n\nconst ReadAttachedRiskStopLossSchema = v.object({\n policy: v.optional(ReadStopLossPolicySchema),\n});\n\nconst ReadAttachedRiskTrailingStopSchema = v.object({\n policy: v.optional(ReadTrailingStopPolicySchema),\n});\n\nexport const ReadAttachedRiskSchema = v.object({\n takeProfit: v.optional(ReadAttachedRiskTakeProfitSchema),\n stopLoss: v.optional(ReadAttachedRiskStopLossSchema),\n trailingStop: v.optional(ReadAttachedRiskTrailingStopSchema),\n oco: v.optional(v.boolean(), false),\n});\n\nfunction formatRiskExecution(\n scales: SdkScales,\n child: v.InferOutput<typeof ReadRiskExecutionSchema>,\n) {\n if (child.execution.case === \"marketIoc\") {\n return { type: \"market_ioc\" } as const;\n }\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(child.execution.value.priceTicks, scales.price()),\n } as const;\n}\n\nfunction formatRiskLeg(\n scales: SdkScales,\n leg:\n | v.InferOutput<typeof ReadTakeProfitPolicySchema>\n | v.InferOutput<typeof ReadStopLossPolicySchema>,\n) {\n return {\n triggerPrice: scaledToDecimalOutput(leg.triggerPriceTicks, scales.price()),\n execution: formatRiskExecution(scales, leg.child),\n };\n}\n\nfunction formatTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof ReadTrailingStopPolicySchema>[\"trailingDistance\"],\n): TrailingDistance {\n if (distance.case === \"trailingDistanceTicks\" && typeof distance.value === \"bigint\") {\n return {\n kind: \"distance\",\n distance: scaledToDecimalOutput(distance.value, scales.price()),\n };\n }\n if (distance.case === \"trailingDistanceBps\" && typeof distance.value === \"number\") {\n return { kind: \"bps\", bps: distance.value };\n }\n return { kind: \"none\" };\n}\n\nfunction formatTrailingMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof ReadTrailingStopPolicySchema>[\"maxSlippage\"],\n): TrailingMaxSlippage | undefined {\n if (slippage.case === \"maxSlippageTicks\" && typeof slippage.value === \"number\") {\n return {\n kind: \"slippage\",\n slippage: scaledToDecimalOutput(BigInt(slippage.value), scales.price()),\n };\n }\n if (slippage.case === \"maxSlippageBps\" && typeof slippage.value === \"number\") {\n return { kind: \"bps\", bps: slippage.value };\n }\n return undefined;\n}\n\nexport function formatMarketMaxSlippage(\n scales: SdkScales,\n ticks: number,\n bps: number,\n): MarketMaxSlippage | undefined {\n if (ticks > 0) {\n return { kind: \"slippage\", slippage: scaledToDecimalOutput(BigInt(ticks), scales.price()) };\n }\n if (bps > 0) {\n return { kind: \"bps\", bps };\n }\n return undefined;\n}\n\nexport function formatAttachedRisk(\n scales: SdkScales,\n risk: v.InferOutput<typeof ReadAttachedRiskSchema> | undefined,\n) {\n if (!risk) return undefined;\n\n const takeProfit = risk.takeProfit?.policy\n ? formatRiskLeg(scales, risk.takeProfit.policy)\n : undefined;\n const stopLoss = risk.stopLoss?.policy\n ? formatRiskLeg(scales, risk.stopLoss.policy)\n : undefined;\n const trailingStop = risk.trailingStop?.policy\n ? {\n trailingDistance: formatTrailingDistance(\n scales,\n risk.trailingStop.policy.trailingDistance,\n ),\n maxSlippage: formatTrailingMaxSlippage(scales, risk.trailingStop.policy.maxSlippage),\n activationPrice:\n risk.trailingStop.policy.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n risk.trailingStop.policy.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n }\n : undefined;\n\n if (!takeProfit && !stopLoss && !trailingStop) return undefined;\n\n const effectiveStopLoss = trailingStop ? undefined : stopLoss;\n\n return {\n takeProfit,\n stopLoss: effectiveStopLoss,\n trailingStop,\n oco: risk.oco,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"orders-risk.schemas.js","names":["ProtoWrite.RiskMarketIocSchema","ProtoWrite.RiskLimitGtcSchema","ProtoRead.AttachedRiskLegState_Status"],"sources":["../../../src/services/orders/orders-risk.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport {\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n PriceDistanceInputSchema,\n PriceSlippageInputSchema,\n} from \"../shared.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport { parseSlippageInput, parseTrailingDistanceInput } from \"../trailing-oneof-inputs.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { AttachedRiskLegStatusCodec } from \"./orders.codecs.js\";\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nfunction attachedTriggerInputSchema(scales: SdkScales, fieldPrefix: \"takeProfit\" | \"stopLoss\") {\n return v.pipe(\n v.strictObject({\n triggerPrice: DecimalInputStringSchema,\n execution: v.variant(\"type\", [\n v.strictObject({\n type: v.literal(\"market_ioc\"),\n }),\n v.strictObject({\n type: v.literal(\"limit_gtc\"),\n price: DecimalInputStringSchema,\n }),\n ]),\n }),\n v.transform((input) => {\n const execution: ProtoWrite.RiskExecution[\"execution\"] =\n input.execution.type === \"market_ioc\"\n ? {\n case: \"marketIoc\",\n value: create(ProtoWrite.RiskMarketIocSchema),\n }\n : {\n case: \"limitGtc\",\n value: create(ProtoWrite.RiskLimitGtcSchema, {\n priceTicks: positiveDecimalInputToScaled(\n `${fieldPrefix}.execution.price`,\n input.execution.price,\n scales.price(),\n ),\n }),\n };\n return {\n triggerPriceTicks: positiveDecimalInputToScaled(\n `${fieldPrefix}.triggerPrice`,\n input.triggerPrice,\n scales.price(),\n ),\n child: { execution },\n };\n }),\n );\n}\n\nconst TrailingDistanceSchema = v.union([PriceDistanceInputSchema, BpsStringOrNumberInputSchema]);\n\nconst MaxSlippageSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nexport const MarketMaxSlippageSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nconst MAX_BPS = 10_000;\nconst UNSET_TRAILING_STOP_MAX_SLIPPAGE: ProtoWrite.TrailingStopPolicy[\"maxSlippage\"] = {\n case: undefined,\n value: undefined,\n};\n\nfunction parseTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof TrailingDistanceSchema>,\n): ProtoWrite.TrailingStopPolicy[\"trailingDistance\"] {\n return parseTrailingDistanceInput(scales, distance, \"trailingStop.trailingDistance\");\n}\n\nfunction parseMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MaxSlippageSchema>,\n): ProtoWrite.TrailingStopPolicy[\"maxSlippage\"] {\n return parseSlippageInput(scales, slippage, {\n fieldName: \"trailingStop.maxSlippage\",\n ticksCase: \"maxSlippageTicks\",\n bpsCase: \"maxSlippageBps\",\n maxBps: MAX_BPS,\n });\n}\n\nexport function parseMarketMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MarketMaxSlippageSchema> | undefined,\n): ProtoWrite.MarketIoc[\"maxSlippage\"] {\n return parseSlippageInput(scales, slippage, {\n fieldName: \"execution.maxSlippage\",\n ticksCase: \"maxSlippageTicks\",\n bpsCase: \"maxSlippageBps\",\n maxBps: MAX_BPS,\n });\n}\n\nfunction createTrailingStopInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n trailingDistance: TrailingDistanceSchema,\n maxSlippage: v.optional(MaxSlippageSchema),\n activationPrice: v.optional(DecimalInputStringSchema),\n }),\n v.transform((input) => ({\n trailingDistance: parseTrailingDistance(scales, input.trailingDistance),\n maxSlippage: input.maxSlippage\n ? parseMaxSlippage(scales, input.maxSlippage)\n : UNSET_TRAILING_STOP_MAX_SLIPPAGE,\n activationPriceTicks:\n input.activationPrice === undefined\n ? 0n\n : positiveDecimalInputToScaled(\n \"trailingStop.activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n })),\n );\n}\n\nfunction createRiskPolicyObjectInputSchema(scales: SdkScales) {\n const TakeProfitInputSchema = attachedTriggerInputSchema(scales, \"takeProfit\");\n const StopLossInputSchema = attachedTriggerInputSchema(scales, \"stopLoss\");\n const TrailingStopInputSchema = createTrailingStopInputSchema(scales);\n const InactiveOcoInputSchema = v.optional(\n v.literal(false, \"oco requires takeProfit and exactly one stop leg\"),\n );\n return v.union([\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: StopLossInputSchema,\n trailingStop: v.optional(v.never()),\n oco: v.optional(v.boolean()),\n }),\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: v.optional(v.never()),\n trailingStop: TrailingStopInputSchema,\n oco: v.optional(v.boolean()),\n }),\n v.strictObject({\n takeProfit: TakeProfitInputSchema,\n stopLoss: v.optional(v.never()),\n trailingStop: v.optional(v.never()),\n oco: InactiveOcoInputSchema,\n }),\n v.strictObject({\n takeProfit: v.optional(v.never()),\n stopLoss: StopLossInputSchema,\n trailingStop: v.optional(v.never()),\n oco: InactiveOcoInputSchema,\n }),\n v.strictObject({\n takeProfit: v.optional(v.never()),\n stopLoss: v.optional(v.never()),\n trailingStop: TrailingStopInputSchema,\n oco: InactiveOcoInputSchema,\n }),\n ]);\n}\n\ntype RiskPolicyObjectInput = v.InferOutput<ReturnType<typeof createRiskPolicyObjectInputSchema>>;\n\nfunction transformRiskPolicyInput(input: RiskPolicyObjectInput) {\n const stopLeg = input.stopLoss\n ? ({ case: \"stopLoss\", value: input.stopLoss } as const)\n : input.trailingStop\n ? ({ case: \"trailingStop\", value: input.trailingStop } as const)\n : ({ case: undefined, value: undefined } as const);\n return {\n takeProfit: input.takeProfit,\n stopLeg,\n oco: input.oco ?? false,\n };\n}\n\nexport function createRiskPolicyInputSchema(scales: SdkScales) {\n return v.pipe(\n v.optional(createRiskPolicyObjectInputSchema(scales)),\n v.transform((input) => (input ? transformRiskPolicyInput(input) : undefined)),\n );\n}\n\nexport function createRequiredRiskPolicyInputSchema(scales: SdkScales) {\n return v.pipe(\n createRiskPolicyObjectInputSchema(scales),\n v.transform((input) => transformRiskPolicyInput(input)),\n );\n}\n\nexport type TakeProfitInput = v.InferInput<ReturnType<typeof attachedTriggerInputSchema>>;\nexport type StopLossInput = v.InferInput<ReturnType<typeof attachedTriggerInputSchema>>;\nexport type TrailingStopInput = v.InferInput<ReturnType<typeof createTrailingStopInputSchema>>;\nexport type RiskPolicyInput = v.InferInput<ReturnType<typeof createRiskPolicyInputSchema>>;\n\ntype TrailingDistance =\n | { kind: \"distance\"; distance: string }\n | { kind: \"bps\"; bps: number }\n | { kind: \"none\" };\ntype TrailingMaxSlippage = { kind: \"slippage\"; slippage: string } | { kind: \"bps\"; bps: number };\nexport type MarketMaxSlippage =\n | { kind: \"slippage\"; slippage: string }\n | { kind: \"bps\"; bps: number };\n\nconst ReadRiskExecutionSchema = v.object({\n execution: v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({}),\n }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({\n priceTicks: v.bigint(),\n }),\n }),\n ]),\n});\n\nconst ReadTakeProfitPolicySchema = v.object({\n triggerPriceTicks: v.bigint(),\n child: ReadRiskExecutionSchema,\n});\n\nconst ReadStopLossPolicySchema = v.object({\n triggerPriceTicks: v.bigint(),\n child: ReadRiskExecutionSchema,\n});\n\nconst ReadTrailingStopPolicySchema = v.object({\n trailingDistance: v.object({\n case: v.optional(\n v.union([\n v.literal(\"trailingDistanceTicks\"),\n v.literal(\"trailingDistanceBps\"),\n v.undefined(),\n ]),\n ),\n value: v.optional(v.union([v.bigint(), v.number(), v.undefined()])),\n }),\n maxSlippage: v.object({\n case: v.union([v.literal(\"maxSlippageTicks\"), v.literal(\"maxSlippageBps\"), v.undefined()]),\n value: v.optional(v.union([v.number(), v.undefined()])),\n }),\n activationPriceTicks: v.bigint(),\n});\n\nconst ReadAttachedRiskLegStateSchema = v.object({\n status: v.enum(ProtoRead.AttachedRiskLegState_Status),\n armedTsNs: v.bigint(),\n terminalTsNs: v.bigint(),\n triggerId: v.optional(v.bigint()),\n childOrderId: v.optional(v.bigint()),\n});\n\nconst ReadAttachedRiskTakeProfitSchema = v.object({\n policy: v.optional(ReadTakeProfitPolicySchema),\n state: v.optional(ReadAttachedRiskLegStateSchema),\n});\n\nconst ReadAttachedRiskStopLossSchema = v.object({\n policy: v.optional(ReadStopLossPolicySchema),\n state: v.optional(ReadAttachedRiskLegStateSchema),\n});\n\nconst ReadAttachedRiskTrailingStopSchema = v.object({\n policy: v.optional(ReadTrailingStopPolicySchema),\n state: v.optional(ReadAttachedRiskLegStateSchema),\n});\n\nexport const ReadAttachedRiskSchema = v.object({\n takeProfit: v.optional(ReadAttachedRiskTakeProfitSchema),\n stopLoss: v.optional(ReadAttachedRiskStopLossSchema),\n trailingStop: v.optional(ReadAttachedRiskTrailingStopSchema),\n oco: v.optional(v.boolean(), false),\n});\n\nfunction formatRiskExecution(\n scales: SdkScales,\n child: v.InferOutput<typeof ReadRiskExecutionSchema>,\n) {\n if (child.execution.case === \"marketIoc\") {\n return { type: \"market_ioc\" } as const;\n }\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(child.execution.value.priceTicks, scales.price()),\n } as const;\n}\n\nfunction formatRiskLeg(\n scales: SdkScales,\n leg:\n | v.InferOutput<typeof ReadTakeProfitPolicySchema>\n | v.InferOutput<typeof ReadStopLossPolicySchema>,\n) {\n return {\n triggerPrice: scaledToDecimalOutput(leg.triggerPriceTicks, scales.price()),\n execution: formatRiskExecution(scales, leg.child),\n };\n}\n\nfunction formatRiskLegState(state: v.InferOutput<typeof ReadAttachedRiskLegStateSchema>) {\n return {\n status: requiredEnumLabel(\n AttachedRiskLegStatusCodec.protoToOutput,\n state.status,\n \"AttachedRiskLegStateSchema\",\n \"status\",\n ),\n armedTs: state.armedTsNs > 0n ? tsNsToMs(state.armedTsNs) : undefined,\n armedTsNs: state.armedTsNs > 0n ? state.armedTsNs.toString() : undefined,\n terminalTs: state.terminalTsNs > 0n ? tsNsToMs(state.terminalTsNs) : undefined,\n terminalTsNs: state.terminalTsNs > 0n ? state.terminalTsNs.toString() : undefined,\n triggerId:\n state.triggerId !== undefined && state.triggerId > 0n\n ? formatId(state.triggerId)\n : undefined,\n childOrderId:\n state.childOrderId !== undefined && state.childOrderId > 0n\n ? formatId(state.childOrderId)\n : undefined,\n };\n}\n\nfunction formatTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof ReadTrailingStopPolicySchema>[\"trailingDistance\"],\n): TrailingDistance {\n if (distance.case === \"trailingDistanceTicks\" && typeof distance.value === \"bigint\") {\n return {\n kind: \"distance\",\n distance: scaledToDecimalOutput(distance.value, scales.price()),\n };\n }\n if (distance.case === \"trailingDistanceBps\" && typeof distance.value === \"number\") {\n return { kind: \"bps\", bps: distance.value };\n }\n return { kind: \"none\" };\n}\n\nfunction formatTrailingMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof ReadTrailingStopPolicySchema>[\"maxSlippage\"],\n): TrailingMaxSlippage | undefined {\n if (slippage.case === \"maxSlippageTicks\" && typeof slippage.value === \"number\") {\n return {\n kind: \"slippage\",\n slippage: scaledToDecimalOutput(BigInt(slippage.value), scales.price()),\n };\n }\n if (slippage.case === \"maxSlippageBps\" && typeof slippage.value === \"number\") {\n return { kind: \"bps\", bps: slippage.value };\n }\n return undefined;\n}\n\nexport function formatMarketMaxSlippage(\n scales: SdkScales,\n ticks: number,\n bps: number,\n): MarketMaxSlippage | undefined {\n if (ticks > 0) {\n return { kind: \"slippage\", slippage: scaledToDecimalOutput(BigInt(ticks), scales.price()) };\n }\n if (bps > 0) {\n return { kind: \"bps\", bps };\n }\n return undefined;\n}\n\nexport function formatAttachedRisk(\n scales: SdkScales,\n risk: v.InferOutput<typeof ReadAttachedRiskSchema> | undefined,\n) {\n if (!risk) return undefined;\n\n const takeProfit =\n risk.takeProfit?.policy || risk.takeProfit?.state\n ? {\n ...(risk.takeProfit.policy\n ? formatRiskLeg(scales, risk.takeProfit.policy)\n : undefined),\n state: risk.takeProfit.state\n ? formatRiskLegState(risk.takeProfit.state)\n : undefined,\n }\n : undefined;\n const stopLoss =\n risk.stopLoss?.policy || risk.stopLoss?.state\n ? {\n ...(risk.stopLoss.policy\n ? formatRiskLeg(scales, risk.stopLoss.policy)\n : undefined),\n state: risk.stopLoss.state ? formatRiskLegState(risk.stopLoss.state) : undefined,\n }\n : undefined;\n const trailingStop =\n risk.trailingStop?.policy || risk.trailingStop?.state\n ? {\n ...(risk.trailingStop.policy\n ? {\n trailingDistance: formatTrailingDistance(\n scales,\n risk.trailingStop.policy.trailingDistance,\n ),\n maxSlippage: formatTrailingMaxSlippage(\n scales,\n risk.trailingStop.policy.maxSlippage,\n ),\n activationPrice:\n risk.trailingStop.policy.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n risk.trailingStop.policy.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n }\n : undefined),\n state: risk.trailingStop.state\n ? formatRiskLegState(risk.trailingStop.state)\n : undefined,\n }\n : undefined;\n\n if (!takeProfit && !stopLoss && !trailingStop) return undefined;\n\n return {\n takeProfit,\n stopLoss,\n trailingStop,\n oco: risk.oco,\n };\n}\n"],"mappings":"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"}
@@ -41,6 +41,17 @@ const OrderTriggerTypeCodec = { protoToOutput: {
41
41
  [4]: "twap",
42
42
  [5]: "ladder"
43
43
  } };
44
+ const AttachedRiskLegStatusCodec = { protoToOutput: {
45
+ [0]: "unspecified",
46
+ [1]: "not_configured",
47
+ [2]: "created",
48
+ [3]: "armed",
49
+ [4]: "running",
50
+ [5]: "completed",
51
+ [6]: "canceled",
52
+ [7]: "failed",
53
+ [8]: "paused"
54
+ } };
44
55
  const ModifyBehaviorCodec = { inputToProto: {
45
56
  AMEND_OR_REPLACE: 1,
46
57
  AMEND_ONLY: 2,
@@ -70,6 +81,6 @@ const BatchReplacePhaseCodec = { protoToOutput: {
70
81
  [4]: "terminal"
71
82
  } };
72
83
  //#endregion
73
- export { BatchReplaceAdmissionStatusCodec, BatchReplaceItemAdmissionStatusCodec, BatchReplacePhaseCodec, FEE_ASSET_VALUES, FeeAssetCodec, MODIFY_BEHAVIOR_VALUES, ModifyActionCodec, ModifyBehaviorCodec, ORDER_STATUS_FILTER_VALUES, OrderOriginScopeCodec, OrderSideCodec, OrderStatusCodec, OrderStatusFilterCodec, OrderTriggerTypeCodec, OrderTypeCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec, TimeInForceCodec };
84
+ export { AttachedRiskLegStatusCodec, BatchReplaceAdmissionStatusCodec, BatchReplaceItemAdmissionStatusCodec, BatchReplacePhaseCodec, FEE_ASSET_VALUES, FeeAssetCodec, MODIFY_BEHAVIOR_VALUES, ModifyActionCodec, ModifyBehaviorCodec, ORDER_STATUS_FILTER_VALUES, OrderOriginScopeCodec, OrderSideCodec, OrderStatusCodec, OrderStatusFilterCodec, OrderTriggerTypeCodec, OrderTypeCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec, TimeInForceCodec };
74
85
 
75
86
  //# sourceMappingURL=orders.codecs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.codecs.js","names":[],"sources":["../../../src/services/orders/orders.codecs.ts"],"sourcesContent":["import * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec,\n type OrderSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"./order-enums.codecs.js\";\n\nexport const ORDER_STATUS_FILTER_VALUES = [\"FILLED\", \"CANCELED\", \"REJECTED\"] as const;\nexport type OrderStatusFilterValue = (typeof ORDER_STATUS_FILTER_VALUES)[number];\n\nexport const ORDER_STATUS_VALUES = [\n \"pending\",\n \"pending_cancel\",\n \"working\",\n \"filled\",\n \"canceled\",\n \"rejected\",\n] as const;\nexport type OrderStatusValue = (typeof ORDER_STATUS_VALUES)[number];\n\nexport const ORDER_ORIGIN_SCOPE_VALUES = [\n \"direct\",\n \"attached_risk\",\n \"standalone_trigger\",\n \"system\",\n] as const;\nexport type OrderOriginScope = (typeof ORDER_ORIGIN_SCOPE_VALUES)[number];\n\nexport const ORDER_TRIGGER_TYPE_VALUES = [\n \"unspecified\",\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type OrderTriggerType = (typeof ORDER_TRIGGER_TYPE_VALUES)[number];\n\nexport const MODIFY_BEHAVIOR_VALUES = [\"AMEND_OR_REPLACE\", \"AMEND_ONLY\", \"REPLACE_ONLY\"] as const;\nexport type ModifyBehaviorValue = (typeof MODIFY_BEHAVIOR_VALUES)[number];\n\nexport const MODIFY_ACTION_VALUES = [\"AMENDED\", \"REPLACED\"] as const;\nexport type ModifyActionValue = (typeof MODIFY_ACTION_VALUES)[number];\n\nexport const BATCH_REPLACE_ADMISSION_STATUS_VALUES = [\n \"admitted\",\n \"partially_admitted\",\n \"rejected\",\n] as const;\nexport type BatchReplaceAdmissionStatusValue =\n (typeof BATCH_REPLACE_ADMISSION_STATUS_VALUES)[number];\n\nexport const BATCH_REPLACE_ITEM_ADMISSION_STATUS_VALUES = [\"admitted\", \"rejected\"] as const;\nexport type BatchReplaceItemAdmissionStatusValue =\n (typeof BATCH_REPLACE_ITEM_ADMISSION_STATUS_VALUES)[number];\n\nexport const BATCH_REPLACE_PHASE_VALUES = [\"admitted\", \"working\", \"rejected\", \"terminal\"] as const;\nexport type BatchReplacePhaseValue = (typeof BATCH_REPLACE_PHASE_VALUES)[number];\n\nexport const OrderStatusFilterCodec = {\n inputToProto: {\n FILLED: ProtoRead.OrderStatus.FILLED,\n CANCELED: ProtoRead.OrderStatus.CANCELED,\n REJECTED: ProtoRead.OrderStatus.REJECTED,\n } satisfies InputToProto<OrderStatusFilterValue, ProtoRead.OrderStatus>,\n} as const;\n\nexport const OrderStatusCodec = {\n protoToOutput: {\n [ProtoRead.OrderStatus.ORDER_STATUS_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderStatus.PENDING]: \"pending\",\n [ProtoRead.OrderStatus.PENDING_CANCEL]: \"pending_cancel\",\n [ProtoRead.OrderStatus.WORKING]: \"working\",\n [ProtoRead.OrderStatus.FILLED]: \"filled\",\n [ProtoRead.OrderStatus.CANCELED]: \"canceled\",\n [ProtoRead.OrderStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<ProtoRead.OrderStatus, OrderStatusValue>,\n} as const;\n\nexport const OrderOriginScopeCodec = {\n protoToOutput: {\n [ProtoRead.OrderOriginScope.ORDER_ORIGIN_SCOPE_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderOriginScope.DIRECT]: \"direct\",\n [ProtoRead.OrderOriginScope.ATTACHED_RISK]: \"attached_risk\",\n [ProtoRead.OrderOriginScope.STANDALONE_TRIGGER]: \"standalone_trigger\",\n [ProtoRead.OrderOriginScope.SYSTEM]: \"system\",\n } satisfies ProtoToOutput<ProtoRead.OrderOriginScope, OrderOriginScope>,\n} as const;\n\nexport const OrderTriggerTypeCodec = {\n protoToOutput: {\n [ProtoRead.OrderTriggerType.ORDER_TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderTriggerType.STOP_LOSS]: \"stop_loss\",\n [ProtoRead.OrderTriggerType.TAKE_PROFIT]: \"take_profit\",\n [ProtoRead.OrderTriggerType.TRAILING_STOP]: \"trailing_stop\",\n [ProtoRead.OrderTriggerType.TWAP]: \"twap\",\n [ProtoRead.OrderTriggerType.LADDER]: \"ladder\",\n } satisfies Record<ProtoRead.OrderTriggerType, OrderTriggerType>,\n} as const;\n\nexport const ModifyBehaviorCodec = {\n inputToProto: {\n AMEND_OR_REPLACE: ProtoWrite.ModifyBehavior.AMEND_OR_REPLACE,\n AMEND_ONLY: ProtoWrite.ModifyBehavior.AMEND_ONLY,\n REPLACE_ONLY: ProtoWrite.ModifyBehavior.REPLACE_ONLY,\n } satisfies InputToProto<ModifyBehaviorValue, ProtoWrite.ModifyBehavior>,\n} as const;\n\nexport const ModifyActionCodec = {\n protoToOutput: {\n [ProtoWrite.ModifyActionTaken.MODIFY_ACTION_UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.ModifyActionTaken.AMENDED]: \"AMENDED\",\n [ProtoWrite.ModifyActionTaken.REPLACED]: \"REPLACED\",\n } satisfies ProtoToOutput<ProtoWrite.ModifyActionTaken, ModifyActionValue>,\n} as const;\n\nexport const BatchReplaceAdmissionStatusCodec = {\n protoToOutput: {\n [ProtoWrite.BatchReplaceAdmissionStatus.UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.BatchReplaceAdmissionStatus.ADMITTED]: \"admitted\",\n [ProtoWrite.BatchReplaceAdmissionStatus.PARTIALLY_ADMITTED]: \"partially_admitted\",\n [ProtoWrite.BatchReplaceAdmissionStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<\n ProtoWrite.BatchReplaceAdmissionStatus,\n BatchReplaceAdmissionStatusValue\n >,\n} as const;\n\nexport const BatchReplaceItemAdmissionStatusCodec = {\n protoToOutput: {\n [ProtoWrite.BatchReplaceItemAdmissionStatus.UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.BatchReplaceItemAdmissionStatus.ADMITTED]: \"admitted\",\n [ProtoWrite.BatchReplaceItemAdmissionStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<\n ProtoWrite.BatchReplaceItemAdmissionStatus,\n BatchReplaceItemAdmissionStatusValue\n >,\n} as const;\n\nexport const BatchReplacePhaseCodec = {\n protoToOutput: {\n [ProtoRead.BatchReplacePhase.UNSPECIFIED]: \"unspecified\",\n [ProtoRead.BatchReplacePhase.ADMITTED]: \"admitted\",\n [ProtoRead.BatchReplacePhase.WORKING]: \"working\",\n [ProtoRead.BatchReplacePhase.REJECTED]: \"rejected\",\n [ProtoRead.BatchReplacePhase.TERMINAL]: \"terminal\",\n } satisfies ProtoToOutput<ProtoRead.BatchReplacePhase, BatchReplacePhaseValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,6BAA6B;CAAC;CAAU;CAAY;AAAU;AA+B3E,MAAa,yBAAyB;CAAC;CAAoB;CAAc;AAAc;AAqBvF,MAAa,yBAAyB,EAClC,cAAc;CACV,QAAA;CACA,UAAA;CACA,UAAA;AACJ,EACJ;AAEA,MAAa,mBAAmB,EAC5B,eAAe;EACuC,IAAA;EACjB,IAAA;EACO,IAAA;EACP,IAAA;EACD,IAAA;EACE,IAAA;EACA,IAAA;AACtC,EACJ;AAEA,MAAa,wBAAwB,EACjC,eAAe;EACkD,IAAA;EACxB,IAAA;EACO,IAAA;EACK,IAAA;EACZ,IAAA;AACzC,EACJ;AAEA,MAAa,wBAAwB,EACjC,eAAe;EACkD,IAAA;EACrB,IAAA;EACE,IAAA;EACE,IAAA;EACT,IAAA;EACE,IAAA;AACzC,EACJ;AAEA,MAAa,sBAAsB,EAC/B,cAAc;CACV,kBAAA;CACA,YAAA;CACA,cAAA;AACJ,EACJ;AAEA,MAAa,oBAAoB,EAC7B,eAAe;EAC+C,IAAA;EAClB,IAAA;EACC,IAAA;AAC7C,EACJ;AAEA,MAAa,mCAAmC,EAC5C,eAAe;EAC2C,IAAA;EACH,IAAA;EACU,IAAA;EACV,IAAA;AACvD,EAIJ;AAEA,MAAa,uCAAuC,EAChD,eAAe;EAC+C,IAAA;EACH,IAAA;EACA,IAAA;AAC3D,EAIJ;AAEA,MAAa,yBAAyB,EAClC,eAAe;EACgC,IAAA;EACH,IAAA;EACD,IAAA;EACC,IAAA;EACA,IAAA;AAC5C,EACJ"}
1
+ {"version":3,"file":"orders.codecs.js","names":[],"sources":["../../../src/services/orders/orders.codecs.ts"],"sourcesContent":["import * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec,\n type OrderSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"./order-enums.codecs.js\";\n\nexport const ORDER_STATUS_FILTER_VALUES = [\"FILLED\", \"CANCELED\", \"REJECTED\"] as const;\nexport type OrderStatusFilterValue = (typeof ORDER_STATUS_FILTER_VALUES)[number];\n\nexport const ORDER_STATUS_VALUES = [\n \"pending\",\n \"pending_cancel\",\n \"working\",\n \"filled\",\n \"canceled\",\n \"rejected\",\n] as const;\nexport type OrderStatusValue = (typeof ORDER_STATUS_VALUES)[number];\n\nexport const ORDER_ORIGIN_SCOPE_VALUES = [\n \"direct\",\n \"attached_risk\",\n \"standalone_trigger\",\n \"system\",\n] as const;\nexport type OrderOriginScope = (typeof ORDER_ORIGIN_SCOPE_VALUES)[number];\n\nexport const ORDER_TRIGGER_TYPE_VALUES = [\n \"unspecified\",\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type OrderTriggerType = (typeof ORDER_TRIGGER_TYPE_VALUES)[number];\n\nexport const ATTACHED_RISK_LEG_STATUS_VALUES = [\n \"not_configured\",\n \"created\",\n \"armed\",\n \"running\",\n \"completed\",\n \"canceled\",\n \"failed\",\n \"paused\",\n] as const;\nexport type AttachedRiskLegStatusValue = (typeof ATTACHED_RISK_LEG_STATUS_VALUES)[number];\n\nexport const MODIFY_BEHAVIOR_VALUES = [\"AMEND_OR_REPLACE\", \"AMEND_ONLY\", \"REPLACE_ONLY\"] as const;\nexport type ModifyBehaviorValue = (typeof MODIFY_BEHAVIOR_VALUES)[number];\n\nexport const MODIFY_ACTION_VALUES = [\"AMENDED\", \"REPLACED\"] as const;\nexport type ModifyActionValue = (typeof MODIFY_ACTION_VALUES)[number];\n\nexport const BATCH_REPLACE_ADMISSION_STATUS_VALUES = [\n \"admitted\",\n \"partially_admitted\",\n \"rejected\",\n] as const;\nexport type BatchReplaceAdmissionStatusValue =\n (typeof BATCH_REPLACE_ADMISSION_STATUS_VALUES)[number];\n\nexport const BATCH_REPLACE_ITEM_ADMISSION_STATUS_VALUES = [\"admitted\", \"rejected\"] as const;\nexport type BatchReplaceItemAdmissionStatusValue =\n (typeof BATCH_REPLACE_ITEM_ADMISSION_STATUS_VALUES)[number];\n\nexport const BATCH_REPLACE_PHASE_VALUES = [\"admitted\", \"working\", \"rejected\", \"terminal\"] as const;\nexport type BatchReplacePhaseValue = (typeof BATCH_REPLACE_PHASE_VALUES)[number];\n\nexport const OrderStatusFilterCodec = {\n inputToProto: {\n FILLED: ProtoRead.OrderStatus.FILLED,\n CANCELED: ProtoRead.OrderStatus.CANCELED,\n REJECTED: ProtoRead.OrderStatus.REJECTED,\n } satisfies InputToProto<OrderStatusFilterValue, ProtoRead.OrderStatus>,\n} as const;\n\nexport const OrderStatusCodec = {\n protoToOutput: {\n [ProtoRead.OrderStatus.ORDER_STATUS_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderStatus.PENDING]: \"pending\",\n [ProtoRead.OrderStatus.PENDING_CANCEL]: \"pending_cancel\",\n [ProtoRead.OrderStatus.WORKING]: \"working\",\n [ProtoRead.OrderStatus.FILLED]: \"filled\",\n [ProtoRead.OrderStatus.CANCELED]: \"canceled\",\n [ProtoRead.OrderStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<ProtoRead.OrderStatus, OrderStatusValue>,\n} as const;\n\nexport const OrderOriginScopeCodec = {\n protoToOutput: {\n [ProtoRead.OrderOriginScope.ORDER_ORIGIN_SCOPE_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderOriginScope.DIRECT]: \"direct\",\n [ProtoRead.OrderOriginScope.ATTACHED_RISK]: \"attached_risk\",\n [ProtoRead.OrderOriginScope.STANDALONE_TRIGGER]: \"standalone_trigger\",\n [ProtoRead.OrderOriginScope.SYSTEM]: \"system\",\n } satisfies ProtoToOutput<ProtoRead.OrderOriginScope, OrderOriginScope>,\n} as const;\n\nexport const OrderTriggerTypeCodec = {\n protoToOutput: {\n [ProtoRead.OrderTriggerType.ORDER_TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.OrderTriggerType.STOP_LOSS]: \"stop_loss\",\n [ProtoRead.OrderTriggerType.TAKE_PROFIT]: \"take_profit\",\n [ProtoRead.OrderTriggerType.TRAILING_STOP]: \"trailing_stop\",\n [ProtoRead.OrderTriggerType.TWAP]: \"twap\",\n [ProtoRead.OrderTriggerType.LADDER]: \"ladder\",\n } satisfies Record<ProtoRead.OrderTriggerType, OrderTriggerType>,\n} as const;\n\nexport const AttachedRiskLegStatusCodec = {\n protoToOutput: {\n [ProtoRead.AttachedRiskLegState_Status.STATUS_UNSPECIFIED]: \"unspecified\",\n [ProtoRead.AttachedRiskLegState_Status.NOT_CONFIGURED]: \"not_configured\",\n [ProtoRead.AttachedRiskLegState_Status.CREATED]: \"created\",\n [ProtoRead.AttachedRiskLegState_Status.ARMED]: \"armed\",\n [ProtoRead.AttachedRiskLegState_Status.RUNNING]: \"running\",\n [ProtoRead.AttachedRiskLegState_Status.COMPLETED]: \"completed\",\n [ProtoRead.AttachedRiskLegState_Status.CANCELED]: \"canceled\",\n [ProtoRead.AttachedRiskLegState_Status.FAILED]: \"failed\",\n [ProtoRead.AttachedRiskLegState_Status.PAUSED]: \"paused\",\n } satisfies ProtoToOutput<ProtoRead.AttachedRiskLegState_Status, AttachedRiskLegStatusValue>,\n} as const;\n\nexport const ModifyBehaviorCodec = {\n inputToProto: {\n AMEND_OR_REPLACE: ProtoWrite.ModifyBehavior.AMEND_OR_REPLACE,\n AMEND_ONLY: ProtoWrite.ModifyBehavior.AMEND_ONLY,\n REPLACE_ONLY: ProtoWrite.ModifyBehavior.REPLACE_ONLY,\n } satisfies InputToProto<ModifyBehaviorValue, ProtoWrite.ModifyBehavior>,\n} as const;\n\nexport const ModifyActionCodec = {\n protoToOutput: {\n [ProtoWrite.ModifyActionTaken.MODIFY_ACTION_UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.ModifyActionTaken.AMENDED]: \"AMENDED\",\n [ProtoWrite.ModifyActionTaken.REPLACED]: \"REPLACED\",\n } satisfies ProtoToOutput<ProtoWrite.ModifyActionTaken, ModifyActionValue>,\n} as const;\n\nexport const BatchReplaceAdmissionStatusCodec = {\n protoToOutput: {\n [ProtoWrite.BatchReplaceAdmissionStatus.UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.BatchReplaceAdmissionStatus.ADMITTED]: \"admitted\",\n [ProtoWrite.BatchReplaceAdmissionStatus.PARTIALLY_ADMITTED]: \"partially_admitted\",\n [ProtoWrite.BatchReplaceAdmissionStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<\n ProtoWrite.BatchReplaceAdmissionStatus,\n BatchReplaceAdmissionStatusValue\n >,\n} as const;\n\nexport const BatchReplaceItemAdmissionStatusCodec = {\n protoToOutput: {\n [ProtoWrite.BatchReplaceItemAdmissionStatus.UNSPECIFIED]: \"unspecified\",\n [ProtoWrite.BatchReplaceItemAdmissionStatus.ADMITTED]: \"admitted\",\n [ProtoWrite.BatchReplaceItemAdmissionStatus.REJECTED]: \"rejected\",\n } satisfies ProtoToOutput<\n ProtoWrite.BatchReplaceItemAdmissionStatus,\n BatchReplaceItemAdmissionStatusValue\n >,\n} as const;\n\nexport const BatchReplacePhaseCodec = {\n protoToOutput: {\n [ProtoRead.BatchReplacePhase.UNSPECIFIED]: \"unspecified\",\n [ProtoRead.BatchReplacePhase.ADMITTED]: \"admitted\",\n [ProtoRead.BatchReplacePhase.WORKING]: \"working\",\n [ProtoRead.BatchReplacePhase.REJECTED]: \"rejected\",\n [ProtoRead.BatchReplacePhase.TERMINAL]: \"terminal\",\n } satisfies ProtoToOutput<ProtoRead.BatchReplacePhase, BatchReplacePhaseValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,6BAA6B;CAAC;CAAU;CAAY;AAAU;AA2C3E,MAAa,yBAAyB;CAAC;CAAoB;CAAc;AAAc;AAqBvF,MAAa,yBAAyB,EAClC,cAAc;CACV,QAAA;CACA,UAAA;CACA,UAAA;AACJ,EACJ;AAEA,MAAa,mBAAmB,EAC5B,eAAe;EACuC,IAAA;EACjB,IAAA;EACO,IAAA;EACP,IAAA;EACD,IAAA;EACE,IAAA;EACA,IAAA;AACtC,EACJ;AAEA,MAAa,wBAAwB,EACjC,eAAe;EACkD,IAAA;EACxB,IAAA;EACO,IAAA;EACK,IAAA;EACZ,IAAA;AACzC,EACJ;AAEA,MAAa,wBAAwB,EACjC,eAAe;EACkD,IAAA;EACrB,IAAA;EACE,IAAA;EACE,IAAA;EACT,IAAA;EACE,IAAA;AACzC,EACJ;AAEA,MAAa,6BAA6B,EACtC,eAAe;EACiD,IAAA;EACJ,IAAA;EACP,IAAA;EACF,IAAA;EACE,IAAA;EACE,IAAA;EACD,IAAA;EACF,IAAA;EACA,IAAA;AACpD,EACJ;AAEA,MAAa,sBAAsB,EAC/B,cAAc;CACV,kBAAA;CACA,YAAA;CACA,cAAA;AACJ,EACJ;AAEA,MAAa,oBAAoB,EAC7B,eAAe;EAC+C,IAAA;EAClB,IAAA;EACC,IAAA;AAC7C,EACJ;AAEA,MAAa,mCAAmC,EAC5C,eAAe;EAC2C,IAAA;EACH,IAAA;EACU,IAAA;EACV,IAAA;AACvD,EAIJ;AAEA,MAAa,uCAAuC,EAChD,eAAe;EAC+C,IAAA;EACH,IAAA;EACA,IAAA;AAC3D,EAIJ;AAEA,MAAa,yBAAyB,EAClC,eAAe;EACgC,IAAA;EACH,IAAA;EACD,IAAA;EACC,IAAA;EACA,IAAA;AAC5C,EACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","names":[],"sources":["../../../src/services/orders/orders.ts"],"mappings":";;;;;;;;;;;;;UAqFU,6BAA6B,mBAAmB;EACtD;;;;;cAqBS;;EAaL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAiBN,SACF,QAAO,EAAE,kBAAkB,wBAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAoBxB,YACF,QAAO,EAAE,kBAAkB,0BAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAoBxB,QACF,OAAO,eACP,UAAU,0BACX,QAAQ;;;;EAiBL,OACF,OAAO,eACP,UAAU,2BACX,QAAQ;;;;EAkBL,YACF,OAAO,wBACP,UAAU,2BACX,QAAQ;;;;EAyBL,OACF,OAAO,EAAE,kBAAkB,yBAC3B,UAAU,2BACX,QAAQ;;;;EAmBL,YACF,OAAO,wBACP,UAAU,2BACX,QAAQ;;;;EAkBL,OACF,OAAO,kBACP,UAAU,2BACX,QAAQ;;;;EAkBL,aACF,OAAO,yBACP,UAAU,2BACX,QAAQ;;;;EAyBL,sBACF,OAAO,4BACP,UAAU,0BACX,QAAQ;;;;EAaL,UACF,OAAO,EAAE,kBAAkB,6BAC3B,UAAU,2BACX,QAAQ;;;;EAgBL,eACF,OAAO,qBACP,UAAU,2BACX,QAAQ;;;;EAgBL,WACF,OAAO,EAAE,kBAAkB,6BAC3B,UAAU,0BACX,QAAQ;;;;EAqBX,UAAU,OAAO"}
1
+ {"version":3,"file":"orders.d.ts","names":[],"sources":["../../../src/services/orders/orders.ts"],"mappings":";;;;;;;;;;;;;UAqFU,6BAA6B,mBAAmB;EACtD;;;;;cAqBS;;EAaL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAiBN,SACF,QAAO,EAAE,kBAAkB,wBAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAoBxB,YACF,QAAO,EAAE,kBAAkB,0BAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAoBxB,QACF,OAAO,eACP,UAAU,0BACX,QAAQ;;;;EAiBL,OACF,OAAO,eACP,UAAU,2BACX,QAAQ;;;;EAkBL,YACF,OAAO,wBACP,UAAU,2BACX,QAAQ;;;;EAyBL,OACF,OAAO,EAAE,kBAAkB,yBAC3B,UAAU,2BACX,QAAQ;;;;EAmBL,YACF,OAAO,wBACP,UAAU,2BACX,QAAQ;;;;EAkBL,OACF,OAAO,kBACP,UAAU,2BACX,QAAQ;;;;EAkBL,aACF,OAAO,yBACP,UAAU,2BACX,QAAQ;;;;EAsBL,sBACF,OAAO,4BACP,UAAU,0BACX,QAAQ;;;;EAaL,UACF,OAAO,EAAE,kBAAkB,6BAC3B,UAAU,2BACX,QAAQ;;;;EAgBL,eACF,OAAO,qBACP,UAAU,2BACX,QAAQ;;;;EAgBL,WACF,OAAO,EAAE,kBAAkB,6BAC3B,UAAU,0BACX,QAAQ;;;;EAqBX,UAAU,OAAO"}
@@ -3,8 +3,7 @@ import { parse } from "../../shared/validation.js";
3
3
  import { toConnectCallOptions } from "../../shared/request-options.js";
4
4
  import { removeUndefined } from "../../utils/remove-undefined.js";
5
5
  import { resolveAccountScopedInput } from "../subaccount-resolver.js";
6
- import { publicationHandlerErrorContext } from "../../shared/subscription-errors.js";
7
- import { createReadyGate } from "../../shared/decimal-surface.js";
6
+ import { connectReadyGatedProtoChannel } from "../../realtime/ready-gated-subscription.js";
8
7
  import { formatConnectError, isResourceNotFoundError } from "../../utils/errors.js";
9
8
  import { OrderSchema, OrdersReadService } from "../../gen/orders/v1/orders_read_pb.js";
10
9
  import { getOrderErrorDetail } from "../../utils/connect-order-errors.js";
@@ -172,7 +171,7 @@ var OrdersService = class {
172
171
  ...resolveAccountScopedInput(input, this.#resolver),
173
172
  requestId: input.requestId ?? createMutationRequestId()
174
173
  };
175
- const request = parse(createBatchReplaceOrdersInputSchema(this.#scales, input.symbolId), resolved);
174
+ const request = parse(createBatchReplaceOrdersInputSchema(this.#scales), resolved);
176
175
  const response = await this.#writeClient.batchReplaceOrders(removeUndefined(request), toConnectCallOptions(options));
177
176
  const result = parse(BatchReplaceOrdersResultSchema, response);
178
177
  assertBatchResultCount("batchReplace", input.items.length, result.results.length);
@@ -233,15 +232,13 @@ var OrdersService = class {
233
232
  */
234
233
  subscribe(input) {
235
234
  const channel = `private:spot:orders:${input.accountId}:proto`;
236
- const gate = createReadyGate(() => this.#scales.ready(), (error) => input.onError?.(publicationHandlerErrorContext(channel, error)));
237
- return this.#realtime.connectProtoChannel({
235
+ return connectReadyGatedProtoChannel(this.#realtime, {
238
236
  channel,
239
237
  schema: OrderSchema,
238
+ ready: () => this.#scales.ready(),
240
239
  onPublication: (data) => {
241
- gate.run(() => {
242
- const order = parse(this.#orderSchema, data);
243
- input.onEvent(order);
244
- });
240
+ const order = parse(this.#orderSchema, data);
241
+ input.onEvent(order);
245
242
  },
246
243
  onConnected: () => input.onOpen?.(),
247
244
  onDisconnected: () => input.onClose?.(),