@the-situation/indexer 0.13.0 → 0.15.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 (92) hide show
  1. package/README.md +21 -0
  2. package/dist/__tests__/performance/perf-fixtures.d.ts +26 -0
  3. package/dist/__tests__/performance/perf-fixtures.d.ts.map +1 -0
  4. package/dist/__tests__/performance/perf-fixtures.js +172 -0
  5. package/dist/__tests__/performance/perf-fixtures.js.map +1 -0
  6. package/dist/__tests__/performance/perf-utils.d.ts +42 -0
  7. package/dist/__tests__/performance/perf-utils.d.ts.map +1 -0
  8. package/dist/__tests__/performance/perf-utils.js +91 -0
  9. package/dist/__tests__/performance/perf-utils.js.map +1 -0
  10. package/dist/api/app.d.ts +6 -6
  11. package/dist/api/routes/admin-subscriptions.d.ts +6 -6
  12. package/dist/api/routes/admin.d.ts.map +1 -1
  13. package/dist/api/routes/admin.js +4 -0
  14. package/dist/api/routes/admin.js.map +1 -1
  15. package/dist/api/routes/market-events.d.ts.map +1 -1
  16. package/dist/api/routes/market-events.js +8 -0
  17. package/dist/api/routes/market-events.js.map +1 -1
  18. package/dist/api/routes/markets.d.ts.map +1 -1
  19. package/dist/api/routes/markets.js +8 -0
  20. package/dist/api/routes/markets.js.map +1 -1
  21. package/dist/api/routes/trader-events.d.ts.map +1 -1
  22. package/dist/api/routes/trader-events.js +8 -0
  23. package/dist/api/routes/trader-events.js.map +1 -1
  24. package/dist/db/connection.d.ts.map +1 -1
  25. package/dist/db/connection.js +4 -0
  26. package/dist/db/connection.js.map +1 -1
  27. package/dist/db/repositories/activity-feed.d.ts +3 -0
  28. package/dist/db/repositories/activity-feed.d.ts.map +1 -1
  29. package/dist/db/repositories/activity-feed.js +33 -18
  30. package/dist/db/repositories/activity-feed.js.map +1 -1
  31. package/dist/db/repositories/event.d.ts +22 -0
  32. package/dist/db/repositories/event.d.ts.map +1 -1
  33. package/dist/db/repositories/event.js +139 -75
  34. package/dist/db/repositories/event.js.map +1 -1
  35. package/dist/db/repositories/lp-position.d.ts +2 -10
  36. package/dist/db/repositories/lp-position.d.ts.map +1 -1
  37. package/dist/db/repositories/lp-position.js +54 -52
  38. package/dist/db/repositories/lp-position.js.map +1 -1
  39. package/dist/db/repositories/market-state.d.ts +10 -0
  40. package/dist/db/repositories/market-state.d.ts.map +1 -1
  41. package/dist/db/repositories/market-state.js +16 -5
  42. package/dist/db/repositories/market-state.js.map +1 -1
  43. package/dist/db/repositories/market.d.ts +7 -0
  44. package/dist/db/repositories/market.d.ts.map +1 -1
  45. package/dist/db/repositories/market.js +32 -24
  46. package/dist/db/repositories/market.js.map +1 -1
  47. package/dist/db/repositories/multinoulli-snapshots.d.ts +1 -0
  48. package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -1
  49. package/dist/db/repositories/multinoulli-snapshots.js +7 -5
  50. package/dist/db/repositories/multinoulli-snapshots.js.map +1 -1
  51. package/dist/db/repositories/position.d.ts +1 -0
  52. package/dist/db/repositories/position.d.ts.map +1 -1
  53. package/dist/db/repositories/position.js +9 -0
  54. package/dist/db/repositories/position.js.map +1 -1
  55. package/dist/db/schema.d.ts.map +1 -1
  56. package/dist/db/schema.js +114 -5
  57. package/dist/db/schema.js.map +1 -1
  58. package/dist/etl/decoder.js +16 -0
  59. package/dist/etl/decoder.js.map +1 -1
  60. package/dist/etl/event-indexer.d.ts +6 -2
  61. package/dist/etl/event-indexer.d.ts.map +1 -1
  62. package/dist/etl/event-indexer.js +175 -79
  63. package/dist/etl/event-indexer.js.map +1 -1
  64. package/dist/etl/lp-position-refresher.d.ts +8 -2
  65. package/dist/etl/lp-position-refresher.d.ts.map +1 -1
  66. package/dist/etl/lp-position-refresher.js +74 -21
  67. package/dist/etl/lp-position-refresher.js.map +1 -1
  68. package/dist/etl/position-refresher.d.ts +9 -3
  69. package/dist/etl/position-refresher.d.ts.map +1 -1
  70. package/dist/etl/position-refresher.js +44 -36
  71. package/dist/etl/position-refresher.js.map +1 -1
  72. package/dist/etl/state-refresher.d.ts +8 -3
  73. package/dist/etl/state-refresher.d.ts.map +1 -1
  74. package/dist/etl/state-refresher.js +154 -16
  75. package/dist/etl/state-refresher.js.map +1 -1
  76. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  77. package/dist/layers/ChainReaderLive.js +180 -26
  78. package/dist/layers/ChainReaderLive.js.map +1 -1
  79. package/dist/services/ChainReader.d.ts +34 -1
  80. package/dist/services/ChainReader.d.ts.map +1 -1
  81. package/dist/services/ChainReader.js.map +1 -1
  82. package/dist/services/VoyagerRateLimit.d.ts +13 -1
  83. package/dist/services/VoyagerRateLimit.d.ts.map +1 -1
  84. package/dist/services/VoyagerRateLimit.js +20 -3
  85. package/dist/services/VoyagerRateLimit.js.map +1 -1
  86. package/dist/types/api.d.ts +28 -0
  87. package/dist/types/api.d.ts.map +1 -1
  88. package/dist/types/event.d.ts +24 -0
  89. package/dist/types/event.d.ts.map +1 -1
  90. package/dist/types/market.d.ts +16 -0
  91. package/dist/types/market.d.ts.map +1 -1
  92. package/package.json +3 -1
