@the-situation/indexer 0.12.6 → 0.14.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 (95) 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 +3 -3
  11. package/dist/api/routes/admin-subscriptions.d.ts +3 -3
  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/market-lps.d.ts.map +1 -1
  19. package/dist/api/routes/market-lps.js +23 -9
  20. package/dist/api/routes/market-lps.js.map +1 -1
  21. package/dist/api/routes/markets.d.ts.map +1 -1
  22. package/dist/api/routes/markets.js +8 -0
  23. package/dist/api/routes/markets.js.map +1 -1
  24. package/dist/api/routes/trader-events.d.ts.map +1 -1
  25. package/dist/api/routes/trader-events.js +8 -0
  26. package/dist/api/routes/trader-events.js.map +1 -1
  27. package/dist/db/connection.d.ts.map +1 -1
  28. package/dist/db/connection.js +4 -0
  29. package/dist/db/connection.js.map +1 -1
  30. package/dist/db/repositories/activity-feed.d.ts +3 -0
  31. package/dist/db/repositories/activity-feed.d.ts.map +1 -1
  32. package/dist/db/repositories/activity-feed.js +33 -18
  33. package/dist/db/repositories/activity-feed.js.map +1 -1
  34. package/dist/db/repositories/event.d.ts +23 -0
  35. package/dist/db/repositories/event.d.ts.map +1 -1
  36. package/dist/db/repositories/event.js +141 -60
  37. package/dist/db/repositories/event.js.map +1 -1
  38. package/dist/db/repositories/lp-position.d.ts +2 -10
  39. package/dist/db/repositories/lp-position.d.ts.map +1 -1
  40. package/dist/db/repositories/lp-position.js +54 -52
  41. package/dist/db/repositories/lp-position.js.map +1 -1
  42. package/dist/db/repositories/market-state.d.ts +10 -0
  43. package/dist/db/repositories/market-state.d.ts.map +1 -1
  44. package/dist/db/repositories/market-state.js +16 -5
  45. package/dist/db/repositories/market-state.js.map +1 -1
  46. package/dist/db/repositories/market.d.ts +7 -0
  47. package/dist/db/repositories/market.d.ts.map +1 -1
  48. package/dist/db/repositories/market.js +32 -24
  49. package/dist/db/repositories/market.js.map +1 -1
  50. package/dist/db/repositories/multinoulli-snapshots.d.ts +1 -0
  51. package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -1
  52. package/dist/db/repositories/multinoulli-snapshots.js +7 -5
  53. package/dist/db/repositories/multinoulli-snapshots.js.map +1 -1
  54. package/dist/db/repositories/position.d.ts +1 -0
  55. package/dist/db/repositories/position.d.ts.map +1 -1
  56. package/dist/db/repositories/position.js +9 -0
  57. package/dist/db/repositories/position.js.map +1 -1
  58. package/dist/db/schema.d.ts.map +1 -1
  59. package/dist/db/schema.js +114 -5
  60. package/dist/db/schema.js.map +1 -1
  61. package/dist/etl/decoder.js +16 -0
  62. package/dist/etl/decoder.js.map +1 -1
  63. package/dist/etl/event-indexer.d.ts +1 -1
  64. package/dist/etl/event-indexer.d.ts.map +1 -1
  65. package/dist/etl/event-indexer.js +138 -74
  66. package/dist/etl/event-indexer.js.map +1 -1
  67. package/dist/etl/lp-position-refresher.d.ts +9 -3
  68. package/dist/etl/lp-position-refresher.d.ts.map +1 -1
  69. package/dist/etl/lp-position-refresher.js +74 -21
  70. package/dist/etl/lp-position-refresher.js.map +1 -1
  71. package/dist/etl/position-refresher.d.ts +9 -3
  72. package/dist/etl/position-refresher.d.ts.map +1 -1
  73. package/dist/etl/position-refresher.js +44 -36
  74. package/dist/etl/position-refresher.js.map +1 -1
  75. package/dist/etl/state-refresher.d.ts +8 -3
  76. package/dist/etl/state-refresher.d.ts.map +1 -1
  77. package/dist/etl/state-refresher.js +137 -12
  78. package/dist/etl/state-refresher.js.map +1 -1
  79. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  80. package/dist/layers/ChainReaderLive.js +69 -22
  81. package/dist/layers/ChainReaderLive.js.map +1 -1
  82. package/dist/lp/valuation.d.ts +34 -0
  83. package/dist/lp/valuation.d.ts.map +1 -0
  84. package/dist/lp/valuation.js +282 -0
  85. package/dist/lp/valuation.js.map +1 -0
  86. package/dist/services/ChainReader.d.ts +21 -0
  87. package/dist/services/ChainReader.d.ts.map +1 -1
  88. package/dist/services/ChainReader.js.map +1 -1
  89. package/dist/types/api.d.ts +29 -0
  90. package/dist/types/api.d.ts.map +1 -1
  91. package/dist/types/event.d.ts +24 -0
  92. package/dist/types/event.d.ts.map +1 -1
  93. package/dist/types/market.d.ts +16 -0
  94. package/dist/types/market.d.ts.map +1 -1
  95. package/package.json +7 -5
