@polyester/sdk 0.27.2 → 0.27.3

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 (51) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/catalogs/readers.js +6 -6
  3. package/dist/catalogs/readers.js.map +1 -1
  4. package/dist/gen/ledger/read/v1/ledger_read_pb.d.ts +3 -3
  5. package/dist/gen/ledger/read/v1/ledger_read_pb.js.map +1 -1
  6. package/dist/gen/marketdata/v1/heatmap_pb.d.ts +6 -6
  7. package/dist/gen/marketdata/v1/heatmap_pb.js.map +1 -1
  8. package/dist/gen/marketdata/v1/marketdata_pb.d.ts +13 -13
  9. package/dist/gen/marketdata/v1/marketdata_pb.js.map +1 -1
  10. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +8 -8
  11. package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
  12. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  13. package/dist/gen/orderbook/v1/orderbook_pb.d.ts +1 -1
  14. package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
  15. package/dist/gen/orders/v1/orders_pb.d.ts +38 -24
  16. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
  17. package/dist/gen/orders/v1/orders_pb.js +3 -3
  18. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  19. package/dist/gen/orders/v1/orders_read_pb.d.ts +17 -10
  20. package/dist/gen/orders/v1/orders_read_pb.d.ts.map +1 -1
  21. package/dist/gen/orders/v1/orders_read_pb.js +3 -3
  22. package/dist/gen/orders/v1/orders_read_pb.js.map +1 -1
  23. package/dist/gen/triggers/v1/triggers_pb.d.ts +40 -26
  24. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  25. package/dist/gen/triggers/v1/triggers_pb.js +7 -1
  26. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  27. package/dist/services/heatmap/heatmap.schemas.d.ts +4 -4
  28. package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
  29. package/dist/services/market-data/market-data.schemas.js +1 -1
  30. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  31. package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
  32. package/dist/services/orders/orders-batch.schemas.d.ts +17 -0
  33. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  34. package/dist/services/orders/orders-batch.schemas.js +3 -1
  35. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  36. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  37. package/dist/services/orders/orders.d.ts +4 -4
  38. package/dist/services/orders/orders.js +4 -4
  39. package/dist/services/orders/orders.js.map +1 -1
  40. package/dist/services/subaccounts/subaccounts.schemas.d.ts +2 -2
  41. package/dist/services/trades/trades.schemas.d.ts +1 -1
  42. package/dist/services/triggers/trigger-input.schemas.d.ts +4 -4
  43. package/dist/services/triggers/triggers-output.schemas.d.ts +22 -18
  44. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  45. package/dist/services/triggers/triggers-output.schemas.js +4 -2
  46. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  47. package/dist/services/triggers/triggers.codecs.js +6 -3
  48. package/dist/services/triggers/triggers.codecs.js.map +1 -1
  49. package/dist/shared/decimal-surface.js +2 -2
  50. package/dist/utils/numbers.js.map +1 -1
  51. package/package.json +1 -1
@@ -295,8 +295,8 @@ declare const SubaccountActivityEventSchema: v.ObjectSchema<{
295
295
  seconds: bigint;
296
296
  nanos: number;
297
297
  } | undefined, number | undefined>]>;
298
- readonly entityKind: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "api_key" | "account" | "subaccount" | "destination" | "session" | "member" | "policy" | "invite" | "security">]>;
299
- readonly eventAction: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "enabled" | "disabled" | "failed" | "revoked" | "created" | "updated" | "deleted" | "removed" | "role_set" | "received" | "replied" | "blocked" | "hold_placed" | "hold_released">]>;
298
+ readonly entityKind: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "api_key" | "account" | "subaccount" | "destination" | "session" | "policy" | "member" | "invite" | "security">]>;
299
+ readonly eventAction: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "enabled" | "disabled" | "revoked" | "failed" | "created" | "updated" | "deleted" | "removed" | "role_set" | "received" | "replied" | "blocked" | "hold_placed" | "hold_released">]>;
300
300
  readonly source: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "web" | "mobile" | "api">]>;
301
301
  readonly ip: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
302
302
  readonly userAgent: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
@@ -168,7 +168,7 @@ declare const GetUserTradesInputSchema: v.SchemaWithPipe<readonly [v.UnionSchema
168
168
  readonly orderId: v.OptionalSchema<v.NeverSchema<undefined>, undefined>;
169
169
  readonly lineageId: v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.TransformAction<string, bigint>]>, v.CheckAction<bigint, `${string} must be greater than zero`>]>;
170
170
  readonly throughGeneration: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>, undefined>;
171
- }, undefined>], undefined>], ({ input }: v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MaxValueIssue<number, 1000> | v.MinValueIssue<number, 1> | v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MaxValueIssue<number, 1000> | v.MinValueIssue<number, 1>> | v.CheckIssue<number> | v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MaxValueIssue<number, 1000> | v.MinValueIssue<number, 1> | v.CheckIssue<number>>>) => "symbolId is required when afterMatchId is set" | "Provide at most one of orderId or lineageId">, v.TransformAction<{
171
+ }, undefined>], undefined>], ({ input }: v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MinValueIssue<number, 1> | v.MaxValueIssue<number, 1000> | v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MinValueIssue<number, 1> | v.MaxValueIssue<number, 1000>> | v.CheckIssue<number> | v.UnionIssue<v.NumberIssue | v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1> | v.UnionIssue<v.StringIssue | v.PicklistIssue | v.StrictObjectIssue | v.MinLengthIssue<string, 1>> | v.IntegerIssue<number> | v.MaxValueIssue<number, 4294967295> | v.CheckIssue<bigint> | v.BooleanIssue | v.NeverIssue | v.MinValueIssue<number, 1> | v.MaxValueIssue<number, 1000> | v.CheckIssue<number>>>) => "symbolId is required when afterMatchId is set" | "Provide at most one of orderId or lineageId">, v.TransformAction<{
172
172
  symbolId?: number | undefined;
173
173
  afterMatchId?: undefined;
174
174
  side?: Side.BUY | Side.SELL | undefined;
@@ -845,7 +845,7 @@ type CreateTriggerInput = v.InferInput<ReturnType<typeof createCreateTriggerInpu
845
845
  declare const ListTriggersInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
846
846
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
847
847
  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>;
848
- 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)[]>]>;
848
+ 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)[]>]>;
849
849
  readonly triggerType: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["stop_loss", "take_profit", "trailing_stop", "twap", "ladder"], undefined>, undefined>, v.TransformAction<"stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder" | undefined, TriggerType>]>;
850
850
  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>;
851
851
  readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, "">;
@@ -1058,7 +1058,7 @@ declare function createModifyTriggerInputSchema(scales: SdkScales): v.SchemaWith
1058
1058
  type ModifyTriggerInput = v.InferInput<ReturnType<typeof createModifyTriggerInputSchema>>;
1059
1059
  declare const ListTriggerEventsInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
1060
1060
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
1061
- readonly eventType: v.OptionalSchema<v.PicklistSchema<readonly ["fired", "canceled", "updated", "failed"], undefined>, undefined>;
1061
+ readonly eventType: v.OptionalSchema<v.PicklistSchema<readonly ["fired", "canceled", "updated", "failed", "activated"], undefined>, undefined>;
1062
1062
  readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, "">;
1063
1063
  readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
1064
1064
  readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
@@ -1066,7 +1066,7 @@ declare const ListTriggerEventsInputSchema: v.SchemaWithPipe<readonly [v.StrictO
1066
1066
  readonly triggerId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.TransformAction<string, bigint>]>;
1067
1067
  }, undefined>, v.TransformAction<{
1068
1068
  limit?: number | undefined;
1069
- eventType?: "failed" | "updated" | "canceled" | "fired" | undefined;
1069
+ eventType?: "failed" | "updated" | "canceled" | "fired" | "activated" | undefined;
1070
1070
  pageToken: string;
1071
1071
  account?: "active" | "main" | {
1072
1072
  subaccountId: string;
@@ -1074,7 +1074,7 @@ declare const ListTriggerEventsInputSchema: v.SchemaWithPipe<readonly [v.StrictO
1074
1074
  triggerId: bigint;
1075
1075
  }, {
1076
1076
  subaccountId: bigint | undefined;
1077
- eventType: TriggerEventType.EVENT_FIRED | TriggerEventType.EVENT_CANCELED | TriggerEventType.EVENT_UPDATED | TriggerEventType.EVENT_FAILED | undefined;
1077
+ eventType: TriggerEventType.EVENT_FIRED | TriggerEventType.EVENT_CANCELED | TriggerEventType.EVENT_UPDATED | TriggerEventType.EVENT_FAILED | TriggerEventType.EVENT_ACTIVATED | undefined;
1078
1078
  limit?: number | undefined;
1079
1079
  pageToken: string;
1080
1080
  triggerId: bigint;
@@ -29,62 +29,62 @@ declare const CreateTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSche
29
29
  type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;
30
30
  declare const CancelTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
31
31
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
32
- readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
32
+ readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
33
33
  readonly tsNs: v.BigintSchema<undefined>;
34
34
  }, undefined>, v.TransformAction<{
35
35
  triggerId: string;
36
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
36
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
37
37
  tsNs: bigint;
38
38
  }, {
39
39
  ts: number;
40
40
  tsNs: string;
41
41
  triggerId: string;
42
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
42
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
43
43
  }>]>;
44
44
  type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;
45
45
  declare const ModifyTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
46
46
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
47
- readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
47
+ readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
48
48
  readonly tsNs: v.BigintSchema<undefined>;
49
49
  }, undefined>, v.TransformAction<{
50
50
  triggerId: string;
51
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
51
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
52
52
  tsNs: bigint;
53
53
  }, {
54
54
  ts: number;
55
55
  tsNs: string;
56
56
  triggerId: string;
57
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
57
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
58
58
  }>]>;
