@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.
- package/CHANGELOG.md +26 -0
- package/dist/catalogs/readers.d.ts.map +1 -1
- package/dist/catalogs/readers.js +22 -0
- package/dist/catalogs/readers.js.map +1 -1
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +49 -15
- package/dist/core-client.js.map +1 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +3 -2
- package/dist/environment.js.map +1 -1
- package/dist/realtime/client.d.ts.map +1 -1
- package/dist/realtime/client.js +13 -5
- package/dist/realtime/client.js.map +1 -1
- package/dist/realtime/ready-gated-subscription.js +68 -0
- package/dist/realtime/ready-gated-subscription.js.map +1 -0
- package/dist/realtime/snapshot-then-stream.js +19 -10
- package/dist/realtime/snapshot-then-stream.js.map +1 -1
- package/dist/server-client.d.ts +3 -1
- package/dist/server-client.d.ts.map +1 -1
- package/dist/server-client.js +9 -4
- package/dist/server-client.js.map +1 -1
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +4 -1
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/auth/token-storage.js +2 -2
- package/dist/services/auth/token-storage.js.map +1 -1
- package/dist/services/balances/balances.js +5 -8
- package/dist/services/balances/balances.js.map +1 -1
- package/dist/services/candles/candles.js +9 -12
- package/dist/services/candles/candles.js.map +1 -1
- package/dist/services/heatmap/heatmap.js +5 -8
- package/dist/services/heatmap/heatmap.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
- package/dist/services/lifecycle/lifecycle.schemas.js +1 -1
- package/dist/services/market-data/market-data.d.ts.map +1 -1
- package/dist/services/market-data/market-data.js +5 -8
- package/dist/services/market-data/market-data.js.map +1 -1
- package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
- package/dist/services/market-data/market-data.schemas.js +3 -2
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.js +7 -13
- package/dist/services/market-overview/market-overview.js.map +1 -1
- package/dist/services/orderbook/orderbook.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.js +18 -11
- package/dist/services/orderbook/orderbook.js.map +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +6 -22
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +23 -20
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-identifiers.schemas.js +6 -1
- package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
- package/dist/services/orders/orders-input.schemas.d.ts +11 -43
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +10 -11
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +1 -25
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +2 -4
- package/dist/services/orders/orders-modify.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +165 -27
- package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-output.schemas.js +1 -1
- package/dist/services/orders/orders-output.schemas.js.map +1 -1
- package/dist/services/orders/orders-risk.schemas.d.ts +1 -20
- package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-risk.schemas.js +52 -15
- package/dist/services/orders/orders-risk.schemas.js.map +1 -1
- package/dist/services/orders/orders.codecs.js +12 -1
- package/dist/services/orders/orders.codecs.js.map +1 -1
- package/dist/services/orders/orders.d.ts.map +1 -1
- package/dist/services/orders/orders.js +6 -9
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +3 -3
- package/dist/services/trades/trades.js +5 -8
- package/dist/services/trades/trades.js.map +1 -1
- package/dist/services/trailing-oneof-inputs.js +3 -3
- package/dist/services/trailing-oneof-inputs.js.map +1 -1
- package/dist/services/transfers/index.d.ts +2 -2
- package/dist/services/transfers/transfers.d.ts +1 -2
- package/dist/services/transfers/transfers.d.ts.map +1 -1
- package/dist/services/transfers/transfers.js +8 -13
- package/dist/services/transfers/transfers.js.map +1 -1
- package/dist/services/transfers/transfers.schemas.d.ts +5 -5
- package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
- package/dist/services/transfers/transfers.schemas.js +31 -33
- package/dist/services/transfers/transfers.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +21 -8
- package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.js +20 -43
- package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.d.ts +13 -13
- package/dist/services/triggers/triggers-output.schemas.js +5 -5
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/triggers/triggers.d.ts.map +1 -1
- package/dist/services/triggers/triggers.js +10 -23
- package/dist/services/triggers/triggers.js.map +1 -1
- package/dist/services/zipper/zipper.d.ts.map +1 -1
- package/dist/services/zipper/zipper.js +15 -18
- package/dist/services/zipper/zipper.js.map +1 -1
- package/dist/shared/connect-error-mapping.d.ts.map +1 -1
- package/dist/shared/connect-error-mapping.js +9 -2
- package/dist/shared/connect-error-mapping.js.map +1 -1
- package/dist/shared/decimal-surface.d.ts.map +1 -1
- package/dist/shared/decimal-surface.js +40 -17
- package/dist/shared/decimal-surface.js.map +1 -1
- package/dist/shared/transports.d.ts.map +1 -1
- package/dist/shared/transports.js +33 -11
- package/dist/shared/transports.js.map +1 -1
- package/dist/utils/base58-id.js +1 -2
- package/dist/utils/base58-id.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +4 -3
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/event-emitter.d.ts.map +1 -1
- package/dist/utils/event-emitter.js +6 -3
- package/dist/utils/event-emitter.js.map +1 -1
- package/dist/utils/jwt.d.ts.map +1 -1
- package/dist/utils/jwt.js +2 -2
- package/dist/utils/jwt.js.map +1 -1
- package/dist/utils/numbers.js +20 -3
- package/dist/utils/numbers.js.map +1 -1
- package/dist/utils/timestamp.js +27 -16
- package/dist/utils/timestamp.js.map +1 -1
- package/dist/utils/u128.js +6 -18
- package/dist/utils/u128.js.map +1 -1
- 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":"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"}
|
|
@@ -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":"
|
|
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
|
|
180
|
-
|
|
181
|
-
|
|
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
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
|
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":";;;;;;;AAgBA,MAAM,2BAA2B,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAE5E,SAAS,2BAA2B,QAAmB,aAAwC;CAC3F,OAAO,EAAE,KACL,EAAE,aAAa;EACX,cAAc;EACd,WAAW,EAAE,QAAQ,QAAQ,CACzB,EAAE,aAAa,EACX,MAAM,EAAE,QAAQ,YAAY,EAChC,CAAC,GACD,EAAE,aAAa;GACX,MAAM,EAAE,QAAQ,WAAW;GAC3B,OAAO;EACX,CAAC,CACL,CAAC;CACL,CAAC,GACD,EAAE,WAAW,UAAU;EACnB,MAAM,YACF,MAAM,UAAU,SAAS,eACnB;GACI,MAAM;GACN,OAAO,OAAOA,mBAA8B;EAChD,IACA;GACI,MAAM;GACN,OAAO,OAAOC,oBAA+B,EACzC,YAAY,6BACR,GAAG,YAAY,mBACf,MAAM,UAAU,OAChB,OAAO,MAAM,CACjB,EACJ,CAAC;EACL;EACV,OAAO;GACH,mBAAmB,6BACf,GAAG,YAAY,gBACf,MAAM,cACN,OAAO,MAAM,CACjB;GACA,OAAO,EAAE,UAAU;EACvB;CACJ,CAAC,CACL;AACJ;AAEA,MAAM,yBAAyB,EAAE,MAAM;CACnC;CACA;CACA;AACJ,CAAC;AAED,MAAM,oBAAoB,EAAE,MAAM;CAC9B;CACA;CACA;AACJ,CAAC;AAED,MAAa,0BAA0B,EAAE,MAAM;CAC3C;CACA;CACA;AACJ,CAAC;AAED,MAAM,UAAU;AAChB,MAAM,mCAAiF;CACnF,MAAM,KAAA;CACN,OAAO,KAAA;AACX;AAEA,SAAS,sBACL,QACA,UACiD;CACjD,OAAO,2BAA2B,QAAQ,UAAU,+BAA+B;AACvF;AAEA,SAAS,iBACL,QACA,UAC4C;CAC5C,OAAO,mBAAmB,QAAQ,UAAU;EACxC,WAAW;EACX,WAAW;EACX,SAAS;EACT,QAAQ;CACZ,CAAC;AACL;AAEA,SAAgB,uBACZ,QACA,UACmC;CACnC,OAAO,mBAAmB,QAAQ,UAAU;EACxC,WAAW;EACX,WAAW;EACX,SAAS;EACT,QAAQ;CACZ,CAAC;AACL;AAEA,SAAS,8BAA8B,QAAmB;CACtD,OAAO,EAAE,KACL,EAAE,aAAa;EACX,kBAAkB;EAClB,aAAa,EAAE,SAAS,iBAAiB;EACzC,iBAAiB,EAAE,SAAS,wBAAwB;CACxD,CAAC,GACD,EAAE,WAAW,WAAW;EACpB,kBAAkB,sBAAsB,QAAQ,MAAM,gBAAgB;EACtE,aAAa,MAAM,cACb,iBAAiB,QAAQ,MAAM,WAAW,IAC1C;EACN,sBACI,MAAM,oBAAoB,KAAA,IACpB,KACA,6BACI,gCACA,MAAM,iBACN,OAAO,MAAM,CACjB;CACd,EAAE,CACN;AACJ;AAEA,SAAS,kCAAkC,QAAmB;CAC1D,MAAM,wBAAwB,2BAA2B,QAAQ,YAAY;CAC7E,MAAM,sBAAsB,2BAA2B,QAAQ,UAAU;CACzE,MAAM,0BAA0B,8BAA8B,MAAM;CACpE,MAAM,yBAAyB,EAAE,SAC7B,EAAE,QAAQ,OAAO,kDAAkD,CACvE;CACA,OAAO,EAAE,MAAM;EACX,EAAE,aAAa;GACX,YAAY;GACZ,UAAU;GACV,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;GAClC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC/B,CAAC;EACD,EAAE,aAAa;GACX,YAAY;GACZ,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;GAC9B,cAAc;GACd,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC/B,CAAC;EACD,EAAE,aAAa;GACX,YAAY;GACZ,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;GAC9B,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;GAClC,KAAK;EACT,CAAC;EACD,EAAE,aAAa;GACX,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;GAChC,UAAU;GACV,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;GAClC,KAAK;EACT,CAAC;EACD,EAAE,aAAa;GACX,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;GAChC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;GAC9B,cAAc;GACd,KAAK;EACT,CAAC;CACL,CAAC;AACL;AAIA,SAAS,yBAAyB,OAA8B;CAC5D,MAAM,UAAU,MAAM,WACf;EAAE,MAAM;EAAY,OAAO,MAAM;CAAS,IAC3C,MAAM,eACH;EAAE,MAAM;EAAgB,OAAO,MAAM;CAAa,IAClD;EAAE,MAAM,KAAA;EAAW,OAAO,KAAA;CAAU;CAC7C,OAAO;EACH,YAAY,MAAM;EAClB;EACA,KAAK,MAAM,OAAO;CACtB;AACJ;AAEA,SAAgB,4BAA4B,QAAmB;CAC3D,OAAO,EAAE,KACL,EAAE,SAAS,kCAAkC,MAAM,CAAC,GACpD,EAAE,WAAW,UAAW,QAAQ,yBAAyB,KAAK,IAAI,KAAA,CAAU,CAChF;AACJ;AAEA,SAAgB,oCAAoC,QAAmB;CACnE,OAAO,EAAE,KACL,kCAAkC,MAAM,GACxC,EAAE,WAAW,UAAU,yBAAyB,KAAK,CAAC,CAC1D;AACJ;AAgBA,MAAM,0BAA0B,EAAE,OAAO,EACrC,WAAW,EAAE,QAAQ,QAAQ,CACzB,EAAE,OAAO;CACL,MAAM,EAAE,QAAQ,WAAW;CAC3B,OAAO,EAAE,OAAO,CAAC,CAAC;AACtB,CAAC,GACD,EAAE,OAAO;CACL,MAAM,EAAE,QAAQ,UAAU;CAC1B,OAAO,EAAE,OAAO,EACZ,YAAY,EAAE,OAAO,EACzB,CAAC;AACL,CAAC,CACL,CAAC,EACL,CAAC;AAED,MAAM,6BAA6B,EAAE,OAAO;CACxC,mBAAmB,EAAE,OAAO;CAC5B,OAAO;AACX,CAAC;AAED,MAAM,2BAA2B,EAAE,OAAO;CACtC,mBAAmB,EAAE,OAAO;CAC5B,OAAO;AACX,CAAC;AAED,MAAM,+BAA+B,EAAE,OAAO;CAC1C,kBAAkB,EAAE,OAAO;EACvB,MAAM,EAAE,SACJ,EAAE,MAAM;GACJ,EAAE,QAAQ,uBAAuB;GACjC,EAAE,QAAQ,qBAAqB;GAC/B,EAAE,UAAU;EAChB,CAAC,CACL;EACA,OAAO,EAAE,SAAS,EAAE,MAAM;GAAC,EAAE,OAAO;GAAG,EAAE,OAAO;GAAG,EAAE,UAAU;EAAC,CAAC,CAAC;CACtE,CAAC;CACD,aAAa,EAAE,OAAO;EAClB,MAAM,EAAE,MAAM;GAAC,EAAE,QAAQ,kBAAkB;GAAG,EAAE,QAAQ,gBAAgB;GAAG,EAAE,UAAU;EAAC,CAAC;EACzF,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;CAC1D,CAAC;CACD,sBAAsB,EAAE,OAAO;AACnC,CAAC;AAED,MAAM,mCAAmC,EAAE,OAAO,EAC9C,QAAQ,EAAE,SAAS,0BAA0B,EACjD,CAAC;AAED,MAAM,iCAAiC,EAAE,OAAO,EAC5C,QAAQ,EAAE,SAAS,wBAAwB,EAC/C,CAAC;AAED,MAAM,qCAAqC,EAAE,OAAO,EAChD,QAAQ,EAAE,SAAS,4BAA4B,EACnD,CAAC;AAED,MAAa,yBAAyB,EAAE,OAAO;CAC3C,YAAY,EAAE,SAAS,gCAAgC;CACvD,UAAU,EAAE,SAAS,8BAA8B;CACnD,cAAc,EAAE,SAAS,kCAAkC;CAC3D,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AACtC,CAAC;AAED,SAAS,oBACL,QACA,OACF;CACE,IAAI,MAAM,UAAU,SAAS,aACzB,OAAO,EAAE,MAAM,aAAa;CAEhC,OAAO;EACH,MAAM;EACN,OAAO,sBAAsB,MAAM,UAAU,MAAM,YAAY,OAAO,MAAM,CAAC;CACjF;AACJ;AAEA,SAAS,cACL,QACA,KAGF;CACE,OAAO;EACH,cAAc,sBAAsB,IAAI,mBAAmB,OAAO,MAAM,CAAC;EACzE,WAAW,oBAAoB,QAAQ,IAAI,KAAK;CACpD;AACJ;AAEA,SAAS,uBACL,QACA,UACgB;CAChB,IAAI,SAAS,SAAS,2BAA2B,OAAO,SAAS,UAAU,UACvE,OAAO;EACH,MAAM;EACN,UAAU,sBAAsB,SAAS,OAAO,OAAO,MAAM,CAAC;CAClE;CAEJ,IAAI,SAAS,SAAS,yBAAyB,OAAO,SAAS,UAAU,UACrE,OAAO;EAAE,MAAM;EAAO,KAAK,SAAS;CAAM;CAE9C,OAAO,EAAE,MAAM,OAAO;AAC1B;AAEA,SAAS,0BACL,QACA,UAC+B;CAC/B,IAAI,SAAS,SAAS,sBAAsB,OAAO,SAAS,UAAU,UAClE,OAAO;EACH,MAAM;EACN,UAAU,sBAAsB,OAAO,SAAS,KAAK,GAAG,OAAO,MAAM,CAAC;CAC1E;CAEJ,IAAI,SAAS,SAAS,oBAAoB,OAAO,SAAS,UAAU,UAChE,OAAO;EAAE,MAAM;EAAO,KAAK,SAAS;CAAM;AAGlD;AAEA,SAAgB,wBACZ,QACA,OACA,KAC6B;CAC7B,IAAI,QAAQ,GACR,OAAO;EAAE,MAAM;EAAY,UAAU,sBAAsB,OAAO,KAAK,GAAG,OAAO,MAAM,CAAC;CAAE;CAE9F,IAAI,MAAM,GACN,OAAO;EAAE,MAAM;EAAO;CAAI;AAGlC;AAEA,SAAgB,mBACZ,QACA,MACF;CACE,IAAI,CAAC,MAAM,OAAO,KAAA;CAElB,MAAM,aAAa,KAAK,YAAY,SAC9B,cAAc,QAAQ,KAAK,WAAW,MAAM,IAC5C,KAAA;CACN,MAAM,WAAW,KAAK,UAAU,SAC1B,cAAc,QAAQ,KAAK,SAAS,MAAM,IAC1C,KAAA;CACN,MAAM,eAAe,KAAK,cAAc,SAClC;EACI,kBAAkB,uBACd,QACA,KAAK,aAAa,OAAO,gBAC7B;EACA,aAAa,0BAA0B,QAAQ,KAAK,aAAa,OAAO,WAAW;EACnF,iBACI,KAAK,aAAa,OAAO,uBAAuB,KAC1C,sBACI,KAAK,aAAa,OAAO,sBACzB,OAAO,MAAM,CACjB,IACA,KAAA;CACd,IACA,KAAA;CAEN,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,OAAO,KAAA;CAItD,OAAO;EACH;EACA,UAJsB,eAAe,KAAA,IAAY;EAKjD;EACA,KAAK,KAAK;CACd;AACJ"}
|
|
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;
|
|
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;;;;
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
242
|
-
|
|
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?.(),
|