@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
@@ -783,14 +783,33 @@ declare function createCreateTriggerInputSchema(scales: SdkScales): v.UnionSchem
783
783
  selfTradePreventionMode: SelfTradePreventionMode.EXPIRE_MAKER | SelfTradePreventionMode.EXPIRE_TAKER | SelfTradePreventionMode.EXPIRE_BOTH;
784
784
  clientTriggerId: string;
785
785
  };
786
- }>]>], undefined>;
786
+ }>, v.CheckAction<{
787
+ subaccountId: bigint | undefined;
788
+ trigger: {
789
+ strategy: {
790
+ readonly case: "ladder";
791
+ readonly value: {
792
+ readonly side: Side.BUY | Side.SELL;
793
+ readonly priceMinTicks: bigint;
794
+ readonly priceMaxTicks: bigint;
795
+ readonly levels: number;
796
+ readonly postOnly: boolean;
797
+ };
798
+ };
799
+ symbolId: number;
800
+ qtyScaled: bigint;
801
+ feeAsset: FeeAsset.QUOTE | FeeAsset.BASE;
802
+ selfTradePreventionMode: SelfTradePreventionMode.EXPIRE_MAKER | SelfTradePreventionMode.EXPIRE_TAKER | SelfTradePreventionMode.EXPIRE_BOTH;
803
+ clientTriggerId: string;
804
+ };
805
+ }, "priceMin must be less than priceMax">]>], undefined>;
787
806
  /** Public input for creating a standalone trigger. */
788
807
  type CreateTriggerInput = v.InferInput<ReturnType<typeof createCreateTriggerInputSchema>>;
789
808
  /** Public filters for listing triggers in an account scope. */
790
809
  declare const ListTriggersInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
791
810
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
792
811
  readonly symbolId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>, undefined>;
793
- readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["created", "armed", "running", "completed", "cancelled", "failed", "paused"], undefined>, undefined>, undefined>, v.TransformAction<("failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused")[] | undefined, (TriggerStatus.STATUS_CREATED | TriggerStatus.STATUS_ARMED | TriggerStatus.STATUS_RUNNING | TriggerStatus.STATUS_COMPLETED | TriggerStatus.STATUS_CANCELED | TriggerStatus.STATUS_FAILED | TriggerStatus.STATUS_PAUSED)[]>]>;
812
+ readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["created", "armed", "running", "completed", "cancelled", "failed", "paused"], undefined>, undefined>, undefined>, v.TransformAction<("completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused")[] | undefined, (TriggerStatus.STATUS_CREATED | TriggerStatus.STATUS_ARMED | TriggerStatus.STATUS_RUNNING | TriggerStatus.STATUS_COMPLETED | TriggerStatus.STATUS_CANCELED | TriggerStatus.STATUS_FAILED | TriggerStatus.STATUS_PAUSED)[]>]>;
794
813
  readonly triggerType: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["stop_loss", "take_profit", "trailing_stop", "twap", "ladder"], undefined>, undefined>, v.TransformAction<"twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop" | undefined, TriggerType>]>;
795
814
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>]>, 50>;
796
815
  readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, "">;
@@ -899,8 +918,6 @@ declare function createModifyTriggerInputSchema(scales: SdkScales): v.SchemaWith
899
918
  }, undefined>, v.StrictObjectSchema<{
900
919
  readonly kind: v.LiteralSchema<"bps", undefined>;
901
920
  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>;
902
- }, undefined>, v.StrictObjectSchema<{
903
- readonly kind: v.LiteralSchema<"none", undefined>;
904
921
  }, undefined>], undefined>, undefined>;
905
922
  readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
906
923
  readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
@@ -924,8 +941,6 @@ declare function createModifyTriggerInputSchema(scales: SdkScales): v.SchemaWith
924
941
  } | {
925
942
  kind: "slippage";
926
943
  slippage: string;
927
- } | {
928
- kind: "none";
929
944
  } | undefined;
930
945
  account?: "active" | "main" | {
931
946
  subaccountId: string;
@@ -949,8 +964,6 @@ declare function createModifyTriggerInputSchema(scales: SdkScales): v.SchemaWith
949
964
  } | {
950
965
  kind: "slippage";
951
966
  slippage: string;
952
- } | {
953
- kind: "none";
954
967
  } | undefined;
955
968
  account?: "active" | "main" | {
956
969
  subaccountId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-input.schemas.d.ts","names":[],"sources":["../../../src/services/triggers/trigger-input.schemas.ts"],"mappings":";;;;;;iBA0VgB,+BAA+B,QAAQ,YAAS,EAAA,aAAA,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAWpD,qBAAqB,EAAE,WAAW,kBAAkB;;cAGnD,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCxB,oBAAoB,EAAE,kBAAkB;cAEvC,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACzB,qBAAqB,EAAE,kBAAkB;cAExC,uBAAqB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACtB,kBAAkB,EAAE,kBAAkB;cAErC,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACxB,oBAAoB,EAAE,kBAAkB;cAEvC,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;KAUzB,qBAAqB,EAAE,kBAAkB;iBAErC,+BAA+B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwDpD,qBAAqB,EAAE,WAAW,kBAAkB;cAEnD,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAiB7B,yBAAyB,EAAE,kBAAkB"}
1
+ {"version":3,"file":"trigger-input.schemas.d.ts","names":[],"sources":["../../../src/services/triggers/trigger-input.schemas.ts"],"mappings":";;;;;;iBA4UgB,+BAA+B,QAAQ,YAAS,EAAA,aAAA,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAWpD,qBAAqB,EAAE,WAAW,kBAAkB;;cAGnD,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCxB,oBAAoB,EAAE,kBAAkB;cAEvC,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACzB,qBAAqB,EAAE,kBAAkB;cAExC,uBAAqB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACtB,kBAAkB,EAAE,kBAAkB;cAErC,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACxB,oBAAoB,EAAE,kBAAkB;cAEvC,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;KAUzB,qBAAqB,EAAE,kBAAkB;iBAErC,+BAA+B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwDpD,qBAAqB,EAAE,WAAW,kBAAkB;cAEnD,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAiB7B,yBAAyB,EAAE,kBAAkB"}
@@ -1,13 +1,13 @@
1
1
  import "../../gen/orders/v1/orders_pb.js";
2
2
  import { idToBigInt } from "../../utils/base58-id.js";
3
- import { parseOptionalPositiveIntLike } from "../../utils/numbers.js";
3
+ import { parseOptionalPositiveBigIntLike, parseOptionalPositiveIntLike } from "../../utils/numbers.js";
4
4
  import { idInputSchema } from "../../shared/schemas.js";
5
- import "../../shared/wire-bounds.js";
5
+ import { PROTOBUF_INT32_MAX, PROTOBUF_INT64_MAX } from "../../shared/wire-bounds.js";
6
6
  import { BpsStringOrNumberInputSchema, NoneInputSchema, SymbolIdInputSchema } from "../shared.js";
7
7
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
8
- import { CatalogConversionError } from "../../catalogs/types.js";
9
8
  import { positiveDecimalInputToScaled } from "../../shared/decimal-surface.js";
10
9
  import { OrderSideCodec } from "../orders/order-enums.codecs.js";
10
+ import { parseSlippageInput, parseTrailingDistanceInput } from "../trailing-oneof-inputs.js";
11
11
  import "../../gen/triggers/v1/triggers_pb.js";
12
12
  import { TRIGGER_EVENT_TYPE_VALUES, TRIGGER_STATUS_FILTER_VALUES, TRIGGER_TYPE_VALUES, TriggerEventTypeCodec, TriggerStatusCodec, TriggerTypeCodec } from "./triggers.codecs.js";
13
13
  import { BaseTriggerFieldsSchema, ConditionalExecutionInputSchema, DecimalInputStringSchema, LimitConditionalExecutionInputSchema, TriggerSideInputSchema, TwapExecutionInputSchema, buildConditionalExecution, buildTriggerIntentBase, buildTwapExecution } from "./trigger-child-order.schemas.js";
@@ -40,37 +40,22 @@ const MaxSlippageInputSchema = v.union([
40
40
  BpsStringOrNumberInputSchema,
41
41
  NoneInputSchema
42
42
  ]);
43
+ const MaxSlippagePatchInputSchema = v.union([PriceSlippageInputSchema, BpsStringOrNumberInputSchema]);
43
44
  function parseTrailingDistance(scales, distance) {
44
- if (distance.kind === "distance") return {
45
- case: "trailingDistanceTicks",
46
- value: positiveDecimalInputToScaled("trailingDistance.distance", distance.distance, scales.price())
47
- };
48
- const bps = parseOptionalPositiveIntLike(distance.bps);
49
- if (bps === void 0 || bps <= 0) throw new Error("trailingDistanceBps must be a positive integer");
50
- return {
51
- case: "trailingDistanceBps",
52
- value: bps
53
- };
45
+ return parseTrailingDistanceInput(scales, distance, "trailingDistance");
46
+ }
47
+ function parseTwapMilliseconds(value, fieldName, minimum) {
48
+ const parsed = parseOptionalPositiveBigIntLike(value);
49
+ if (parsed === void 0 || parsed < minimum || parsed > 9223372036854775807n) throw new Error(`${fieldName} must be between ${minimum} and ${PROTOBUF_INT64_MAX} milliseconds`);
50
+ return parsed;
54
51
  }
55
52
  function parseMaxSlippage(scales, slippage) {
56
- if (!slippage || slippage.kind === "none") return {
57
- case: void 0,
58
- value: void 0
59
- };
60
- if (slippage.kind === "slippage") {
61
- const ticks = positiveDecimalInputToScaled("maxSlippage.slippage", slippage.slippage, scales.price());
62
- if (ticks > 2147483647n) throw new CatalogConversionError("maxSlippage.slippage", `maxSlippage.slippage exceeds the maximum supported price distance: ${slippage.slippage}`);
63
- return {
64
- case: "maxSlippageTicks",
65
- value: Number(ticks)
66
- };
67
- }
68
- const bps = parseOptionalPositiveIntLike(slippage.bps);
69
- if (bps === void 0 || bps <= 0) throw new Error("maxSlippageBps must be a positive integer");
70
- return {
71
- case: "maxSlippageBps",
72
- value: bps
73
- };
53
+ return parseSlippageInput(scales, slippage, {
54
+ fieldName: "maxSlippage",
55
+ ticksCase: "maxSlippageTicks",
56
+ bpsCase: "maxSlippageBps",
57
+ maxBps: Number(PROTOBUF_INT32_MAX)
58
+ });
74
59
  }
75
60
  function createConditionalTriggerInputSchema(scales, triggerType) {
76
61
  const sharedEntries = {
@@ -142,16 +127,8 @@ function createTwapTriggerInputSchema(scales) {
142
127
  ...BaseTriggerFieldsSchema.entries,
143
128
  triggerType: v.literal("twap"),
144
129
  side: TriggerSideInputSchema,
145
- durationMs: v.pipe(v.union([v.pipe(v.string(), v.trim()), v.number()]), v.transform((value) => {
146
- const durationMs = parseOptionalPositiveIntLike(value);
147
- if (!durationMs || durationMs < 1e3) throw new Error("durationMs must be at least 1000ms");
148
- return BigInt(durationMs);
149
- })),
150
- sliceIntervalMs: v.pipe(v.union([v.pipe(v.string(), v.trim()), v.number()]), v.transform((value) => {
151
- const sliceIntervalMs = parseOptionalPositiveIntLike(value);
152
- if (!sliceIntervalMs || sliceIntervalMs < 100) throw new Error("sliceIntervalMs must be at least 100ms");
153
- return BigInt(sliceIntervalMs);
154
- })),
130
+ durationMs: v.pipe(v.union([v.pipe(v.string(), v.trim()), v.number()]), v.transform((value) => parseTwapMilliseconds(value, "durationMs", 1000n))),
131
+ sliceIntervalMs: v.pipe(v.union([v.pipe(v.string(), v.trim()), v.number()]), v.transform((value) => parseTwapMilliseconds(value, "sliceIntervalMs", 100n))),
155
132
  execution: TwapExecutionInputSchema
156
133
  }), v.check((input) => input.side !== 2 || input.feeAsset === 1, "SELL triggers must use the quote fee asset"), v.check((input) => input.sliceIntervalMs <= input.durationMs, "sliceIntervalMs cannot exceed durationMs"), v.transform((input) => {
157
134
  const { subaccountId, intent } = buildTriggerIntentBase(input, scales);
@@ -203,7 +180,7 @@ function createLadderTriggerInputSchema(scales) {
203
180
  }
204
181
  }
205
182
  };
206
- }));
183
+ }), v.check((output) => output.trigger.strategy.value.priceMinTicks < output.trigger.strategy.value.priceMaxTicks, "priceMin must be less than priceMax"));
207
184
  }
