jcc_hyper_tool 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +394 -0
  3. package/dist/cli/confirm.d.ts +2 -0
  4. package/dist/cli/confirm.d.ts.map +1 -0
  5. package/dist/cli/confirm.js +22 -0
  6. package/dist/cli/confirm.js.map +1 -0
  7. package/dist/cli/index.d.ts +3 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +189 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/perpKline.d.ts +19 -0
  12. package/dist/cli/perpKline.d.ts.map +1 -0
  13. package/dist/cli/perpKline.js +39 -0
  14. package/dist/cli/perpKline.js.map +1 -0
  15. package/dist/cli/stateCli.d.ts +3 -0
  16. package/dist/cli/stateCli.d.ts.map +1 -0
  17. package/dist/cli/stateCli.js +158 -0
  18. package/dist/cli/stateCli.js.map +1 -0
  19. package/dist/cli/strategyCli.d.ts +3 -0
  20. package/dist/cli/strategyCli.d.ts.map +1 -0
  21. package/dist/cli/strategyCli.js +198 -0
  22. package/dist/cli/strategyCli.js.map +1 -0
  23. package/dist/cli/tradingCli.d.ts +3 -0
  24. package/dist/cli/tradingCli.d.ts.map +1 -0
  25. package/dist/cli/tradingCli.js +587 -0
  26. package/dist/cli/tradingCli.js.map +1 -0
  27. package/dist/cli/util.d.ts +28 -0
  28. package/dist/cli/util.d.ts.map +1 -0
  29. package/dist/cli/util.js +62 -0
  30. package/dist/cli/util.js.map +1 -0
  31. package/dist/core/config.d.ts +32 -0
  32. package/dist/core/config.d.ts.map +1 -0
  33. package/dist/core/config.js +101 -0
  34. package/dist/core/config.js.map +1 -0
  35. package/dist/core/errors.d.ts +9 -0
  36. package/dist/core/errors.d.ts.map +1 -0
  37. package/dist/core/errors.js +17 -0
  38. package/dist/core/errors.js.map +1 -0
  39. package/dist/core/hyperliquid/asset.d.ts +24 -0
  40. package/dist/core/hyperliquid/asset.d.ts.map +1 -0
  41. package/dist/core/hyperliquid/asset.js +88 -0
  42. package/dist/core/hyperliquid/asset.js.map +1 -0
  43. package/dist/core/hyperliquid/candles.d.ts +24 -0
  44. package/dist/core/hyperliquid/candles.d.ts.map +1 -0
  45. package/dist/core/hyperliquid/candles.js +113 -0
  46. package/dist/core/hyperliquid/candles.js.map +1 -0
  47. package/dist/core/hyperliquid/client.d.ts +36 -0
  48. package/dist/core/hyperliquid/client.d.ts.map +1 -0
  49. package/dist/core/hyperliquid/client.js +92 -0
  50. package/dist/core/hyperliquid/client.js.map +1 -0
  51. package/dist/core/hyperliquid/exchange.d.ts +14 -0
  52. package/dist/core/hyperliquid/exchange.d.ts.map +1 -0
  53. package/dist/core/hyperliquid/exchange.js +42 -0
  54. package/dist/core/hyperliquid/exchange.js.map +1 -0
  55. package/dist/core/hyperliquid/exchangeParse.d.ts +7 -0
  56. package/dist/core/hyperliquid/exchangeParse.d.ts.map +1 -0
  57. package/dist/core/hyperliquid/exchangeParse.js +44 -0
  58. package/dist/core/hyperliquid/exchangeParse.js.map +1 -0
  59. package/dist/core/hyperliquid/float.d.ts +6 -0
  60. package/dist/core/hyperliquid/float.d.ts.map +1 -0
  61. package/dist/core/hyperliquid/float.js +24 -0
  62. package/dist/core/hyperliquid/float.js.map +1 -0
  63. package/dist/core/hyperliquid/klineCoin.d.ts +10 -0
  64. package/dist/core/hyperliquid/klineCoin.d.ts.map +1 -0
  65. package/dist/core/hyperliquid/klineCoin.js +90 -0
  66. package/dist/core/hyperliquid/klineCoin.js.map +1 -0
  67. package/dist/core/hyperliquid/orders.d.ts +91 -0
  68. package/dist/core/hyperliquid/orders.d.ts.map +1 -0
  69. package/dist/core/hyperliquid/orders.js +116 -0
  70. package/dist/core/hyperliquid/orders.js.map +1 -0
  71. package/dist/core/hyperliquid/prefixedPerpCoin.d.ts +3 -0
  72. package/dist/core/hyperliquid/prefixedPerpCoin.d.ts.map +1 -0
  73. package/dist/core/hyperliquid/prefixedPerpCoin.js +10 -0
  74. package/dist/core/hyperliquid/prefixedPerpCoin.js.map +1 -0
  75. package/dist/core/hyperliquid/signed-exchange.d.ts +10 -0
  76. package/dist/core/hyperliquid/signed-exchange.d.ts.map +1 -0
  77. package/dist/core/hyperliquid/signed-exchange.js +23 -0
  78. package/dist/core/hyperliquid/signed-exchange.js.map +1 -0
  79. package/dist/core/hyperliquid/signing.d.ts +23 -0
  80. package/dist/core/hyperliquid/signing.d.ts.map +1 -0
  81. package/dist/core/hyperliquid/signing.js +65 -0
  82. package/dist/core/hyperliquid/signing.js.map +1 -0
  83. package/dist/core/hyperliquid/types.d.ts +11 -0
  84. package/dist/core/hyperliquid/types.d.ts.map +1 -0
  85. package/dist/core/hyperliquid/types.js +2 -0
  86. package/dist/core/hyperliquid/types.js.map +1 -0
  87. package/dist/core/hyperliquid/watchOrders.d.ts +10 -0
  88. package/dist/core/hyperliquid/watchOrders.d.ts.map +1 -0
  89. package/dist/core/hyperliquid/watchOrders.js +38 -0
  90. package/dist/core/hyperliquid/watchOrders.js.map +1 -0
  91. package/dist/core/state/bracketReconcile.d.ts +23 -0
  92. package/dist/core/state/bracketReconcile.d.ts.map +1 -0
  93. package/dist/core/state/bracketReconcile.js +297 -0
  94. package/dist/core/state/bracketReconcile.js.map +1 -0
  95. package/dist/core/state/cancelOpenPlan.d.ts +23 -0
  96. package/dist/core/state/cancelOpenPlan.d.ts.map +1 -0
  97. package/dist/core/state/cancelOpenPlan.js +126 -0
  98. package/dist/core/state/cancelOpenPlan.js.map +1 -0
  99. package/dist/core/state/gcTradeState.d.ts +13 -0
  100. package/dist/core/state/gcTradeState.d.ts.map +1 -0
  101. package/dist/core/state/gcTradeState.js +48 -0
  102. package/dist/core/state/gcTradeState.js.map +1 -0
  103. package/dist/core/state/gridReconcile.d.ts +46 -0
  104. package/dist/core/state/gridReconcile.d.ts.map +1 -0
  105. package/dist/core/state/gridReconcile.js +307 -0
  106. package/dist/core/state/gridReconcile.js.map +1 -0
  107. package/dist/core/state/intentFactory.d.ts +58 -0
  108. package/dist/core/state/intentFactory.d.ts.map +1 -0
  109. package/dist/core/state/intentFactory.js +95 -0
  110. package/dist/core/state/intentFactory.js.map +1 -0
  111. package/dist/core/state/present.d.ts +17 -0
  112. package/dist/core/state/present.d.ts.map +1 -0
  113. package/dist/core/state/present.js +100 -0
  114. package/dist/core/state/present.js.map +1 -0
  115. package/dist/core/state/runCancelOpen.d.ts +32 -0
  116. package/dist/core/state/runCancelOpen.d.ts.map +1 -0
  117. package/dist/core/state/runCancelOpen.js +101 -0
  118. package/dist/core/state/runCancelOpen.js.map +1 -0
  119. package/dist/core/state/runReconcile.d.ts +20 -0
  120. package/dist/core/state/runReconcile.d.ts.map +1 -0
  121. package/dist/core/state/runReconcile.js +248 -0
  122. package/dist/core/state/runReconcile.js.map +1 -0
  123. package/dist/core/state/schema.d.ts +1161 -0
  124. package/dist/core/state/schema.d.ts.map +1 -0
  125. package/dist/core/state/schema.js +151 -0
  126. package/dist/core/state/schema.js.map +1 -0
  127. package/dist/core/state/snapshot.d.ts +22 -0
  128. package/dist/core/state/snapshot.d.ts.map +1 -0
  129. package/dist/core/state/snapshot.js +115 -0
  130. package/dist/core/state/snapshot.js.map +1 -0
  131. package/dist/core/state/statePaths.d.ts +2 -0
  132. package/dist/core/state/statePaths.d.ts.map +1 -0
  133. package/dist/core/state/statePaths.js +7 -0
  134. package/dist/core/state/statePaths.js.map +1 -0
  135. package/dist/core/state/store.d.ts +12 -0
  136. package/dist/core/state/store.d.ts.map +1 -0
  137. package/dist/core/state/store.js +95 -0
  138. package/dist/core/state/store.js.map +1 -0
  139. package/dist/core/state/types.d.ts +40 -0
  140. package/dist/core/state/types.d.ts.map +1 -0
  141. package/dist/core/state/types.js +2 -0
  142. package/dist/core/state/types.js.map +1 -0
  143. package/dist/core/trading.d.ts +8 -0
  144. package/dist/core/trading.d.ts.map +1 -0
  145. package/dist/core/trading.js +22 -0
  146. package/dist/core/trading.js.map +1 -0
  147. package/dist/core/wallet.d.ts +3 -0
  148. package/dist/core/wallet.d.ts.map +1 -0
  149. package/dist/core/wallet.js +14 -0
  150. package/dist/core/wallet.js.map +1 -0
  151. package/dist/daemon/index.d.ts +3 -0
  152. package/dist/daemon/index.d.ts.map +1 -0
  153. package/dist/daemon/index.js +104 -0
  154. package/dist/daemon/index.js.map +1 -0
  155. package/dist/meta/version.d.ts +2 -0
  156. package/dist/meta/version.d.ts.map +1 -0
  157. package/dist/meta/version.js +12 -0
  158. package/dist/meta/version.js.map +1 -0
  159. package/dist/strategies/grid.d.ts +46 -0
  160. package/dist/strategies/grid.d.ts.map +1 -0
  161. package/dist/strategies/grid.js +101 -0
  162. package/dist/strategies/grid.js.map +1 -0
  163. package/package.json +46 -0