59
59
  type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;
60
60
  declare const PauseTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
61
61
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
62
- readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
62
+ readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
63
63
  readonly tsNs: v.BigintSchema<undefined>;
64
64
  }, undefined>, v.TransformAction<{
65
65
  triggerId: string;
66
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
66
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
67
67
  tsNs: bigint;
68
68
  }, {
69
69
  ts: number;
70
70
  tsNs: string;
71
71
  triggerId: string;
72
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
72
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
73
73
  }>]>;
74
74
  type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;
75
75
  declare const ResumeTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
76
76
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
77
- readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
77
+ readonly status: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused">]>;
78
78
  readonly tsNs: v.BigintSchema<undefined>;
79
79
  }, undefined>, v.TransformAction<{
80
80
  triggerId: string;
81
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
81
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
82
82
  tsNs: bigint;
83
83
  }, {
84
84
  ts: number;
85
85
  tsNs: string;
86
86
  triggerId: string;
87
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
87
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
88
88
  }>]>;
89
89
  type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;
90
90
  type StopDetailsOutput = {
@@ -104,6 +104,8 @@ type TrailingDetailsOutput = {
104
104
  maxSlippageBps: number;
105
105
  triggerPriceSource: TriggerPriceSourceLabel;
106
106
  triggerDirection: TriggerDirectionLabel;
107
+ /** Current trailing threshold; absent until the trigger is armed. Moves with the peak or trough. */
108
+ triggerPrice: string | undefined;
107
109
  };
108
110
  type TwapDetailsOutput = {
109
111
  case: "twap";
@@ -315,6 +317,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
315
317
  readonly maxSlippageBps: v.NumberSchema<undefined>;
316
318
  readonly triggerPriceSource: v.NumberSchema<undefined>;
317
319
  readonly triggerDirection: v.NumberSchema<undefined>;
320
+ readonly triggerPriceTicks: v.OptionalSchema<v.BigintSchema<undefined>, undefined>;
318
321
  }, undefined>;
319
322
  }, undefined>, v.ObjectSchema<{
320
323
  readonly case: v.LiteralSchema<"twapState", undefined>;
@@ -525,6 +528,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
525
528
  maxSlippageBps: number;
526
529
  triggerPriceSource: number;
527
530
  triggerDirection: number;
531
+ triggerPriceTicks?: bigint | undefined;
528
532
  };
529
533
  } | {
530
534
  case: "twapState";
@@ -556,7 +560,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
556
560
  triggerId: string;
557
561
  subaccountId: string;
558
562
  symbolId: number;
559
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
563
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
560
564
  parentOrderId: string | undefined;
561
565
  qty: string;
562
566
  feeAsset: "unspecified" | "quote" | "base";
@@ -712,7 +716,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
712
716
  triggerId: string;
713
717
  subaccountId: string;
714
718
  symbolId: number;
715
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
719
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
716
720
  parentOrderId: string | undefined;
717
721
  qty: string;
718
722
  feeAsset: "unspecified" | "quote" | "base";
@@ -868,7 +872,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
868
872
  triggerId: string;
869
873
  subaccountId: string;
870
874
  symbolId: number;
871
- status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
875
+ status: "unspecified" | "completed" | "failed" | "cancelled" | "created" | "armed" | "running" | "paused";
872
876
  parentOrderId: string | undefined;
873
877
  qty: string;
874
878
  feeAsset: "unspecified" | "quote" | "base";
@@ -1067,7 +1071,7 @@ declare function createTriggerEventSchema(scales: SdkScales): v.SchemaWithPipe<r
1067
1071
  subaccountId: string;
1068
1072
  symbolId: number;
1069
1073
  triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
1070
- eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired";
1074
+ eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired" | "activated";
1071
1075
  ts: number;
1072
1076
  childSeq: number;
1073
1077
  childOrderId: string | undefined;
@@ -1079,7 +1083,7 @@ declare function createTriggerEventSchema(scales: SdkScales): v.SchemaWithPipe<r
1079
1083
  subaccountId: string;
1080
1084
  symbolId: number;
1081
1085
  triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
1082
- eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired";
1086
+ eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired" | "activated";
1083
1087
  ts: number;
1084
1088
  childSeq: number;
1085
1089
  childOrderId: string | undefined;
@@ -1091,7 +1095,7 @@ declare function createTriggerEventSchema(scales: SdkScales): v.SchemaWithPipe<r
1091
1095
  subaccountId: string;
1092
1096
  symbolId: number;
1093
1097
  triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
1094
- eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired";
1098
+ eventType: "unspecified" | "failed" | "updated" | "canceled" | "fired" | "activated";
1095
1099
  ts: number;
1096
1100
  childSeq: number;
1097
1101
  childOrderId: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"triggers-output.schemas.d.ts","names":[],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"mappings":";;;KAyBK;KAEA;KAEA;cAiBQ,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;KAc1B,sBAAsB,EAAE,mBAAmB;cAE1C,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAE1B,sBAAsB,EAAE,mBAAmB;cAE1C,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAE1B,sBAAsB,EAAE,mBAAmB;cAE1C,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACzB,qBAAqB,EAAE,mBAAmB;cAEzC,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAC1B,sBAAsB,EAAE,mBAAmB;KA2R3C;EACR;EACA;EACA,oBAAoB;EACpB,kBAAkB;;KAGV;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB,kBAAkB;;KAGV;EACR;EACA;EACA;EACA;EACA;;EAEA;;KAGQ;EACR;EACA;EACA;EACA;EACA,oBAAoB;;EAEpB;;EAEA;;KAGQ,uBACN,oBACA,wBACA,oBACA;EACE;;;iBAqGQ,oBAAoB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6CzC,UAAU,EAAE,YAAY,kBAAkB;iBAEtC,yBAAyB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgC9C,eAAe,EAAE,YAAY,kBAAkB;KAE/C;EACR,QAAQ;EACR"}
1
+ {"version":3,"file":"triggers-output.schemas.d.ts","names":[],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"mappings":";;;KAyBK;KAEA;KAEA;cAiBQ,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;KAc1B,sBAAsB,EAAE,mBAAmB;cAE1C,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAE1B,sBAAsB,EAAE,mBAAmB;cAE1C,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAE1B,sBAAsB,EAAE,mBAAmB;cAE1C,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KACzB,qBAAqB,EAAE,mBAAmB;cAEzC,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAC1B,sBAAsB,EAAE,mBAAmB;KA4R3C;EACR;EACA;EACA,oBAAoB;EACpB,kBAAkB;;KAGV;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB,kBAAkB;;EAElB;;KAGQ;EACR;EACA;EACA;EACA;EACA;;EAEA;;KAGQ;EACR;EACA;EACA;EACA;EACA,oBAAoB;;EAEpB;;EAEA;;KAGQ,uBACN,oBACA,wBACA,oBACA;EACE;;;iBA0GQ,oBAAoB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6CzC,UAAU,EAAE,YAAY,kBAAkB;iBAEtC,yBAAyB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgC9C,eAAe,EAAE,YAAY,kBAAkB;KAE/C;EACR,QAAQ;EACR"}
@@ -264,7 +264,8 @@ const TrailingDetailsRawSchema = v.object({
264
264
  maxSlippageTicks: v.number(),
265
265
  maxSlippageBps: v.number(),
266
266
  triggerPriceSource: v.number(),
267
- triggerDirection: v.number()
267
+ triggerDirection: v.number(),
268
+ triggerPriceTicks: v.optional(v.bigint())
268
269
  });