208
185
  /** Builds the create-trigger boundary schema using catalog scales keyed by symbol ID. */
209
186
  function createCreateTriggerInputSchema(scales) {
@@ -246,7 +223,7 @@ function createModifyTriggerInputSchema(scales) {
246
223
  limitPrice: v.optional(DecimalInputStringSchema),
247
224
  trailingDistance: v.optional(TrailingDistanceInputSchema),
248
225
  activationPrice: v.optional(DecimalInputStringSchema),
249
- maxSlippage: v.optional(MaxSlippageInputSchema)
226
+ maxSlippage: v.optional(MaxSlippagePatchInputSchema)
250
227
  }), v.check((input) => input.triggerPrice !== void 0 || input.limitPrice !== void 0 || input.trailingDistance !== void 0 || input.activationPrice !== void 0 || input.maxSlippage !== void 0, "At least one patch field is required"), v.transform(({ account, ...input }) => ({
251
228
  triggerId: input.triggerId,
252
229
  subaccountId: accountScopeToSubaccountId(account),
@@ -1 +1 @@
1
- {"version":3,"file":"trigger-input.schemas.js","names":["TriggerSideCodec"],"sources":["../../../src/services/triggers/trigger-input.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport { idInputSchema } from \"../../shared/schemas.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { positiveDecimalInputToScaled, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { CatalogConversionError } from \"../../catalogs/types.js\";\nimport { PROTOBUF_INT32_MAX } from \"../../shared/wire-bounds.js\";\nimport { parseOptionalPositiveIntLike } from \"../../utils/numbers.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n TRIGGER_EVENT_TYPE_VALUES,\n TRIGGER_STATUS_FILTER_VALUES,\n TRIGGER_TYPE_VALUES,\n TriggerEventTypeCodec,\n TriggerSideCodec,\n TriggerTypeCodec,\n TriggerStatusCodec,\n} from \"./triggers.codecs.js\";\nimport { BpsStringOrNumberInputSchema, NoneInputSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport {\n BaseTriggerFieldsSchema,\n ConditionalExecutionInputSchema,\n DecimalInputStringSchema,\n LimitConditionalExecutionInputSchema,\n TriggerSideInputSchema,\n TwapExecutionInputSchema,\n buildConditionalExecution,\n buildTriggerIntentBase,\n buildTwapExecution,\n type MaxSlippageOneof,\n type TrailingDistanceOneof,\n} from \"./trigger-child-order.schemas.js\";\n\nconst TriggerTypeSchema = v.picklist(TRIGGER_TYPE_VALUES);\nconst TriggerStatusFilterSchema = v.picklist(TRIGGER_STATUS_FILTER_VALUES);\nconst TriggerEventTypeSchema = v.picklist(TRIGGER_EVENT_TYPE_VALUES);\nconst TriggerIdInputSchema = idInputSchema(\"triggerId\");\n\nconst TriggerScopedInputEntries = {\n triggerId: TriggerIdInputSchema,\n ...AccountScopeInputEntries,\n};\n\nconst TriggerScopedInputSchema = v.pipe(\n v.strictObject(TriggerScopedInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\n/** Absolute price distance, as a decimal price string (e.g. \"0.50\"). */\nconst PriceDistanceInputSchema = v.strictObject({\n kind: v.literal(\"distance\"),\n distance: DecimalInputStringSchema,\n});\n\n/** Absolute price slippage, as a decimal price string (e.g. \"0.25\"). */\nconst PriceSlippageInputSchema = v.strictObject({\n kind: v.literal(\"slippage\"),\n slippage: DecimalInputStringSchema,\n});\n\nconst TrailingDistanceInputSchema = v.union([\n PriceDistanceInputSchema,\n BpsStringOrNumberInputSchema,\n]);\n\nconst MaxSlippageInputSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nfunction parseTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof TrailingDistanceInputSchema>,\n): TrailingDistanceOneof {\n if (distance.kind === \"distance\") {\n return {\n case: \"trailingDistanceTicks\",\n value: positiveDecimalInputToScaled(\n \"trailingDistance.distance\",\n distance.distance,\n scales.price(),\n ),\n };\n }\n const bps = parseOptionalPositiveIntLike(distance.bps);\n if (bps === undefined || bps <= 0) {\n throw new Error(\"trailingDistanceBps must be a positive integer\");\n }\n return { case: \"trailingDistanceBps\", value: bps };\n}\n\nfunction parseMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MaxSlippageInputSchema> | undefined,\n): MaxSlippageOneof {\n if (!slippage || slippage.kind === \"none\") {\n return { case: undefined, value: undefined };\n }\n if (slippage.kind === \"slippage\") {\n const ticks = positiveDecimalInputToScaled(\n \"maxSlippage.slippage\",\n slippage.slippage,\n scales.price(),\n );\n if (ticks > PROTOBUF_INT32_MAX) {\n throw new CatalogConversionError(\n \"maxSlippage.slippage\",\n `maxSlippage.slippage exceeds the maximum supported price distance: ${slippage.slippage}`,\n );\n }\n return { case: \"maxSlippageTicks\", value: Number(ticks) };\n }\n const bps = parseOptionalPositiveIntLike(slippage.bps);\n if (bps === undefined || bps <= 0) {\n throw new Error(\"maxSlippageBps must be a positive integer\");\n }\n return { case: \"maxSlippageBps\", value: bps };\n}\n\nfunction createConditionalTriggerInputSchema<const TriggerType extends \"stop_loss\" | \"take_profit\">(\n scales: SdkScales,\n triggerType: TriggerType,\n) {\n const sharedEntries = {\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(triggerType),\n triggerPrice: DecimalInputStringSchema,\n };\n\n const sellInputSchema = v.strictObject({\n ...sharedEntries,\n side: v.literal(\"sell\"),\n execution: ConditionalExecutionInputSchema,\n });\n const buyInputSchema = v.strictObject({\n ...sharedEntries,\n side: v.literal(\"buy\"),\n execution: LimitConditionalExecutionInputSchema,\n });\n\n function transformInput(\n input: v.InferOutput<typeof sellInputSchema> | v.InferOutput<typeof buyInputSchema>,\n ) {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n const strategy = {\n triggerPriceTicks: positiveDecimalInputToScaled(\n \"triggerPrice\",\n input.triggerPrice,\n scales.price(),\n ),\n side: TriggerSideCodec.inputToProto[input.side],\n child: buildConditionalExecution(input.execution, scales),\n };\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy:\n triggerType === \"stop_loss\"\n ? ({ case: \"stopLoss\", value: strategy } as const)\n : ({ case: \"takeProfit\", value: strategy } as const),\n },\n };\n }\n\n return [\n v.pipe(\n sellInputSchema,\n v.check(\n (input) => input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.transform((input: v.InferOutput<typeof sellInputSchema>) => transformInput(input)),\n ),\n v.pipe(\n buyInputSchema,\n v.transform((input: v.InferOutput<typeof buyInputSchema>) => transformInput(input)),\n ),\n ] as const;\n}\n\nfunction createTrailingStopTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"trailing_stop\"),\n trailingDistance: TrailingDistanceInputSchema,\n activationPrice: v.optional(DecimalInputStringSchema),\n maxSlippage: v.optional(MaxSlippageInputSchema),\n }),\n v.check(\n (input) => input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"Trailing-stop triggers must use the quote fee asset\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"trailingStop\",\n value: {\n trailingDistance: parseTrailingDistance(scales, input.trailingDistance),\n activationPriceTicks:\n input.activationPrice === undefined\n ? 0n\n : positiveDecimalInputToScaled(\n \"activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n maxSlippage: parseMaxSlippage(scales, input.maxSlippage),\n side: ProtoOrders.Side.SELL,\n },\n } as const,\n },\n };\n }),\n );\n}\n\nfunction createTwapTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"twap\"),\n side: TriggerSideInputSchema,\n durationMs: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.number()]),\n v.transform((value) => {\n const durationMs = parseOptionalPositiveIntLike(value);\n if (!durationMs || durationMs < 1000) {\n throw new Error(\"durationMs must be at least 1000ms\");\n }\n return BigInt(durationMs);\n }),\n ),\n sliceIntervalMs: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.number()]),\n v.transform((value) => {\n const sliceIntervalMs = parseOptionalPositiveIntLike(value);\n if (!sliceIntervalMs || sliceIntervalMs < 100) {\n throw new Error(\"sliceIntervalMs must be at least 100ms\");\n }\n return BigInt(sliceIntervalMs);\n }),\n ),\n execution: TwapExecutionInputSchema,\n }),\n v.check(\n (input) =>\n input.side !== ProtoOrders.Side.SELL ||\n input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.check(\n (input) => input.sliceIntervalMs <= input.durationMs,\n \"sliceIntervalMs cannot exceed durationMs\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"twap\",\n value: {\n side: input.side,\n durationMs: input.durationMs,\n sliceIntervalMs: input.sliceIntervalMs,\n execution: buildTwapExecution(input.execution, scales),\n },\n } as const,\n },\n };\n }),\n );\n}\n\nfunction createLadderTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"ladder\"),\n side: TriggerSideInputSchema,\n priceMin: DecimalInputStringSchema,\n priceMax: DecimalInputStringSchema,\n levels: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.pipe(v.number(), v.integer())]),\n v.transform((value) => {\n const levels = parseOptionalPositiveIntLike(value);\n if (!levels || levels < 2 || levels > 100) {\n throw new Error(\"levels must be between 2 and 100\");\n }\n return levels;\n }),\n ),\n postOnly: v.optional(v.boolean(), false),\n }),\n v.check(\n (input) =>\n input.side !== ProtoOrders.Side.SELL ||\n input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"ladder\",\n value: {\n side: input.side,\n priceMinTicks: positiveDecimalInputToScaled(\n \"priceMin\",\n input.priceMin,\n scales.price(),\n ),\n priceMaxTicks: positiveDecimalInputToScaled(\n \"priceMax\",\n input.priceMax,\n scales.price(),\n ),\n levels: input.levels,\n postOnly: input.postOnly,\n },\n } as const,\n },\n };\n }),\n );\n}\n\n/** Builds the create-trigger boundary schema using catalog scales keyed by symbol ID. */\nexport function createCreateTriggerInputSchema(scales: SdkScales) {\n return v.union([\n ...createConditionalTriggerInputSchema(scales, \"stop_loss\"),\n ...createConditionalTriggerInputSchema(scales, \"take_profit\"),\n createTrailingStopTriggerInputSchema(scales),\n createTwapTriggerInputSchema(scales),\n createLadderTriggerInputSchema(scales),\n ]);\n}\n\n/** Public input for creating a standalone trigger. */\nexport type CreateTriggerInput = v.InferInput<ReturnType<typeof createCreateTriggerInputSchema>>;\n\n/** Public filters for listing triggers in an account scope. */\nexport const ListTriggersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n parentOrderId: v.pipe(\n v.optional(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"parentOrderId\") : undefined)),\n ),\n symbolId: v.optional(SymbolIdInputSchema),\n status: v.pipe(\n v.optional(v.array(TriggerStatusFilterSchema)),\n v.transform(\n (values) => values?.map((value) => TriggerStatusCodec.inputToProto[value]) ?? [],\n ),\n ),\n triggerType: v.pipe(\n v.optional(TriggerTypeSchema),\n v.transform((value) =>\n value\n ? TriggerTypeCodec.inputToProto[value]\n : Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED,\n ),\n ),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(1000)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\n/** Public filters for listing triggers. */\nexport type ListTriggersInput = v.InferInput<typeof ListTriggersInputSchema>;\n\nexport const CancelTriggerInputSchema = TriggerScopedInputSchema;\nexport type CancelTriggerInput = v.InferInput<typeof CancelTriggerInputSchema>;\n\nexport const GetTriggerInputSchema = CancelTriggerInputSchema;\nexport type GetTriggerInput = v.InferInput<typeof GetTriggerInputSchema>;\n\nexport const PauseTriggerInputSchema = TriggerScopedInputSchema;\nexport type PauseTriggerInput = v.InferInput<typeof PauseTriggerInputSchema>;\n\nexport const ResumeTriggerInputSchema = v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n symbolId: SymbolIdInputSchema,\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\nexport type ResumeTriggerInput = v.InferInput<typeof ResumeTriggerInputSchema>;\n\nexport function createModifyTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n symbolId: SymbolIdInputSchema,\n triggerPrice: v.optional(DecimalInputStringSchema),\n limitPrice: v.optional(DecimalInputStringSchema),\n trailingDistance: v.optional(TrailingDistanceInputSchema),\n activationPrice: v.optional(DecimalInputStringSchema),\n maxSlippage: v.optional(MaxSlippageInputSchema),\n }),\n v.check(\n (input) =>\n input.triggerPrice !== undefined ||\n input.limitPrice !== undefined ||\n input.trailingDistance !== undefined ||\n input.activationPrice !== undefined ||\n input.maxSlippage !== undefined,\n \"At least one patch field is required\",\n ),\n v.transform(({ account, ...input }) => ({\n triggerId: input.triggerId,\n subaccountId: accountScopeToSubaccountId(account),\n symbolId: input.symbolId,\n triggerPriceTicks:\n input.triggerPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"triggerPrice\",\n input.triggerPrice,\n scales.price(),\n ),\n limitPriceTicks:\n input.limitPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\"limitPrice\", input.limitPrice, scales.price()),\n trailingDistance:\n input.trailingDistance === undefined\n ? ({ case: undefined, value: undefined } as const)\n : parseTrailingDistance(scales, input.trailingDistance),\n activationPriceTicks:\n input.activationPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n maxSlippage:\n input.maxSlippage === undefined\n ? ({ case: undefined, value: undefined } as const)\n : parseMaxSlippage(scales, input.maxSlippage),\n })),\n );\n}\n\nexport type ModifyTriggerInput = v.InferInput<ReturnType<typeof createModifyTriggerInputSchema>>;\n\nexport const ListTriggerEventsInputSchema = v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(1000))),\n eventType: v.optional(TriggerEventTypeSchema),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n eventType:\n input.eventType === undefined\n ? undefined\n : TriggerEventTypeCodec.inputToProto[input.eventType],\n })),\n);\n\nexport type ListTriggerEventsInput = v.InferInput<typeof ListTriggerEventsInputSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"trigger-input.schemas.js","names":["TriggerSideCodec"],"sources":["../../../src/services/triggers/trigger-input.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport { idInputSchema } from \"../../shared/schemas.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { positiveDecimalInputToScaled, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { PROTOBUF_INT32_MAX, PROTOBUF_INT64_MAX } from \"../../shared/wire-bounds.js\";\nimport {\n parseOptionalPositiveBigIntLike,\n parseOptionalPositiveIntLike,\n} from \"../../utils/numbers.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\nimport {\n TRIGGER_EVENT_TYPE_VALUES,\n TRIGGER_STATUS_FILTER_VALUES,\n TRIGGER_TYPE_VALUES,\n TriggerEventTypeCodec,\n TriggerSideCodec,\n TriggerTypeCodec,\n TriggerStatusCodec,\n} from \"./triggers.codecs.js\";\nimport { BpsStringOrNumberInputSchema, NoneInputSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport {\n BaseTriggerFieldsSchema,\n ConditionalExecutionInputSchema,\n DecimalInputStringSchema,\n LimitConditionalExecutionInputSchema,\n TriggerSideInputSchema,\n TwapExecutionInputSchema,\n buildConditionalExecution,\n buildTriggerIntentBase,\n buildTwapExecution,\n type MaxSlippageOneof,\n type TrailingDistanceOneof,\n} from \"./trigger-child-order.schemas.js\";\nimport { parseSlippageInput, parseTrailingDistanceInput } from \"../trailing-oneof-inputs.js\";\n\nconst TriggerTypeSchema = v.picklist(TRIGGER_TYPE_VALUES);\nconst TriggerStatusFilterSchema = v.picklist(TRIGGER_STATUS_FILTER_VALUES);\nconst TriggerEventTypeSchema = v.picklist(TRIGGER_EVENT_TYPE_VALUES);\nconst TriggerIdInputSchema = idInputSchema(\"triggerId\");\n\nconst TriggerScopedInputEntries = {\n triggerId: TriggerIdInputSchema,\n ...AccountScopeInputEntries,\n};\n\nconst TriggerScopedInputSchema = v.pipe(\n v.strictObject(TriggerScopedInputEntries),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\n/** Absolute price distance, as a decimal price string (e.g. \"0.50\"). */\nconst PriceDistanceInputSchema = v.strictObject({\n kind: v.literal(\"distance\"),\n distance: DecimalInputStringSchema,\n});\n\n/** Absolute price slippage, as a decimal price string (e.g. \"0.25\"). */\nconst PriceSlippageInputSchema = v.strictObject({\n kind: v.literal(\"slippage\"),\n slippage: DecimalInputStringSchema,\n});\n\nconst TrailingDistanceInputSchema = v.union([\n PriceDistanceInputSchema,\n BpsStringOrNumberInputSchema,\n]);\n\nconst MaxSlippageInputSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n NoneInputSchema,\n]);\n\nconst MaxSlippagePatchInputSchema = v.union([\n PriceSlippageInputSchema,\n BpsStringOrNumberInputSchema,\n]);\n\nfunction parseTrailingDistance(\n scales: SdkScales,\n distance: v.InferOutput<typeof TrailingDistanceInputSchema>,\n): TrailingDistanceOneof {\n return parseTrailingDistanceInput(scales, distance, \"trailingDistance\");\n}\n\nfunction parseTwapMilliseconds(\n value: string | number,\n fieldName: \"durationMs\" | \"sliceIntervalMs\",\n minimum: bigint,\n): bigint {\n const parsed = parseOptionalPositiveBigIntLike(value);\n if (parsed === undefined || parsed < minimum || parsed > PROTOBUF_INT64_MAX) {\n throw new Error(\n `${fieldName} must be between ${minimum} and ${PROTOBUF_INT64_MAX} milliseconds`,\n );\n }\n return parsed;\n}\n\nfunction parseMaxSlippage(\n scales: SdkScales,\n slippage: v.InferOutput<typeof MaxSlippageInputSchema> | undefined,\n): MaxSlippageOneof {\n return parseSlippageInput(scales, slippage, {\n fieldName: \"maxSlippage\",\n ticksCase: \"maxSlippageTicks\",\n bpsCase: \"maxSlippageBps\",\n maxBps: Number(PROTOBUF_INT32_MAX),\n });\n}\n\nfunction createConditionalTriggerInputSchema<const TriggerType extends \"stop_loss\" | \"take_profit\">(\n scales: SdkScales,\n triggerType: TriggerType,\n) {\n const sharedEntries = {\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(triggerType),\n triggerPrice: DecimalInputStringSchema,\n };\n\n const sellInputSchema = v.strictObject({\n ...sharedEntries,\n side: v.literal(\"sell\"),\n execution: ConditionalExecutionInputSchema,\n });\n const buyInputSchema = v.strictObject({\n ...sharedEntries,\n side: v.literal(\"buy\"),\n execution: LimitConditionalExecutionInputSchema,\n });\n\n function transformInput(\n input: v.InferOutput<typeof sellInputSchema> | v.InferOutput<typeof buyInputSchema>,\n ) {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n const strategy = {\n triggerPriceTicks: positiveDecimalInputToScaled(\n \"triggerPrice\",\n input.triggerPrice,\n scales.price(),\n ),\n side: TriggerSideCodec.inputToProto[input.side],\n child: buildConditionalExecution(input.execution, scales),\n };\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy:\n triggerType === \"stop_loss\"\n ? ({ case: \"stopLoss\", value: strategy } as const)\n : ({ case: \"takeProfit\", value: strategy } as const),\n },\n };\n }\n\n return [\n v.pipe(\n sellInputSchema,\n v.check(\n (input) => input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.transform((input: v.InferOutput<typeof sellInputSchema>) => transformInput(input)),\n ),\n v.pipe(\n buyInputSchema,\n v.transform((input: v.InferOutput<typeof buyInputSchema>) => transformInput(input)),\n ),\n ] as const;\n}\n\nfunction createTrailingStopTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"trailing_stop\"),\n trailingDistance: TrailingDistanceInputSchema,\n activationPrice: v.optional(DecimalInputStringSchema),\n maxSlippage: v.optional(MaxSlippageInputSchema),\n }),\n v.check(\n (input) => input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"Trailing-stop triggers must use the quote fee asset\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"trailingStop\",\n value: {\n trailingDistance: parseTrailingDistance(scales, input.trailingDistance),\n activationPriceTicks:\n input.activationPrice === undefined\n ? 0n\n : positiveDecimalInputToScaled(\n \"activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n maxSlippage: parseMaxSlippage(scales, input.maxSlippage),\n side: ProtoOrders.Side.SELL,\n },\n } as const,\n },\n };\n }),\n );\n}\n\nfunction createTwapTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"twap\"),\n side: TriggerSideInputSchema,\n durationMs: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.number()]),\n v.transform((value) => parseTwapMilliseconds(value, \"durationMs\", 1_000n)),\n ),\n sliceIntervalMs: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.number()]),\n v.transform((value) => parseTwapMilliseconds(value, \"sliceIntervalMs\", 100n)),\n ),\n execution: TwapExecutionInputSchema,\n }),\n v.check(\n (input) =>\n input.side !== ProtoOrders.Side.SELL ||\n input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.check(\n (input) => input.sliceIntervalMs <= input.durationMs,\n \"sliceIntervalMs cannot exceed durationMs\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"twap\",\n value: {\n side: input.side,\n durationMs: input.durationMs,\n sliceIntervalMs: input.sliceIntervalMs,\n execution: buildTwapExecution(input.execution, scales),\n },\n } as const,\n },\n };\n }),\n );\n}\n\nfunction createLadderTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...BaseTriggerFieldsSchema.entries,\n triggerType: v.literal(\"ladder\"),\n side: TriggerSideInputSchema,\n priceMin: DecimalInputStringSchema,\n priceMax: DecimalInputStringSchema,\n levels: v.pipe(\n v.union([v.pipe(v.string(), v.trim()), v.pipe(v.number(), v.integer())]),\n v.transform((value) => {\n const levels = parseOptionalPositiveIntLike(value);\n if (!levels || levels < 2 || levels > 100) {\n throw new Error(\"levels must be between 2 and 100\");\n }\n return levels;\n }),\n ),\n postOnly: v.optional(v.boolean(), false),\n }),\n v.check(\n (input) =>\n input.side !== ProtoOrders.Side.SELL ||\n input.feeAsset === ProtoOrders.FeeAsset.QUOTE,\n \"SELL triggers must use the quote fee asset\",\n ),\n v.transform((input) => {\n const { subaccountId, intent } = buildTriggerIntentBase(input, scales);\n return {\n subaccountId,\n trigger: {\n ...intent,\n strategy: {\n case: \"ladder\",\n value: {\n side: input.side,\n priceMinTicks: positiveDecimalInputToScaled(\n \"priceMin\",\n input.priceMin,\n scales.price(),\n ),\n priceMaxTicks: positiveDecimalInputToScaled(\n \"priceMax\",\n input.priceMax,\n scales.price(),\n ),\n levels: input.levels,\n postOnly: input.postOnly,\n },\n } as const,\n },\n };\n }),\n v.check(\n (output) =>\n output.trigger.strategy.value.priceMinTicks <\n output.trigger.strategy.value.priceMaxTicks,\n \"priceMin must be less than priceMax\",\n ),\n );\n}\n\n/** Builds the create-trigger boundary schema using catalog scales keyed by symbol ID. */\nexport function createCreateTriggerInputSchema(scales: SdkScales) {\n return v.union([\n ...createConditionalTriggerInputSchema(scales, \"stop_loss\"),\n ...createConditionalTriggerInputSchema(scales, \"take_profit\"),\n createTrailingStopTriggerInputSchema(scales),\n createTwapTriggerInputSchema(scales),\n createLadderTriggerInputSchema(scales),\n ]);\n}\n\n/** Public input for creating a standalone trigger. */\nexport type CreateTriggerInput = v.InferInput<ReturnType<typeof createCreateTriggerInputSchema>>;\n\n/** Public filters for listing triggers in an account scope. */\nexport const ListTriggersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n parentOrderId: v.pipe(\n v.optional(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"parentOrderId\") : undefined)),\n ),\n symbolId: v.optional(SymbolIdInputSchema),\n status: v.pipe(\n v.optional(v.array(TriggerStatusFilterSchema)),\n v.transform(\n (values) => values?.map((value) => TriggerStatusCodec.inputToProto[value]) ?? [],\n ),\n ),\n triggerType: v.pipe(\n v.optional(TriggerTypeSchema),\n v.transform((value) =>\n value\n ? TriggerTypeCodec.inputToProto[value]\n : Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED,\n ),\n ),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(1000)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\n/** Public filters for listing triggers. */\nexport type ListTriggersInput = v.InferInput<typeof ListTriggersInputSchema>;\n\nexport const CancelTriggerInputSchema = TriggerScopedInputSchema;\nexport type CancelTriggerInput = v.InferInput<typeof CancelTriggerInputSchema>;\n\nexport const GetTriggerInputSchema = CancelTriggerInputSchema;\nexport type GetTriggerInput = v.InferInput<typeof GetTriggerInputSchema>;\n\nexport const PauseTriggerInputSchema = TriggerScopedInputSchema;\nexport type PauseTriggerInput = v.InferInput<typeof PauseTriggerInputSchema>;\n\nexport const ResumeTriggerInputSchema = v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n symbolId: SymbolIdInputSchema,\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\nexport type ResumeTriggerInput = v.InferInput<typeof ResumeTriggerInputSchema>;\n\nexport function createModifyTriggerInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n symbolId: SymbolIdInputSchema,\n triggerPrice: v.optional(DecimalInputStringSchema),\n limitPrice: v.optional(DecimalInputStringSchema),\n trailingDistance: v.optional(TrailingDistanceInputSchema),\n activationPrice: v.optional(DecimalInputStringSchema),\n maxSlippage: v.optional(MaxSlippagePatchInputSchema),\n }),\n v.check(\n (input) =>\n input.triggerPrice !== undefined ||\n input.limitPrice !== undefined ||\n input.trailingDistance !== undefined ||\n input.activationPrice !== undefined ||\n input.maxSlippage !== undefined,\n \"At least one patch field is required\",\n ),\n v.transform(({ account, ...input }) => ({\n triggerId: input.triggerId,\n subaccountId: accountScopeToSubaccountId(account),\n symbolId: input.symbolId,\n triggerPriceTicks:\n input.triggerPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"triggerPrice\",\n input.triggerPrice,\n scales.price(),\n ),\n limitPriceTicks:\n input.limitPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\"limitPrice\", input.limitPrice, scales.price()),\n trailingDistance:\n input.trailingDistance === undefined\n ? ({ case: undefined, value: undefined } as const)\n : parseTrailingDistance(scales, input.trailingDistance),\n activationPriceTicks:\n input.activationPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"activationPrice\",\n input.activationPrice,\n scales.price(),\n ),\n maxSlippage:\n input.maxSlippage === undefined\n ? ({ case: undefined, value: undefined } as const)\n : parseMaxSlippage(scales, input.maxSlippage),\n })),\n );\n}\n\nexport type ModifyTriggerInput = v.InferInput<ReturnType<typeof createModifyTriggerInputSchema>>;\n\nexport const ListTriggerEventsInputSchema = v.pipe(\n v.strictObject({\n ...TriggerScopedInputEntries,\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(1000))),\n eventType: v.optional(TriggerEventTypeSchema),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n eventType:\n input.eventType === undefined\n ? undefined\n : TriggerEventTypeCodec.inputToProto[input.eventType],\n })),\n);\n\nexport type ListTriggerEventsInput = v.InferInput<typeof ListTriggerEventsInputSchema>;\n"],"mappings":"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"}
@@ -31,62 +31,62 @@ declare const CreateTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSche
31
31
  type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;
32
32
  declare const CancelTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
33
33
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
34
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
34
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
35
35
  readonly tsNs: v.BigintSchema<undefined>;
36
36
  }, undefined>, v.TransformAction<{
37
37
  triggerId: string;
38
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
38
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
39
39
  tsNs: bigint;
40
40
  }, {
41
41
  ts: number;
42
42
  tsNs: string;
43
43
  triggerId: string;
44
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
44
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
45
45
  }>]>;
46
46
  type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;
47
47
  declare const ModifyTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
48
48
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
49
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
49
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
50
50
  readonly tsNs: v.BigintSchema<undefined>;
51
51
  }, undefined>, v.TransformAction<{
52
52
  triggerId: string;
53
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
53
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
54
54
  tsNs: bigint;
55
55
  }, {
56
56
  ts: number;
57
57
  tsNs: string;
58
58
  triggerId: string;
59
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
59
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
60
60
  }>]>;