@@ -1,5 +1,4 @@
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';
@@ -79,12 +78,25 @@ function sq128MagnitudeToString(value) {
79
78
  const magnitude = raw.limb0 + (raw.limb1 << 64n) + (raw.limb2 << 128n) + (raw.limb3 << 192n);
80
79
  return magnitude.toString();
81
80
  }
81
+ function parseMultinoulliDistributionProbs(rawDistribution) {
82
+ const distribution = normalizeResponse(rawDistribution);
83
+ const rawProbs = Array.isArray(distribution.probs)
84
+ ? distribution.probs
85
+ : Array.isArray(rawDistribution)
86
+ ? rawDistribution
87
+ : [];
88
+ return rawProbs.map((raw) => sq128ToNumber(raw) ?? 0);
89
+ }
82
90
  function projectedDistributionFields(marketType, distribution) {
83
91
  if (marketType === 'normal') {
84
92
  return {
85
93
  meanRaw: distribution.mean,
86
94
  varianceRaw: distribution.variance,
87
95
  sigmaRaw: distribution.sigma,
96
+ mean2Raw: null,
97
+ variance2Raw: null,
98
+ sigma2Raw: null,
99
+ rhoRaw: null,
88
100
  };
89
101
  }
90
102
  if (marketType === 'lognormal') {
@@ -92,24 +104,36 @@ function projectedDistributionFields(marketType, distribution) {
92
104
  meanRaw: distribution.mu,
93
105
  varianceRaw: distribution.variance,
94
106
  sigmaRaw: null,
107
+ mean2Raw: null,
108
+ variance2Raw: null,
109
+ sigma2Raw: null,
110
+ rhoRaw: null,
95
111
  };
96
112
  }
97
- // bivariate projection: first marginal (x1)
113
+ // bivariate projection: both marginals (x1, x2) + correlation.
98
114
  return {
99
115
  meanRaw: distribution.mu1,
100
116
  varianceRaw: distribution.variance1,
101
- sigmaRaw: null,
117
+ sigmaRaw: distribution.sigma1,
118
+ mean2Raw: distribution.mu2,
119
+ variance2Raw: distribution.variance2,
120
+ sigma2Raw: distribution.sigma2,
121
+ rhoRaw: distribution.rho,
102
122
  };
103
123
  }
