@the-situation/indexer 0.9.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/api/app.d.ts +4 -0
  2. package/dist/api/app.d.ts.map +1 -1
  3. package/dist/api/app.js +3 -3
  4. package/dist/api/app.js.map +1 -1
  5. package/dist/api/middleware/admin-auth.d.ts.map +1 -1
  6. package/dist/api/middleware/admin-auth.js +11 -3
  7. package/dist/api/middleware/admin-auth.js.map +1 -1
  8. package/dist/api/middleware/error-handler.d.ts.map +1 -1
  9. package/dist/api/middleware/error-handler.js +2 -2
  10. package/dist/api/middleware/error-handler.js.map +1 -1
  11. package/dist/api/routes/admin.d.ts +2 -0
  12. package/dist/api/routes/admin.d.ts.map +1 -1
  13. package/dist/api/routes/admin.js +29 -5
  14. package/dist/api/routes/admin.js.map +1 -1
  15. package/dist/api/routes/health.d.ts +3 -2
  16. package/dist/api/routes/health.d.ts.map +1 -1
  17. package/dist/api/routes/health.js +11 -4
  18. package/dist/api/routes/health.js.map +1 -1
  19. package/dist/api/routes/index.d.ts +3 -3
  20. package/dist/api/routes/index.d.ts.map +1 -1
  21. package/dist/api/routes/index.js +3 -3
  22. package/dist/api/routes/index.js.map +1 -1
  23. package/dist/api/routes/market-events.d.ts.map +1 -1
  24. package/dist/api/routes/market-events.js +14 -8
  25. package/dist/api/routes/market-events.js.map +1 -1
  26. package/dist/api/routes/market-traders.d.ts.map +1 -1
  27. package/dist/api/routes/market-traders.js +1 -1
  28. package/dist/api/routes/market-traders.js.map +1 -1
  29. package/dist/api/routes/markets.d.ts.map +1 -1
  30. package/dist/api/routes/markets.js +83 -5
  31. package/dist/api/routes/markets.js.map +1 -1
  32. package/dist/api/routes/rankings.d.ts.map +1 -1
  33. package/dist/api/routes/rankings.js +2 -1
  34. package/dist/api/routes/rankings.js.map +1 -1
  35. package/dist/api/routes/trader-events.d.ts +1 -1
  36. package/dist/api/routes/trader-events.d.ts.map +1 -1
  37. package/dist/api/routes/trader-events.js +11 -6
  38. package/dist/api/routes/trader-events.js.map +1 -1
  39. package/dist/api/routes/ws.d.ts.map +1 -1
  40. package/dist/api/routes/ws.js +4 -3
  41. package/dist/api/routes/ws.js.map +1 -1
  42. package/dist/client/IndexerClient.d.ts +10 -1
  43. package/dist/client/IndexerClient.d.ts.map +1 -1
  44. package/dist/client/IndexerClient.js.map +1 -1
  45. package/dist/client/IndexerClientLive.d.ts +1 -0
  46. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  47. package/dist/client/IndexerClientLive.js +54 -8
  48. package/dist/client/IndexerClientLive.js.map +1 -1
  49. package/dist/client/convenience.d.ts +11 -2
  50. package/dist/client/convenience.d.ts.map +1 -1
  51. package/dist/client/convenience.js +4 -0
  52. package/dist/client/convenience.js.map +1 -1
  53. package/dist/client/index.d.ts +6 -5
  54. package/dist/client/index.d.ts.map +1 -1
  55. package/dist/client/index.js +4 -4
  56. package/dist/client/index.js.map +1 -1
  57. package/dist/client/trader-stats.d.ts +2 -2
  58. package/dist/client/trader-stats.d.ts.map +1 -1
  59. package/dist/client/trader-stats.js +1 -1
  60. package/dist/client/trader-stats.js.map +1 -1
  61. package/dist/config.d.ts +3 -0
  62. package/dist/config.d.ts.map +1 -1
  63. package/dist/config.js +19 -6
  64. package/dist/config.js.map +1 -1
  65. package/dist/db/connection.d.ts.map +1 -1
  66. package/dist/db/connection.js +4 -1
  67. package/dist/db/connection.js.map +1 -1
  68. package/dist/db/repositories/event.d.ts +1 -1
  69. package/dist/db/repositories/event.d.ts.map +1 -1
  70. package/dist/db/repositories/event.js +11 -9
  71. package/dist/db/repositories/event.js.map +1 -1
  72. package/dist/db/repositories/index.d.ts +3 -2
  73. package/dist/db/repositories/index.d.ts.map +1 -1
  74. package/dist/db/repositories/index.js +3 -2
  75. package/dist/db/repositories/index.js.map +1 -1
  76. package/dist/db/repositories/market-state.d.ts +1 -0
  77. package/dist/db/repositories/market-state.d.ts.map +1 -1
  78. package/dist/db/repositories/market-state.js +8 -0
  79. package/dist/db/repositories/market-state.js.map +1 -1
  80. package/dist/db/repositories/market.d.ts +1 -1
  81. package/dist/db/repositories/market.d.ts.map +1 -1
  82. package/dist/db/repositories/market.js +39 -17
  83. package/dist/db/repositories/market.js.map +1 -1
  84. package/dist/db/repositories/multinoulli-market-state.d.ts +30 -0
  85. package/dist/db/repositories/multinoulli-market-state.d.ts.map +1 -0
  86. package/dist/db/repositories/multinoulli-market-state.js +48 -0
  87. package/dist/db/repositories/multinoulli-market-state.js.map +1 -0
  88. package/dist/db/repositories/position.d.ts +2 -1
  89. package/dist/db/repositories/position.d.ts.map +1 -1
  90. package/dist/db/repositories/position.js +14 -3
  91. package/dist/db/repositories/position.js.map +1 -1
  92. package/dist/db/schema.d.ts.map +1 -1
  93. package/dist/db/schema.js +68 -1
  94. package/dist/db/schema.js.map +1 -1
  95. package/dist/etl/decoder.d.ts +4 -3
  96. package/dist/etl/decoder.d.ts.map +1 -1
  97. package/dist/etl/decoder.js +149 -31
  98. package/dist/etl/decoder.js.map +1 -1
  99. package/dist/etl/event-indexer.d.ts +3 -2
  100. package/dist/etl/event-indexer.d.ts.map +1 -1
  101. package/dist/etl/event-indexer.js +140 -37
  102. package/dist/etl/event-indexer.js.map +1 -1
  103. package/dist/etl/position-refresher.d.ts +4 -3
  104. package/dist/etl/position-refresher.d.ts.map +1 -1
  105. package/dist/etl/position-refresher.js +54 -8
  106. package/dist/etl/position-refresher.js.map +1 -1
  107. package/dist/etl/scheduler.d.ts +2 -2
  108. package/dist/etl/scheduler.d.ts.map +1 -1
  109. package/dist/etl/scheduler.js +19 -23
  110. package/dist/etl/scheduler.js.map +1 -1
  111. package/dist/etl/state-refresher.d.ts +4 -3
  112. package/dist/etl/state-refresher.d.ts.map +1 -1
  113. package/dist/etl/state-refresher.js +39 -9
  114. package/dist/etl/state-refresher.js.map +1 -1
  115. package/dist/index.d.ts +3 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +129 -31
  118. package/dist/index.js.map +1 -1
  119. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  120. package/dist/layers/ChainReaderLive.js +96 -6
  121. package/dist/layers/ChainReaderLive.js.map +1 -1
  122. package/dist/layers/DatabaseLive.d.ts +1 -1
  123. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  124. package/dist/layers/DatabaseLive.js +2 -1
  125. package/dist/layers/DatabaseLive.js.map +1 -1
  126. package/dist/layers/EventBusLive.d.ts.map +1 -1
  127. package/dist/layers/EventBusLive.js +2 -2
  128. package/dist/layers/EventBusLive.js.map +1 -1
  129. package/dist/layers/VoyagerClientLive.d.ts +3 -2
  130. package/dist/layers/VoyagerClientLive.d.ts.map +1 -1
  131. package/dist/layers/VoyagerClientLive.js +29 -10
  132. package/dist/layers/VoyagerClientLive.js.map +1 -1
  133. package/dist/layers/index.d.ts +2 -2
  134. package/dist/layers/index.d.ts.map +1 -1
  135. package/dist/layers/index.js +2 -2
  136. package/dist/layers/index.js.map +1 -1
  137. package/dist/services/ChainReader.d.ts +3 -0
  138. package/dist/services/ChainReader.d.ts.map +1 -1
  139. package/dist/services/ChainReader.js.map +1 -1
  140. package/dist/services/Database.d.ts +3 -2
  141. package/dist/services/Database.d.ts.map +1 -1
  142. package/dist/services/Database.js.map +1 -1
  143. package/dist/services/EventBus.d.ts.map +1 -1
  144. package/dist/services/EventBus.js.map +1 -1
  145. package/dist/services/VoyagerRateLimit.d.ts +40 -0
  146. package/dist/services/VoyagerRateLimit.d.ts.map +1 -0
  147. package/dist/services/VoyagerRateLimit.js +91 -0
  148. package/dist/services/VoyagerRateLimit.js.map +1 -0
  149. package/dist/services/index.d.ts +4 -4
  150. package/dist/services/index.d.ts.map +1 -1
  151. package/dist/services/index.js +2 -2
  152. package/dist/services/index.js.map +1 -1
  153. package/dist/types/api.d.ts +48 -1
  154. package/dist/types/api.d.ts.map +1 -1
  155. package/dist/types/event.d.ts +43 -2
  156. package/dist/types/event.d.ts.map +1 -1
  157. package/dist/types/index.d.ts +4 -4
  158. package/dist/types/index.d.ts.map +1 -1
  159. package/dist/types/market.d.ts +64 -0
  160. package/dist/types/market.d.ts.map +1 -1
  161. package/dist/types/position.d.ts +8 -0
  162. package/dist/types/position.d.ts.map +1 -1
  163. package/package.json +6 -6