61
61
  type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;
62
62
  declare const PauseTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
63
63
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
64
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
64
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
65
65
  readonly tsNs: v.BigintSchema<undefined>;
66
66
  }, undefined>, v.TransformAction<{
67
67
  triggerId: string;
68
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
68
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
69
69
  tsNs: bigint;
70
70
  }, {
71
71
  ts: number;
72
72
  tsNs: string;
73
73
  triggerId: string;
74
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
74
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
75
75
  }>]>;
76
76
  type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;
77
77
  declare const ResumeTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
78
78
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
79
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
79
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
80
80
  readonly tsNs: v.BigintSchema<undefined>;
81
81
  }, undefined>, v.TransformAction<{
82
82
  triggerId: string;
83
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
83
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
84
84
  tsNs: bigint;
85
85
  }, {
86
86
  ts: number;
87
87
  tsNs: string;
88
88
  triggerId: string;
89
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
89
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
90
90
  }>]>;
91
91
  type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;
92
92
  type StopDetailsOutput = {
@@ -505,7 +505,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
505
505
  triggerId: string;
506
506
  subaccountId: string;
507
507
  symbolId: number;
508
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
508
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
509
509
  parentOrderId: string | undefined;
510
510
  qty: string;
511
511
  feeAsset: "unspecified" | "quote" | "base";
@@ -1,7 +1,7 @@
1
1
  import { FeeAsset, SelfTradePreventionMode, Side, TriggerDirection, TriggerPriceSource } from "../../gen/orders/v1/orders_pb.js";
2
2
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
3
3
  import { formatId } from "../../utils/base58-id.js";
4
- import { tsNsToMs } from "../../utils/time.js";
4
+ import { tsNsToMs, tsObjToMs } from "../../utils/time.js";
5
5
  import { BigIntStringSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampSchema } from "../../shared/schemas.js";
6
6
  import { SymbolIdInputSchema } from "../shared.js";
7
7
  import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
@@ -334,10 +334,10 @@ function createTriggerSchema(scales) {
334
334
  selfTradePreventionMode: requiredEnumLabel(SelfTradePreventionModeCodec.protoToOutput, t.selfTradePreventionMode, "TriggerSchema", "STP mode"),
335
335
  configuration: transformTriggerConfiguration(t.configuration, scales),
336
336
  clientTriggerId: t.clientTriggerId,
337
- createdTs: t.createdAt?.seconds ? Number(t.createdAt.seconds) * 1e3 : void 0,
338
- updatedTs: t.updatedAt?.seconds ? Number(t.updatedAt.seconds) * 1e3 : void 0,
339
- armedTs: t.armedAt?.seconds ? Number(t.armedAt.seconds) * 1e3 : void 0,
340
- completedTs: t.completedAt?.seconds ? Number(t.completedAt.seconds) * 1e3 : void 0,
337
+ createdTs: t.createdAt ? tsObjToMs(t.createdAt) : void 0,
338
+ updatedTs: t.updatedAt ? tsObjToMs(t.updatedAt) : void 0,
339
+ armedTs: t.armedAt ? tsObjToMs(t.armedAt) : void 0,
340
+ completedTs: t.completedAt ? tsObjToMs(t.completedAt) : void 0,
341
341
  runtimeDetails: transformTriggerDetails(t.runtimeDetails, scales, t.symbolId)
342
342
  })));