104
- function settlementValueFromStatus(status) {
105
- if (status.settlementValue !== undefined) {
106
- return sq128ToNumber(status.settlementValue);
107
- }
124
+ function settlementFromStatus(status) {
125
+ let settlementX1 = null;
126
+ let settlementX2 = null;
108
127
  if (status.settlementPoint && typeof status.settlementPoint === 'object') {
109
128
  const point = status.settlementPoint;
110
- return sq128ToNumber(point.x1);
129
+ settlementX1 = sq128ToNumber(point.x1);
130
+ settlementX2 = sq128ToNumber(point.x2);
111
131
  }
112
- return null;
132
+ const settlementValue = status.settlementValue !== undefined ? sq128ToNumber(status.settlementValue) : settlementX1;
133
+ if (settlementX1 === null) {
134
+ settlementX1 = settlementValue;
135
+ }
136
+ return { settlementValue, settlementX1, settlementX2 };
113
137
  }
114
138
  function continuousAbi(marketType) {
115
139
  if (marketType === 'lognormal') {
@@ -223,6 +247,12 @@ export function createChainReaderService(rpcUrl) {
223
247
  const variance = sq128ToNumber(projected.varianceRaw);
224
248
  const directSigma = sq128ToNumber(projected.sigmaRaw);
225
249
  const sigma = directSigma ?? (variance === null ? null : Math.sqrt(Math.max(variance, 0)));
250
+ const mean2 = sq128ToNumber(projected.mean2Raw);
251
+ const variance2 = sq128ToNumber(projected.variance2Raw);
252
+ const directSigma2 = sq128ToNumber(projected.sigma2Raw);
253
+ const sigma2 = directSigma2 ?? (variance2 === null ? null : Math.sqrt(Math.max(variance2, 0)));
254
+ const rho = sq128ToNumber(projected.rhoRaw);
255
+ const settlement = settlementFromStatus(status);
226
256
  const baseK = sq128ToNumber(params.k);
227
257
  const initialBacking = sq128ToNumber(params.backing);
228
258
  const poolBacking = sq128ToNumber(lpInfo.totalBackingDeposited);
@@ -239,12 +269,24 @@ export function createChainReaderService(rpcUrl) {
239
269
  isInitialized: toBoolValue(status.isInitialized),
240
270
  isPaused: toBoolValue(status.isPaused),
241
271
  isSettled: toBoolValue(status.isSettled),
242
- settlementValue: settlementValueFromStatus(status),
272
+ settlementValue: settlement.settlementValue,
273
+ settlementX1: settlement.settlementX1,
274
+ settlementX2: settlement.settlementX2,
243
275
  totalShares: sq128MagnitudeToString(lpInfo.totalShares),
244
276
  totalBacking: sq128MagnitudeToString(lpInfo.totalBackingDeposited),
245
277
  meanRaw: projected.meanRaw ? jsonStringifyBigInt(projected.meanRaw) : null,
246
278
  sigmaRaw: projected.sigmaRaw ? jsonStringifyBigInt(projected.sigmaRaw) : null,
247
279
  varianceRaw: projected.varianceRaw ? jsonStringifyBigInt(projected.varianceRaw) : null,
280
+ mean2,
281
+ sigma2,
282
+ variance2,
283
+ rho,
284
+ mean2Raw: projected.mean2Raw ? jsonStringifyBigInt(projected.mean2Raw) : null,
285
+ sigma2Raw: projected.sigma2Raw ? jsonStringifyBigInt(projected.sigma2Raw) : null,
286
+ variance2Raw: projected.variance2Raw
287
+ ? jsonStringifyBigInt(projected.variance2Raw)
288
+ : null,
289
+ rhoRaw: projected.rhoRaw ? jsonStringifyBigInt(projected.rhoRaw) : null,
248
290
  k: baseK,
249
291
  effectiveK,
250
292
  payoutAmplifier,
@@ -314,10 +356,7 @@ export function createChainReaderService(rpcUrl) {
314
356
  amm.getSettlementOutcomes(),
315
357
  amm.getMatrixConstraints(),
316
358
  ]);
317
- const probs = distribution.probs.map((raw) => {
318
- const parsed = SQ128x128.fromRaw(raw);
319
- return parsed?.toNumber() ?? 0;
320
- });
359
+ const probs = parseMultinoulliDistributionProbs(distribution);
321
360
  const mBaseK = params?.k.toNumber() ?? null;
322
361
  const mInitBacking = params?.backing.toNumber() ?? null;
323
362
  const mPoolBacking = lpInfo?.totalBackingDeposited?.toNumber() ?? null;
@@ -350,6 +389,20 @@ export function createChainReaderService(rpcUrl) {
350
389
  },
351
390
  catch: (e) => new ChainReadError(`Failed to read multinoulli market state: ${e instanceof Error ? e.message : 'Unknown'}`, e),
352
391
  }),
392
+ readMultinoulliDistributionAtBlock: (marketAddress, blockNumber) => Effect.tryPromise({
393
+ try: async () => {
394
+ if (!Number.isSafeInteger(blockNumber) || blockNumber < 0) {
395
+ throw new Error(`Invalid block number ${blockNumber}.`);
396
+ }
397
+ const amm = getMultinoulliAmm(marketAddress);
398
+ const rawDistribution = await amm
399
+ .getUnderlyingContract()
400
+ .call('get_distribution', [], { blockIdentifier: blockNumber });
401
+ const probs = parseMultinoulliDistributionProbs(rawDistribution);
402
+ return { outcomeCount: probs.length, probs };
403
+ },
404
+ catch: (e) => new ChainReadError(`Failed to read multinoulli distribution at block ${blockNumber}: ${e instanceof Error ? e.message : 'Unknown'}`, e),
405
+ }),
353
406
  readLPShares: (marketAddress, provider, marketType = 'normal') => Effect.tryPromise({
354
407
  try: async () => {
355
408
  const contract = getContinuousContract(marketAddress, marketType);
@@ -379,14 +432,8 @@ export function createChainReaderService(rpcUrl) {
379
432
  settlementState: 'never_traded',
380
433
  };
381
434
  }
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
- });
435
+ const originalProbs = compact.originalDistribution.probs.map((raw) => sq128ToNumber(raw) ?? 0);
436
+ const effectiveProbs = compact.effectiveDistribution.probs.map((raw) => sq128ToNumber(raw) ?? 0);
390
437
  return {
391
438
  exists: summary.exists,
392
439
  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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"}
@@ -0,0 +1,34 @@
1
+ import type { LPPositionRow } from '../db/repositories/lp-position';
2
+ import type { MarketEventRow } from '../types/event';
3
+ import type { MarketStateRow, MarketType } from '../types/market';
4
+ import type { UserPositionRow } from '../types/position';
5
+ export interface LPValuationSnapshot {
6
+ readonly currentValue: number | null;
7
+ readonly unrealizedPnl: number | null;
8
+ readonly entryMean: number | null;
9
+ readonly entrySigma: number | null;
10
+ readonly entryK: number | null;
11
+ readonly componentLambda: number | null;
12
+ readonly claimComponentCount: number;
13
+ }
14
+ /**
15
+ * Reconstruct exact LP claim legs for normal markets and derive per-provider
16
+ * value / P&L snapshots at the same evaluation point the participant table uses.
17
+ *
18
+ * Laws:
19
+ * - Only normal markets are valued exactly here. Other market types fall back
20
+ * to the indexer's stored approximation.
21
+ * - LP claim legs are only exposed as a single underwriting position when the
22
+ * provider currently has exactly one active leg. Multiple active legs are
23
+ * reported honestly as "mixed" via `claimComponentCount > 1`.
24
+ * - When the current state is insufficient to replay safely, we preserve the
25
+ * stored row rather than inventing a precise-looking number.
26
+ */
27
+ export declare function computeLPValuationSnapshots(input: {
28
+ readonly marketType: MarketType;
29
+ readonly marketState: MarketStateRow | null;
30
+ readonly lpPositions: readonly LPPositionRow[];
31
+ readonly traderPositions: readonly UserPositionRow[];
32
+ readonly events: readonly MarketEventRow[];
33
+ }): Map<string, LPValuationSnapshot>;
34
+ //# sourceMappingURL=valuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valuation.d.ts","sourceRoot":"","sources":["../../src/lp/valuation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiBzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AA6ID;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAsLnC"}
@@ -0,0 +1,282 @@
1
+ import { computeLPClaimComponentValue } from '@the-situation/sdk/valuation';
2
+ const TWO_128 = Number(2n ** 128n);
3
+ const SQRT_PI = Math.sqrt(Math.PI);
4
+ function parseRawData(rawData) {
5
+ if (rawData == null) {
6
+ return [];
7
+ }
8
+ try {
9
+ const parsed = JSON.parse(rawData);
10
+ return Array.isArray(parsed) ? parsed.filter((item) => typeof item === 'string') : [];
11
+ }
12
+ catch {
13
+ return [];
14
+ }
15
+ }
16
+ function sq128x128ToNumber(raw, start) {
17
+ if (raw.length < start + 5) {
18
+ return null;
19
+ }
20
+ try {
21
+ const combined = BigInt(raw[start]) +
22
+ (BigInt(raw[start + 1]) << 64n) +
23
+ (BigInt(raw[start + 2]) << 128n) +
24
+ (BigInt(raw[start + 3]) << 192n);
25
+ const magnitude = Number(combined) / TWO_128;
26
+ return BigInt(raw[start + 4]) !== 0n ? -magnitude : magnitude;
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ function rawTotalToNumber(raw) {
33
+ if (raw == null) {
34
+ return null;
35
+ }
36
+ const parsed = Number(raw);
37
+ if (!Number.isFinite(parsed)) {
38
+ return null;
39
+ }
40
+ return parsed / TWO_128;
41
+ }
42
+ function computeNormalLambda(sigma, k) {
43
+ if (!Number.isFinite(sigma) || !Number.isFinite(k) || sigma <= 0 || k <= 0) {
44
+ return 0;
45
+ }
46
+ return k * Math.sqrt(2 * sigma * SQRT_PI);
47
+ }
48
+ function extractNormalTradeDistributions(event) {
49
+ if (event.event_type === 'trade_executed') {
50
+ const raw = parseRawData(event.raw_data);
51
+ const previousMean = sq128x128ToNumber(raw, 0);
52
+ const previousSigma = sq128x128ToNumber(raw, 10);
53
+ const nextMean = sq128x128ToNumber(raw, 15);
54
+ const nextSigma = sq128x128ToNumber(raw, 25);
55
+ return {
56
+ previous: previousMean != null && previousSigma != null && previousSigma > 0
57
+ ? { mean: previousMean, sigma: previousSigma }
58
+ : event.old_mean != null && event.old_std_dev != null && event.old_std_dev > 0
59
+ ? { mean: event.old_mean, sigma: event.old_std_dev }
60
+ : null,
61
+ next: nextMean != null && nextSigma != null && nextSigma > 0
62
+ ? { mean: nextMean, sigma: nextSigma }
63
+ : event.mean !== 0 && event.std_dev > 0
64
+ ? { mean: event.mean, sigma: event.std_dev }
65
+ : null,
66
+ };
67
+ }
68
+ if (event.event_type === 'trade_moved') {
69
+ return {
70
+ previous: event.old_mean != null && event.old_std_dev != null && event.old_std_dev > 0
71
+ ? { mean: event.old_mean, sigma: event.old_std_dev }
72
+ : null,
73
+ next: event.std_dev > 0 ? { mean: event.mean, sigma: event.std_dev } : null,
74
+ };
75
+ }
76
+ return { previous: null, next: null };
77
+ }
78
+ function inferInitialNormalDistribution(events, marketState) {
79
+ const bootstrapped = events.find((event) => event.event_type === 'bootstrapped' && event.std_dev > 0);
80
+ if (bootstrapped) {
81
+ return { mean: bootstrapped.mean, sigma: bootstrapped.std_dev };
82
+ }
83
+ for (const event of events) {
84
+ const distributions = extractNormalTradeDistributions(event);
85
+ if (distributions.previous != null) {
86
+ return distributions.previous;
87
+ }
88
+ }
89
+ if (marketState?.mean != null && marketState.sigma != null && marketState.sigma > 0) {
90
+ return { mean: marketState.mean, sigma: marketState.sigma };
91
+ }
92
+ return null;
93
+ }
94
+ function appendComponent(componentsByProvider, provider, component) {
95
+ const existing = componentsByProvider.get(provider) ?? [];
96
+ existing.push(component);
97
+ componentsByProvider.set(provider, existing);
98
+ }
99
+ function buildFallbackSnapshot(row) {
100
+ const hasFallbackEntry = row.claimed_at == null && row.entry_mean != null && row.entry_sigma != null;
101
+ return {
102
+ currentValue: row.current_value,
103
+ unrealizedPnl: row.unrealized_pnl,
104
+ entryMean: hasFallbackEntry ? row.entry_mean : null,
105
+ entrySigma: hasFallbackEntry ? row.entry_sigma : null,
106
+ entryK: hasFallbackEntry ? row.entry_k : null,
107
+ componentLambda: hasFallbackEntry ? row.component_lambda : null,
108
+ claimComponentCount: hasFallbackEntry ? 1 : 0,
109
+ };
110
+ }
111
+ /**
112
+ * Reconstruct exact LP claim legs for normal markets and derive per-provider
113
+ * value / P&L snapshots at the same evaluation point the participant table uses.
114
+ *
115
+ * Laws:
116
+ * - Only normal markets are valued exactly here. Other market types fall back
117
+ * to the indexer's stored approximation.
118
+ * - LP claim legs are only exposed as a single underwriting position when the
119
+ * provider currently has exactly one active leg. Multiple active legs are
120
+ * reported honestly as "mixed" via `claimComponentCount > 1`.
121
+ * - When the current state is insufficient to replay safely, we preserve the
122
+ * stored row rather than inventing a precise-looking number.
123
+ */
124
+ export function computeLPValuationSnapshots(input) {
125
+ const result = new Map();
126
+ for (const row of input.lpPositions) {
127
+ result.set(row.provider, buildFallbackSnapshot(row));
128
+ }
129
+ if (input.marketType !== 'normal') {
130
+ return result;
131
+ }
132
+ const baseK = input.marketState?.k ?? null;
133
+ const totalBacking = rawTotalToNumber(input.marketState?.total_backing ?? null);
134
+ const totalShares = rawTotalToNumber(input.marketState?.total_shares ?? null);
135
+ const evaluationPoint = input.marketState?.is_settled === 1
136
+ ? input.marketState.settlement_value
137
+ : input.marketState?.mean ?? null;
138
+ const initialDistribution = inferInitialNormalDistribution(input.events, input.marketState);
139
+ if (baseK == null ||
140
+ baseK <= 0 ||
141
+ totalBacking == null ||
142
+ totalShares == null ||
143
+ totalShares <= 0 ||
144
+ evaluationPoint == null ||
145
+ initialDistribution == null) {
146
+ return result;
147
+ }
148
+ const componentsByProvider = new Map();
149
+ const providerShares = new Map();
150
+ let replayTotalShares = 0;
151
+ let currentDistribution = initialDistribution;
152
+ let marketSettled = false;
153
+ for (const event of input.events) {
154
+ if (event.event_type === 'market_settled') {
155
+ marketSettled = true;
156
+ continue;
157
+ }
158
+ if (event.event_type === 'market_initialized') {
159
+ const provider = event.trader?.toLowerCase();
160
+ const shares = sq128x128ToNumber(parseRawData(event.raw_data), 0);
161
+ if (provider != null && shares != null && shares > 0) {
162
+ const lambda = computeNormalLambda(currentDistribution.sigma, baseK);
163
+ if (lambda > 0) {
164
+ appendComponent(componentsByProvider, provider, {
165
+ mean: currentDistribution.mean,
166
+ sigma: currentDistribution.sigma,
167
+ k: baseK,
168
+ lambda,
169
+ });
170
+ }
171
+ providerShares.set(provider, (providerShares.get(provider) ?? 0) + shares);
172
+ replayTotalShares += shares;
173
+ }
174
+ continue;
175
+ }
176
+ if (event.event_type === 'liquidity_added') {
177
+ const provider = event.trader?.toLowerCase();
178
+ const shares = sq128x128ToNumber(parseRawData(event.raw_data), 0);
179
+ if (provider != null && shares != null && shares > 0) {
180
+ if (replayTotalShares > 0 && currentDistribution != null) {
181
+ const shareFraction = shares / replayTotalShares;
182
+ const lambda = computeNormalLambda(currentDistribution.sigma, baseK) * shareFraction;
183
+ if (lambda > 0) {
184
+ appendComponent(componentsByProvider, provider, {
185
+ mean: currentDistribution.mean,
186
+ sigma: currentDistribution.sigma,
187
+ k: baseK,
188
+ lambda,
189
+ });
190
+ }
191
+ }
192
+ providerShares.set(provider, (providerShares.get(provider) ?? 0) + shares);
193
+ replayTotalShares += shares;
194
+ }
195
+ continue;
196
+ }
197
+ if (event.event_type === 'liquidity_removed') {
198
+ const provider = event.trader?.toLowerCase();
199
+ const removedShares = sq128x128ToNumber(parseRawData(event.raw_data), 0);
200
+ if (provider != null && removedShares != null && removedShares > 0) {
201
+ const currentShares = providerShares.get(provider) ?? 0;
202
+ const remainingShares = Math.max(0, currentShares - removedShares);
203
+ if (marketSettled) {
204
+ componentsByProvider.set(provider, []);
205
+ }
206
+ else {
207
+ const remainingFraction = currentShares > 0 ? remainingShares / currentShares : 0;
208
+ const scaled = remainingFraction > 0
209
+ ? (componentsByProvider.get(provider) ?? [])
210
+ .map((component) => ({
211
+ ...component,
212
+ lambda: component.lambda * remainingFraction,
213
+ }))
214
+ .filter((component) => component.lambda > 0)
215
+ : [];
216
+ componentsByProvider.set(provider, scaled);
217
+ }
218
+ providerShares.set(provider, remainingShares);
219
+ replayTotalShares = Math.max(0, replayTotalShares - removedShares);
220
+ }
221
+ continue;
222
+ }
223
+ const tradeDistributions = extractNormalTradeDistributions(event);
224
+ if (tradeDistributions.next != null) {
225
+ currentDistribution = tradeDistributions.next;
226
+ }
227
+ }
228
+ const claimedProviders = new Set(input.lpPositions
229
+ .filter((row) => row.claimed_at != null)
230
+ .map((row) => row.provider.toLowerCase()));
231
+ for (const provider of claimedProviders) {
232
+ componentsByProvider.set(provider, []);
233
+ }
234
+ const totalTraderPnl = input.traderPositions.reduce((sum, position) => {
235
+ return sum + (position.unrealized_pnl ?? 0) + (position.realized_pnl ?? 0);
236
+ }, 0);
237
+ const totalClaimDrain = Array.from(componentsByProvider.values()).reduce((sum, components) => {
238
+ return (sum +
239
+ components.reduce((componentSum, component) => {
240
+ return componentSum + computeLPClaimComponentValue(component, evaluationPoint);
241
+ }, 0));
242
+ }, 0);
243
+ const residualBacking = Math.max(0, totalBacking - totalTraderPnl - totalClaimDrain);
244
+ for (const row of input.lpPositions) {
245
+ const provider = row.provider.toLowerCase();
246
+ const components = componentsByProvider.get(provider) ?? [];
247
+ const claimValue = components.reduce((sum, component) => {
248
+ return sum + computeLPClaimComponentValue(component, evaluationPoint);
249
+ }, 0);
250
+ const liveShares = row.shares_number ?? providerShares.get(provider) ?? 0;
251
+ const poolShare = liveShares > 0 ? liveShares / totalShares : 0;
252
+ const currentValue = claimValue + poolShare * residualBacking;
253
+ const netDeposited = row.total_deposited - row.total_withdrawn;
254
+ if (components.length === 1) {
255
+ const component = components[0];
256
+ if (component == null) {
257
+ continue;
258
+ }
259
+ result.set(row.provider, {
260
+ currentValue,
261
+ unrealizedPnl: currentValue - netDeposited,
262
+ entryMean: component.mean,
263
+ entrySigma: component.sigma,
264
+ entryK: component.k,
265
+ componentLambda: component.lambda,
266
+ claimComponentCount: 1,
267
+ });
268
+ continue;
269
+ }
270
+ result.set(row.provider, {
271
+ currentValue,
272
+ unrealizedPnl: currentValue - netDeposited,
273
+ entryMean: null,
274
+ entrySigma: null,
275
+ entryK: null,
276
+ componentLambda: null,
277
+ claimComponentCount: components.length,
278
+ });
279
+ }
280
+ return result;
281
+ }
282
+ //# sourceMappingURL=valuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valuation.js","sourceRoot":"","sources":["../../src/lp/valuation.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,31 @@ 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,6 +63,7 @@ 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;