@@ -1,10 +1,39 @@
1
1
  import { BIVARIATE_AMM_ABI, LOGNORMAL_AMM_ABI, MULTINOULLI_AMM_ABI, NORMAL_AMM_ABI, } from '@the-situation/artifacts';
2
- import { SQ128x128 } from '@the-situation/core';
3
2
  import { createProvider, MultinoulliAMMContract } from '@the-situation/starknet';
4
3
  import { normalizeResponse } from '@the-situation/utils';
5
4
  import { Effect, Layer } from 'effect';
6
- import { Contract } from 'starknet';
5
+ import { Contract, hash } from 'starknet';
7
6
  import { ChainReadError, ChainReaderTag } from '../services/ChainReader';
7
+ /**
8
+ * Cairo event names emitted by the AMM contracts that the indexer cares
9
+ * about. We compute their selectors at module load and use them both to
10
+ * filter `starknet_getEvents` calls AND to translate the resulting events
11
+ * back to the `VoyagerEvent` shape (so the existing decoder doesn't fork).
12
+ */
13
+ const RPC_EVENT_NAMES = [
14
+ 'Bootstrapped',
15
+ 'TradeMoved',
16
+ 'TradeExecuted',
17
+ 'MarketInitialized',
18
+ 'MarketSettled',
19
+ 'MarketSettledMulti',
20
+ 'LiquidityAdded',
21
+ 'LiquidityRemoved',
22
+ 'PositionClaimed',
23
+ ];
24
+ /** Normalize a hex selector for stable comparison (lowercased, 0x prefix). */
25
+ function normalizeSelector(value) {
26
+ const lower = value.toLowerCase();
27
+ return lower.startsWith('0x') ? lower : `0x${lower}`;
28
+ }
29
+ const SELECTOR_TO_NAME = (() => {
30
+ const entries = RPC_EVENT_NAMES.map((name) => {
31
+ const selector = normalizeSelector(hash.getSelectorFromName(name));
32
+ return [selector, name];
33
+ });
34
+ return new Map(entries);
35
+ })();
36
+ const ALL_EVENT_SELECTORS = Array.from(SELECTOR_TO_NAME.keys());
8
37
  const TWO_128 = 2n ** 128n;
9
38
  /** JSON.stringify replacement that converts BigInts to strings. */