@@ -13,10 +13,7 @@ const TWO_128 = 2n ** 128n;
13
13
  * Returns the human-readable floating-point value.
14
14
  */
15
15
  function sq128x128ToNumber(limb0, limb1, limb2, limb3, neg) {
16
- const raw = BigInt(limb0) +
17
- (BigInt(limb1) << 64n) +
18
- (BigInt(limb2) << 128n) +
19
- (BigInt(limb3) << 192n);
16
+ const raw = BigInt(limb0) + (BigInt(limb1) << 64n) + (BigInt(limb2) << 128n) + (BigInt(limb3) << 192n);
20
17
  const abs = Number(raw) / Number(TWO_128);
21
18
  return BigInt(neg) !== 0n ? -abs : abs;
22
19
  }
@@ -24,35 +21,50 @@ function formatTwo(n) {
24
21
  return Number(n.toFixed(2));
25
22
  }
26
23
  // ── Public API ───────────────────────────────────────────────────────────────
27
- export function decodeEvent(event) {
24
+ export function decodeEvent(event, marketType) {
28
25
  const name = event.name.toLowerCase();
29
- // Current generation
30
- if (name === 'tradeexecuted')
26
+ // Settlement events (same for both market types)
27
+ if (name === 'marketsettled') {
28
+ return decodeMarketSettled(event);
29
+ }
30
+ if (name === 'marketsettledmulti') {
31
+ return decodeMarketSettledMulti(event);
32
+ }
33
+ // Current generation — TradeExecuted
34
+ if (name === 'tradeexecuted') {
35
+ // Discrimination: multinoulli market type or heuristic based on data length
36
+ // Normal TradeExecuted has 32-33 data fields; multinoulli has ~5.
37
+ if (marketType === 'multinoulli' || (marketType == null && event.data.length < 10)) {
38
+ return decodeMultinoulliTradeExecuted(event);
39
+ }
31
40
  return decodeTradeExecuted(event);
32
- if (name === 'marketinitialized')
41
+ }
42
+ if (name === 'marketinitialized') {
33
43
  return decodeMarketInitialized(event);
44
+ }
34
45
  // Legacy generation (kept for historical data)
35
- if (name === 'bootstrapped')
46
+ if (name === 'bootstrapped') {
36
47
  return decodeBootstrapped(event);
37
- if (name === 'trademoved')
48
+ }
49
+ if (name === 'trademoved') {
38
50
  return decodeTradeMoved(event);
51
+ }
39
52
  return null;
40
53
  }
41
- export function decodeEvents(events) {
54
+ export function decodeEvents(events, marketType) {
42
55
  const results = [];
43
56
  for (const event of events) {
44
- const decoded = decodeEvent(event);
45
- if (decoded)
57
+ const decoded = decodeEvent(event, marketType);
58
+ if (decoded) {
46
59
  results.push(decoded);
60
+ }
47
61
  }
48
- results.sort((a, b) => a.blockNumber !== b.blockNumber
49
- ? a.blockNumber - b.blockNumber
50
- : a.timestamp - b.timestamp);
62
+ results.sort((a, b) => a.blockNumber !== b.blockNumber ? a.blockNumber - b.blockNumber : a.timestamp - b.timestamp);
51
63
  return results;
52
64
  }
53
65
  // ── Current-generation decoders ──────────────────────────────────────────────
54
66
  /**
55
- * TradeExecuted raw data (33 fields):
67
+ * TradeExecuted raw data (32+ fields):
56
68
  * [0..4] old_distribution.mean (SQ128x128: limb0,limb1,limb2,limb3,neg)
57
69
  * [5..9] old_distribution.variance
58
70
  * [10..14] old_distribution.sigma
@@ -60,15 +72,16 @@ export function decodeEvents(events) {
60
72
  * [20..24] new_distribution.variance
61
73
  * [25..29] new_distribution.sigma
62
74
  * [30..31] token_amount (u256: low, high)
63
- * [32] delta_index (u32)
75
+ * [32] delta_index (u32) — optional, may not be present
64
76
  *
65
77
  * Trader address is in keys[1] (or keyDecoded).
66
78
  */
67
79
  function decodeTradeExecuted(event) {
68
80
  try {
69
81
  const data = event.data;
70
- if (data.length < 33)
82
+ if (data.length < 32) {
71
83
  return null;
84
+ }
72
85
  // Trader from keys
73
86
  const trader = event.keys[1] ?? null;
74
87
  // Old distribution mean
@@ -99,8 +112,7 @@ function decodeTradeExecuted(event) {
99
112
  rawData: data,
100
113
  };
101
114
  }
102
- catch (err) {
103
- console.error('[Decoder] TradeExecuted error:', err);
115
+ catch (_err) {
104
116
  return null;
105
117
  }
106
118
  }
@@ -115,8 +127,9 @@ function decodeTradeExecuted(event) {
115
127
  function decodeMarketInitialized(event) {
116
128
  try {
117
129
  const data = event.data;
118
- if (data.length < 7)
130
+ if (data.length < 7) {
119
131
  return null;
132
+ }
120
133
  return {
121
134
  timestamp: event.timestamp,
122
135
  blockNumber: event.blockNumber,
@@ -133,8 +146,7 @@ function decodeMarketInitialized(event) {
133
146
  rawData: data,
134
147
  };
135
148
  }
136
- catch (err) {
137
- console.error('[Decoder] MarketInitialized error:', err);
149
+ catch (_err) {
138
150
  return null;
139
151
  }
140
152
  }
@@ -146,8 +158,9 @@ function decodeBootstrapped(event) {
146
158
  const muMagField = decoded.find((f) => f.name === 'mu_mag');
147
159
  const muSignField = decoded.find((f) => f.name === 'mu_sign');
148
160
  const sigmaField = decoded.find((f) => f.name === 'sigma');
149
- if (!muMagField || !muSignField || !sigmaField)
161
+ if (!(muMagField && muSignField && sigmaField)) {
150
162
  return null;
163
+ }
151
164
  const meanAbs = q96ToNumber(BigInt(muMagField.value));
152
165
  const mean = BigInt(muSignField.value) !== 0n ? -meanAbs : meanAbs;
153
166
  const stdDev = q96ToNumber(BigInt(sigmaField.value));
@@ -168,8 +181,9 @@ function decodeBootstrapped(event) {
168
181
  };
169
182
  }
170
183
  const data = event.data;
171
- if (data.length < 14)
184
+ if (data.length < 14) {
172
185
  return null;
186
+ }
173
187
  const muMag = BigInt(data[9]);
174
188
  const muSign = BigInt(data[10]) !== 0n;
175
189
  const sigma = BigInt(data[11]);
@@ -192,16 +206,16 @@ function decodeBootstrapped(event) {
192
206
  rawData: data,
193
207
  };
194
208
  }
195
- catch (err) {
196
- console.error('[Decoder] Bootstrapped error:', err);
209
+ catch (_err) {
197
210
  return null;
198
211
  }
199
212
  }
200
213
  function decodeTradeMoved(event) {
201
214
  try {
202
215
  const data = event.data;
203
- if (data.length < 11)
216
+ if (data.length < 11) {
204
217
  return null;
218
+ }
205
219
  const trader = data[0];
206
220
  const oldMuMag = BigInt(data[1]);
207
221
  const oldMuSign = BigInt(data[2]) !== 0n;
@@ -234,8 +248,112 @@ function decodeTradeMoved(event) {
234
248
  rawData: data,
235
249
  };
236
250
  }
237
- catch (err) {
238
- console.error('[Decoder] TradeMoved error:', err);
251
+ catch (_err) {
252
+ return null;
253
+ }
254
+ }
255
+ // ── Multinoulli decoders ────────────────────────────────────────────────────
256
+ /**
257
+ * Multinoulli TradeExecuted raw data (5 data fields):
258
+ * [0] outcome_count (u32)
259
+ * [1] min_outcome_index (u32)
260
+ * [2] token_amount low (u128)
261
+ * [3] token_amount high (u128)
262
+ * [4] is_position_sell (bool)
263
+ *
264
+ * Trader address is in keys[1].
265
+ */
266
+ function decodeMultinoulliTradeExecuted(event) {
267
+ try {
268
+ const data = event.data;
269
+ if (data.length < 5) {
270
+ return null;
271
+ }
272
+ const trader = event.keys[1] ?? null;
273
+ const outcomeCount = Number(BigInt(data[0]));
274
+ const minOutcomeIndex = Number(BigInt(data[1]));
275
+ const tokenLow = BigInt(data[2]);
276
+ const tokenHigh = BigInt(data[3]);
277
+ const tokenAmount = (tokenLow + (tokenHigh << 128n)).toString();
278
+ const isPositionSell = BigInt(data[4]) !== 0n;
279
+ return {
280
+ timestamp: event.timestamp,
281
+ blockNumber: event.blockNumber,
282
+ eventType: 'multinoulli_trade_executed',
283
+ txHash: event.transactionHash,
284
+ trader,
285
+ outcomeCount,
286
+ minOutcomeIndex,
287
+ tokenAmount,
288
+ isPositionSell,
289
+ rawData: data,
290
+ };
291
+ }
292
+ catch (_err) {
293
+ return null;
294
+ }
295
+ }
296
+ /**
297
+ * MarketSettled raw data:
298
+ * [0] settlement_outcome_index (u32)
299
+ *
300
+ * `by` address is in keys[1].
301
+ */
302
+ function decodeMarketSettled(event) {
303
+ try {
304
+ const data = event.data;
305
+ if (data.length === 0) {
306
+ return null;
307
+ }
308
+ const settlementOutcomeIndex = Number(BigInt(data[0]));
309
+ const by = event.keys[1] ?? null;
310
+ return {
311
+ timestamp: event.timestamp,
312
+ blockNumber: event.blockNumber,
313
+ eventType: 'market_settled',
314
+ txHash: event.transactionHash,
315
+ settlementOutcomeIndex,
316
+ by,
317
+ rawData: data,
318
+ };
319
+ }
320
+ catch (_err) {
321
+ return null;
322
+ }
323
+ }
324
+ /**
325
+ * MarketSettledMulti raw data:
326
+ * [0] array length N
327
+ * [1..N] outcome indices (u32 each)
328
+ *
329
+ * `by` address is in keys[1].
330
+ */
331
+ function decodeMarketSettledMulti(event) {
332
+ try {
333
+ const data = event.data;
334
+ if (data.length === 0) {
335
+ return null;
336
+ }
337
+ const arrayLength = Number(BigInt(data[0]));
338
+ if (data.length < 1 + arrayLength) {
339
+ return null;
340
+ }
341
+ const outcomes = [];
342
+ for (let i = 0; i < arrayLength; i++) {
343
+ outcomes.push(Number(BigInt(data[1 + i])));
344
+ }
345
+ const by = event.keys[1] ?? null;
346
+ return {
347
+ timestamp: event.timestamp,
348
+ blockNumber: event.blockNumber,
349
+ eventType: 'market_settled_multi',
350
+ txHash: event.transactionHash,
351
+ outcomes,
352
+ by,
353
+ rawData: data,
354
+ };
355
+ }
356
+ catch (_err) {
239
357
  return null;
240
358
  }
241
359
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/etl/decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/etl/decoder.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  */
4
4
  import { Effect } from 'effect';
5
5
  import { DatabaseTag } from '../services/Database';
6
- import { VoyagerClientTag } from '../services/VoyagerClient';
7
6
  import { EventBusTag } from '../services/EventBus';
7
+ import { VoyagerClientTag } from '../services/VoyagerClient';
8
+ import type { MarketType } from '../types';
8
9
  import type { IndexerCycleResult } from './types';
9
- export declare const indexMarketEvents: (marketAddress: string) => Effect.Effect<IndexerCycleResult, never, DatabaseTag | VoyagerClientTag | EventBusTag>;
10
+ export declare const indexMarketEvents: (marketAddress: string, marketType?: MarketType) => Effect.Effect<IndexerCycleResult, never, DatabaseTag | VoyagerClientTag | EventBusTag>;
10
11
  export declare const indexAllMarkets: Effect.Effect<IndexerCycleResult[], never, DatabaseTag | VoyagerClientTag | EventBusTag>;
11
12
  //# sourceMappingURL=event-indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-indexer.d.ts","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,KACpB,MAAM,CAAC,MAAM,CACd,kBAAkB,EAClB,KAAK,EACL,WAAW,GAAG,gBAAgB,GAAG,WAAW,CA+G1C,CAAC;AAEL,eAAO,MAAM,eAAe,0FAW1B,CAAC"}
1
+ {"version":3,"file":"event-indexer.d.ts","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAOV,UAAU,EAEX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsHlD,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,EACrB,aAAY,UAAqB,KAChC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAqGpF,CAAC;AAEL,eAAO,MAAM,eAAe,0FAY1B,CAAC"}
@@ -3,12 +3,116 @@
3
3
  */
4
4
  import { Effect } from 'effect';
5
5
  import { DatabaseTag } from '../services/Database';
6
- import { VoyagerClientTag } from '../services/VoyagerClient';
7
6
  import { EventBusTag } from '../services/EventBus';
7
+ import { VoyagerClientTag } from '../services/VoyagerClient';
8
8
  import { decodeEvents } from './decoder';
9
9
  const PAGE_SIZE = 100;
10
10
  const MAX_PAGES = 10;
11
- export const indexMarketEvents = (marketAddress) => Effect.gen(function* () {
11
+ const RELEVANT_NAMES = new Set([
12
+ 'bootstrapped',
13
+ 'trademoved',
14
+ 'tradeexecuted',
15
+ 'marketinitialized',
16
+ 'marketsettled',
17
+ 'marketsettledmulti',
18
+ ]);
19
+ function isMultinoulliTradeEvent(d) {
20
+ return d.eventType === 'multinoulli_trade_executed';
21
+ }
22
+ function isMarketSettledEvent(d) {
23
+ return d.eventType === 'market_settled';
24
+ }
25
+ function isMarketSettledMultiEvent(d) {
26
+ return d.eventType === 'market_settled_multi';
27
+ }
28
+ function isNormalMarketEvent(d) {
29
+ return (d.eventType === 'bootstrapped' ||
30
+ d.eventType === 'trade_moved' ||
31
+ d.eventType === 'market_initialized' ||
32
+ d.eventType === 'trade_executed');
33
+ }
34
+ function decodedEventToInsert(marketAddress, d) {
35
+ if (isMultinoulliTradeEvent(d)) {
36
+ return {
37
+ market_address: marketAddress,
38
+ tx_hash: d.txHash,
39
+ block_number: d.blockNumber,
40
+ timestamp: d.timestamp,
41
+ event_type: d.eventType,
42
+ trader: d.trader,
43
+ mean: 0,
44
+ std_dev: 0,
45
+ lower_bound: 0,
46
+ upper_bound: 0,
47
+ old_mean: null,
48
+ old_std_dev: null,
49
+ collateral_posted: d.tokenAmount,
50
+ raw_data: JSON.stringify(d.rawData),
51
+ outcome_count: d.outcomeCount,
52
+ min_outcome_index: d.minOutcomeIndex,
53
+ is_position_sell: d.isPositionSell,
54
+ };
55
+ }
56
+ if (isMarketSettledEvent(d)) {
57
+ return {
58
+ market_address: marketAddress,
59
+ tx_hash: d.txHash,
60
+ block_number: d.blockNumber,
61
+ timestamp: d.timestamp,
62
+ event_type: d.eventType,
63
+ trader: d.by,
64
+ mean: 0,
65
+ std_dev: 0,
66
+ lower_bound: 0,
67
+ upper_bound: 0,
68
+ old_mean: null,
69
+ old_std_dev: null,
70
+ collateral_posted: null,
71
+ raw_data: JSON.stringify(d.rawData),
72
+ settlement_outcome_index: d.settlementOutcomeIndex,
73
+ };
74
+ }
75
+ if (isMarketSettledMultiEvent(d)) {
76
+ return {
77
+ market_address: marketAddress,
78
+ tx_hash: d.txHash,
79
+ block_number: d.blockNumber,
80
+ timestamp: d.timestamp,
81
+ event_type: d.eventType,
82
+ trader: d.by,
83
+ mean: 0,
84
+ std_dev: 0,
85
+ lower_bound: 0,
86
+ upper_bound: 0,
87
+ old_mean: null,
88
+ old_std_dev: null,
89
+ collateral_posted: null,
90
+ raw_data: JSON.stringify(d.rawData),
91
+ settlement_outcomes_json: JSON.stringify(d.outcomes),
92
+ };
93
+ }
94
+ // Normal market events (DecodedMarketEvent)
95
+ const n = d;
96
+ return {
97
+ market_address: marketAddress,
98
+ tx_hash: n.txHash,
99
+ block_number: n.blockNumber,
100
+ timestamp: n.timestamp,
101
+ event_type: n.eventType,
102
+ trader: n.trader,
103
+ mean: n.mean,
104
+ std_dev: n.stdDev,
105
+ lower_bound: n.lowerBound,
106
+ upper_bound: n.upperBound,
107
+ old_mean: n.oldMean,
108
+ old_std_dev: n.oldStdDev,
109
+ collateral_posted: n.collateralPosted,
110
+ raw_data: JSON.stringify(n.rawData),
111
+ };
112
+ }
113
+ export const indexMarketEvents = (marketAddress, marketType = 'normal') =>
114
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: pipeline stages are intentionally linear and explicit.
115
+ Effect.gen(function* () {
12
116
  const db = yield* DatabaseTag;
13
117
  const voyager = yield* VoyagerClientTag;
14
118
  const bus = yield* EventBusTag;
@@ -22,64 +126,62 @@ export const indexMarketEvents = (marketAddress) => Effect.gen(function* () {
22
126
  const batchResult = yield* Effect.either(voyager.fetchEvents(marketAddress, currentPage, PAGE_SIZE));
23
127
  if (batchResult._tag === 'Left') {
24
128
  const err = batchResult.left;
25
- const context = err.status === 429 || err.status === 503
26
- ? `rate limited (${err.status}) after retries exhausted`
27
- : `permanent error (${err.status ?? 'unknown'})`;
28
- console.error(`[EventIndexer] Voyager fetch failed for ${marketAddress} page=${currentPage}: ${context} — ${err.message}`);
129
+ if (err.status === 429 || err.status === 503) {
130
+ // Retry budget exhausted under rate limiting.
131
+ }
132
+ else {
133
+ // Non-retryable fetch error.
134
+ }
29
135
  break;
30
136
  }
31
137
  const batch = batchResult.right;
32
138
  // Filter to relevant events after our cursor
33
- const relevantNames = new Set([
34
- 'bootstrapped', 'trademoved',
35
- 'tradeexecuted', 'marketinitialized',
36
- ]);
139
+ let sawOldEvent = false;
37
140
  const relevant = batch.events.filter((e) => {
38
- const isRelevant = relevantNames.has(e.name.toLowerCase());
141
+ const isRelevant = RELEVANT_NAMES.has(e.name.toLowerCase());
39
142
  const isNew = e.blockNumber > lastBlock;
143
+ if (isRelevant && !isNew) {
144
+ sawOldEvent = true;
145
+ }
40
146
  return isRelevant && isNew;
41
147
  });
42
148
  allEvents.push(...relevant);
149
+ // Early exit: if we've reached events we already indexed, stop paging
150
+ if (sawOldEvent) {
151
+ break;
152
+ }
43
153
  hasMore = currentPage < batch.lastPage;
44
154
  currentPage++;
45
155
  }
46
156
  if (allEvents.length === 0) {
47
157
  return { marketAddress, newEvents: 0, lastBlock };
48
158
  }
49
- // Decode events
50
- const decoded = decodeEvents(allEvents);
159
+ // Decode events (pass market type for discrimination)
160
+ const decoded = decodeEvents(allEvents, marketType);
51
161
  if (decoded.length === 0) {
52
162
  return { marketAddress, newEvents: 0, lastBlock };
53
163
  }
54
164
  // Build insert inputs
55
- const inputs = decoded.map((d) => ({
56
- market_address: marketAddress,
57
- tx_hash: d.txHash,
58
- block_number: d.blockNumber,
59
- timestamp: d.timestamp,
60
- event_type: d.eventType,
61
- trader: d.trader,
62
- mean: d.mean,
63
- std_dev: d.stdDev,
64
- lower_bound: d.lowerBound,
65
- upper_bound: d.upperBound,
66
- old_mean: d.oldMean,
67
- old_std_dev: d.oldStdDev,
68
- collateral_posted: d.collateralPosted,
69
- raw_data: JSON.stringify(d.rawData),
70
- }));
71
- // Insert with dedup
165
+ const inputs = decoded.map((d) => decodedEventToInsert(marketAddress, d));
166
+ // Insert events + discover traders + update cursor atomically
167
+ const lastDecoded = decoded[decoded.length - 1];
72
168
  const inserted = db.events.insertBatch(inputs);
73
- // Discover traders from TradeMoved events
169
+ // Discover traders and update cursor
74
170
  for (const d of decoded) {
75
- if (d.trader) {
76
- db.positions.ensureTrader(marketAddress, d.trader);
171
+ let trader = null;
172
+ if (isMultinoulliTradeEvent(d) || isNormalMarketEvent(d)) {
173
+ trader = d.trader;
174
+ }
175
+ else if (isMarketSettledEvent(d) || isMarketSettledMultiEvent(d)) {
176
+ trader = d.by;
177
+ }
178
+ if (trader) {
179
+ db.positions.ensureTrader(marketAddress, trader);
77
180
  }
78
181
  }
79
- // Update cursor
80
- const lastDecoded = decoded[decoded.length - 1];
182
+ // Update cursor before broadcasting (crash-safe: cursor persisted before clients notified)
81
183
  db.cursors.upsert(marketAddress, lastDecoded.blockNumber, lastDecoded.timestamp, inserted);
82
- // Broadcast new events
184
+ // Broadcast AFTER the transaction commits
83
185
  if (inserted > 0) {
84
186
  bus.broadcast({
85
187
  type: 'new_events',
@@ -98,7 +200,8 @@ export const indexAllMarkets = Effect.gen(function* () {
98
200
  const markets = db.markets.findAll(true);
99
201
  const results = [];
100
202
  for (const market of markets) {
101
- const result = yield* indexMarketEvents(market.address);
203
+ const marketType = (market.market_type ?? 'normal');
204
+ const result = yield* indexMarketEvents(market.address, marketType);
102
205
  results.push(result);
103
206
  }
104
207
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"event-indexer.js","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-indexer.js","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAW7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,cAAc;IACd,YAAY;IACZ,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,oBAAoB;CACrB,CAAC,CAAC;AAEH,SAAS,uBAAuB,CAAC,CAAe;IAC9C,OAAO,CAAC,CAAC,SAAS,KAAK,4BAA4B,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAe;IAC3C,OAAO,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAC;AAC1C,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAe;IAChD,OAAO,CAAC,CAAC,SAAS,KAAK,sBAAsB,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAe;IAC1C,OAAO,CACL,CAAC,CAAC,SAAS,KAAK,cAAc;QAC9B,CAAC,CAAC,SAAS,KAAK,aAAa;QAC7B,CAAC,CAAC,SAAS,KAAK,oBAAoB;QACpC,CAAC,CAAC,SAAS,KAAK,gBAAgB,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB,EAAE,CAAe;IAClE,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,cAAc,EAAE,aAAa;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,CAAC,CAAC,WAAW;YAChC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,aAAa,EAAE,CAAC,CAAC,YAAY;YAC7B,iBAAiB,EAAE,CAAC,CAAC,eAAe;YACpC,gBAAgB,EAAE,CAAC,CAAC,cAAc;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,cAAc,EAAE,aAAa;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,MAAM,EAAE,CAAC,CAAC,EAAE;YACZ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,wBAAwB,EAAE,CAAC,CAAC,sBAAsB;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,cAAc,EAAE,aAAa;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,MAAM,EAAE,CAAC,CAAC,EAAE;YACZ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,GAAG,CAAuB,CAAC;IAClC,OAAO;QACL,cAAc,EAAE,aAAa;QAC7B,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,WAAW,EAAE,CAAC,CAAC,UAAU;QACzB,WAAW,EAAE,CAAC,CAAC,UAAU;QACzB,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,WAAW,EAAE,CAAC,CAAC,SAAS;QACxB,iBAAiB,EAAE,CAAC,CAAC,gBAAgB;QACrC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,aAAqB,EACrB,aAAyB,QAAQ,EACuD,EAAE;AAC1F,sHAAsH;AACtH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IAE/B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,EAAE,iBAAiB,IAAI,CAAC,CAAC;IAEjD,yCAAyC;IACzC,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,OAAO,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACtC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAC3D,CAAC;QAEF,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,8CAA8C;YAChD,CAAC;iBAAM,CAAC;gBACN,6BAA6B;YAC/B,CAAC;YACD,MAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAEhC,6CAA6C;QAC7C,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;YACxC,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;gBACzB,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,OAAO,UAAU,IAAI,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE5B,sEAAsE;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM;QACR,CAAC;QAED,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;QACvC,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,sDAAsD;IACtD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9F,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/C,qCAAqC;IACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,uBAAuB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;aAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE3F,0CAA0C;IAC1C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,SAAS,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,aAAa;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,aAAa;QACb,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,WAAW,CAAC,WAAW;KACnC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAyB,EAAE,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAe,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -2,10 +2,11 @@
2
2
  * Position refresher — reads trader positions from chain.
3
3
  */
4
4
  import { Effect } from 'effect';
5
- import { DatabaseTag } from '../services/Database';
6
5
  import { ChainReaderTag } from '../services/ChainReader';
6
+ import { DatabaseTag } from '../services/Database';
7
7
  import { EventBusTag } from '../services/EventBus';
8
+ import type { MarketType } from '../types';
8
9
  import type { PositionRefreshResult } from './types';
9
- export declare const refreshPosition: (marketAddress: string, trader: string) => Effect.Effect<PositionRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
10
- export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag | ChainReaderTag | EventBusTag>;
10
+ export declare const refreshPosition: (marketAddress: string, trader: string, marketType?: MarketType) => Effect.Effect<PositionRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
11
+ export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag | EventBusTag | ChainReaderTag>;
11
12
  //# sourceMappingURL=position-refresher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"position-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,EACrB,QAAQ,MAAM,KACb,MAAM,CAAC,MAAM,CACd,qBAAqB,EACrB,KAAK,EACL,WAAW,GAAG,cAAc,GAAG,WAAW,CA6CxC,CAAC;AAEL,eAAO,MAAM,mBAAmB,2FAW9B,CAAC"}
1
+ {"version":3,"file":"position-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,EACrB,QAAQ,MAAM,EACd,aAAY,UAAqB,KAChC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,CAuFrF,CAAC;AAIL,eAAO,MAAM,mBAAmB,2FA2B9B,CAAC"}