@@ -0,0 +1,1161 @@
1
+ import { z } from "zod";
2
+ declare const BracketIntentSchema: z.ZodObject<{
3
+ kind: z.ZodLiteral<"bracket">;
4
+ id: z.ZodString;
5
+ createdAtMs: z.ZodNumber;
6
+ updatedAtMs: z.ZodNumber;
7
+ coin: z.ZodString;
8
+ dex: z.ZodOptional<z.ZodString>;
9
+ network: z.ZodOptional<z.ZodString>;
10
+ entrySide: z.ZodEnum<["buy", "sell"]>;
11
+ entryLimitPx: z.ZodNumber;
12
+ entrySz: z.ZodNumber;
13
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
14
+ entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
15
+ tpTriggerPx: z.ZodNumber;
16
+ slTriggerPx: z.ZodNumber;
17
+ tpslIsMarket: z.ZodBoolean;
18
+ tpslLimitPx: z.ZodOptional<z.ZodNumber>;
19
+ /** reduce-only on TP/SL (default true) */
20
+ protectionReduceOnly: z.ZodDefault<z.ZodBoolean>;
21
+ phase: z.ZodEnum<["planned", "entry_pending", "entry_partial", "entry_filled", "protection_active", "tp_filled", "sl_filled", "closed", "cancelled", "expired", "error"]>;
22
+ entryOid: z.ZodOptional<z.ZodNumber>;
23
+ tpOid: z.ZodOptional<z.ZodNumber>;
24
+ slOid: z.ZodOptional<z.ZodNumber>;
25
+ cancelledSlAfterTp: z.ZodOptional<z.ZodBoolean>;
26
+ cancelledTpAfterSl: z.ZodOptional<z.ZodBoolean>;
27
+ protectionPlaced: z.ZodOptional<z.ZodBoolean>;
28
+ /** User/system requested unwind of working entry */
29
+ cancelRequested: z.ZodOptional<z.ZodBoolean>;
30
+ expiresAtMs: z.ZodOptional<z.ZodNumber>;
31
+ lastError: z.ZodOptional<z.ZodString>;
32
+ /**
33
+ * Ledger of successfully executed logical actions (idempotency for reconcile).
34
+ * Examples: "place_entry", "place_protection", "cancel_sl_after_tp"
35
+ */
36
+ dedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ coin: string;
39
+ kind: "bracket";
40
+ id: string;
41
+ createdAtMs: number;
42
+ updatedAtMs: number;
43
+ entrySide: "buy" | "sell";
44
+ entryLimitPx: number;
45
+ entrySz: number;
46
+ tif: "Gtc" | "Ioc" | "Alo";
47
+ tpTriggerPx: number;
48
+ slTriggerPx: number;
49
+ tpslIsMarket: boolean;
50
+ protectionReduceOnly: boolean;
51
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
52
+ network?: string | undefined;
53
+ dex?: string | undefined;
54
+ entryReduceOnly?: boolean | undefined;
55
+ tpslLimitPx?: number | undefined;
56
+ entryOid?: number | undefined;
57
+ tpOid?: number | undefined;
58
+ slOid?: number | undefined;
59
+ cancelledSlAfterTp?: boolean | undefined;
60
+ cancelledTpAfterSl?: boolean | undefined;
61
+ protectionPlaced?: boolean | undefined;
62
+ cancelRequested?: boolean | undefined;
63
+ expiresAtMs?: number | undefined;
64
+ lastError?: string | undefined;
65
+ dedupeKeys?: string[] | undefined;
66
+ }, {
67
+ coin: string;
68
+ kind: "bracket";
69
+ id: string;
70
+ createdAtMs: number;
71
+ updatedAtMs: number;
72
+ entrySide: "buy" | "sell";
73
+ entryLimitPx: number;
74
+ entrySz: number;
75
+ tif: "Gtc" | "Ioc" | "Alo";
76
+ tpTriggerPx: number;
77
+ slTriggerPx: number;
78
+ tpslIsMarket: boolean;
79
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
80
+ network?: string | undefined;
81
+ dex?: string | undefined;
82
+ entryReduceOnly?: boolean | undefined;
83
+ tpslLimitPx?: number | undefined;
84
+ protectionReduceOnly?: boolean | undefined;
85
+ entryOid?: number | undefined;
86
+ tpOid?: number | undefined;
87
+ slOid?: number | undefined;
88
+ cancelledSlAfterTp?: boolean | undefined;
89
+ cancelledTpAfterSl?: boolean | undefined;
90
+ protectionPlaced?: boolean | undefined;
91
+ cancelRequested?: boolean | undefined;
92
+ expiresAtMs?: number | undefined;
93
+ lastError?: string | undefined;
94
+ dedupeKeys?: string[] | undefined;
95
+ }>;
96
+ declare const GridIntentSchema: z.ZodObject<{
97
+ kind: z.ZodLiteral<"grid">;
98
+ id: z.ZodString;
99
+ createdAtMs: z.ZodNumber;
100
+ updatedAtMs: z.ZodNumber;
101
+ coin: z.ZodString;
102
+ dex: z.ZodOptional<z.ZodString>;
103
+ network: z.ZodOptional<z.ZodString>;
104
+ lower: z.ZodNumber;
105
+ upper: z.ZodNumber;
106
+ grids: z.ZodNumber;
107
+ orderSz: z.ZodNumber;
108
+ bias: z.ZodEnum<["symmetric", "long", "short"]>;
109
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
110
+ reduceOnly: z.ZodBoolean;
111
+ maxOrders: z.ZodOptional<z.ZodNumber>;
112
+ /**
113
+ * When set (>0), enables replenishment: after a full fill, counter limit = **that leg's limit px**
114
+ * (`leg.px`, not VWAP) offset by this amount — buy leg → sell at legPx + gap; sell leg → buy at legPx − gap.
115
+ * Independent of grid step: e.g. 50-wide rungs with 100 replenish band.
116
+ */
117
+ replenishGapPx: z.ZodOptional<z.ZodNumber>;
118
+ /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
119
+ replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
120
+ legs: z.ZodArray<z.ZodObject<{
121
+ index: z.ZodNumber;
122
+ px: z.ZodNumber;
123
+ isBuy: z.ZodBoolean;
124
+ oid: z.ZodOptional<z.ZodNumber>;
125
+ legPhase: z.ZodEnum<["pending", "open", "partial", "filled", "cancelled"]>;
126
+ /** Remaining size on book when last observed */
127
+ lastSz: z.ZodOptional<z.ZodNumber>;
128
+ lastOrigSz: z.ZodOptional<z.ZodNumber>;
129
+ /** Counter order armed for next reconcile (fill already detected). */
130
+ arm: z.ZodOptional<z.ZodObject<{
131
+ fillOid: z.ZodNumber;
132
+ fillPx: z.ZodNumber;
133
+ }, "strip", z.ZodTypeAny, {
134
+ fillOid: number;
135
+ fillPx: number;
136
+ }, {
137
+ fillOid: number;
138
+ fillPx: number;
139
+ }>>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ index: number;
142
+ px: number;
143
+ isBuy: boolean;
144
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
145
+ oid?: number | undefined;
146
+ lastSz?: number | undefined;
147
+ lastOrigSz?: number | undefined;
148
+ arm?: {
149
+ fillOid: number;
150
+ fillPx: number;
151
+ } | undefined;
152
+ }, {
153
+ index: number;
154
+ px: number;
155
+ isBuy: boolean;
156
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
157
+ oid?: number | undefined;
158
+ lastSz?: number | undefined;
159
+ lastOrigSz?: number | undefined;
160
+ arm?: {
161
+ fillOid: number;
162
+ fillPx: number;
163
+ } | undefined;
164
+ }>, "many">;
165
+ }, "strip", z.ZodTypeAny, {
166
+ coin: string;
167
+ kind: "grid";
168
+ id: string;
169
+ createdAtMs: number;
170
+ updatedAtMs: number;
171
+ tif: "Gtc" | "Ioc" | "Alo";
172
+ lower: number;
173
+ upper: number;
174
+ grids: number;
175
+ orderSz: number;
176
+ bias: "symmetric" | "long" | "short";
177
+ reduceOnly: boolean;
178
+ legs: {
179
+ index: number;
180
+ px: number;
181
+ isBuy: boolean;
182
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
183
+ oid?: number | undefined;
184
+ lastSz?: number | undefined;
185
+ lastOrigSz?: number | undefined;
186
+ arm?: {
187
+ fillOid: number;
188
+ fillPx: number;
189
+ } | undefined;
190
+ }[];
191
+ network?: string | undefined;
192
+ dex?: string | undefined;
193
+ maxOrders?: number | undefined;
194
+ replenishGapPx?: number | undefined;
195
+ replenishDedupeKeys?: string[] | undefined;
196
+ }, {
197
+ coin: string;
198
+ kind: "grid";
199
+ id: string;
200
+ createdAtMs: number;
201
+ updatedAtMs: number;
202
+ tif: "Gtc" | "Ioc" | "Alo";
203
+ lower: number;
204
+ upper: number;
205
+ grids: number;
206
+ orderSz: number;
207
+ bias: "symmetric" | "long" | "short";
208
+ reduceOnly: boolean;
209
+ legs: {
210
+ index: number;
211
+ px: number;
212
+ isBuy: boolean;
213
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
214
+ oid?: number | undefined;
215
+ lastSz?: number | undefined;
216
+ lastOrigSz?: number | undefined;
217
+ arm?: {
218
+ fillOid: number;
219
+ fillPx: number;
220
+ } | undefined;
221
+ }[];
222
+ network?: string | undefined;
223
+ dex?: string | undefined;
224
+ maxOrders?: number | undefined;
225
+ replenishGapPx?: number | undefined;
226
+ replenishDedupeKeys?: string[] | undefined;
227
+ }>;
228
+ declare const SingleLimitIntentSchema: z.ZodObject<{
229
+ kind: z.ZodLiteral<"single_limit">;
230
+ id: z.ZodString;
231
+ createdAtMs: z.ZodNumber;
232
+ updatedAtMs: z.ZodNumber;
233
+ coin: z.ZodString;
234
+ dex: z.ZodOptional<z.ZodString>;
235
+ entrySide: z.ZodEnum<["buy", "sell"]>;
236
+ limitPx: z.ZodNumber;
237
+ sz: z.ZodNumber;
238
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
239
+ reduceOnly: z.ZodBoolean;
240
+ oid: z.ZodOptional<z.ZodNumber>;
241
+ }, "strip", z.ZodTypeAny, {
242
+ coin: string;
243
+ kind: "single_limit";
244
+ id: string;
245
+ createdAtMs: number;
246
+ updatedAtMs: number;
247
+ entrySide: "buy" | "sell";
248
+ tif: "Gtc" | "Ioc" | "Alo";
249
+ reduceOnly: boolean;
250
+ limitPx: number;
251
+ sz: number;
252
+ dex?: string | undefined;
253
+ oid?: number | undefined;
254
+ }, {
255
+ coin: string;
256
+ kind: "single_limit";
257
+ id: string;
258
+ createdAtMs: number;
259
+ updatedAtMs: number;
260
+ entrySide: "buy" | "sell";
261
+ tif: "Gtc" | "Ioc" | "Alo";
262
+ reduceOnly: boolean;
263
+ limitPx: number;
264
+ sz: number;
265
+ dex?: string | undefined;
266
+ oid?: number | undefined;
267
+ }>;
268
+ declare const StandaloneTpslIntentSchema: z.ZodObject<{
269
+ kind: z.ZodLiteral<"standalone_tpsl">;
270
+ id: z.ZodString;
271
+ createdAtMs: z.ZodNumber;
272
+ updatedAtMs: z.ZodNumber;
273
+ coin: z.ZodString;
274
+ dex: z.ZodOptional<z.ZodString>;
275
+ side: z.ZodEnum<["buy", "sell"]>;
276
+ sz: z.ZodNumber;
277
+ triggerPx: z.ZodNumber;
278
+ tpsl: z.ZodEnum<["tp", "sl"]>;
279
+ isMarket: z.ZodBoolean;
280
+ limitPx: z.ZodOptional<z.ZodNumber>;
281
+ reduceOnly: z.ZodBoolean;
282
+ oid: z.ZodOptional<z.ZodNumber>;
283
+ }, "strip", z.ZodTypeAny, {
284
+ coin: string;
285
+ kind: "standalone_tpsl";
286
+ id: string;
287
+ createdAtMs: number;
288
+ updatedAtMs: number;
289
+ reduceOnly: boolean;
290
+ sz: number;
291
+ side: "buy" | "sell";
292
+ triggerPx: number;
293
+ tpsl: "tp" | "sl";
294
+ isMarket: boolean;
295
+ dex?: string | undefined;
296
+ oid?: number | undefined;
297
+ limitPx?: number | undefined;
298
+ }, {
299
+ coin: string;
300
+ kind: "standalone_tpsl";
301
+ id: string;
302
+ createdAtMs: number;
303
+ updatedAtMs: number;
304
+ reduceOnly: boolean;
305
+ sz: number;
306
+ side: "buy" | "sell";
307
+ triggerPx: number;
308
+ tpsl: "tp" | "sl";
309
+ isMarket: boolean;
310
+ dex?: string | undefined;
311
+ oid?: number | undefined;
312
+ limitPx?: number | undefined;
313
+ }>;
314
+ export declare const IntentRecordSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
315
+ kind: z.ZodLiteral<"bracket">;
316
+ id: z.ZodString;
317
+ createdAtMs: z.ZodNumber;
318
+ updatedAtMs: z.ZodNumber;
319
+ coin: z.ZodString;
320
+ dex: z.ZodOptional<z.ZodString>;
321
+ network: z.ZodOptional<z.ZodString>;
322
+ entrySide: z.ZodEnum<["buy", "sell"]>;
323
+ entryLimitPx: z.ZodNumber;
324
+ entrySz: z.ZodNumber;
325
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
326
+ entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
327
+ tpTriggerPx: z.ZodNumber;
328
+ slTriggerPx: z.ZodNumber;
329
+ tpslIsMarket: z.ZodBoolean;
330
+ tpslLimitPx: z.ZodOptional<z.ZodNumber>;
331
+ /** reduce-only on TP/SL (default true) */
332
+ protectionReduceOnly: z.ZodDefault<z.ZodBoolean>;
333
+ phase: z.ZodEnum<["planned", "entry_pending", "entry_partial", "entry_filled", "protection_active", "tp_filled", "sl_filled", "closed", "cancelled", "expired", "error"]>;
334
+ entryOid: z.ZodOptional<z.ZodNumber>;
335
+ tpOid: z.ZodOptional<z.ZodNumber>;
336
+ slOid: z.ZodOptional<z.ZodNumber>;
337
+ cancelledSlAfterTp: z.ZodOptional<z.ZodBoolean>;
338
+ cancelledTpAfterSl: z.ZodOptional<z.ZodBoolean>;
339
+ protectionPlaced: z.ZodOptional<z.ZodBoolean>;
340
+ /** User/system requested unwind of working entry */
341
+ cancelRequested: z.ZodOptional<z.ZodBoolean>;
342
+ expiresAtMs: z.ZodOptional<z.ZodNumber>;
343
+ lastError: z.ZodOptional<z.ZodString>;
344
+ /**
345
+ * Ledger of successfully executed logical actions (idempotency for reconcile).
346
+ * Examples: "place_entry", "place_protection", "cancel_sl_after_tp"
347
+ */
348
+ dedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ coin: string;
351
+ kind: "bracket";
352
+ id: string;
353
+ createdAtMs: number;
354
+ updatedAtMs: number;
355
+ entrySide: "buy" | "sell";
356
+ entryLimitPx: number;
357
+ entrySz: number;
358
+ tif: "Gtc" | "Ioc" | "Alo";
359
+ tpTriggerPx: number;
360
+ slTriggerPx: number;
361
+ tpslIsMarket: boolean;
362
+ protectionReduceOnly: boolean;
363
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
364
+ network?: string | undefined;
365
+ dex?: string | undefined;
366
+ entryReduceOnly?: boolean | undefined;
367
+ tpslLimitPx?: number | undefined;
368
+ entryOid?: number | undefined;
369
+ tpOid?: number | undefined;
370
+ slOid?: number | undefined;
371
+ cancelledSlAfterTp?: boolean | undefined;
372
+ cancelledTpAfterSl?: boolean | undefined;
373
+ protectionPlaced?: boolean | undefined;
374
+ cancelRequested?: boolean | undefined;
375
+ expiresAtMs?: number | undefined;
376
+ lastError?: string | undefined;
377
+ dedupeKeys?: string[] | undefined;
378
+ }, {
379
+ coin: string;
380
+ kind: "bracket";
381
+ id: string;
382
+ createdAtMs: number;
383
+ updatedAtMs: number;
384
+ entrySide: "buy" | "sell";
385
+ entryLimitPx: number;
386
+ entrySz: number;
387
+ tif: "Gtc" | "Ioc" | "Alo";
388
+ tpTriggerPx: number;
389
+ slTriggerPx: number;
390
+ tpslIsMarket: boolean;
391
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
392
+ network?: string | undefined;
393
+ dex?: string | undefined;
394
+ entryReduceOnly?: boolean | undefined;
395
+ tpslLimitPx?: number | undefined;
396
+ protectionReduceOnly?: boolean | undefined;
397
+ entryOid?: number | undefined;
398
+ tpOid?: number | undefined;
399
+ slOid?: number | undefined;
400
+ cancelledSlAfterTp?: boolean | undefined;
401
+ cancelledTpAfterSl?: boolean | undefined;
402
+ protectionPlaced?: boolean | undefined;
403
+ cancelRequested?: boolean | undefined;
404
+ expiresAtMs?: number | undefined;
405
+ lastError?: string | undefined;
406
+ dedupeKeys?: string[] | undefined;
407
+ }>, z.ZodObject<{
408
+ kind: z.ZodLiteral<"grid">;
409
+ id: z.ZodString;
410
+ createdAtMs: z.ZodNumber;
411
+ updatedAtMs: z.ZodNumber;
412
+ coin: z.ZodString;
413
+ dex: z.ZodOptional<z.ZodString>;
414
+ network: z.ZodOptional<z.ZodString>;
415
+ lower: z.ZodNumber;
416
+ upper: z.ZodNumber;
417
+ grids: z.ZodNumber;
418
+ orderSz: z.ZodNumber;
419
+ bias: z.ZodEnum<["symmetric", "long", "short"]>;
420
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
421
+ reduceOnly: z.ZodBoolean;
422
+ maxOrders: z.ZodOptional<z.ZodNumber>;
423
+ /**
424
+ * When set (>0), enables replenishment: after a full fill, counter limit = **that leg's limit px**
425
+ * (`leg.px`, not VWAP) offset by this amount — buy leg → sell at legPx + gap; sell leg → buy at legPx − gap.
426
+ * Independent of grid step: e.g. 50-wide rungs with 100 replenish band.
427
+ */
428
+ replenishGapPx: z.ZodOptional<z.ZodNumber>;
429
+ /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
430
+ replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
431
+ legs: z.ZodArray<z.ZodObject<{
432
+ index: z.ZodNumber;
433
+ px: z.ZodNumber;
434
+ isBuy: z.ZodBoolean;
435
+ oid: z.ZodOptional<z.ZodNumber>;
436
+ legPhase: z.ZodEnum<["pending", "open", "partial", "filled", "cancelled"]>;
437
+ /** Remaining size on book when last observed */
438
+ lastSz: z.ZodOptional<z.ZodNumber>;
439
+ lastOrigSz: z.ZodOptional<z.ZodNumber>;
440
+ /** Counter order armed for next reconcile (fill already detected). */
441
+ arm: z.ZodOptional<z.ZodObject<{
442
+ fillOid: z.ZodNumber;
443
+ fillPx: z.ZodNumber;
444
+ }, "strip", z.ZodTypeAny, {
445
+ fillOid: number;
446
+ fillPx: number;
447
+ }, {
448
+ fillOid: number;
449
+ fillPx: number;
450
+ }>>;
451
+ }, "strip", z.ZodTypeAny, {
452
+ index: number;
453
+ px: number;
454
+ isBuy: boolean;
455
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
456
+ oid?: number | undefined;
457
+ lastSz?: number | undefined;
458
+ lastOrigSz?: number | undefined;
459
+ arm?: {
460
+ fillOid: number;
461
+ fillPx: number;
462
+ } | undefined;
463
+ }, {
464
+ index: number;
465
+ px: number;
466
+ isBuy: boolean;
467
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
468
+ oid?: number | undefined;
469
+ lastSz?: number | undefined;
470
+ lastOrigSz?: number | undefined;
471
+ arm?: {
472
+ fillOid: number;
473
+ fillPx: number;
474
+ } | undefined;
475
+ }>, "many">;
476
+ }, "strip", z.ZodTypeAny, {
477
+ coin: string;
478
+ kind: "grid";
479
+ id: string;
480
+ createdAtMs: number;
481
+ updatedAtMs: number;
482
+ tif: "Gtc" | "Ioc" | "Alo";
483
+ lower: number;
484
+ upper: number;
485
+ grids: number;
486
+ orderSz: number;
487
+ bias: "symmetric" | "long" | "short";
488
+ reduceOnly: boolean;
489
+ legs: {
490
+ index: number;
491
+ px: number;
492
+ isBuy: boolean;
493
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
494
+ oid?: number | undefined;
495
+ lastSz?: number | undefined;
496
+ lastOrigSz?: number | undefined;
497
+ arm?: {
498
+ fillOid: number;
499
+ fillPx: number;
500
+ } | undefined;
501
+ }[];
502
+ network?: string | undefined;
503
+ dex?: string | undefined;
504
+ maxOrders?: number | undefined;
505
+ replenishGapPx?: number | undefined;
506
+ replenishDedupeKeys?: string[] | undefined;
507
+ }, {
508
+ coin: string;
509
+ kind: "grid";
510
+ id: string;
511
+ createdAtMs: number;
512
+ updatedAtMs: number;
513
+ tif: "Gtc" | "Ioc" | "Alo";
514
+ lower: number;
515
+ upper: number;
516
+ grids: number;
517
+ orderSz: number;
518
+ bias: "symmetric" | "long" | "short";
519
+ reduceOnly: boolean;
520
+ legs: {
521
+ index: number;
522
+ px: number;
523
+ isBuy: boolean;
524
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
525
+ oid?: number | undefined;
526
+ lastSz?: number | undefined;
527
+ lastOrigSz?: number | undefined;
528
+ arm?: {
529
+ fillOid: number;
530
+ fillPx: number;
531
+ } | undefined;
532
+ }[];
533
+ network?: string | undefined;
534
+ dex?: string | undefined;
535
+ maxOrders?: number | undefined;
536
+ replenishGapPx?: number | undefined;
537
+ replenishDedupeKeys?: string[] | undefined;
538
+ }>, z.ZodObject<{
539
+ kind: z.ZodLiteral<"single_limit">;
540
+ id: z.ZodString;
541
+ createdAtMs: z.ZodNumber;
542
+ updatedAtMs: z.ZodNumber;
543
+ coin: z.ZodString;
544
+ dex: z.ZodOptional<z.ZodString>;
545
+ entrySide: z.ZodEnum<["buy", "sell"]>;
546
+ limitPx: z.ZodNumber;
547
+ sz: z.ZodNumber;
548
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
549
+ reduceOnly: z.ZodBoolean;
550
+ oid: z.ZodOptional<z.ZodNumber>;
551
+ }, "strip", z.ZodTypeAny, {
552
+ coin: string;
553
+ kind: "single_limit";
554
+ id: string;
555
+ createdAtMs: number;
556
+ updatedAtMs: number;
557
+ entrySide: "buy" | "sell";
558
+ tif: "Gtc" | "Ioc" | "Alo";
559
+ reduceOnly: boolean;
560
+ limitPx: number;
561
+ sz: number;
562
+ dex?: string | undefined;
563
+ oid?: number | undefined;
564
+ }, {
565
+ coin: string;
566
+ kind: "single_limit";
567
+ id: string;
568
+ createdAtMs: number;
569
+ updatedAtMs: number;
570
+ entrySide: "buy" | "sell";
571
+ tif: "Gtc" | "Ioc" | "Alo";
572
+ reduceOnly: boolean;
573
+ limitPx: number;
574
+ sz: number;
575
+ dex?: string | undefined;
576
+ oid?: number | undefined;
577
+ }>, z.ZodObject<{
578
+ kind: z.ZodLiteral<"standalone_tpsl">;
579
+ id: z.ZodString;
580
+ createdAtMs: z.ZodNumber;
581
+ updatedAtMs: z.ZodNumber;
582
+ coin: z.ZodString;
583
+ dex: z.ZodOptional<z.ZodString>;
584
+ side: z.ZodEnum<["buy", "sell"]>;
585
+ sz: z.ZodNumber;
586
+ triggerPx: z.ZodNumber;
587
+ tpsl: z.ZodEnum<["tp", "sl"]>;
588
+ isMarket: z.ZodBoolean;
589
+ limitPx: z.ZodOptional<z.ZodNumber>;
590
+ reduceOnly: z.ZodBoolean;
591
+ oid: z.ZodOptional<z.ZodNumber>;
592
+ }, "strip", z.ZodTypeAny, {
593
+ coin: string;
594
+ kind: "standalone_tpsl";
595
+ id: string;
596
+ createdAtMs: number;
597
+ updatedAtMs: number;
598
+ reduceOnly: boolean;
599
+ sz: number;
600
+ side: "buy" | "sell";
601
+ triggerPx: number;
602
+ tpsl: "tp" | "sl";
603
+ isMarket: boolean;
604
+ dex?: string | undefined;
605
+ oid?: number | undefined;
606
+ limitPx?: number | undefined;
607
+ }, {
608
+ coin: string;
609
+ kind: "standalone_tpsl";
610
+ id: string;
611
+ createdAtMs: number;
612
+ updatedAtMs: number;
613
+ reduceOnly: boolean;
614
+ sz: number;
615
+ side: "buy" | "sell";
616
+ triggerPx: number;
617
+ tpsl: "tp" | "sl";
618
+ isMarket: boolean;
619
+ dex?: string | undefined;
620
+ oid?: number | undefined;
621
+ limitPx?: number | undefined;
622
+ }>]>;
623
+ export type IntentRecord = z.infer<typeof IntentRecordSchema>;
624
+ export type BracketIntentRecord = z.infer<typeof BracketIntentSchema>;
625
+ export type GridIntentRecord = z.infer<typeof GridIntentSchema>;
626
+ export type SingleLimitIntentRecord = z.infer<typeof SingleLimitIntentSchema>;
627
+ export type StandaloneTpslIntentRecord = z.infer<typeof StandaloneTpslIntentSchema>;
628
+ export declare const TradeStateFileSchema: z.ZodObject<{
629
+ version: z.ZodLiteral<1>;
630
+ updatedAtMs: z.ZodNumber;
631
+ intents: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
632
+ kind: z.ZodLiteral<"bracket">;
633
+ id: z.ZodString;
634
+ createdAtMs: z.ZodNumber;
635
+ updatedAtMs: z.ZodNumber;
636
+ coin: z.ZodString;
637
+ dex: z.ZodOptional<z.ZodString>;
638
+ network: z.ZodOptional<z.ZodString>;
639
+ entrySide: z.ZodEnum<["buy", "sell"]>;
640
+ entryLimitPx: z.ZodNumber;
641
+ entrySz: z.ZodNumber;
642
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
643
+ entryReduceOnly: z.ZodOptional<z.ZodBoolean>;
644
+ tpTriggerPx: z.ZodNumber;
645
+ slTriggerPx: z.ZodNumber;
646
+ tpslIsMarket: z.ZodBoolean;
647
+ tpslLimitPx: z.ZodOptional<z.ZodNumber>;
648
+ /** reduce-only on TP/SL (default true) */
649
+ protectionReduceOnly: z.ZodDefault<z.ZodBoolean>;
650
+ phase: z.ZodEnum<["planned", "entry_pending", "entry_partial", "entry_filled", "protection_active", "tp_filled", "sl_filled", "closed", "cancelled", "expired", "error"]>;
651
+ entryOid: z.ZodOptional<z.ZodNumber>;
652
+ tpOid: z.ZodOptional<z.ZodNumber>;
653
+ slOid: z.ZodOptional<z.ZodNumber>;
654
+ cancelledSlAfterTp: z.ZodOptional<z.ZodBoolean>;
655
+ cancelledTpAfterSl: z.ZodOptional<z.ZodBoolean>;
656
+ protectionPlaced: z.ZodOptional<z.ZodBoolean>;
657
+ /** User/system requested unwind of working entry */
658
+ cancelRequested: z.ZodOptional<z.ZodBoolean>;
659
+ expiresAtMs: z.ZodOptional<z.ZodNumber>;
660
+ lastError: z.ZodOptional<z.ZodString>;
661
+ /**
662
+ * Ledger of successfully executed logical actions (idempotency for reconcile).
663
+ * Examples: "place_entry", "place_protection", "cancel_sl_after_tp"
664
+ */
665
+ dedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
666
+ }, "strip", z.ZodTypeAny, {
667
+ coin: string;
668
+ kind: "bracket";
669
+ id: string;
670
+ createdAtMs: number;
671
+ updatedAtMs: number;
672
+ entrySide: "buy" | "sell";
673
+ entryLimitPx: number;
674
+ entrySz: number;
675
+ tif: "Gtc" | "Ioc" | "Alo";
676
+ tpTriggerPx: number;
677
+ slTriggerPx: number;
678
+ tpslIsMarket: boolean;
679
+ protectionReduceOnly: boolean;
680
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
681
+ network?: string | undefined;
682
+ dex?: string | undefined;
683
+ entryReduceOnly?: boolean | undefined;
684
+ tpslLimitPx?: number | undefined;
685
+ entryOid?: number | undefined;
686
+ tpOid?: number | undefined;
687
+ slOid?: number | undefined;
688
+ cancelledSlAfterTp?: boolean | undefined;
689
+ cancelledTpAfterSl?: boolean | undefined;
690
+ protectionPlaced?: boolean | undefined;
691
+ cancelRequested?: boolean | undefined;
692
+ expiresAtMs?: number | undefined;
693
+ lastError?: string | undefined;
694
+ dedupeKeys?: string[] | undefined;
695
+ }, {
696
+ coin: string;
697
+ kind: "bracket";
698
+ id: string;
699
+ createdAtMs: number;
700
+ updatedAtMs: number;
701
+ entrySide: "buy" | "sell";
702
+ entryLimitPx: number;
703
+ entrySz: number;
704
+ tif: "Gtc" | "Ioc" | "Alo";
705
+ tpTriggerPx: number;
706
+ slTriggerPx: number;
707
+ tpslIsMarket: boolean;
708
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
709
+ network?: string | undefined;
710
+ dex?: string | undefined;
711
+ entryReduceOnly?: boolean | undefined;
712
+ tpslLimitPx?: number | undefined;
713
+ protectionReduceOnly?: boolean | undefined;
714
+ entryOid?: number | undefined;
715
+ tpOid?: number | undefined;
716
+ slOid?: number | undefined;
717
+ cancelledSlAfterTp?: boolean | undefined;
718
+ cancelledTpAfterSl?: boolean | undefined;
719
+ protectionPlaced?: boolean | undefined;
720
+ cancelRequested?: boolean | undefined;
721
+ expiresAtMs?: number | undefined;
722
+ lastError?: string | undefined;
723
+ dedupeKeys?: string[] | undefined;
724
+ }>, z.ZodObject<{
725
+ kind: z.ZodLiteral<"grid">;
726
+ id: z.ZodString;
727
+ createdAtMs: z.ZodNumber;
728
+ updatedAtMs: z.ZodNumber;
729
+ coin: z.ZodString;
730
+ dex: z.ZodOptional<z.ZodString>;
731
+ network: z.ZodOptional<z.ZodString>;
732
+ lower: z.ZodNumber;
733
+ upper: z.ZodNumber;
734
+ grids: z.ZodNumber;
735
+ orderSz: z.ZodNumber;
736
+ bias: z.ZodEnum<["symmetric", "long", "short"]>;
737
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
738
+ reduceOnly: z.ZodBoolean;
739
+ maxOrders: z.ZodOptional<z.ZodNumber>;
740
+ /**
741
+ * When set (>0), enables replenishment: after a full fill, counter limit = **that leg's limit px**
742
+ * (`leg.px`, not VWAP) offset by this amount — buy leg → sell at legPx + gap; sell leg → buy at legPx − gap.
743
+ * Independent of grid step: e.g. 50-wide rungs with 100 replenish band.
744
+ */
745
+ replenishGapPx: z.ZodOptional<z.ZodNumber>;
746
+ /** Idempotency for grid replenishment (plan:/done: prefixes, see mergeGridReplenishDedupe). */
747
+ replenishDedupeKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
748
+ legs: z.ZodArray<z.ZodObject<{
749
+ index: z.ZodNumber;
750
+ px: z.ZodNumber;
751
+ isBuy: z.ZodBoolean;
752
+ oid: z.ZodOptional<z.ZodNumber>;
753
+ legPhase: z.ZodEnum<["pending", "open", "partial", "filled", "cancelled"]>;
754
+ /** Remaining size on book when last observed */
755
+ lastSz: z.ZodOptional<z.ZodNumber>;
756
+ lastOrigSz: z.ZodOptional<z.ZodNumber>;
757
+ /** Counter order armed for next reconcile (fill already detected). */
758
+ arm: z.ZodOptional<z.ZodObject<{
759
+ fillOid: z.ZodNumber;
760
+ fillPx: z.ZodNumber;
761
+ }, "strip", z.ZodTypeAny, {
762
+ fillOid: number;
763
+ fillPx: number;
764
+ }, {
765
+ fillOid: number;
766
+ fillPx: number;
767
+ }>>;
768
+ }, "strip", z.ZodTypeAny, {
769
+ index: number;
770
+ px: number;
771
+ isBuy: boolean;
772
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
773
+ oid?: number | undefined;
774
+ lastSz?: number | undefined;
775
+ lastOrigSz?: number | undefined;
776
+ arm?: {
777
+ fillOid: number;
778
+ fillPx: number;
779
+ } | undefined;
780
+ }, {
781
+ index: number;
782
+ px: number;
783
+ isBuy: boolean;
784
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
785
+ oid?: number | undefined;
786
+ lastSz?: number | undefined;
787
+ lastOrigSz?: number | undefined;
788
+ arm?: {
789
+ fillOid: number;
790
+ fillPx: number;
791
+ } | undefined;
792
+ }>, "many">;
793
+ }, "strip", z.ZodTypeAny, {
794
+ coin: string;
795
+ kind: "grid";
796
+ id: string;
797
+ createdAtMs: number;
798
+ updatedAtMs: number;
799
+ tif: "Gtc" | "Ioc" | "Alo";
800
+ lower: number;
801
+ upper: number;
802
+ grids: number;
803
+ orderSz: number;
804
+ bias: "symmetric" | "long" | "short";
805
+ reduceOnly: boolean;
806
+ legs: {
807
+ index: number;
808
+ px: number;
809
+ isBuy: boolean;
810
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
811
+ oid?: number | undefined;
812
+ lastSz?: number | undefined;
813
+ lastOrigSz?: number | undefined;
814
+ arm?: {
815
+ fillOid: number;
816
+ fillPx: number;
817
+ } | undefined;
818
+ }[];
819
+ network?: string | undefined;
820
+ dex?: string | undefined;
821
+ maxOrders?: number | undefined;
822
+ replenishGapPx?: number | undefined;
823
+ replenishDedupeKeys?: string[] | undefined;
824
+ }, {
825
+ coin: string;
826
+ kind: "grid";
827
+ id: string;
828
+ createdAtMs: number;
829
+ updatedAtMs: number;
830
+ tif: "Gtc" | "Ioc" | "Alo";
831
+ lower: number;
832
+ upper: number;
833
+ grids: number;
834
+ orderSz: number;
835
+ bias: "symmetric" | "long" | "short";
836
+ reduceOnly: boolean;
837
+ legs: {
838
+ index: number;
839
+ px: number;
840
+ isBuy: boolean;
841
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
842
+ oid?: number | undefined;
843
+ lastSz?: number | undefined;
844
+ lastOrigSz?: number | undefined;
845
+ arm?: {
846
+ fillOid: number;
847
+ fillPx: number;
848
+ } | undefined;
849
+ }[];
850
+ network?: string | undefined;
851
+ dex?: string | undefined;
852
+ maxOrders?: number | undefined;
853
+ replenishGapPx?: number | undefined;
854
+ replenishDedupeKeys?: string[] | undefined;
855
+ }>, z.ZodObject<{
856
+ kind: z.ZodLiteral<"single_limit">;
857
+ id: z.ZodString;
858
+ createdAtMs: z.ZodNumber;
859
+ updatedAtMs: z.ZodNumber;
860
+ coin: z.ZodString;
861
+ dex: z.ZodOptional<z.ZodString>;
862
+ entrySide: z.ZodEnum<["buy", "sell"]>;
863
+ limitPx: z.ZodNumber;
864
+ sz: z.ZodNumber;
865
+ tif: z.ZodEnum<["Gtc", "Ioc", "Alo"]>;
866
+ reduceOnly: z.ZodBoolean;
867
+ oid: z.ZodOptional<z.ZodNumber>;
868
+ }, "strip", z.ZodTypeAny, {
869
+ coin: string;
870
+ kind: "single_limit";
871
+ id: string;
872
+ createdAtMs: number;
873
+ updatedAtMs: number;
874
+ entrySide: "buy" | "sell";
875
+ tif: "Gtc" | "Ioc" | "Alo";
876
+ reduceOnly: boolean;
877
+ limitPx: number;
878
+ sz: number;
879
+ dex?: string | undefined;
880
+ oid?: number | undefined;
881
+ }, {
882
+ coin: string;
883
+ kind: "single_limit";
884
+ id: string;
885
+ createdAtMs: number;
886
+ updatedAtMs: number;
887
+ entrySide: "buy" | "sell";
888
+ tif: "Gtc" | "Ioc" | "Alo";
889
+ reduceOnly: boolean;
890
+ limitPx: number;
891
+ sz: number;
892
+ dex?: string | undefined;
893
+ oid?: number | undefined;
894
+ }>, z.ZodObject<{
895
+ kind: z.ZodLiteral<"standalone_tpsl">;
896
+ id: z.ZodString;
897
+ createdAtMs: z.ZodNumber;
898
+ updatedAtMs: z.ZodNumber;
899
+ coin: z.ZodString;
900
+ dex: z.ZodOptional<z.ZodString>;
901
+ side: z.ZodEnum<["buy", "sell"]>;
902
+ sz: z.ZodNumber;
903
+ triggerPx: z.ZodNumber;
904
+ tpsl: z.ZodEnum<["tp", "sl"]>;
905
+ isMarket: z.ZodBoolean;
906
+ limitPx: z.ZodOptional<z.ZodNumber>;
907
+ reduceOnly: z.ZodBoolean;
908
+ oid: z.ZodOptional<z.ZodNumber>;
909
+ }, "strip", z.ZodTypeAny, {
910
+ coin: string;
911
+ kind: "standalone_tpsl";
912
+ id: string;
913
+ createdAtMs: number;
914
+ updatedAtMs: number;
915
+ reduceOnly: boolean;
916
+ sz: number;
917
+ side: "buy" | "sell";
918
+ triggerPx: number;
919
+ tpsl: "tp" | "sl";
920
+ isMarket: boolean;
921
+ dex?: string | undefined;
922
+ oid?: number | undefined;
923
+ limitPx?: number | undefined;
924
+ }, {
925
+ coin: string;
926
+ kind: "standalone_tpsl";
927
+ id: string;
928
+ createdAtMs: number;
929
+ updatedAtMs: number;
930
+ reduceOnly: boolean;
931
+ sz: number;
932
+ side: "buy" | "sell";
933
+ triggerPx: number;
934
+ tpsl: "tp" | "sl";
935
+ isMarket: boolean;
936
+ dex?: string | undefined;
937
+ oid?: number | undefined;
938
+ limitPx?: number | undefined;
939
+ }>]>>;
940
+ events: z.ZodArray<z.ZodObject<{
941
+ t: z.ZodNumber;
942
+ intentId: z.ZodString;
943
+ type: z.ZodString;
944
+ message: z.ZodOptional<z.ZodString>;
945
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
946
+ }, "strip", z.ZodTypeAny, {
947
+ type: string;
948
+ t: number;
949
+ intentId: string;
950
+ message?: string | undefined;
951
+ data?: Record<string, unknown> | undefined;
952
+ }, {
953
+ type: string;
954
+ t: number;
955
+ intentId: string;
956
+ message?: string | undefined;
957
+ data?: Record<string, unknown> | undefined;
958
+ }>, "many">;
959
+ }, "strip", z.ZodTypeAny, {
960
+ updatedAtMs: number;
961
+ version: 1;
962
+ intents: Record<string, {
963
+ coin: string;
964
+ kind: "bracket";
965
+ id: string;
966
+ createdAtMs: number;
967
+ updatedAtMs: number;
968
+ entrySide: "buy" | "sell";
969
+ entryLimitPx: number;
970
+ entrySz: number;
971
+ tif: "Gtc" | "Ioc" | "Alo";
972
+ tpTriggerPx: number;
973
+ slTriggerPx: number;
974
+ tpslIsMarket: boolean;
975
+ protectionReduceOnly: boolean;
976
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
977
+ network?: string | undefined;
978
+ dex?: string | undefined;
979
+ entryReduceOnly?: boolean | undefined;
980
+ tpslLimitPx?: number | undefined;
981
+ entryOid?: number | undefined;
982
+ tpOid?: number | undefined;
983
+ slOid?: number | undefined;
984
+ cancelledSlAfterTp?: boolean | undefined;
985
+ cancelledTpAfterSl?: boolean | undefined;
986
+ protectionPlaced?: boolean | undefined;
987
+ cancelRequested?: boolean | undefined;
988
+ expiresAtMs?: number | undefined;
989
+ lastError?: string | undefined;
990
+ dedupeKeys?: string[] | undefined;
991
+ } | {
992
+ coin: string;
993
+ kind: "grid";
994
+ id: string;
995
+ createdAtMs: number;
996
+ updatedAtMs: number;
997
+ tif: "Gtc" | "Ioc" | "Alo";
998
+ lower: number;
999
+ upper: number;
1000
+ grids: number;
1001
+ orderSz: number;
1002
+ bias: "symmetric" | "long" | "short";
1003
+ reduceOnly: boolean;
1004
+ legs: {
1005
+ index: number;
1006
+ px: number;
1007
+ isBuy: boolean;
1008
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
1009
+ oid?: number | undefined;
1010
+ lastSz?: number | undefined;
1011
+ lastOrigSz?: number | undefined;
1012
+ arm?: {
1013
+ fillOid: number;
1014
+ fillPx: number;
1015
+ } | undefined;
1016
+ }[];
1017
+ network?: string | undefined;
1018
+ dex?: string | undefined;
1019
+ maxOrders?: number | undefined;
1020
+ replenishGapPx?: number | undefined;
1021
+ replenishDedupeKeys?: string[] | undefined;
1022
+ } | {
1023
+ coin: string;
1024
+ kind: "single_limit";
1025
+ id: string;
1026
+ createdAtMs: number;
1027
+ updatedAtMs: number;
1028
+ entrySide: "buy" | "sell";
1029
+ tif: "Gtc" | "Ioc" | "Alo";
1030
+ reduceOnly: boolean;
1031
+ limitPx: number;
1032
+ sz: number;
1033
+ dex?: string | undefined;
1034
+ oid?: number | undefined;
1035
+ } | {
1036
+ coin: string;
1037
+ kind: "standalone_tpsl";
1038
+ id: string;
1039
+ createdAtMs: number;
1040
+ updatedAtMs: number;
1041
+ reduceOnly: boolean;
1042
+ sz: number;
1043
+ side: "buy" | "sell";
1044
+ triggerPx: number;
1045
+ tpsl: "tp" | "sl";
1046
+ isMarket: boolean;
1047
+ dex?: string | undefined;
1048
+ oid?: number | undefined;
1049
+ limitPx?: number | undefined;
1050
+ }>;
1051
+ events: {
1052
+ type: string;
1053
+ t: number;
1054
+ intentId: string;
1055
+ message?: string | undefined;
1056
+ data?: Record<string, unknown> | undefined;
1057
+ }[];
1058
+ }, {
1059
+ updatedAtMs: number;
1060
+ version: 1;
1061
+ intents: Record<string, {
1062
+ coin: string;
1063
+ kind: "bracket";
1064
+ id: string;
1065
+ createdAtMs: number;
1066
+ updatedAtMs: number;
1067
+ entrySide: "buy" | "sell";
1068
+ entryLimitPx: number;
1069
+ entrySz: number;
1070
+ tif: "Gtc" | "Ioc" | "Alo";
1071
+ tpTriggerPx: number;
1072
+ slTriggerPx: number;
1073
+ tpslIsMarket: boolean;
1074
+ phase: "planned" | "entry_pending" | "entry_partial" | "entry_filled" | "protection_active" | "tp_filled" | "sl_filled" | "closed" | "cancelled" | "expired" | "error";
1075
+ network?: string | undefined;
1076
+ dex?: string | undefined;
1077
+ entryReduceOnly?: boolean | undefined;
1078
+ tpslLimitPx?: number | undefined;
1079
+ protectionReduceOnly?: boolean | undefined;
1080
+ entryOid?: number | undefined;
1081
+ tpOid?: number | undefined;
1082
+ slOid?: number | undefined;
1083
+ cancelledSlAfterTp?: boolean | undefined;
1084
+ cancelledTpAfterSl?: boolean | undefined;
1085
+ protectionPlaced?: boolean | undefined;
1086
+ cancelRequested?: boolean | undefined;
1087
+ expiresAtMs?: number | undefined;
1088
+ lastError?: string | undefined;
1089
+ dedupeKeys?: string[] | undefined;
1090
+ } | {
1091
+ coin: string;
1092
+ kind: "grid";
1093
+ id: string;
1094
+ createdAtMs: number;
1095
+ updatedAtMs: number;
1096
+ tif: "Gtc" | "Ioc" | "Alo";
1097
+ lower: number;
1098
+ upper: number;
1099
+ grids: number;
1100
+ orderSz: number;
1101
+ bias: "symmetric" | "long" | "short";
1102
+ reduceOnly: boolean;
1103
+ legs: {
1104
+ index: number;
1105
+ px: number;
1106
+ isBuy: boolean;
1107
+ legPhase: "filled" | "cancelled" | "pending" | "open" | "partial";
1108
+ oid?: number | undefined;
1109
+ lastSz?: number | undefined;
1110
+ lastOrigSz?: number | undefined;
1111
+ arm?: {
1112
+ fillOid: number;
1113
+ fillPx: number;
1114
+ } | undefined;
1115
+ }[];
1116
+ network?: string | undefined;
1117
+ dex?: string | undefined;
1118
+ maxOrders?: number | undefined;
1119
+ replenishGapPx?: number | undefined;
1120
+ replenishDedupeKeys?: string[] | undefined;
1121
+ } | {
1122
+ coin: string;
1123
+ kind: "single_limit";
1124
+ id: string;
1125
+ createdAtMs: number;
1126
+ updatedAtMs: number;
1127
+ entrySide: "buy" | "sell";
1128
+ tif: "Gtc" | "Ioc" | "Alo";
1129
+ reduceOnly: boolean;
1130
+ limitPx: number;
1131
+ sz: number;
1132
+ dex?: string | undefined;
1133
+ oid?: number | undefined;
1134
+ } | {
1135
+ coin: string;
1136
+ kind: "standalone_tpsl";
1137
+ id: string;
1138
+ createdAtMs: number;
1139
+ updatedAtMs: number;
1140
+ reduceOnly: boolean;
1141
+ sz: number;
1142
+ side: "buy" | "sell";
1143
+ triggerPx: number;
1144
+ tpsl: "tp" | "sl";
1145
+ isMarket: boolean;
1146
+ dex?: string | undefined;
1147
+ oid?: number | undefined;
1148
+ limitPx?: number | undefined;
1149
+ }>;
1150
+ events: {
1151
+ type: string;
1152
+ t: number;
1153
+ intentId: string;
1154
+ message?: string | undefined;
1155
+ data?: Record<string, unknown> | undefined;
1156
+ }[];
1157
+ }>;
1158
+ export type TradeStateFile = z.infer<typeof TradeStateFileSchema>;
1159
+ export declare function createEmptyTradeState(nowMs: number): TradeStateFile;
1160
+ export {};
1161
+ //# sourceMappingURL=schema.d.ts.map