343
343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"triggers-output.schemas.js","names":["Proto.TriggerStatus","ProtoOrders.Side","TriggerSideCodec","ProtoOrders.TriggerPriceSource","ProtoOrders.TriggerDirection","Proto.LadderDistribution","ProtoOrders.FeeAsset","ProtoOrders.SelfTradePreventionMode","Proto.TriggerType","Proto.TriggerEventType"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n} from \"./triggers.codecs.js\";\n\ntype TriggerPriceSourceLabel = \"last\" | \"index\" | \"mark\" | \"unspecified\";\n\ntype TriggerDirectionLabel = \"above\" | \"below\" | \"unspecified\";\n\ntype LadderDistributionLabel = \"linear\" | \"geometric\" | \"weighted_favorable\" | \"unspecified\";\n\nconst TriggerResultStatusSchema = v.pipe(\n v.enum(Proto.TriggerStatus),\n v.transform((status) =>\n requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n status,\n \"TriggerResultSchema\",\n \"status\",\n ),\n ),\n);\n\nconst TriggerMutationResultBaseSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n status: TriggerResultStatusSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport const CreateTriggerResultSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n clientTriggerId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: BigIntStringSchema,\n }),\n v.transform(({ acceptedAt, acceptedAtTsNs, ...result }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(BigInt(acceptedAtTsNs)),\n acceptedAtNs: acceptedAtTsNs,\n })),\n);\n\nexport type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;\n\nexport const CancelTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;\n\nexport const ModifyTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;\n\nexport const PauseTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;\n\nexport const ResumeTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;\n\nconst ConditionalExecutionRawSchema = 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 postOnly: v.boolean(),\n }),\n }),\n v.object({\n case: v.literal(\"limitIoc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({\n case: v.literal(\"limitFok\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst ConditionalConfigurationRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n side: v.enum(ProtoOrders.Side),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst TrailingConfigurationRawSchema = v.object({\n trailingDistance: v.variant(\"case\", [\n v.object({ case: v.literal(\"trailingDistanceTicks\"), value: v.bigint() }),\n v.object({ case: v.literal(\"trailingDistanceBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n activationPriceTicks: v.bigint(),\n maxSlippage: v.variant(\"case\", [\n v.object({ case: v.literal(\"maxSlippageTicks\"), value: v.number() }),\n v.object({ case: v.literal(\"maxSlippageBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n side: v.enum(ProtoOrders.Side),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({ case: v.literal(\"marketIoc\"), value: v.object({}) }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n});\n\nconst LadderConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n priceMinTicks: v.bigint(),\n priceMaxTicks: v.bigint(),\n levels: v.number(),\n postOnly: v.boolean(),\n});\n\nconst TriggerConfigurationRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stopLoss\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"takeProfit\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"trailingStop\"), value: TrailingConfigurationRawSchema }),\n v.object({ case: v.literal(\"twap\"), value: TwapConfigurationRawSchema }),\n v.object({ case: v.literal(\"ladder\"), value: LadderConfigurationRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformConditionalExecution(\n execution: v.InferOutput<typeof ConditionalExecutionRawSchema>,\n scales: SdkScales,\n) {\n switch (execution.case) {\n case \"marketIoc\":\n return { type: \"market_ioc\" } as const;\n case \"limitGtc\":\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n postOnly: execution.value.postOnly,\n } as const;\n case \"limitIoc\":\n return {\n type: \"limit_ioc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n case \"limitFok\":\n return {\n type: \"limit_fok\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n default:\n return { type: \"unspecified\" } as const;\n }\n}\n\nfunction transformTriggerConfiguration(\n configuration: v.InferOutput<typeof TriggerConfigurationRawSchema>,\n scales: SdkScales,\n) {\n switch (configuration.case) {\n case \"stopLoss\":\n case \"takeProfit\":\n return {\n type:\n configuration.case === \"stopLoss\"\n ? (\"stop_loss\" as const)\n : (\"take_profit\" as const),\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n triggerPrice: scaledToDecimalOutput(\n configuration.value.triggerPriceTicks,\n scales.price(),\n ),\n execution: transformConditionalExecution(\n configuration.value.child?.execution ?? { case: undefined },\n scales,\n ),\n };\n case \"trailingStop\":\n return {\n type: \"trailing_stop\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n trailingDistance:\n configuration.value.trailingDistance.case === \"trailingDistanceTicks\"\n ? {\n kind: \"distance\" as const,\n distance: scaledToDecimalOutput(\n configuration.value.trailingDistance.value,\n scales.price(),\n ),\n }\n : configuration.value.trailingDistance.case === \"trailingDistanceBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.trailingDistance.value,\n }\n : { kind: \"unspecified\" as const },\n activationPrice:\n configuration.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n configuration.value.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n maxSlippage:\n configuration.value.maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(\n BigInt(configuration.value.maxSlippage.value),\n scales.price(),\n ),\n }\n : configuration.value.maxSlippage.case === \"maxSlippageBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.maxSlippage.value,\n }\n : { kind: \"none\" as const },\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({ type: \"market_ioc\" } as const)\n : configuration.value.execution.case === \"limitGtc\"\n ? ({\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(\n configuration.value.execution.value.priceTicks,\n scales.price(),\n ),\n } as const)\n : ({ type: \"unspecified\" } as const),\n };\n case \"ladder\":\n return {\n type: \"ladder\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n priceMin: scaledToDecimalOutput(configuration.value.priceMinTicks, scales.price()),\n priceMax: scaledToDecimalOutput(configuration.value.priceMaxTicks, scales.price()),\n levels: configuration.value.levels,\n postOnly: configuration.value.postOnly,\n };\n default:\n return { type: \"unspecified\" as const };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TrailingDetailsRawSchema = v.object({\n trailingDistanceTicks: v.bigint(),\n activationPriceTicks: v.bigint(),\n peakPriceTicks: v.bigint(),\n troughPriceTicks: v.bigint(),\n trailingDistanceBps: v.number(),\n maxSlippageTicks: v.number(),\n maxSlippageBps: v.number(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TwapDetailsRawSchema = v.object({\n twapDurationMs: v.bigint(),\n twapSliceIntervalMs: v.bigint(),\n sliceIdx: v.number(),\n sliceCount: v.number(),\n executedQtyScaled: v.bigint(),\n});\n\nconst LadderDetailsRawSchema = v.object({\n ladderPriceMinTicks: v.bigint(),\n ladderPriceMaxTicks: v.bigint(),\n ladderLevels: v.number(),\n ladderDistribution: v.enum(Proto.LadderDistribution),\n});\n\nconst TriggerDetailsRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stop\"), value: StopDetailsRawSchema }),\n v.object({ case: v.literal(\"trailing\"), value: TrailingDetailsRawSchema }),\n v.object({ case: v.literal(\"twapState\"), value: TwapDetailsRawSchema }),\n v.object({ case: v.literal(\"ladderState\"), value: LadderDetailsRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nexport type StopDetailsOutput = {\n case: \"stop\";\n triggerPrice: string;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TrailingDetailsOutput = {\n case: \"trailing\";\n trailingDistance: string | undefined;\n trailingDistanceBps: number;\n activationPrice: string | undefined;\n peakPrice: string | undefined;\n troughPrice: string | undefined;\n maxSlippage: string | undefined;\n maxSlippageBps: number;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TwapDetailsOutput = {\n case: \"twap\";\n twapDurationMs: number;\n twapSliceIntervalMs: number;\n sliceIdx: number;\n sliceCount: number;\n /** Cumulative filled child-order base quantity. */\n executedQty: string;\n};\n\nexport type LadderDetailsOutput = {\n case: \"ladder\";\n ladderPriceMin: string;\n ladderPriceMax: string;\n ladderLevels: number;\n ladderDistribution: LadderDistributionLabel;\n};\n\nexport type TriggerDetailsOutput =\n | StopDetailsOutput\n | TrailingDetailsOutput\n | TwapDetailsOutput\n | LadderDetailsOutput\n | { case: undefined };\n\nfunction transformTriggerDetails(\n details: v.InferOutput<typeof TriggerDetailsRawSchema>,\n scales: SdkScales,\n symbolId: number,\n): TriggerDetailsOutput {\n switch (details.case) {\n case \"stop\":\n return {\n case: \"stop\",\n triggerPrice: scaledToDecimalOutput(\n details.value.triggerPriceTicks,\n scales.price(),\n ),\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"trailing\":\n return {\n case: \"trailing\",\n trailingDistance:\n details.value.trailingDistanceTicks > 0n\n ? scaledToDecimalOutput(details.value.trailingDistanceTicks, scales.price())\n : undefined,\n trailingDistanceBps: details.value.trailingDistanceBps,\n activationPrice:\n details.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.activationPriceTicks, scales.price())\n : undefined,\n peakPrice:\n details.value.peakPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.peakPriceTicks, scales.price())\n : undefined,\n troughPrice:\n details.value.troughPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.troughPriceTicks, scales.price())\n : undefined,\n maxSlippage:\n details.value.maxSlippageTicks > 0\n ? scaledToDecimalOutput(\n BigInt(details.value.maxSlippageTicks),\n scales.price(),\n )\n : undefined,\n maxSlippageBps: details.value.maxSlippageBps,\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"twapState\":\n return {\n case: \"twap\",\n twapDurationMs: Number(details.value.twapDurationMs),\n twapSliceIntervalMs: Number(details.value.twapSliceIntervalMs),\n sliceIdx: details.value.sliceIdx,\n sliceCount: details.value.sliceCount,\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n };\n case \"ladderState\":\n return {\n case: \"ladder\",\n ladderPriceMin: scaledToDecimalOutput(\n details.value.ladderPriceMinTicks,\n scales.price(),\n ),\n ladderPriceMax: scaledToDecimalOutput(\n details.value.ladderPriceMaxTicks,\n scales.price(),\n ),\n ladderLevels: details.value.ladderLevels,\n ladderDistribution: requiredEnumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n \"TriggerDetailsSchema\",\n \"ladder distribution\",\n ),\n };\n default:\n return { case: undefined };\n }\n}\n\n/** Builds the public trigger output schema using each record's symbol ID for quantity scaling. */\nexport function createTriggerSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: SymbolIdInputSchema,\n status: v.enum(Proto.TriggerStatus),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.enum(ProtoOrders.FeeAsset),\n selfTradePreventionMode: v.enum(ProtoOrders.SelfTradePreventionMode),\n configuration: TriggerConfigurationRawSchema,\n clientTriggerId: v.string(),\n createdAt: v.optional(TimestampSchema),\n updatedAt: v.optional(TimestampSchema),\n armedAt: v.optional(TimestampSchema),\n completedAt: v.optional(TimestampSchema),\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n t.status,\n \"TriggerSchema\",\n \"status\",\n ),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n t.feeAsset,\n \"TriggerSchema\",\n \"fee asset\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\n \"TriggerSchema\",\n \"STP mode\",\n ),\n configuration: transformTriggerConfiguration(t.configuration, scales),\n clientTriggerId: t.clientTriggerId,\n createdTs: t.createdAt?.seconds ? Number(t.createdAt.seconds) * 1000 : undefined,\n updatedTs: t.updatedAt?.seconds ? Number(t.updatedAt.seconds) * 1000 : undefined,\n armedTs: t.armedAt?.seconds ? Number(t.armedAt.seconds) * 1000 : undefined,\n completedTs: t.completedAt?.seconds ? Number(t.completedAt.seconds) * 1000 : undefined,\n runtimeDetails: transformTriggerDetails(t.runtimeDetails, scales, t.symbolId),\n })),\n );\n}\n\n/** A normalized standalone trigger record. */\nexport type Trigger = v.InferOutput<ReturnType<typeof createTriggerSchema>>;\n\nexport function createTriggerEventSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: v.number(),\n triggerType: v.enum(Proto.TriggerType),\n eventType: v.enum(Proto.TriggerEventType),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n reason: v.string(),\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: requiredEnumLabel(\n TriggerTypeCodec.protoToOutput,\n e.triggerType,\n \"TriggerEventSchema\",\n \"trigger type\",\n ),\n eventType: requiredEnumLabel(\n TriggerEventTypeCodec.protoToOutput,\n e.eventType,\n \"TriggerEventSchema\",\n \"event type\",\n ),\n ts: tsNsToMs(e.tsNs),\n childSeq: e.childSeq,\n childOrderId: e.childOrderId > 0n ? formatId(e.childOrderId) : undefined,\n firePrice:\n e.firePriceTicks !== undefined && e.firePriceTicks > 0n\n ? scaledToDecimalOutput(e.firePriceTicks, scales.price())\n : undefined,\n reason: e.reason || undefined,\n })),\n );\n}\n\nexport type TriggerEvent = v.InferOutput<ReturnType<typeof createTriggerEventSchema>>;\n\nexport type ListTriggerEventsResult = {\n events: TriggerEvent[];\n nextPageToken: string;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"triggers-output.schemas.js","names":["Proto.TriggerStatus","ProtoOrders.Side","TriggerSideCodec","ProtoOrders.TriggerPriceSource","ProtoOrders.TriggerDirection","Proto.LadderDistribution","ProtoOrders.FeeAsset","ProtoOrders.SelfTradePreventionMode","Proto.TriggerType","Proto.TriggerEventType"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { tsNsToMs, tsObjToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n} from \"./triggers.codecs.js\";\n\ntype TriggerPriceSourceLabel = \"last\" | \"index\" | \"mark\" | \"unspecified\";\n\ntype TriggerDirectionLabel = \"above\" | \"below\" | \"unspecified\";\n\ntype LadderDistributionLabel = \"linear\" | \"geometric\" | \"weighted_favorable\" | \"unspecified\";\n\nconst TriggerResultStatusSchema = v.pipe(\n v.enum(Proto.TriggerStatus),\n v.transform((status) =>\n requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n status,\n \"TriggerResultSchema\",\n \"status\",\n ),\n ),\n);\n\nconst TriggerMutationResultBaseSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n status: TriggerResultStatusSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport const CreateTriggerResultSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n clientTriggerId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: BigIntStringSchema,\n }),\n v.transform(({ acceptedAt, acceptedAtTsNs, ...result }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(BigInt(acceptedAtTsNs)),\n acceptedAtNs: acceptedAtTsNs,\n })),\n);\n\nexport type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;\n\nexport const CancelTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;\n\nexport const ModifyTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;\n\nexport const PauseTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;\n\nexport const ResumeTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;\n\nconst ConditionalExecutionRawSchema = 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 postOnly: v.boolean(),\n }),\n }),\n v.object({\n case: v.literal(\"limitIoc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({\n case: v.literal(\"limitFok\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst ConditionalConfigurationRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n side: v.enum(ProtoOrders.Side),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst TrailingConfigurationRawSchema = v.object({\n trailingDistance: v.variant(\"case\", [\n v.object({ case: v.literal(\"trailingDistanceTicks\"), value: v.bigint() }),\n v.object({ case: v.literal(\"trailingDistanceBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n activationPriceTicks: v.bigint(),\n maxSlippage: v.variant(\"case\", [\n v.object({ case: v.literal(\"maxSlippageTicks\"), value: v.number() }),\n v.object({ case: v.literal(\"maxSlippageBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n side: v.enum(ProtoOrders.Side),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({ case: v.literal(\"marketIoc\"), value: v.object({}) }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n});\n\nconst LadderConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n priceMinTicks: v.bigint(),\n priceMaxTicks: v.bigint(),\n levels: v.number(),\n postOnly: v.boolean(),\n});\n\nconst TriggerConfigurationRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stopLoss\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"takeProfit\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"trailingStop\"), value: TrailingConfigurationRawSchema }),\n v.object({ case: v.literal(\"twap\"), value: TwapConfigurationRawSchema }),\n v.object({ case: v.literal(\"ladder\"), value: LadderConfigurationRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformConditionalExecution(\n execution: v.InferOutput<typeof ConditionalExecutionRawSchema>,\n scales: SdkScales,\n) {\n switch (execution.case) {\n case \"marketIoc\":\n return { type: \"market_ioc\" } as const;\n case \"limitGtc\":\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n postOnly: execution.value.postOnly,\n } as const;\n case \"limitIoc\":\n return {\n type: \"limit_ioc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n case \"limitFok\":\n return {\n type: \"limit_fok\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n default:\n return { type: \"unspecified\" } as const;\n }\n}\n\nfunction transformTriggerConfiguration(\n configuration: v.InferOutput<typeof TriggerConfigurationRawSchema>,\n scales: SdkScales,\n) {\n switch (configuration.case) {\n case \"stopLoss\":\n case \"takeProfit\":\n return {\n type:\n configuration.case === \"stopLoss\"\n ? (\"stop_loss\" as const)\n : (\"take_profit\" as const),\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n triggerPrice: scaledToDecimalOutput(\n configuration.value.triggerPriceTicks,\n scales.price(),\n ),\n execution: transformConditionalExecution(\n configuration.value.child?.execution ?? { case: undefined },\n scales,\n ),\n };\n case \"trailingStop\":\n return {\n type: \"trailing_stop\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n trailingDistance:\n configuration.value.trailingDistance.case === \"trailingDistanceTicks\"\n ? {\n kind: \"distance\" as const,\n distance: scaledToDecimalOutput(\n configuration.value.trailingDistance.value,\n scales.price(),\n ),\n }\n : configuration.value.trailingDistance.case === \"trailingDistanceBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.trailingDistance.value,\n }\n : { kind: \"unspecified\" as const },\n activationPrice:\n configuration.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n configuration.value.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n maxSlippage:\n configuration.value.maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(\n BigInt(configuration.value.maxSlippage.value),\n scales.price(),\n ),\n }\n : configuration.value.maxSlippage.case === \"maxSlippageBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.maxSlippage.value,\n }\n : { kind: \"none\" as const },\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({ type: \"market_ioc\" } as const)\n : configuration.value.execution.case === \"limitGtc\"\n ? ({\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(\n configuration.value.execution.value.priceTicks,\n scales.price(),\n ),\n } as const)\n : ({ type: \"unspecified\" } as const),\n };\n case \"ladder\":\n return {\n type: \"ladder\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n priceMin: scaledToDecimalOutput(configuration.value.priceMinTicks, scales.price()),\n priceMax: scaledToDecimalOutput(configuration.value.priceMaxTicks, scales.price()),\n levels: configuration.value.levels,\n postOnly: configuration.value.postOnly,\n };\n default:\n return { type: \"unspecified\" as const };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TrailingDetailsRawSchema = v.object({\n trailingDistanceTicks: v.bigint(),\n activationPriceTicks: v.bigint(),\n peakPriceTicks: v.bigint(),\n troughPriceTicks: v.bigint(),\n trailingDistanceBps: v.number(),\n maxSlippageTicks: v.number(),\n maxSlippageBps: v.number(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TwapDetailsRawSchema = v.object({\n twapDurationMs: v.bigint(),\n twapSliceIntervalMs: v.bigint(),\n sliceIdx: v.number(),\n sliceCount: v.number(),\n executedQtyScaled: v.bigint(),\n});\n\nconst LadderDetailsRawSchema = v.object({\n ladderPriceMinTicks: v.bigint(),\n ladderPriceMaxTicks: v.bigint(),\n ladderLevels: v.number(),\n ladderDistribution: v.enum(Proto.LadderDistribution),\n});\n\nconst TriggerDetailsRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stop\"), value: StopDetailsRawSchema }),\n v.object({ case: v.literal(\"trailing\"), value: TrailingDetailsRawSchema }),\n v.object({ case: v.literal(\"twapState\"), value: TwapDetailsRawSchema }),\n v.object({ case: v.literal(\"ladderState\"), value: LadderDetailsRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nexport type StopDetailsOutput = {\n case: \"stop\";\n triggerPrice: string;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TrailingDetailsOutput = {\n case: \"trailing\";\n trailingDistance: string | undefined;\n trailingDistanceBps: number;\n activationPrice: string | undefined;\n peakPrice: string | undefined;\n troughPrice: string | undefined;\n maxSlippage: string | undefined;\n maxSlippageBps: number;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TwapDetailsOutput = {\n case: \"twap\";\n twapDurationMs: number;\n twapSliceIntervalMs: number;\n sliceIdx: number;\n sliceCount: number;\n /** Cumulative filled child-order base quantity. */\n executedQty: string;\n};\n\nexport type LadderDetailsOutput = {\n case: \"ladder\";\n ladderPriceMin: string;\n ladderPriceMax: string;\n ladderLevels: number;\n ladderDistribution: LadderDistributionLabel;\n};\n\nexport type TriggerDetailsOutput =\n | StopDetailsOutput\n | TrailingDetailsOutput\n | TwapDetailsOutput\n | LadderDetailsOutput\n | { case: undefined };\n\nfunction transformTriggerDetails(\n details: v.InferOutput<typeof TriggerDetailsRawSchema>,\n scales: SdkScales,\n symbolId: number,\n): TriggerDetailsOutput {\n switch (details.case) {\n case \"stop\":\n return {\n case: \"stop\",\n triggerPrice: scaledToDecimalOutput(\n details.value.triggerPriceTicks,\n scales.price(),\n ),\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"trailing\":\n return {\n case: \"trailing\",\n trailingDistance:\n details.value.trailingDistanceTicks > 0n\n ? scaledToDecimalOutput(details.value.trailingDistanceTicks, scales.price())\n : undefined,\n trailingDistanceBps: details.value.trailingDistanceBps,\n activationPrice:\n details.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.activationPriceTicks, scales.price())\n : undefined,\n peakPrice:\n details.value.peakPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.peakPriceTicks, scales.price())\n : undefined,\n troughPrice:\n details.value.troughPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.troughPriceTicks, scales.price())\n : undefined,\n maxSlippage:\n details.value.maxSlippageTicks > 0\n ? scaledToDecimalOutput(\n BigInt(details.value.maxSlippageTicks),\n scales.price(),\n )\n : undefined,\n maxSlippageBps: details.value.maxSlippageBps,\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"twapState\":\n return {\n case: \"twap\",\n twapDurationMs: Number(details.value.twapDurationMs),\n twapSliceIntervalMs: Number(details.value.twapSliceIntervalMs),\n sliceIdx: details.value.sliceIdx,\n sliceCount: details.value.sliceCount,\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n };\n case \"ladderState\":\n return {\n case: \"ladder\",\n ladderPriceMin: scaledToDecimalOutput(\n details.value.ladderPriceMinTicks,\n scales.price(),\n ),\n ladderPriceMax: scaledToDecimalOutput(\n details.value.ladderPriceMaxTicks,\n scales.price(),\n ),\n ladderLevels: details.value.ladderLevels,\n ladderDistribution: requiredEnumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n \"TriggerDetailsSchema\",\n \"ladder distribution\",\n ),\n };\n default:\n return { case: undefined };\n }\n}\n\n/** Builds the public trigger output schema using each record's symbol ID for quantity scaling. */\nexport function createTriggerSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: SymbolIdInputSchema,\n status: v.enum(Proto.TriggerStatus),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.enum(ProtoOrders.FeeAsset),\n selfTradePreventionMode: v.enum(ProtoOrders.SelfTradePreventionMode),\n configuration: TriggerConfigurationRawSchema,\n clientTriggerId: v.string(),\n createdAt: v.optional(TimestampSchema),\n updatedAt: v.optional(TimestampSchema),\n armedAt: v.optional(TimestampSchema),\n completedAt: v.optional(TimestampSchema),\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n t.status,\n \"TriggerSchema\",\n \"status\",\n ),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n t.feeAsset,\n \"TriggerSchema\",\n \"fee asset\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\n \"TriggerSchema\",\n \"STP mode\",\n ),\n configuration: transformTriggerConfiguration(t.configuration, scales),\n clientTriggerId: t.clientTriggerId,\n createdTs: t.createdAt ? tsObjToMs(t.createdAt) : undefined,\n updatedTs: t.updatedAt ? tsObjToMs(t.updatedAt) : undefined,\n armedTs: t.armedAt ? tsObjToMs(t.armedAt) : undefined,\n completedTs: t.completedAt ? tsObjToMs(t.completedAt) : undefined,\n runtimeDetails: transformTriggerDetails(t.runtimeDetails, scales, t.symbolId),\n })),\n );\n}\n\n/** A normalized standalone trigger record. */\nexport type Trigger = v.InferOutput<ReturnType<typeof createTriggerSchema>>;\n\nexport function createTriggerEventSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: v.number(),\n triggerType: v.enum(Proto.TriggerType),\n eventType: v.enum(Proto.TriggerEventType),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n reason: v.string(),\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: requiredEnumLabel(\n TriggerTypeCodec.protoToOutput,\n e.triggerType,\n \"TriggerEventSchema\",\n \"trigger type\",\n ),\n eventType: requiredEnumLabel(\n TriggerEventTypeCodec.protoToOutput,\n e.eventType,\n \"TriggerEventSchema\",\n \"event type\",\n ),\n ts: tsNsToMs(e.tsNs),\n childSeq: e.childSeq,\n childOrderId: e.childOrderId > 0n ? formatId(e.childOrderId) : undefined,\n firePrice:\n e.firePriceTicks !== undefined && e.firePriceTicks > 0n\n ? scaledToDecimalOutput(e.firePriceTicks, scales.price())\n : undefined,\n reason: e.reason || undefined,\n })),\n );\n}\n\nexport type TriggerEvent = v.InferOutput<ReturnType<typeof createTriggerEventSchema>>;\n\nexport type ListTriggerEventsResult = {\n events: TriggerEvent[];\n nextPageToken: string;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UA0DiB;EACb,UAAU;EACV;;UAYM,+BAA+B,mBAAmB;EACxD;;UAGM,oCAAoC,mBAAmB;EAC7D;;;;;cAMS;;EAWL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAeN,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,IAAI,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAgBxE,KACF,QAAO,mBACP,UAAU,0BACX,QAAQ;;;;EAoBL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,MACF,OAAO,mBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,WACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAyBX,UAAU,OAAO;;;;EAwBjB,gBAAgB,OAAO"}
1
+ {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UA0DiB;EACb,UAAU;EACV;;UAGM,+BAA+B,mBAAmB;EACxD;;UAGM,oCAAoC,mBAAmB;EAC7D;;;;;cAMS;;EAWL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAeN,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,IAAI,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAgBxE,KACF,QAAO,mBACP,UAAU,0BACX,QAAQ;;;;EAiBL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,MACF,OAAO,mBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,WACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAyBX,UAAU,OAAO;;;;EAmBjB,gBAAgB,OAAO"}