269
270
  const TwapDetailsRawSchema = v.object({
270
271
  twapDurationMs: v.bigint(),
@@ -321,7 +322,8 @@ function transformTriggerDetails(details, scales, symbolId) {
321
322
  maxSlippage: details.value.maxSlippageTicks > 0 ? scaledToDecimalOutput(BigInt(details.value.maxSlippageTicks), scales.price()) : void 0,
322
323
  maxSlippageBps: details.value.maxSlippageBps,
323
324
  triggerPriceSource: enumLabel(TriggerPriceSourceCodec.protoToOutput, details.value.triggerPriceSource),
324
- triggerDirection: enumLabel(TriggerDirectionCodec.protoToOutput, details.value.triggerDirection)
325
+ triggerDirection: enumLabel(TriggerDirectionCodec.protoToOutput, details.value.triggerDirection),
326
+ triggerPrice: details.value.triggerPriceTicks !== void 0 && details.value.triggerPriceTicks > 0n ? scaledToDecimalOutput(details.value.triggerPriceTicks, scales.price()) : void 0
325
327
  };
326
328
  case "twapState": return {
327
329
  case: "twap",
@@ -1 +1 @@
1
- {"version":3,"file":"triggers-output.schemas.js","names":["TriggerSideCodec"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { enumLabel, enumLabelSchema } 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 {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n TriggerCancelReasonCodec,\n TriggerFailureReasonCodec,\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 = enumLabelSchema(TriggerStatusCodec.protoToOutput);\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.number(),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst MaxSlippageRawSchema = 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\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: MaxSlippageRawSchema,\n side: v.number(),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.number(),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({ maxSlippage: MaxSlippageRawSchema }),\n }),\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.number(),\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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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: formatMaxSlippage(configuration.value.maxSlippage, scales),\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({\n type: \"market_ioc\",\n maxSlippage: formatMaxSlippage(\n configuration.value.execution.value.maxSlippage,\n scales,\n ),\n } 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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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\nfunction formatMaxSlippage(\n maxSlippage: v.InferOutput<typeof MaxSlippageRawSchema>,\n scales: SdkScales,\n) {\n return maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(BigInt(maxSlippage.value), scales.price()),\n }\n : maxSlippage.case === \"maxSlippageBps\"\n ? { kind: \"bps\" as const, bps: maxSlippage.value }\n : { kind: \"none\" as const };\n}\n\nconst TerminalReasonRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"cancelReason\"), value: v.number() }),\n v.object({ case: v.literal(\"failureReason\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformTerminalReason(reason: v.InferOutput<typeof TerminalReasonRawSchema>) {\n switch (reason.case) {\n case \"cancelReason\":\n return {\n cancelReason: enumLabel(TriggerCancelReasonCodec.protoToOutput, reason.value),\n failureReason: undefined,\n };\n case \"failureReason\":\n return {\n cancelReason: undefined,\n failureReason: enumLabel(TriggerFailureReasonCodec.protoToOutput, reason.value),\n };\n default:\n return { cancelReason: undefined, failureReason: undefined };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.number(),\n triggerDirection: v.number(),\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.number(),\n triggerDirection: v.number(),\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.number(),\n executedQtyScaled: v.bigint(),\n executedLevels: v.number(),\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 /** Cumulative filled child-order base quantity. */\n executedQty: string;\n /** Number of ladder levels with at least one fill. */\n executedLevels: number;\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: enumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n ),\n triggerDirection: enumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\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: enumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n ),\n triggerDirection: enumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\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: enumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n ),\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n executedLevels: details.value.executedLevels,\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: v.number(),\n status: v.number(),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.number(),\n selfTradePreventionMode: v.number(),\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 terminalReason: TerminalReasonRawSchema,\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: enumLabel(TriggerStatusCodec.protoToOutput, t.status),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: enumLabel(FeeAssetCodec.protoToOutput, t.feeAsset),\n selfTradePreventionMode: enumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\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 ...transformTerminalReason(t.terminalReason),\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.number(),\n eventType: v.number(),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n terminalReason: TerminalReasonRawSchema,\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: enumLabel(TriggerTypeCodec.protoToOutput, e.triggerType),\n eventType: enumLabel(TriggerEventTypeCodec.protoToOutput, e.eventType),\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 ...transformTerminalReason(e.terminalReason),\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":["TriggerSideCodec"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { enumLabel, enumLabelSchema } 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 {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n TriggerCancelReasonCodec,\n TriggerFailureReasonCodec,\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 = enumLabelSchema(TriggerStatusCodec.protoToOutput);\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.number(),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst MaxSlippageRawSchema = 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\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: MaxSlippageRawSchema,\n side: v.number(),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.number(),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({ maxSlippage: MaxSlippageRawSchema }),\n }),\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.number(),\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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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: formatMaxSlippage(configuration.value.maxSlippage, scales),\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({\n type: \"market_ioc\",\n maxSlippage: formatMaxSlippage(\n configuration.value.execution.value.maxSlippage,\n scales,\n ),\n } 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: enumLabel(TriggerSideCodec.protoToOutput, configuration.value.side),\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\nfunction formatMaxSlippage(\n maxSlippage: v.InferOutput<typeof MaxSlippageRawSchema>,\n scales: SdkScales,\n) {\n return maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(BigInt(maxSlippage.value), scales.price()),\n }\n : maxSlippage.case === \"maxSlippageBps\"\n ? { kind: \"bps\" as const, bps: maxSlippage.value }\n : { kind: \"none\" as const };\n}\n\nconst TerminalReasonRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"cancelReason\"), value: v.number() }),\n v.object({ case: v.literal(\"failureReason\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformTerminalReason(reason: v.InferOutput<typeof TerminalReasonRawSchema>) {\n switch (reason.case) {\n case \"cancelReason\":\n return {\n cancelReason: enumLabel(TriggerCancelReasonCodec.protoToOutput, reason.value),\n failureReason: undefined,\n };\n case \"failureReason\":\n return {\n cancelReason: undefined,\n failureReason: enumLabel(TriggerFailureReasonCodec.protoToOutput, reason.value),\n };\n default:\n return { cancelReason: undefined, failureReason: undefined };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.number(),\n triggerDirection: v.number(),\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.number(),\n triggerDirection: v.number(),\n triggerPriceTicks: v.optional(v.bigint()),\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.number(),\n executedQtyScaled: v.bigint(),\n executedLevels: v.number(),\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 /** Current trailing threshold; absent until the trigger is armed. Moves with the peak or trough. */\n triggerPrice: string | undefined;\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 /** Cumulative filled child-order base quantity. */\n executedQty: string;\n /** Number of ladder levels with at least one fill. */\n executedLevels: number;\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: enumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n ),\n triggerDirection: enumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\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: enumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n ),\n triggerDirection: enumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n ),\n triggerPrice:\n details.value.triggerPriceTicks !== undefined &&\n details.value.triggerPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.triggerPriceTicks, scales.price())\n : undefined,\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: enumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n ),\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n executedLevels: details.value.executedLevels,\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: v.number(),\n status: v.number(),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.number(),\n selfTradePreventionMode: v.number(),\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 terminalReason: TerminalReasonRawSchema,\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: enumLabel(TriggerStatusCodec.protoToOutput, t.status),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: enumLabel(FeeAssetCodec.protoToOutput, t.feeAsset),\n selfTradePreventionMode: enumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\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 ...transformTerminalReason(t.terminalReason),\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.number(),\n eventType: v.number(),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n terminalReason: TerminalReasonRawSchema,\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: enumLabel(TriggerTypeCodec.protoToOutput, e.triggerType),\n eventType: enumLabel(TriggerEventTypeCodec.protoToOutput, e.eventType),\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 ...transformTerminalReason(e.terminalReason),\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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"}
@@ -22,7 +22,8 @@ const TRIGGER_EVENT_TYPE_VALUES = [
22
22
  "fired",
23
23
  "canceled",
24
24
  "updated",
25
- "failed"
25
+ "failed",
26
+ "activated"
26
27
  ];
27
28
  const TriggerTypeCodec = {
28
29
  inputToProto: {
@@ -67,14 +68,16 @@ const TriggerEventTypeCodec = {
67
68
  fired: 1,
68
69
  canceled: 2,
69
70
  updated: 3,
70
- failed: 4
71
+ failed: 4,
72
+ activated: 5
71
73
  },
72
74
  protoToOutput: {
73
75
  [0]: "unspecified",
74
76
  [1]: "fired",
75
77
  [2]: "canceled",
76
78
  [3]: "updated",
77
- [4]: "failed"
79
+ [4]: "failed",
80
+ [5]: "activated"
78
81
  }
79
82
  };
80
83
  const TriggerCancelReasonCodec = { protoToOutput: {
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.codecs.js","names":[],"sources":["../../../src/services/triggers/triggers.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec as TriggerSideCodec,\n type OrderSideValue as TriggerSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"../orders/order-enums.codecs.js\";\n\nexport const TRIGGER_TYPE_VALUES = [\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type TriggerTypeValue = (typeof TRIGGER_TYPE_VALUES)[number];\n\nexport const TRIGGER_TYPE_LABEL_VALUES = TRIGGER_TYPE_VALUES;\nexport type TriggerTypeLabelValue = (typeof TRIGGER_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_STATUS_FILTER_VALUES = [\n \"created\",\n \"armed\",\n \"running\",\n \"completed\",\n \"cancelled\",\n \"failed\",\n \"paused\",\n] as const;\nexport type TriggerStatusFilterValue = (typeof TRIGGER_STATUS_FILTER_VALUES)[number];\n\nexport const TRIGGER_STATUS_LABEL_VALUES = TRIGGER_STATUS_FILTER_VALUES;\nexport type TriggerStatusLabelValue = (typeof TRIGGER_STATUS_LABEL_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_VALUES = [\"fired\", \"canceled\", \"updated\", \"failed\"] as const;\nexport type TriggerEventTypeValue = (typeof TRIGGER_EVENT_TYPE_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_LABEL_VALUES = TRIGGER_EVENT_TYPE_VALUES;\nexport type TriggerEventTypeLabelValue = (typeof TRIGGER_EVENT_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_CANCEL_REASON_LABEL_VALUES = [\n \"user_request\",\n \"oco\",\n \"parent_canceled_no_fill\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerCancelReasonLabelValue = (typeof TRIGGER_CANCEL_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_FAILURE_REASON_LABEL_VALUES = [\n \"unknown_symbol\",\n \"pair_disabled\",\n \"min_notional\",\n \"tick_size\",\n \"insufficient_funds\",\n \"risk_limit\",\n \"duplicate_client_id\",\n \"market_halted\",\n \"engine_busy\",\n \"account_unknown\",\n \"order_unknown\",\n \"post_only_cross\",\n \"reduce_only_blocked\",\n \"price_band_violation\",\n \"market_cap_violation\",\n \"empty_book\",\n \"fok_insufficient_liquidity\",\n \"fee_asset_not_allowed\",\n \"market_price_unavailable\",\n \"stale_quote\",\n \"min_quantity\",\n \"step_size\",\n \"invalid_sizing\",\n \"max_quote_debit_too_small\",\n \"fee_ceiling_exceeded\",\n \"trigger_price_invalid\",\n \"trigger_price_source_unsupported\",\n \"trailing_distance_invalid\",\n \"modification_requires_replace\",\n \"order_already_terminal\",\n \"conflict_idempotency_key_reuse\",\n \"rate_limited\",\n \"policy_spot_trade_deny\",\n \"policy_market_deny\",\n \"policy_max_notional\",\n \"policy_max_open_orders\",\n \"policy_trading_halted\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerFailureReasonLabelValue = (typeof TRIGGER_FAILURE_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_DIRECTION_VALUES = [\"above\", \"below\"] as const;\nexport type TriggerDirectionValue = (typeof TRIGGER_DIRECTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_VALUES = [\"linear\"] as const;\nexport type LadderDistributionValue = (typeof LADDER_DISTRIBUTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_LABEL_VALUES = [\n \"linear\",\n \"geometric\",\n \"weighted_favorable\",\n] as const;\nexport type LadderDistributionLabelValue = (typeof LADDER_DISTRIBUTION_LABEL_VALUES)[number];\n\nexport const TriggerTypeCodec = {\n inputToProto: {\n stop_loss: Proto.TriggerType.STOP_LOSS,\n take_profit: Proto.TriggerType.TAKE_PROFIT,\n trailing_stop: Proto.TriggerType.TRAILING_STOP,\n twap: Proto.TriggerType.TWAP,\n ladder: Proto.TriggerType.LADDER,\n } satisfies InputToProto<TriggerTypeValue, Proto.TriggerType>,\n protoToOutput: {\n [Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerType.STOP_LOSS]: \"stop_loss\",\n [Proto.TriggerType.TAKE_PROFIT]: \"take_profit\",\n [Proto.TriggerType.TRAILING_STOP]: \"trailing_stop\",\n [Proto.TriggerType.TWAP]: \"twap\",\n [Proto.TriggerType.LADDER]: \"ladder\",\n } satisfies ProtoToOutput<Proto.TriggerType, TriggerTypeLabelValue>,\n} as const;\n\nexport const TriggerStatusCodec = {\n inputToProto: {\n created: Proto.TriggerStatus.STATUS_CREATED,\n armed: Proto.TriggerStatus.STATUS_ARMED,\n running: Proto.TriggerStatus.STATUS_RUNNING,\n completed: Proto.TriggerStatus.STATUS_COMPLETED,\n cancelled: Proto.TriggerStatus.STATUS_CANCELED,\n failed: Proto.TriggerStatus.STATUS_FAILED,\n paused: Proto.TriggerStatus.STATUS_PAUSED,\n } satisfies InputToProto<TriggerStatusFilterValue, Proto.TriggerStatus>,\n protoToOutput: {\n [Proto.TriggerStatus.STATUS_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerStatus.STATUS_CREATED]: \"created\",\n [Proto.TriggerStatus.STATUS_ARMED]: \"armed\",\n [Proto.TriggerStatus.STATUS_RUNNING]: \"running\",\n [Proto.TriggerStatus.STATUS_COMPLETED]: \"completed\",\n [Proto.TriggerStatus.STATUS_CANCELED]: \"cancelled\",\n [Proto.TriggerStatus.STATUS_FAILED]: \"failed\",\n [Proto.TriggerStatus.STATUS_PAUSED]: \"paused\",\n } satisfies ProtoToOutput<Proto.TriggerStatus, TriggerStatusLabelValue>,\n} as const;\n\nexport const TriggerEventTypeCodec = {\n inputToProto: {\n fired: Proto.TriggerEventType.EVENT_FIRED,\n canceled: Proto.TriggerEventType.EVENT_CANCELED,\n updated: Proto.TriggerEventType.EVENT_UPDATED,\n failed: Proto.TriggerEventType.EVENT_FAILED,\n } satisfies InputToProto<TriggerEventTypeValue, Proto.TriggerEventType>,\n protoToOutput: {\n [Proto.TriggerEventType.EVENT_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerEventType.EVENT_FIRED]: \"fired\",\n [Proto.TriggerEventType.EVENT_CANCELED]: \"canceled\",\n [Proto.TriggerEventType.EVENT_UPDATED]: \"updated\",\n [Proto.TriggerEventType.EVENT_FAILED]: \"failed\",\n } satisfies ProtoToOutput<Proto.TriggerEventType, TriggerEventTypeLabelValue>,\n} as const;\n\nexport const TriggerCancelReasonCodec = {\n protoToOutput: {\n [Proto.TriggerCancelReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerCancelReason.USER_REQUEST]: \"user_request\",\n [Proto.TriggerCancelReason.OCO]: \"oco\",\n [Proto.TriggerCancelReason.PARENT_CANCELED_NO_FILL]: \"parent_canceled_no_fill\",\n [Proto.TriggerCancelReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerCancelReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerCancelReason, TriggerCancelReasonLabelValue>,\n} as const;\n\nexport const TriggerFailureReasonCodec = {\n protoToOutput: {\n [Proto.TriggerFailureReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerFailureReason.UNKNOWN_SYMBOL]: \"unknown_symbol\",\n [Proto.TriggerFailureReason.PAIR_DISABLED]: \"pair_disabled\",\n [Proto.TriggerFailureReason.MIN_NOTIONAL]: \"min_notional\",\n [Proto.TriggerFailureReason.TICK_SIZE]: \"tick_size\",\n [Proto.TriggerFailureReason.INSUFFICIENT_FUNDS]: \"insufficient_funds\",\n [Proto.TriggerFailureReason.RISK_LIMIT]: \"risk_limit\",\n [Proto.TriggerFailureReason.DUPLICATE_CLIENT_ID]: \"duplicate_client_id\",\n [Proto.TriggerFailureReason.MARKET_HALTED]: \"market_halted\",\n [Proto.TriggerFailureReason.ENGINE_BUSY]: \"engine_busy\",\n [Proto.TriggerFailureReason.ACCOUNT_UNKNOWN]: \"account_unknown\",\n [Proto.TriggerFailureReason.ORDER_UNKNOWN]: \"order_unknown\",\n [Proto.TriggerFailureReason.POST_ONLY_CROSS]: \"post_only_cross\",\n [Proto.TriggerFailureReason.REDUCE_ONLY_BLOCKED]: \"reduce_only_blocked\",\n [Proto.TriggerFailureReason.PRICE_BAND_VIOLATION]: \"price_band_violation\",\n [Proto.TriggerFailureReason.MARKET_CAP_VIOLATION]: \"market_cap_violation\",\n [Proto.TriggerFailureReason.EMPTY_BOOK]: \"empty_book\",\n [Proto.TriggerFailureReason.FOK_INSUFFICIENT_LIQUIDITY]: \"fok_insufficient_liquidity\",\n [Proto.TriggerFailureReason.FEE_ASSET_NOT_ALLOWED]: \"fee_asset_not_allowed\",\n [Proto.TriggerFailureReason.MARKET_PRICE_UNAVAILABLE]: \"market_price_unavailable\",\n [Proto.TriggerFailureReason.STALE_QUOTE]: \"stale_quote\",\n [Proto.TriggerFailureReason.MIN_QUANTITY]: \"min_quantity\",\n [Proto.TriggerFailureReason.STEP_SIZE]: \"step_size\",\n [Proto.TriggerFailureReason.INVALID_SIZING]: \"invalid_sizing\",\n [Proto.TriggerFailureReason.MAX_QUOTE_DEBIT_TOO_SMALL]: \"max_quote_debit_too_small\",\n [Proto.TriggerFailureReason.FEE_CEILING_EXCEEDED]: \"fee_ceiling_exceeded\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_INVALID]: \"trigger_price_invalid\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_SOURCE_UNSUPPORTED]:\n \"trigger_price_source_unsupported\",\n [Proto.TriggerFailureReason.TRAILING_DISTANCE_INVALID]: \"trailing_distance_invalid\",\n [Proto.TriggerFailureReason.MODIFICATION_REQUIRES_REPLACE]: \"modification_requires_replace\",\n [Proto.TriggerFailureReason.ORDER_ALREADY_TERMINAL]: \"order_already_terminal\",\n [Proto.TriggerFailureReason.CONFLICT_IDEMPOTENCY_KEY_REUSE]:\n \"conflict_idempotency_key_reuse\",\n [Proto.TriggerFailureReason.RATE_LIMITED]: \"rate_limited\",\n [Proto.TriggerFailureReason.POLICY_SPOT_TRADE_DENY]: \"policy_spot_trade_deny\",\n [Proto.TriggerFailureReason.POLICY_MARKET_DENY]: \"policy_market_deny\",\n [Proto.TriggerFailureReason.POLICY_MAX_NOTIONAL]: \"policy_max_notional\",\n [Proto.TriggerFailureReason.POLICY_MAX_OPEN_ORDERS]: \"policy_max_open_orders\",\n [Proto.TriggerFailureReason.POLICY_TRADING_HALTED]: \"policy_trading_halted\",\n [Proto.TriggerFailureReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerFailureReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerFailureReason, TriggerFailureReasonLabelValue>,\n} as const;\n\nexport const TriggerDirectionCodec = {\n inputToProto: {\n above: ProtoOrders.TriggerDirection.ABOVE,\n below: ProtoOrders.TriggerDirection.BELOW,\n } satisfies InputToProto<TriggerDirectionValue, ProtoOrders.TriggerDirection>,\n protoToOutput: {\n [ProtoOrders.TriggerDirection.TRIGGER_DIRECTION_UNSPECIFIED]: \"unspecified\",\n [ProtoOrders.TriggerDirection.ABOVE]: \"above\",\n [ProtoOrders.TriggerDirection.BELOW]: \"below\",\n } satisfies ProtoToOutput<ProtoOrders.TriggerDirection, TriggerDirectionValue>,\n} as const;\n\nexport const LadderDistributionCodec = {\n inputToProto: {\n linear: Proto.LadderDistribution.LINEAR,\n } satisfies InputToProto<LadderDistributionValue, Proto.LadderDistribution>,\n protoToOutput: {\n [Proto.LadderDistribution.LADDER_DISTRIBUTION_UNSPECIFIED]: \"unspecified\",\n [Proto.LadderDistribution.LINEAR]: \"linear\",\n [Proto.LadderDistribution.GEOMETRIC]: \"geometric\",\n [Proto.LadderDistribution.WEIGHTED_FAVORABLE]: \"weighted_favorable\",\n } satisfies ProtoToOutput<Proto.LadderDistribution, LadderDistributionLabelValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,sBAAsB;CAC/B;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,+BAA+B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,4BAA4B;CAAC;CAAS;CAAY;CAAW;AAAQ;AAuElF,MAAa,mBAAmB;CAC5B,cAAc;EACV,WAAA;EACA,aAAA;EACA,eAAA;EACA,MAAA;EACA,QAAA;CACJ;CACA,eAAe;GACmC,IAAA;GACf,IAAA;GACE,IAAA;GACE,IAAA;GACT,IAAA;GACE,IAAA;CAChC;AACJ;AAEA,MAAa,qBAAqB;CAC9B,cAAc;EACV,SAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,QAAA;CACJ;CACA,eAAe;GAC+B,IAAA;GACJ,IAAA;GACF,IAAA;GACE,IAAA;GACE,IAAA;GACD,IAAA;GACF,IAAA;GACA,IAAA;CACzC;AACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;CACJ;CACA,eAAe;GACiC,IAAA;GACN,IAAA;GACG,IAAA;GACD,IAAA;GACD,IAAA;CAC3C;AACJ;AAEA,MAAa,2BAA2B,EACpC,eAAe;EAC8B,IAAA;EACC,IAAA;EACT,IAAA;EACoB,IAAA;EACJ,MAAA;EACL,MAAA;AAChD,EACJ;AAEA,MAAa,4BAA4B,EACrC,eAAe;EAC+B,IAAA;EACG,IAAA;EACD,IAAA;EACD,IAAA;EACH,IAAA;EACS,IAAA;EACR,IAAA;EACS,IAAA;EACN,IAAA;EACF,IAAA;EACI,KAAA;EACF,KAAA;EACE,KAAA;EACI,KAAA;EACC,KAAA;EACA,KAAA;EACV,KAAA;EACgB,KAAA;EACL,KAAA;EACG,KAAA;EACb,KAAA;EACC,KAAA;EACH,KAAA;EACK,KAAA;EACW,KAAA;EACL,KAAA;EACC,KAAA;EAEhD,KAAA;EACoD,KAAA;EACI,KAAA;EACP,KAAA;EAEjD,KAAA;EACuC,KAAA;EACU,KAAA;EACJ,KAAA;EACC,KAAA;EACG,KAAA;EACD,KAAA;EACF,MAAA;EACL,MAAA;AACjD,EACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,OAAA;CACJ;CACA,eAAe;GACmD,IAAA;GACxB,IAAA;GACA,IAAA;CAC1C;AACJ;AAEA,MAAa,0BAA0B;CACnC,cAAc,EACV,QAAA,EACJ;CACA,eAAe;GACiD,IAAA;GACzB,IAAA;GACG,IAAA;GACS,IAAA;CACnD;AACJ"}
1
+ {"version":3,"file":"triggers.codecs.js","names":[],"sources":["../../../src/services/triggers/triggers.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec as TriggerSideCodec,\n type OrderSideValue as TriggerSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"../orders/order-enums.codecs.js\";\n\nexport const TRIGGER_TYPE_VALUES = [\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type TriggerTypeValue = (typeof TRIGGER_TYPE_VALUES)[number];\n\nexport const TRIGGER_TYPE_LABEL_VALUES = TRIGGER_TYPE_VALUES;\nexport type TriggerTypeLabelValue = (typeof TRIGGER_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_STATUS_FILTER_VALUES = [\n \"created\",\n \"armed\",\n \"running\",\n \"completed\",\n \"cancelled\",\n \"failed\",\n \"paused\",\n] as const;\nexport type TriggerStatusFilterValue = (typeof TRIGGER_STATUS_FILTER_VALUES)[number];\n\nexport const TRIGGER_STATUS_LABEL_VALUES = TRIGGER_STATUS_FILTER_VALUES;\nexport type TriggerStatusLabelValue = (typeof TRIGGER_STATUS_LABEL_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_VALUES = [\n \"fired\",\n \"canceled\",\n \"updated\",\n \"failed\",\n \"activated\",\n] as const;\nexport type TriggerEventTypeValue = (typeof TRIGGER_EVENT_TYPE_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_LABEL_VALUES = TRIGGER_EVENT_TYPE_VALUES;\nexport type TriggerEventTypeLabelValue = (typeof TRIGGER_EVENT_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_CANCEL_REASON_LABEL_VALUES = [\n \"user_request\",\n \"oco\",\n \"parent_canceled_no_fill\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerCancelReasonLabelValue = (typeof TRIGGER_CANCEL_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_FAILURE_REASON_LABEL_VALUES = [\n \"unknown_symbol\",\n \"pair_disabled\",\n \"min_notional\",\n \"tick_size\",\n \"insufficient_funds\",\n \"risk_limit\",\n \"duplicate_client_id\",\n \"market_halted\",\n \"engine_busy\",\n \"account_unknown\",\n \"order_unknown\",\n \"post_only_cross\",\n \"reduce_only_blocked\",\n \"price_band_violation\",\n \"market_cap_violation\",\n \"empty_book\",\n \"fok_insufficient_liquidity\",\n \"fee_asset_not_allowed\",\n \"market_price_unavailable\",\n \"stale_quote\",\n \"min_quantity\",\n \"step_size\",\n \"invalid_sizing\",\n \"max_quote_debit_too_small\",\n \"fee_ceiling_exceeded\",\n \"trigger_price_invalid\",\n \"trigger_price_source_unsupported\",\n \"trailing_distance_invalid\",\n \"modification_requires_replace\",\n \"order_already_terminal\",\n \"conflict_idempotency_key_reuse\",\n \"rate_limited\",\n \"policy_spot_trade_deny\",\n \"policy_market_deny\",\n \"policy_max_notional\",\n \"policy_max_open_orders\",\n \"policy_trading_halted\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerFailureReasonLabelValue = (typeof TRIGGER_FAILURE_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_DIRECTION_VALUES = [\"above\", \"below\"] as const;\nexport type TriggerDirectionValue = (typeof TRIGGER_DIRECTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_VALUES = [\"linear\"] as const;\nexport type LadderDistributionValue = (typeof LADDER_DISTRIBUTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_LABEL_VALUES = [\n \"linear\",\n \"geometric\",\n \"weighted_favorable\",\n] as const;\nexport type LadderDistributionLabelValue = (typeof LADDER_DISTRIBUTION_LABEL_VALUES)[number];\n\nexport const TriggerTypeCodec = {\n inputToProto: {\n stop_loss: Proto.TriggerType.STOP_LOSS,\n take_profit: Proto.TriggerType.TAKE_PROFIT,\n trailing_stop: Proto.TriggerType.TRAILING_STOP,\n twap: Proto.TriggerType.TWAP,\n ladder: Proto.TriggerType.LADDER,\n } satisfies InputToProto<TriggerTypeValue, Proto.TriggerType>,\n protoToOutput: {\n [Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerType.STOP_LOSS]: \"stop_loss\",\n [Proto.TriggerType.TAKE_PROFIT]: \"take_profit\",\n [Proto.TriggerType.TRAILING_STOP]: \"trailing_stop\",\n [Proto.TriggerType.TWAP]: \"twap\",\n [Proto.TriggerType.LADDER]: \"ladder\",\n } satisfies ProtoToOutput<Proto.TriggerType, TriggerTypeLabelValue>,\n} as const;\n\nexport const TriggerStatusCodec = {\n inputToProto: {\n created: Proto.TriggerStatus.STATUS_CREATED,\n armed: Proto.TriggerStatus.STATUS_ARMED,\n running: Proto.TriggerStatus.STATUS_RUNNING,\n completed: Proto.TriggerStatus.STATUS_COMPLETED,\n cancelled: Proto.TriggerStatus.STATUS_CANCELED,\n failed: Proto.TriggerStatus.STATUS_FAILED,\n paused: Proto.TriggerStatus.STATUS_PAUSED,\n } satisfies InputToProto<TriggerStatusFilterValue, Proto.TriggerStatus>,\n protoToOutput: {\n [Proto.TriggerStatus.STATUS_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerStatus.STATUS_CREATED]: \"created\",\n [Proto.TriggerStatus.STATUS_ARMED]: \"armed\",\n [Proto.TriggerStatus.STATUS_RUNNING]: \"running\",\n [Proto.TriggerStatus.STATUS_COMPLETED]: \"completed\",\n [Proto.TriggerStatus.STATUS_CANCELED]: \"cancelled\",\n [Proto.TriggerStatus.STATUS_FAILED]: \"failed\",\n [Proto.TriggerStatus.STATUS_PAUSED]: \"paused\",\n } satisfies ProtoToOutput<Proto.TriggerStatus, TriggerStatusLabelValue>,\n} as const;\n\nexport const TriggerEventTypeCodec = {\n inputToProto: {\n fired: Proto.TriggerEventType.EVENT_FIRED,\n canceled: Proto.TriggerEventType.EVENT_CANCELED,\n updated: Proto.TriggerEventType.EVENT_UPDATED,\n failed: Proto.TriggerEventType.EVENT_FAILED,\n activated: Proto.TriggerEventType.EVENT_ACTIVATED,\n } satisfies InputToProto<TriggerEventTypeValue, Proto.TriggerEventType>,\n protoToOutput: {\n [Proto.TriggerEventType.EVENT_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerEventType.EVENT_FIRED]: \"fired\",\n [Proto.TriggerEventType.EVENT_CANCELED]: \"canceled\",\n [Proto.TriggerEventType.EVENT_UPDATED]: \"updated\",\n [Proto.TriggerEventType.EVENT_FAILED]: \"failed\",\n [Proto.TriggerEventType.EVENT_ACTIVATED]: \"activated\",\n } satisfies ProtoToOutput<Proto.TriggerEventType, TriggerEventTypeLabelValue>,\n} as const;\n\nexport const TriggerCancelReasonCodec = {\n protoToOutput: {\n [Proto.TriggerCancelReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerCancelReason.USER_REQUEST]: \"user_request\",\n [Proto.TriggerCancelReason.OCO]: \"oco\",\n [Proto.TriggerCancelReason.PARENT_CANCELED_NO_FILL]: \"parent_canceled_no_fill\",\n [Proto.TriggerCancelReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerCancelReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerCancelReason, TriggerCancelReasonLabelValue>,\n} as const;\n\nexport const TriggerFailureReasonCodec = {\n protoToOutput: {\n [Proto.TriggerFailureReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerFailureReason.UNKNOWN_SYMBOL]: \"unknown_symbol\",\n [Proto.TriggerFailureReason.PAIR_DISABLED]: \"pair_disabled\",\n [Proto.TriggerFailureReason.MIN_NOTIONAL]: \"min_notional\",\n [Proto.TriggerFailureReason.TICK_SIZE]: \"tick_size\",\n [Proto.TriggerFailureReason.INSUFFICIENT_FUNDS]: \"insufficient_funds\",\n [Proto.TriggerFailureReason.RISK_LIMIT]: \"risk_limit\",\n [Proto.TriggerFailureReason.DUPLICATE_CLIENT_ID]: \"duplicate_client_id\",\n [Proto.TriggerFailureReason.MARKET_HALTED]: \"market_halted\",\n [Proto.TriggerFailureReason.ENGINE_BUSY]: \"engine_busy\",\n [Proto.TriggerFailureReason.ACCOUNT_UNKNOWN]: \"account_unknown\",\n [Proto.TriggerFailureReason.ORDER_UNKNOWN]: \"order_unknown\",\n [Proto.TriggerFailureReason.POST_ONLY_CROSS]: \"post_only_cross\",\n [Proto.TriggerFailureReason.REDUCE_ONLY_BLOCKED]: \"reduce_only_blocked\",\n [Proto.TriggerFailureReason.PRICE_BAND_VIOLATION]: \"price_band_violation\",\n [Proto.TriggerFailureReason.MARKET_CAP_VIOLATION]: \"market_cap_violation\",\n [Proto.TriggerFailureReason.EMPTY_BOOK]: \"empty_book\",\n [Proto.TriggerFailureReason.FOK_INSUFFICIENT_LIQUIDITY]: \"fok_insufficient_liquidity\",\n [Proto.TriggerFailureReason.FEE_ASSET_NOT_ALLOWED]: \"fee_asset_not_allowed\",\n [Proto.TriggerFailureReason.MARKET_PRICE_UNAVAILABLE]: \"market_price_unavailable\",\n [Proto.TriggerFailureReason.STALE_QUOTE]: \"stale_quote\",\n [Proto.TriggerFailureReason.MIN_QUANTITY]: \"min_quantity\",\n [Proto.TriggerFailureReason.STEP_SIZE]: \"step_size\",\n [Proto.TriggerFailureReason.INVALID_SIZING]: \"invalid_sizing\",\n [Proto.TriggerFailureReason.MAX_QUOTE_DEBIT_TOO_SMALL]: \"max_quote_debit_too_small\",\n [Proto.TriggerFailureReason.FEE_CEILING_EXCEEDED]: \"fee_ceiling_exceeded\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_INVALID]: \"trigger_price_invalid\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_SOURCE_UNSUPPORTED]:\n \"trigger_price_source_unsupported\",\n [Proto.TriggerFailureReason.TRAILING_DISTANCE_INVALID]: \"trailing_distance_invalid\",\n [Proto.TriggerFailureReason.MODIFICATION_REQUIRES_REPLACE]: \"modification_requires_replace\",\n [Proto.TriggerFailureReason.ORDER_ALREADY_TERMINAL]: \"order_already_terminal\",\n [Proto.TriggerFailureReason.CONFLICT_IDEMPOTENCY_KEY_REUSE]:\n \"conflict_idempotency_key_reuse\",\n [Proto.TriggerFailureReason.RATE_LIMITED]: \"rate_limited\",\n [Proto.TriggerFailureReason.POLICY_SPOT_TRADE_DENY]: \"policy_spot_trade_deny\",\n [Proto.TriggerFailureReason.POLICY_MARKET_DENY]: \"policy_market_deny\",\n [Proto.TriggerFailureReason.POLICY_MAX_NOTIONAL]: \"policy_max_notional\",\n [Proto.TriggerFailureReason.POLICY_MAX_OPEN_ORDERS]: \"policy_max_open_orders\",\n [Proto.TriggerFailureReason.POLICY_TRADING_HALTED]: \"policy_trading_halted\",\n [Proto.TriggerFailureReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerFailureReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerFailureReason, TriggerFailureReasonLabelValue>,\n} as const;\n\nexport const TriggerDirectionCodec = {\n inputToProto: {\n above: ProtoOrders.TriggerDirection.ABOVE,\n below: ProtoOrders.TriggerDirection.BELOW,\n } satisfies InputToProto<TriggerDirectionValue, ProtoOrders.TriggerDirection>,\n protoToOutput: {\n [ProtoOrders.TriggerDirection.TRIGGER_DIRECTION_UNSPECIFIED]: \"unspecified\",\n [ProtoOrders.TriggerDirection.ABOVE]: \"above\",\n [ProtoOrders.TriggerDirection.BELOW]: \"below\",\n } satisfies ProtoToOutput<ProtoOrders.TriggerDirection, TriggerDirectionValue>,\n} as const;\n\nexport const LadderDistributionCodec = {\n inputToProto: {\n linear: Proto.LadderDistribution.LINEAR,\n } satisfies InputToProto<LadderDistributionValue, Proto.LadderDistribution>,\n protoToOutput: {\n [Proto.LadderDistribution.LADDER_DISTRIBUTION_UNSPECIFIED]: \"unspecified\",\n [Proto.LadderDistribution.LINEAR]: \"linear\",\n [Proto.LadderDistribution.GEOMETRIC]: \"geometric\",\n [Proto.LadderDistribution.WEIGHTED_FAVORABLE]: \"weighted_favorable\",\n } satisfies ProtoToOutput<Proto.LadderDistribution, LadderDistributionLabelValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,sBAAsB;CAC/B;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,+BAA+B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,4BAA4B;CACrC;CACA;CACA;CACA;CACA;AACJ;AAuEA,MAAa,mBAAmB;CAC5B,cAAc;EACV,WAAA;EACA,aAAA;EACA,eAAA;EACA,MAAA;EACA,QAAA;CACJ;CACA,eAAe;GACmC,IAAA;GACf,IAAA;GACE,IAAA;GACE,IAAA;GACT,IAAA;GACE,IAAA;CAChC;AACJ;AAEA,MAAa,qBAAqB;CAC9B,cAAc;EACV,SAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,QAAA;CACJ;CACA,eAAe;GAC+B,IAAA;GACJ,IAAA;GACF,IAAA;GACE,IAAA;GACE,IAAA;GACD,IAAA;GACF,IAAA;GACA,IAAA;CACzC;AACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;CACJ;CACA,eAAe;GACiC,IAAA;GACN,IAAA;GACG,IAAA;GACD,IAAA;GACD,IAAA;GACG,IAAA;CAC9C;AACJ;AAEA,MAAa,2BAA2B,EACpC,eAAe;EAC8B,IAAA;EACC,IAAA;EACT,IAAA;EACoB,IAAA;EACJ,MAAA;EACL,MAAA;AAChD,EACJ;AAEA,MAAa,4BAA4B,EACrC,eAAe;EAC+B,IAAA;EACG,IAAA;EACD,IAAA;EACD,IAAA;EACH,IAAA;EACS,IAAA;EACR,IAAA;EACS,IAAA;EACN,IAAA;EACF,IAAA;EACI,KAAA;EACF,KAAA;EACE,KAAA;EACI,KAAA;EACC,KAAA;EACA,KAAA;EACV,KAAA;EACgB,KAAA;EACL,KAAA;EACG,KAAA;EACb,KAAA;EACC,KAAA;EACH,KAAA;EACK,KAAA;EACW,KAAA;EACL,KAAA;EACC,KAAA;EAEhD,KAAA;EACoD,KAAA;EACI,KAAA;EACP,KAAA;EAEjD,KAAA;EACuC,KAAA;EACU,KAAA;EACJ,KAAA;EACC,KAAA;EACG,KAAA;EACD,KAAA;EACF,MAAA;EACL,MAAA;AACjD,EACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,OAAA;CACJ;CACA,eAAe;GACmD,IAAA;GACxB,IAAA;GACA,IAAA;CAC1C;AACJ;AAEA,MAAa,0BAA0B;CACnC,cAAc,EACV,QAAA,EACJ;CACA,eAAe;GACiD,IAAA;GACzB,IAAA;GACG,IAAA;GACS,IAAA;CACnD;AACJ"}
@@ -10,14 +10,14 @@ function createCatalogSdkScales(getCatalog) {
10
10
  ready: async () => {
11
11
  await getCatalog().ensureReady();
12
12
  },
13
- price: () => 6,
13
+ price: () => 9,
14
14
  baseQty: (pair) => requirePair(getCatalog(), pair).baseAsset.quantityScale,
15
15
  quoteAmount: (pair) => requirePair(getCatalog(), pair).quoteAsset.quantityScale,
16
16
  marketDataVolume: (pair) => {
17
17
  const { baseAsset } = requirePair(getCatalog(), pair);
18
18
  return baseAsset.marketDataVolumeScale ?? baseAsset.quantityScale;
19
19
  },
20
- referencePrice: (pair) => requirePair(getCatalog(), pair).referencePriceScale ?? 6,
20
+ referencePrice: (pair) => requirePair(getCatalog(), pair).referencePriceScale ?? 9,
21
21
  ledgerAmount: (ledgerAssetId) => {
22
22
  const ledger = getCatalog().ledger;
23
23
  if (!ledger.isKnownAssetId(ledgerAssetId)) throw new CatalogLookupError("ledger", "ledgerId", ledgerAssetId);
@@ -1 +1 @@
1
- {"version":3,"file":"numbers.js","names":[],"sources":["../../src/utils/numbers.ts"],"sourcesContent":["// Shared numeric helpers for gRPC/Connect clients.\n\n/**\n * Parse a required uint64 encoded as a base-10 string into bigint.\n * @param raw - The raw string to parse.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive integer.\n */\nexport function parseRequiredUint64Decimal(raw: string, fieldName: string): bigint {\n const s = (raw ?? \"\").trim();\n if (!s) throw new Error(`${fieldName} is required`);\n if (!/^[0-9]+$/.test(s)) throw new Error(`${fieldName} must be a positive integer`);\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64 encoded as a base-10 string into bigint, or undefined on invalid/empty.\n * @param raw - The raw string to parse.\n * @returns The parsed bigint, or undefined if the field is invalid or empty.\n */\nexport function parseOptionalUint64Decimal(raw: string | undefined): bigint | undefined {\n const s = (raw ?? \"\").trim();\n if (!s) return;\n // For optional filters, treat invalid input as \"unset\" rather than surfacing an error.\n if (!/^[0-9]+$/.test(s)) return;\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64 encoded as a base-10 string into bigint.\n * Empty values are omitted, but supplied invalid values are rejected.\n */\nexport function parseOptionalUint64DecimalStrict(\n raw: string | undefined,\n fieldName: string,\n): bigint | undefined {\n const s = (raw ?? \"\").trim();\n if (!s) return;\n if (!/^[0-9]+$/.test(s)) throw new Error(`${fieldName} must be a positive integer`);\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64-ish value (string/number/bigint) into bigint, or undefined on invalid/empty.\n * Accepts base-10 strings, numeric inputs (truncated), and bigint inputs.\n */\nexport function parseOptionalUint64Like(\n value: string | number | bigint | undefined | null,\n): bigint | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"bigint\") return value >= 0n ? value : undefined;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) return undefined;\n const n = Math.trunc(value);\n return n >= 0 ? BigInt(n) : undefined;\n }\n return parseOptionalUint64Decimal(value);\n}\n\n/**\n * Parse an optional positive integer-ish value (string/number) into a number, or undefined on invalid/empty.\n * Useful for common \"limit\" fields coming from UI inputs.\n */\nexport function parseOptionalPositiveIntLike(\n value: string | number | undefined | null,\n): number | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"string\") {\n const decimal = value.trim();\n if (!/^\\d+$/.test(decimal)) return undefined;\n const parsed = Number(decimal);\n return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : undefined;\n }\n return Number.isSafeInteger(value) && value > 0 ? value : undefined;\n}\n\n/**\n * Parse a positive integer-like value without losing precision.\n * Decimal strings may exceed JavaScript's safe-integer range; number inputs may not.\n */\nexport function parseOptionalPositiveBigIntLike(\n value: string | number | undefined | null,\n): bigint | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"number\") {\n return Number.isSafeInteger(value) && value > 0 ? BigInt(value) : undefined;\n }\n const decimal = value.trim();\n if (!/^\\d+$/.test(decimal)) return undefined;\n const parsed = BigInt(decimal);\n return parsed > 0n ? parsed : undefined;\n}\n\n/**\n * Convert a decimal string into a scaled bigint (e.g. 18dp quantity, 6dp price).\n * @param raw - The raw string to parse.\n * @param scale - The scale of the number.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive number.\n */\nexport function decimalToScaledInt(raw: string, scale: number, fieldName: string): bigint {\n const s = (raw ?? \"\").trim();\n if (!s) throw new Error(`${fieldName} is required`);\n if (!/^[0-9]+(\\.[0-9]+)?$/.test(s)) throw new Error(`${fieldName} must be a positive number`);\n const [intPartRaw, fracRaw = \"\"] = s.split(\".\");\n if (fracRaw.length > scale) {\n throw new Error(`${fieldName} supports at most ${scale} decimal places`);\n }\n const intPart = intPartRaw?.replace(/^0+/, \"\") ?? \"0\";\n const fracPart = fracRaw.padEnd(scale, \"0\");\n const combined = `${intPart}${fracPart}`;\n return BigInt(combined ?? \"0\");\n}\n\n/**\n * Parse a quantity scaled to the given number of decimal places.\n * @param raw - The raw string to parse.\n * @param scale - The number of decimal places to scale to.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive number.\n */\nexport function parseQtyScaled(raw: string, scale: number, fieldName: string): bigint {\n return decimalToScaledInt(raw, scale, fieldName);\n}\n\n/**\n * Parse a price scaled to 6 decimal places.\n * @param raw - The raw string to parse.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive number.\n */\nexport function parsePriceTicks(raw: string, fieldName: string): bigint {\n return decimalToScaledInt(raw, 6, fieldName);\n}\n\n/**\n * Coerce optional UI number into non-negative integer.\n * @param value - The value to coerce.\n * @returns The coerced integer.\n */\nexport function toIntOrZero(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return Math.max(0, Math.trunc(value));\n}\n\n/**\n * Coerce optional UI percentage into non-negative basis points integer.\n * @param value - The value to coerce.\n * @returns The coerced integer.\n */\nexport function toBpsOrZero(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return Math.max(0, Math.trunc(value * 100));\n}\n\n/**\n * Convert basis points to percentage.\n * @param value - The value to convert.\n * @returns The converted percentage.\n */\nexport function bpsToPct(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return value / 100;\n}\n"],"mappings":";;;;;AAkCA,SAAgB,iCACZ,KACA,WACkB;CAClB,MAAM,KAAK,OAAO,GAAA,CAAI,KAAK;CAC3B,IAAI,CAAC,GAAG;CACR,IAAI,CAAC,WAAW,KAAK,CAAC,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,4BAA4B;CAClF,OAAO,OAAO,CAAC;AACnB;;;;;AAuBA,SAAgB,6BACZ,OACkB;CAClB,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM,OAAO,KAAA;CAClD,IAAI,OAAO,UAAU,UAAU;EAC3B,MAAM,UAAU,MAAM,KAAK;EAC3B,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,OAAO,KAAA;EACnC,MAAM,SAAS,OAAO,OAAO;EAC7B,OAAO,OAAO,cAAc,MAAM,KAAK,SAAS,IAAI,SAAS,KAAA;CACjE;CACA,OAAO,OAAO,cAAc,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAA;AAC9D;;;;;AAMA,SAAgB,gCACZ,OACkB;CAClB,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM,OAAO,KAAA;CAClD,IAAI,OAAO,UAAU,UACjB,OAAO,OAAO,cAAc,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,KAAA;CAEtE,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,OAAO,KAAA;CACnC,MAAM,SAAS,OAAO,OAAO;CAC7B,OAAO,SAAS,KAAK,SAAS,KAAA;AAClC;;;;;;AAuDA,SAAgB,YAAY,OAA+B;CACvD,IAAI,SAAS,QAAQ,OAAO,MAAM,KAAK,GAAG,OAAO;CACjD,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AACxC;;;;;;AAOA,SAAgB,YAAY,OAA+B;CACvD,IAAI,SAAS,QAAQ,OAAO,MAAM,KAAK,GAAG,OAAO;CACjD,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,GAAG,CAAC;AAC9C"}
1
+ {"version":3,"file":"numbers.js","names":[],"sources":["../../src/utils/numbers.ts"],"sourcesContent":["// Shared numeric helpers for gRPC/Connect clients.\n\n/**\n * Parse a required uint64 encoded as a base-10 string into bigint.\n * @param raw - The raw string to parse.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive integer.\n */\nexport function parseRequiredUint64Decimal(raw: string, fieldName: string): bigint {\n const s = (raw ?? \"\").trim();\n if (!s) throw new Error(`${fieldName} is required`);\n if (!/^[0-9]+$/.test(s)) throw new Error(`${fieldName} must be a positive integer`);\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64 encoded as a base-10 string into bigint, or undefined on invalid/empty.\n * @param raw - The raw string to parse.\n * @returns The parsed bigint, or undefined if the field is invalid or empty.\n */\nexport function parseOptionalUint64Decimal(raw: string | undefined): bigint | undefined {\n const s = (raw ?? \"\").trim();\n if (!s) return;\n // For optional filters, treat invalid input as \"unset\" rather than surfacing an error.\n if (!/^[0-9]+$/.test(s)) return;\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64 encoded as a base-10 string into bigint.\n * Empty values are omitted, but supplied invalid values are rejected.\n */\nexport function parseOptionalUint64DecimalStrict(\n raw: string | undefined,\n fieldName: string,\n): bigint | undefined {\n const s = (raw ?? \"\").trim();\n if (!s) return;\n if (!/^[0-9]+$/.test(s)) throw new Error(`${fieldName} must be a positive integer`);\n return BigInt(s);\n}\n\n/**\n * Parse an optional uint64-ish value (string/number/bigint) into bigint, or undefined on invalid/empty.\n * Accepts base-10 strings, numeric inputs (truncated), and bigint inputs.\n */\nexport function parseOptionalUint64Like(\n value: string | number | bigint | undefined | null,\n): bigint | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"bigint\") return value >= 0n ? value : undefined;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) return undefined;\n const n = Math.trunc(value);\n return n >= 0 ? BigInt(n) : undefined;\n }\n return parseOptionalUint64Decimal(value);\n}\n\n/**\n * Parse an optional positive integer-ish value (string/number) into a number, or undefined on invalid/empty.\n * Useful for common \"limit\" fields coming from UI inputs.\n */\nexport function parseOptionalPositiveIntLike(\n value: string | number | undefined | null,\n): number | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"string\") {\n const decimal = value.trim();\n if (!/^\\d+$/.test(decimal)) return undefined;\n const parsed = Number(decimal);\n return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : undefined;\n }\n return Number.isSafeInteger(value) && value > 0 ? value : undefined;\n}\n\n/**\n * Parse a positive integer-like value without losing precision.\n * Decimal strings may exceed JavaScript's safe-integer range; number inputs may not.\n */\nexport function parseOptionalPositiveBigIntLike(\n value: string | number | undefined | null,\n): bigint | undefined {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"number\") {\n return Number.isSafeInteger(value) && value > 0 ? BigInt(value) : undefined;\n }\n const decimal = value.trim();\n if (!/^\\d+$/.test(decimal)) return undefined;\n const parsed = BigInt(decimal);\n return parsed > 0n ? parsed : undefined;\n}\n\n/**\n * Convert a decimal string into a scaled bigint (e.g. 18dp quantity, 6dp price).\n * @param raw - The raw string to parse.\n * @param scale - The scale of the number.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive number.\n */\nexport function decimalToScaledInt(raw: string, scale: number, fieldName: string): bigint {\n const s = (raw ?? \"\").trim();\n if (!s) throw new Error(`${fieldName} is required`);\n if (!/^[0-9]+(\\.[0-9]+)?$/.test(s)) throw new Error(`${fieldName} must be a positive number`);\n const [intPartRaw, fracRaw = \"\"] = s.split(\".\");\n if (fracRaw.length > scale) {\n throw new Error(`${fieldName} supports at most ${scale} decimal places`);\n }\n const intPart = intPartRaw?.replace(/^0+/, \"\") ?? \"0\";\n const fracPart = fracRaw.padEnd(scale, \"0\");\n const combined = `${intPart}${fracPart}`;\n return BigInt(combined ?? \"0\");\n}\n\n/**\n * Parse a quantity scaled to the given number of decimal places.\n * @param raw - The raw string to parse.\n * @param scale - The number of decimal places to scale to.\n * @param fieldName - The name of the field to parse.\n * @returns The parsed bigint.\n * @throws An error if the field is required and not provided.\n * @throws An error if the field is not a positive number.\n */\nexport function parseQtyScaled(raw: string, scale: number, fieldName: string): bigint {\n return decimalToScaledInt(raw, scale, fieldName);\n}\n\n/**\n * Coerce optional UI number into non-negative integer.\n * @param value - The value to coerce.\n * @returns The coerced integer.\n */\nexport function toIntOrZero(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return Math.max(0, Math.trunc(value));\n}\n\n/**\n * Coerce optional UI percentage into non-negative basis points integer.\n * @param value - The value to coerce.\n * @returns The coerced integer.\n */\nexport function toBpsOrZero(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return Math.max(0, Math.trunc(value * 100));\n}\n\n/**\n * Convert basis points to percentage.\n * @param value - The value to convert.\n * @returns The converted percentage.\n */\nexport function bpsToPct(value?: number | null): number {\n if (value == null || Number.isNaN(value)) return 0;\n return value / 100;\n}\n"],"mappings":";;;;;AAkCA,SAAgB,iCACZ,KACA,WACkB;CAClB,MAAM,KAAK,OAAO,GAAA,CAAI,KAAK;CAC3B,IAAI,CAAC,GAAG;CACR,IAAI,CAAC,WAAW,KAAK,CAAC,GAAG,MAAM,IAAI,MAAM,GAAG,UAAU,4BAA4B;CAClF,OAAO,OAAO,CAAC;AACnB;;;;;AAuBA,SAAgB,6BACZ,OACkB;CAClB,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM,OAAO,KAAA;CAClD,IAAI,OAAO,UAAU,UAAU;EAC3B,MAAM,UAAU,MAAM,KAAK;EAC3B,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,OAAO,KAAA;EACnC,MAAM,SAAS,OAAO,OAAO;EAC7B,OAAO,OAAO,cAAc,MAAM,KAAK,SAAS,IAAI,SAAS,KAAA;CACjE;CACA,OAAO,OAAO,cAAc,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAA;AAC9D;;;;;AAMA,SAAgB,gCACZ,OACkB;CAClB,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM,OAAO,KAAA;CAClD,IAAI,OAAO,UAAU,UACjB,OAAO,OAAO,cAAc,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,KAAA;CAEtE,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,OAAO,KAAA;CACnC,MAAM,SAAS,OAAO,OAAO;CAC7B,OAAO,SAAS,KAAK,SAAS,KAAA;AAClC;;;;;;AA2CA,SAAgB,YAAY,OAA+B;CACvD,IAAI,SAAS,QAAQ,OAAO,MAAM,KAAK,GAAG,OAAO;CACjD,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AACxC;;;;;;AAOA,SAAgB,YAAY,OAA+B;CACvD,IAAI,SAAS,QAAQ,OAAO,MAAM,KAAK,GAAG,OAAO;CACjD,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,GAAG,CAAC;AAC9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyester/sdk",
3
- "version": "0.27.2",
3
+ "version": "0.27.3",
4
4
  "private": false,
5
5
  "description": "TypeScript SDK providing access to APIs on Polyester Exchange.",
6
6
  "homepage": "https://github.com/Fabric-Labs/polyester-sdk-typescript#readme",