10
39
  function jsonStringifyBigInt(value) {
@@ -79,12 +108,25 @@ function sq128MagnitudeToString(value) {
79
108
  const magnitude = raw.limb0 + (raw.limb1 << 64n) + (raw.limb2 << 128n) + (raw.limb3 << 192n);
80
109
  return magnitude.toString();
81
110
  }
111
+ function parseMultinoulliDistributionProbs(rawDistribution) {
112
+ const distribution = normalizeResponse(rawDistribution);
113
+ const rawProbs = Array.isArray(distribution.probs)
114
+ ? distribution.probs
115
+ : Array.isArray(rawDistribution)
116
+ ? rawDistribution
117
+ : [];
118
+ return rawProbs.map((raw) => sq128ToNumber(raw) ?? 0);
119
+ }
82
120
  function projectedDistributionFields(marketType, distribution) {
83
121
  if (marketType === 'normal') {
84
122
  return {
85
123
  meanRaw: distribution.mean,
86
124
  varianceRaw: distribution.variance,
87
125
  sigmaRaw: distribution.sigma,
126
+ mean2Raw: null,
127
+ variance2Raw: null,
128
+ sigma2Raw: null,
129
+ rhoRaw: null,
88
130
  };
89
131
  }
90
132
  if (marketType === 'lognormal') {
@@ -92,24 +134,36 @@ function projectedDistributionFields(marketType, distribution) {
92
134
  meanRaw: distribution.mu,
93
135
  varianceRaw: distribution.variance,
94
136
  sigmaRaw: null,
137
+ mean2Raw: null,
138
+ variance2Raw: null,
139
+ sigma2Raw: null,
140
+ rhoRaw: null,
95
141
  };
96
142
  }
97
- // bivariate projection: first marginal (x1)
143
+ // bivariate projection: both marginals (x1, x2) + correlation.
98
144
  return {
99
145
  meanRaw: distribution.mu1,
100
146
  varianceRaw: distribution.variance1,
101
- sigmaRaw: null,
147
+ sigmaRaw: distribution.sigma1,
148
+ mean2Raw: distribution.mu2,
149
+ variance2Raw: distribution.variance2,
150
+ sigma2Raw: distribution.sigma2,
151
+ rhoRaw: distribution.rho,
102
152
  };
103
153
  }
104
- function settlementValueFromStatus(status) {
105
- if (status.settlementValue !== undefined) {
106
- return sq128ToNumber(status.settlementValue);
107
- }
154
+ function settlementFromStatus(status) {
155
+ let settlementX1 = null;
156
+ let settlementX2 = null;
108
157
  if (status.settlementPoint && typeof status.settlementPoint === 'object') {
109
158
  const point = status.settlementPoint;
110
- return sq128ToNumber(point.x1);
159
+ settlementX1 = sq128ToNumber(point.x1);
160
+ settlementX2 = sq128ToNumber(point.x2);
111
161
  }
112
- return null;
162
+ const settlementValue = status.settlementValue !== undefined ? sq128ToNumber(status.settlementValue) : settlementX1;
163
+ if (settlementX1 === null) {
164
+ settlementX1 = settlementValue;
165
+ }
166
+ return { settlementValue, settlementX1, settlementX2 };
113
167
  }
114
168
  function continuousAbi(marketType) {
115
169
  if (marketType === 'lognormal') {
@@ -205,14 +259,22 @@ export function createChainReaderService(rpcUrl) {
205
259
  contract.call('get_market_status', []),
206
260
  contract.call('get_lp_info', []),
207
261
  ]);
208
- // get_params is best-effort — don't let it block the core state read
262
+ // get_params is best-effort — don't let it block the core state read.
263
+ // Some on-chain implementations revert get_params when the market is
264
+ // paused; for those we rely on the indexer's cached k (k is a
265
+ // deployment-time constant). Silently suppress the warning when the
266
+ // market is paused or settled — those are expected failure modes.
209
267
  let rawParams = null;
210
268
  try {
211
269
  rawParams = await contract.call('get_params', []);
212
270
  }
213
271
  catch (paramsErr) {
214
- // biome-ignore lint/suspicious/noConsole: debug
215
- console.warn(`[chain] get_params failed for ${marketAddress.slice(0, 16)}: ${paramsErr instanceof Error ? paramsErr.message : String(paramsErr)}`);
272
+ const isExpectedFailure = toBoolValue(normalizeResponse(rawStatus).isPaused) ||
273
+ toBoolValue(normalizeResponse(rawStatus).isSettled);
274
+ if (!isExpectedFailure) {
275
+ // biome-ignore lint/suspicious/noConsole: debug
276
+ console.warn(`[chain] get_params failed for ${marketAddress.slice(0, 16)}: ${paramsErr instanceof Error ? paramsErr.message : String(paramsErr)}`);
277
+ }
216
278
  }
217
279
  const distribution = normalizeResponse(rawDistribution);
218
280
  const status = normalizeResponse(rawStatus);
@@ -223,6 +285,12 @@ export function createChainReaderService(rpcUrl) {
223
285
  const variance = sq128ToNumber(projected.varianceRaw);
224
286
  const directSigma = sq128ToNumber(projected.sigmaRaw);
225
287
  const sigma = directSigma ?? (variance === null ? null : Math.sqrt(Math.max(variance, 0)));
288
+ const mean2 = sq128ToNumber(projected.mean2Raw);
289
+ const variance2 = sq128ToNumber(projected.variance2Raw);
290
+ const directSigma2 = sq128ToNumber(projected.sigma2Raw);
291
+ const sigma2 = directSigma2 ?? (variance2 === null ? null : Math.sqrt(Math.max(variance2, 0)));
292
+ const rho = sq128ToNumber(projected.rhoRaw);
293
+ const settlement = settlementFromStatus(status);
226
294
  const baseK = sq128ToNumber(params.k);
227
295
  const initialBacking = sq128ToNumber(params.backing);
228
296
  const poolBacking = sq128ToNumber(lpInfo.totalBackingDeposited);
@@ -239,12 +307,24 @@ export function createChainReaderService(rpcUrl) {
239
307
  isInitialized: toBoolValue(status.isInitialized),
240
308
  isPaused: toBoolValue(status.isPaused),
241
309
  isSettled: toBoolValue(status.isSettled),
242
- settlementValue: settlementValueFromStatus(status),
310
+ settlementValue: settlement.settlementValue,
311
+ settlementX1: settlement.settlementX1,
312
+ settlementX2: settlement.settlementX2,
243
313
  totalShares: sq128MagnitudeToString(lpInfo.totalShares),
244
314
  totalBacking: sq128MagnitudeToString(lpInfo.totalBackingDeposited),
245
315
  meanRaw: projected.meanRaw ? jsonStringifyBigInt(projected.meanRaw) : null,
246
316
  sigmaRaw: projected.sigmaRaw ? jsonStringifyBigInt(projected.sigmaRaw) : null,
247
317
  varianceRaw: projected.varianceRaw ? jsonStringifyBigInt(projected.varianceRaw) : null,
318
+ mean2,
319
+ sigma2,
320
+ variance2,
321
+ rho,
322
+ mean2Raw: projected.mean2Raw ? jsonStringifyBigInt(projected.mean2Raw) : null,
323
+ sigma2Raw: projected.sigma2Raw ? jsonStringifyBigInt(projected.sigma2Raw) : null,
324
+ variance2Raw: projected.variance2Raw
325
+ ? jsonStringifyBigInt(projected.variance2Raw)
326
+ : null,
327
+ rhoRaw: projected.rhoRaw ? jsonStringifyBigInt(projected.rhoRaw) : null,
248
328
  k: baseK,
249
329
  effectiveK,
250
330
  payoutAmplifier,
@@ -314,10 +394,7 @@ export function createChainReaderService(rpcUrl) {
314
394
  amm.getSettlementOutcomes(),
315
395
  amm.getMatrixConstraints(),
316
396
  ]);
317
- const probs = distribution.probs.map((raw) => {
318
- const parsed = SQ128x128.fromRaw(raw);
319
- return parsed?.toNumber() ?? 0;
320
- });
397
+ const probs = parseMultinoulliDistributionProbs(distribution);
321
398
  const mBaseK = params?.k.toNumber() ?? null;
322
399
  const mInitBacking = params?.backing.toNumber() ?? null;
323
400
  const mPoolBacking = lpInfo?.totalBackingDeposited?.toNumber() ?? null;
@@ -350,6 +427,20 @@ export function createChainReaderService(rpcUrl) {
350
427
  },
351
428
  catch: (e) => new ChainReadError(`Failed to read multinoulli market state: ${e instanceof Error ? e.message : 'Unknown'}`, e),
352
429
  }),
430
+ readMultinoulliDistributionAtBlock: (marketAddress, blockNumber) => Effect.tryPromise({
431
+ try: async () => {
432
+ if (!Number.isSafeInteger(blockNumber) || blockNumber < 0) {
433
+ throw new Error(`Invalid block number ${blockNumber}.`);
434
+ }
435
+ const amm = getMultinoulliAmm(marketAddress);
436
+ const rawDistribution = await amm
437
+ .getUnderlyingContract()
438
+ .call('get_distribution', [], { blockIdentifier: blockNumber });
439
+ const probs = parseMultinoulliDistributionProbs(rawDistribution);
440
+ return { outcomeCount: probs.length, probs };
441
+ },
442
+ catch: (e) => new ChainReadError(`Failed to read multinoulli distribution at block ${blockNumber}: ${e instanceof Error ? e.message : 'Unknown'}`, e),
443
+ }),
353
444
  readLPShares: (marketAddress, provider, marketType = 'normal') => Effect.tryPromise({
354
445
  try: async () => {
355
446
  const contract = getContinuousContract(marketAddress, marketType);
@@ -360,6 +451,75 @@ export function createChainReaderService(rpcUrl) {
360
451
  },
361
452
  catch: (e) => new ChainReadError(`Failed to read LP shares: ${e instanceof Error ? e.message : 'Unknown'}`, e),
362
453
  }),
454
+ fetchEventsByContract: (contractAddress, fromBlock, chunkSize) => Effect.tryPromise({
455
+ try: async () => {
456
+ const safeChunkSize = Math.max(1, Math.min(chunkSize, 1000));
457
+ const safeFromBlock = Math.max(0, Math.floor(fromBlock));
458
+ // Filter to only the event selectors we know how to decode.
459
+ // `starknet_getEvents` accepts `keys: string[][]` where the outer
460
+ // array is positional (key index) and the inner array is OR'd.
461
+ // We filter on key-0 (the event selector).
462
+ const response = await provider.getEvents({
463
+ from_block: { block_number: safeFromBlock },
464
+ to_block: 'latest',
465
+ address: contractAddress,
466
+ keys: [[...ALL_EVENT_SELECTORS]],
467
+ chunk_size: safeChunkSize,
468
+ });
469
+ const rawEvents = response.events ?? [];
470
+ if (rawEvents.length === 0) {
471
+ return { events: [], hasMore: !!response.continuation_token };
472
+ }
473
+ // Resolve block timestamps. Block timestamp isn't part of the
474
+ // EmittedEvent payload; fetch each unique block in parallel.
475
+ const uniqueBlocks = Array.from(new Set(rawEvents
476
+ .map((e) => e.block_number)
477
+ .filter((b) => typeof b === 'number')));
478
+ const blockTimestampEntries = await Promise.all(uniqueBlocks.map(async (blockNumber) => {
479
+ try {
480
+ const block = await provider.getBlockWithTxHashes(blockNumber);
481
+ return [blockNumber, block.timestamp];
482
+ }
483
+ catch {
484
+ return [blockNumber, 0];
485
+ }
486
+ }));
487
+ const timestampByBlock = new Map(blockTimestampEntries);
488
+ // Track per-tx event ordering so eventUid stays stable + deterministic.
489
+ const perTxCounters = new Map();
490
+ const translated = rawEvents.map((raw) => {
491
+ const blockNumber = typeof raw.block_number === 'number' ? raw.block_number : 0;
492
+ const timestamp = timestampByBlock.get(blockNumber) ?? 0;
493
+ const txHash = raw.transaction_hash;
494
+ const counter = (perTxCounters.get(txHash) ?? 0) + 1;
495
+ perTxCounters.set(txHash, counter);
496
+ const selector = normalizeSelector(raw.keys[0] ?? '');
497
+ const name = SELECTOR_TO_NAME.get(selector) ?? '';
498
+ return {
499
+ blockNumber,
500
+ transactionNumber: 0,
501
+ number: counter,
502
+ data: raw.data,
503
+ fromAddress: raw.from_address,
504
+ keys: raw.keys,
505
+ classHash: '',
506
+ transactionHash: txHash,
507
+ blockHash: typeof raw.block_hash === 'string' ? raw.block_hash : '',
508
+ timestamp,
509
+ selector,
510
+ name,
511
+ nestedName: '',
512
+ nestedEventNames: [],
513
+ eventId: `${blockNumber}:${txHash}:${counter}`,
514
+ classAlias: null,
515
+ contractAlias: null,
516
+ abiVerified: false,
517
+ };
518
+ });
519
+ return { events: translated, hasMore: !!response.continuation_token };
520
+ },
521
+ catch: (e) => new ChainReadError(`Failed to fetch events via RPC: ${e instanceof Error ? e.message : 'Unknown'}`, e),
522
+ }),
363
523
  readMultinoulliPosition: (marketAddress, trader) => Effect.tryPromise({
364
524
  try: async () => {
365
525
  const amm = getMultinoulliAmm(marketAddress);
@@ -379,14 +539,8 @@ export function createChainReaderService(rpcUrl) {
379
539
  settlementState: 'never_traded',
380
540
  };
381
541
  }
382
- const originalProbs = compact.originalDistribution.probs.map((raw) => {
383
- const parsed = SQ128x128.fromRaw(raw);
384
- return parsed?.toNumber() ?? 0;
385
- });
386
- const effectiveProbs = compact.effectiveDistribution.probs.map((raw) => {
387
- const parsed = SQ128x128.fromRaw(raw);
388
- return parsed?.toNumber() ?? 0;
389
- });
542
+ const originalProbs = compact.originalDistribution.probs.map((raw) => sq128ToNumber(raw) ?? 0);
543
+ const effectiveProbs = compact.effectiveDistribution.probs.map((raw) => sq128ToNumber(raw) ?? 0);
390
544
  return {
391
545
  exists: summary.exists,
392
546
  claimed: summary.claimed,
@@ -1 +1 @@
1
- {"version":3,"file":"ChainReaderLive.js","sourceRoot":"","sources":["../../src/layers/ChainReaderLive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChainReaderLive.js","sourceRoot":"","sources":["../../src/layers/ChainReaderLive.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,34 @@
1
1
  import { Context, type Effect } from 'effect';
2
- import type { MarketType, MultinoulliMarketChainState, MultinoulliTraderPosition } from '../types';
2
+ import type { MarketType, MultinoulliMarketChainState, MultinoulliTraderPosition, VoyagerEvent } from '../types';
3
3
  export interface MarketChainState {
4
4
  readonly mean: number | null;
5
5
  readonly sigma: number | null;
6
6
  readonly variance: number | null;
7
+ /** Bivariate second marginal mean (x2). */
8
+ readonly mean2?: number | null;
9
+ /** Bivariate second marginal std dev (x2). */
10
+ readonly sigma2?: number | null;
11
+ /** Bivariate second marginal variance (x2). */
12
+ readonly variance2?: number | null;
13
+ /** Bivariate correlation coefficient. */
14
+ readonly rho?: number | null;
7
15
  readonly isInitialized: boolean;
8
16
  readonly isPaused: boolean;
9
17
  readonly isSettled: boolean;
10
18
  readonly settlementValue: number | null;
19
+ /** Settlement point x1 for bivariate markets. */
20
+ readonly settlementX1?: number | null;
21
+ /** Settlement point x2 for bivariate markets. */
22
+ readonly settlementX2?: number | null;
11
23
  readonly totalShares: string | null;
12
24
  readonly totalBacking: string | null;
13
25
  readonly meanRaw: string | null;
14
26
  readonly sigmaRaw: string | null;
15
27
  readonly varianceRaw: string | null;
28
+ readonly mean2Raw?: string | null;
29
+ readonly sigma2Raw?: string | null;
30
+ readonly variance2Raw?: string | null;
31
+ readonly rhoRaw?: string | null;
16
32
  readonly k: number | null;
17
33
  readonly effectiveK: number | null;
18
34
  readonly payoutAmplifier: number;
@@ -33,6 +49,10 @@ export interface TraderPosition {
33
49
  readonly deltaCount: number;
34
50
  readonly claimed: boolean;
35
51
  }
52
+ export interface MultinoulliDistributionSnapshot {
53
+ readonly outcomeCount: number;
54
+ readonly probs: readonly number[];
55
+ }
36
56
  export declare class ChainReadError {
37
57
  readonly message: string;
38
58
  readonly cause?: unknown | undefined;
@@ -43,11 +63,24 @@ export interface ChainReaderService {
43
63
  readonly readMarketState: (marketAddress: string, marketType?: Exclude<MarketType, 'multinoulli'>) => Effect.Effect<MarketChainState, ChainReadError>;
44
64
  readonly readPosition: (marketAddress: string, trader: string, marketType?: Exclude<MarketType, 'multinoulli'>) => Effect.Effect<TraderPosition, ChainReadError>;
45
65
  readonly readMultinoulliMarketState: (marketAddress: string) => Effect.Effect<MultinoulliMarketChainState, ChainReadError>;
66
+ readonly readMultinoulliDistributionAtBlock: (marketAddress: string, blockNumber: number) => Effect.Effect<MultinoulliDistributionSnapshot, ChainReadError>;
46
67
  readonly readMultinoulliPosition: (marketAddress: string, trader: string) => Effect.Effect<MultinoulliTraderPosition, ChainReadError>;
47
68
  readonly readLPShares: (marketAddress: string, provider: string, marketType?: Exclude<MarketType, 'multinoulli'>) => Effect.Effect<{
48
69
  shares: string | null;
49
70
  sharesNumber: number;
50
71
  }, ChainReadError>;
72
+ /**
73
+ * Fetch market-emitted events directly from the Starknet RPC node
74
+ * (`starknet_getEvents`). Used as a fallback when Voyager is rate-limited.
75
+ *
76
+ * Returns events translated to the same `VoyagerEvent` shape as the Voyager
77
+ * client so the existing decoder doesn't need to fork. Caller passes
78
+ * `fromBlock` (inclusive) — the cursor's last indexed block + 1.
79
+ */
80
+ readonly fetchEventsByContract: (contractAddress: string, fromBlock: number, chunkSize: number) => Effect.Effect<{
81
+ readonly events: readonly VoyagerEvent[];
82
+ readonly hasMore: boolean;
83
+ }, ChainReadError>;
51
84
  }
52
85
  declare const ChainReaderTag_base: Context.TagClass<ChainReaderTag, "indexer/ChainReader", ChainReaderService>;
53
86
  export declare class ChainReaderTag extends ChainReaderTag_base {
@@ -1 +1 @@
1
- {"version":3,"file":"ChainReader.d.ts","sourceRoot":"","sources":["../../src/services/ChainReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,wDAAwD;IACxD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,cAAc;IAGvB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IAH1B,QAAQ,CAAC,IAAI,oBAAoB;gBAEtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,YAAA;CAE3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,EAAE,CACxB,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAErD,QAAQ,CAAC,YAAY,EAAE,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAEnD,QAAQ,CAAC,0BAA0B,EAAE,CACnC,aAAa,EAAE,MAAM,KAClB,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC;IAEhE,QAAQ,CAAC,uBAAuB,EAAE,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;IAE9D,QAAQ,CAAC,YAAY,EAAE,CACrB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,cAAc,CAAC,CAAC;CACrF;;AAED,qBAAa,cAAe,SAAQ,mBAGjC;CAAG"}
1
+ {"version":3,"file":"ChainReader.d.ts","sourceRoot":"","sources":["../../src/services/ChainReader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChainReader.js","sourceRoot":"","sources":["../../src/services/ChainReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,QAAQ,CAAC;AAsC9C,MAAM,OAAO,cAAc;IAGd;IACA;IAHF,IAAI,GAAG,gBAAgB,CAAC;IACjC,YACW,OAAe,EACf,KAAe;QADf,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAU;IACvB,CAAC;CACL;AA8BD,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAGnE;CAAG"}
1
+ {"version":3,"file":"ChainReader.js","sourceRoot":"","sources":["../../src/services/ChainReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,QAAQ,CAAC;AAgE9C,MAAM,OAAO,cAAc;IAGd;IACA;IAHF,IAAI,GAAG,gBAAgB,CAAC;IACjC,YACW,OAAe,EACf,KAAe;QADf,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAU;IACvB,CAAC;CACL;AAiDD,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAGnE;CAAG"}
@@ -30,7 +30,19 @@ export declare class VoyagerRateLimitState {
30
30
  isLimited(): boolean;
31
31
  /** Record a successful Voyager response — resets escalation. */
32
32
  recordSuccess(): void;
33
- /** Record a 429/503 — immediately opens the circuit with escalating cooldown. */
33
+ /** Record a 429/503 — immediately opens the circuit with escalating cooldown.
34
+ *
35
+ * Two guards:
36
+ *
37
+ * 1. **Re-entry guard**: if a cooldown window is already open and we get a
38
+ * second 429 (e.g. concurrent requests racing past the `isLimited()`
39
+ * check before the first one came back), don't escalate again. We've
40
+ * already accounted for this rate-limit window.
41
+ * 2. **Cap**: don't grow `escalationLevel` past the cooldown table length.
42
+ * The cooldown duration already saturates at `COOLDOWN_STEPS_MS.length - 1`,
43
+ * so further increments only make `/health` lie about how bad things are.
44
+ * Cap observed in prod at 76 with no diagnostic value.
45
+ */
34
46
  recordRateLimit(): void;
35
47
  /** Inter-request throttle: sleep if needed to respect min interval. */
36
48
  throttle(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"VoyagerRateLimit.d.ts","sourceRoot":"","sources":["../../src/services/VoyagerRateLimit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAK;gBAEhB,oBAAoB,SAAM;IAItC,mFAAmF;IACnF,SAAS,IAAI,OAAO;IAWpB,gEAAgE;IAChE,aAAa,IAAI,IAAI;IAKrB,iFAAiF;IACjF,eAAe,IAAI,IAAI;IAQvB,uEAAuE;IACjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,qDAAqD;IACrD,SAAS,IAAI,eAAe;CAqB7B"}
1
+ {"version":3,"file":"VoyagerRateLimit.d.ts","sourceRoot":"","sources":["../../src/services/VoyagerRateLimit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAK;gBAEhB,oBAAoB,SAAM;IAItC,mFAAmF;IACnF,SAAS,IAAI,OAAO;IAWpB,gEAAgE;IAChE,aAAa,IAAI,IAAI;IAKrB;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI,IAAI;IAavB,uEAAuE;IACjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,qDAAqD;IACrD,SAAS,IAAI,eAAe;CAqB7B"}
@@ -41,13 +41,30 @@ export class VoyagerRateLimitState {
41
41
  this.escalationLevel = 0;
42
42
  this.cooldownUntil = 0;
43
43
  }
44
- /** Record a 429/503 — immediately opens the circuit with escalating cooldown. */
44
+ /** Record a 429/503 — immediately opens the circuit with escalating cooldown.
45
+ *
46
+ * Two guards:
47
+ *
48
+ * 1. **Re-entry guard**: if a cooldown window is already open and we get a
49
+ * second 429 (e.g. concurrent requests racing past the `isLimited()`
50
+ * check before the first one came back), don't escalate again. We've
51
+ * already accounted for this rate-limit window.
52
+ * 2. **Cap**: don't grow `escalationLevel` past the cooldown table length.
53
+ * The cooldown duration already saturates at `COOLDOWN_STEPS_MS.length - 1`,
54
+ * so further increments only make `/health` lie about how bad things are.
55
+ * Cap observed in prod at 76 with no diagnostic value.
56
+ */
45
57
  recordRateLimit() {
58
+ if (this.isLimited()) {
59
+ // Already in a cooldown window — don't double-count concurrent failures.
60
+ return;
61
+ }
46
62
  const step = Math.min(this.escalationLevel, COOLDOWN_STEPS_MS.length - 1);
47
63
  const cooldownMs = COOLDOWN_STEPS_MS[step];
48
64
  this.cooldownUntil = Date.now() + cooldownMs;
49
- this.escalationLevel++;
50
- formatDuration(cooldownMs);
65
+ if (this.escalationLevel < COOLDOWN_STEPS_MS.length) {
66
+ this.escalationLevel++;
67
+ }
51
68
  }
52
69
  /** Inter-request throttle: sleep if needed to respect min interval. */
53
70
  async throttle() {
@@ -1 +1 @@
1
- {"version":3,"file":"VoyagerRateLimit.js","sourceRoot":"","sources":["../../src/services/VoyagerRateLimit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VoyagerRateLimit.js","sourceRoot":"","sources":["../../src/services/VoyagerRateLimit.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export interface MarketResponse {
27
27
  readonly marketType: MarketType;
28
28
  readonly xAxisLabel: string | null;
29
29
  readonly xAxisUnit: string | null;
30
+ readonly yAxisLabel: string | null;
31
+ readonly yAxisUnit: string | null;
30
32
  readonly outcomeLabels: readonly string[] | null;
31
33
  readonly rowLabels: readonly string[] | null;
32
34
  readonly colLabels: readonly string[] | null;
@@ -58,12 +60,18 @@ export interface MarketStateResponse {
58
60
  readonly mean: number | null;
59
61
  readonly sigma: number | null;
60
62
  readonly variance: number | null;
63
+ readonly mean2?: number | null;
64
+ readonly sigma2?: number | null;
65
+ readonly variance2?: number | null;
66
+ readonly rho?: number | null;
61
67
  readonly k: number | null;
62
68
  readonly effectiveK: number | null;
63
69
  readonly isInitialized: boolean;
64
70
  readonly isPaused: boolean;
65
71
  readonly isSettled: boolean;
66
72
  readonly settlementValue: number | null;
73
+ readonly settlementX1?: number | null;
74
+ readonly settlementX2?: number | null;
67
75
  readonly totalShares: string | null;
68
76
  readonly totalBacking: string | null;
69
77
  readonly payoutAmplifier: number;
@@ -82,6 +90,14 @@ export interface EventResponse {
82
90
  readonly upperBound: number;
83
91
  readonly oldMean: number | null;
84
92
  readonly oldStdDev: number | null;
93
+ readonly mean2?: number | null;
94
+ readonly stdDev2?: number | null;
95
+ readonly lowerBound2?: number | null;
96
+ readonly upperBound2?: number | null;
97
+ readonly oldMean2?: number | null;
98
+ readonly oldStdDev2?: number | null;
99
+ readonly rho?: number | null;
100
+ readonly oldRho?: number | null;
85
101
  readonly collateralPosted: string | null;
86
102
  }
87
103
  export interface TraderPositionResponse {
@@ -160,6 +176,14 @@ export interface TraderEventResponse {
160
176
  readonly upperBound: number;
161
177
  readonly oldMean: number | null;
162
178
  readonly oldStdDev: number | null;
179
+ readonly mean2?: number | null;
180
+ readonly stdDev2?: number | null;
181
+ readonly lowerBound2?: number | null;
182
+ readonly upperBound2?: number | null;
183
+ readonly oldMean2?: number | null;
184
+ readonly oldStdDev2?: number | null;
185
+ readonly rho?: number | null;
186
+ readonly oldRho?: number | null;
163
187
  readonly collateralPosted: string | null;
164
188
  }
165
189
  export interface TraderStatsResponse {
@@ -181,6 +205,8 @@ export interface AdminCreateMarketBody {
181
205
  readonly market_type?: MarketType | undefined;
182
206
  readonly x_axis_label?: string | undefined;
183
207
  readonly x_axis_unit?: string | undefined;
208
+ readonly y_axis_label?: string | undefined;
209
+ readonly y_axis_unit?: string | undefined;
184
210
  readonly outcome_labels?: readonly string[] | undefined;
185
211
  readonly row_labels?: readonly string[] | undefined;
186
212
  readonly col_labels?: readonly string[] | undefined;
@@ -195,6 +221,8 @@ export interface AdminUpdateMarketBody {
195
221
  readonly market_type?: MarketType | undefined;
196
222
  readonly x_axis_label?: string | null | undefined;
197
223
  readonly x_axis_unit?: string | null | undefined;
224
+ readonly y_axis_label?: string | null | undefined;
225
+ readonly y_axis_unit?: string | null | undefined;
198
226
  readonly outcome_labels?: readonly string[] | null | undefined;
199
227
  readonly row_labels?: readonly string[] | null | undefined;
200
228
  readonly col_labels?: readonly string[] | null | undefined;