@the-situation/indexer 0.11.0 → 0.11.2

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 (108) hide show
  1. package/README.md +5 -1
  2. package/dist/api/app.d.ts +40 -0
  3. package/dist/api/app.d.ts.map +1 -1
  4. package/dist/api/app.js +2 -1
  5. package/dist/api/app.js.map +1 -1
  6. package/dist/api/routes/admin.d.ts.map +1 -1
  7. package/dist/api/routes/admin.js +16 -0
  8. package/dist/api/routes/admin.js.map +1 -1
  9. package/dist/api/routes/index.d.ts +1 -0
  10. package/dist/api/routes/index.d.ts.map +1 -1
  11. package/dist/api/routes/index.js +1 -0
  12. package/dist/api/routes/index.js.map +1 -1
  13. package/dist/api/routes/market-events.d.ts.map +1 -1
  14. package/dist/api/routes/market-events.js.map +1 -1
  15. package/dist/api/routes/market-traders.d.ts.map +1 -1
  16. package/dist/api/routes/market-traders.js +1 -0
  17. package/dist/api/routes/market-traders.js.map +1 -1
  18. package/dist/api/routes/multinoulli-snapshots.d.ts +78 -0
  19. package/dist/api/routes/multinoulli-snapshots.d.ts.map +1 -0
  20. package/dist/api/routes/multinoulli-snapshots.js +33 -0
  21. package/dist/api/routes/multinoulli-snapshots.js.map +1 -0
  22. package/dist/api/routes/positions.d.ts.map +1 -1
  23. package/dist/api/routes/positions.js +1 -0
  24. package/dist/api/routes/positions.js.map +1 -1
  25. package/dist/api/routes/trader-events.d.ts.map +1 -1
  26. package/dist/api/routes/trader-events.js.map +1 -1
  27. package/dist/client/IndexerClient.d.ts +2 -1
  28. package/dist/client/IndexerClient.d.ts.map +1 -1
  29. package/dist/client/IndexerClient.js.map +1 -1
  30. package/dist/client/IndexerClientLive.d.ts.map +1 -1
  31. package/dist/client/IndexerClientLive.js +7 -0
  32. package/dist/client/IndexerClientLive.js.map +1 -1
  33. package/dist/client/convenience.d.ts +1 -0
  34. package/dist/client/convenience.d.ts.map +1 -1
  35. package/dist/client/convenience.js +1 -0
  36. package/dist/client/convenience.js.map +1 -1
  37. package/dist/client/index.d.ts +2 -2
  38. package/dist/client/index.d.ts.map +1 -1
  39. package/dist/client/index.js +1 -1
  40. package/dist/client/index.js.map +1 -1
  41. package/dist/client/trader-stats.d.ts +2 -0
  42. package/dist/client/trader-stats.d.ts.map +1 -1
  43. package/dist/client/trader-stats.js +5 -1
  44. package/dist/client/trader-stats.js.map +1 -1
  45. package/dist/config.d.ts.map +1 -1
  46. package/dist/config.js +3 -2
  47. package/dist/config.js.map +1 -1
  48. package/dist/db/repositories/event.d.ts +2 -1
  49. package/dist/db/repositories/event.d.ts.map +1 -1
  50. package/dist/db/repositories/event.js +16 -12
  51. package/dist/db/repositories/event.js.map +1 -1
  52. package/dist/db/repositories/market-state.d.ts +2 -0
  53. package/dist/db/repositories/market-state.d.ts.map +1 -1
  54. package/dist/db/repositories/market-state.js +5 -3
  55. package/dist/db/repositories/market-state.js.map +1 -1
  56. package/dist/db/repositories/multinoulli-snapshots.d.ts +44 -0
  57. package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -0
  58. package/dist/db/repositories/multinoulli-snapshots.js +54 -0
  59. package/dist/db/repositories/multinoulli-snapshots.js.map +1 -0
  60. package/dist/db/repositories/position.d.ts.map +1 -1
  61. package/dist/db/repositories/position.js +10 -3
  62. package/dist/db/repositories/position.js.map +1 -1
  63. package/dist/db/schema.d.ts.map +1 -1
  64. package/dist/db/schema.js +142 -1
  65. package/dist/db/schema.js.map +1 -1
  66. package/dist/etl/decoder.d.ts.map +1 -1
  67. package/dist/etl/decoder.js +195 -29
  68. package/dist/etl/decoder.js.map +1 -1
  69. package/dist/etl/event-indexer.d.ts +1 -1
  70. package/dist/etl/event-indexer.d.ts.map +1 -1
  71. package/dist/etl/event-indexer.js +16 -0
  72. package/dist/etl/event-indexer.js.map +1 -1
  73. package/dist/etl/position-refresher.d.ts +2 -2
  74. package/dist/etl/position-refresher.d.ts.map +1 -1
  75. package/dist/etl/position-refresher.js +80 -4
  76. package/dist/etl/position-refresher.js.map +1 -1
  77. package/dist/etl/state-refresher.d.ts +1 -1
  78. package/dist/etl/state-refresher.d.ts.map +1 -1
  79. package/dist/etl/state-refresher.js +18 -2
  80. package/dist/etl/state-refresher.js.map +1 -1
  81. package/dist/index.js +4 -175
  82. package/dist/index.js.map +1 -1
  83. package/dist/layers/ChainReaderLive.d.ts +2 -0
  84. package/dist/layers/ChainReaderLive.d.ts.map +1 -1
  85. package/dist/layers/ChainReaderLive.js +256 -63
  86. package/dist/layers/ChainReaderLive.js.map +1 -1
  87. package/dist/layers/DatabaseLive.d.ts.map +1 -1
  88. package/dist/layers/DatabaseLive.js +2 -0
  89. package/dist/layers/DatabaseLive.js.map +1 -1
  90. package/dist/layers/index.d.ts +1 -1
  91. package/dist/layers/index.d.ts.map +1 -1
  92. package/dist/layers/index.js +1 -1
  93. package/dist/layers/index.js.map +1 -1
  94. package/dist/services/ChainReader.d.ts +11 -3
  95. package/dist/services/ChainReader.d.ts.map +1 -1
  96. package/dist/services/ChainReader.js.map +1 -1
  97. package/dist/services/Database.d.ts +2 -0
  98. package/dist/services/Database.d.ts.map +1 -1
  99. package/dist/services/Database.js.map +1 -1
  100. package/dist/types/api.d.ts +12 -0
  101. package/dist/types/api.d.ts.map +1 -1
  102. package/dist/types/event.d.ts +16 -1
  103. package/dist/types/event.d.ts.map +1 -1
  104. package/dist/types/market.d.ts +7 -1
  105. package/dist/types/market.d.ts.map +1 -1
  106. package/dist/types/position.d.ts +10 -0
  107. package/dist/types/position.d.ts.map +1 -1
  108. package/package.json +3 -1
@@ -1,19 +1,186 @@
1
- import { AMM_ABI, MULTINOULLI_AMM_ABI } from '@the-situation/artifacts';
1
+ import { BIVARIATE_AMM_ABI, LOGNORMAL_AMM_ABI, MULTINOULLI_AMM_ABI, NORMAL_AMM_ABI, } from '@the-situation/artifacts';
2
2
  import { SQ128x128 } from '@the-situation/core';
3
- import { AMMContract, createProvider, MultinoulliAMMContract } from '@the-situation/starknet';
3
+ import { createProvider, MultinoulliAMMContract } from '@the-situation/starknet';
4
+ import { normalizeResponse } from '@the-situation/utils';
4
5
  import { Effect, Layer } from 'effect';
6
+ import { Contract } from 'starknet';
5
7
  import { ChainReadError, ChainReaderTag } from '../services/ChainReader';
6
- export const ChainReaderLive = (rpcUrl) => {
8
+ const TWO_128 = 2n ** 128n;
9
+ function toBigIntValue(value) {
10
+ if (typeof value === 'bigint') {
11
+ return value;
12
+ }
13
+ if (typeof value === 'number' && Number.isFinite(value)) {
14
+ return BigInt(Math.trunc(value));
15
+ }
16
+ if (typeof value === 'string') {
17
+ try {
18
+ return BigInt(value);
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ function toBoolValue(value) {
27
+ if (typeof value === 'boolean') {
28
+ return value;
29
+ }
30
+ if (typeof value === 'bigint') {
31
+ return value !== 0n;
32
+ }
33
+ if (typeof value === 'number') {
34
+ return value !== 0;
35
+ }
36
+ if (typeof value === 'string') {
37
+ return value !== '0' && value !== '0x0' && value !== '';
38
+ }
39
+ return false;
40
+ }
41
+ function toSQ128x128Raw(value) {
42
+ if (typeof value !== 'object' || value === null) {
43
+ return null;
44
+ }
45
+ const raw = value;
46
+ const limb0 = toBigIntValue(raw.limb0);
47
+ const limb1 = toBigIntValue(raw.limb1);
48
+ const limb2 = toBigIntValue(raw.limb2);
49
+ const limb3 = toBigIntValue(raw.limb3);
50
+ if (limb0 === null || limb1 === null || limb2 === null || limb3 === null) {
51
+ return null;
52
+ }
53
+ return {
54
+ limb0,
55
+ limb1,
56
+ limb2,
57
+ limb3,
58
+ neg: toBoolValue(raw.neg),
59
+ };
60
+ }
61
+ function sq128ToNumber(value) {
62
+ const raw = toSQ128x128Raw(value);
63
+ if (!raw) {
64
+ return null;
65
+ }
66
+ const magnitude = raw.limb0 + (raw.limb1 << 64n) + (raw.limb2 << 128n) + (raw.limb3 << 192n);
67
+ const abs = Number(magnitude) / Number(TWO_128);
68
+ return raw.neg ? -abs : abs;
69
+ }
70
+ function sq128MagnitudeToString(value) {
71
+ const raw = toSQ128x128Raw(value);
72
+ if (!raw) {
73
+ return null;
74
+ }
75
+ const magnitude = raw.limb0 + (raw.limb1 << 64n) + (raw.limb2 << 128n) + (raw.limb3 << 192n);
76
+ return magnitude.toString();
77
+ }
78
+ function projectedDistributionFields(marketType, distribution) {
79
+ if (marketType === 'normal') {
80
+ return {
81
+ meanRaw: distribution.mean,
82
+ varianceRaw: distribution.variance,
83
+ sigmaRaw: distribution.sigma,
84
+ };
85
+ }
86
+ if (marketType === 'lognormal') {
87
+ return {
88
+ meanRaw: distribution.mu,
89
+ varianceRaw: distribution.variance,
90
+ sigmaRaw: null,
91
+ };
92
+ }
93
+ // bivariate projection: first marginal (x1)
94
+ return {
95
+ meanRaw: distribution.mu1,
96
+ varianceRaw: distribution.variance1,
97
+ sigmaRaw: null,
98
+ };
99
+ }
100
+ function settlementValueFromStatus(status) {
101
+ if (status.settlementValue !== undefined) {
102
+ return sq128ToNumber(status.settlementValue);
103
+ }
104
+ if (status.settlementPoint && typeof status.settlementPoint === 'object') {
105
+ const point = status.settlementPoint;
106
+ return sq128ToNumber(point.x1);
107
+ }
108
+ return null;
109
+ }
110
+ function continuousAbi(marketType) {
111
+ if (marketType === 'lognormal') {
112
+ return LOGNORMAL_AMM_ABI;
113
+ }
114
+ if (marketType === 'bivariate') {
115
+ return BIVARIATE_AMM_ABI;
116
+ }
117
+ return NORMAL_AMM_ABI;
118
+ }
119
+ function projectedPositionFields(marketType, originalDistribution) {
120
+ if (marketType === 'normal') {
121
+ const mean = sq128ToNumber(originalDistribution.mean);
122
+ const variance = sq128ToNumber(originalDistribution.variance);
123
+ const sigma = sq128ToNumber(originalDistribution.sigma);
124
+ const fallbackSigma = variance === null ? null : Math.sqrt(Math.max(variance, 0));
125
+ return {
126
+ mean,
127
+ variance,
128
+ sigma: sigma ?? fallbackSigma,
129
+ };
130
+ }
131
+ if (marketType === 'lognormal') {
132
+ const mean = sq128ToNumber(originalDistribution.mu);
133
+ const variance = sq128ToNumber(originalDistribution.variance);
134
+ return {
135
+ mean,
136
+ variance,
137
+ sigma: variance === null ? null : Math.sqrt(Math.max(variance, 0)),
138
+ };
139
+ }
140
+ // bivariate projection: first marginal (x1)
141
+ const mean = sq128ToNumber(originalDistribution.mu1);
142
+ const variance = sq128ToNumber(originalDistribution.variance1);
143
+ return {
144
+ mean,
145
+ variance,
146
+ sigma: variance === null ? null : Math.sqrt(Math.max(variance, 0)),
147
+ };
148
+ }
149
+ function projectedEffectivePositionFields(marketType, compact) {
150
+ if (marketType === 'normal') {
151
+ const mean = sq128ToNumber(compact.effectiveMean);
152
+ const variance = sq128ToNumber(compact.effectiveVariance);
153
+ const sigma = sq128ToNumber(compact.effectiveSigma);
154
+ const fallbackSigma = variance === null ? null : Math.sqrt(Math.max(variance, 0));
155
+ return { mean, variance, sigma: sigma ?? fallbackSigma };
156
+ }
157
+ if (marketType === 'lognormal') {
158
+ const mean = sq128ToNumber(compact.effectiveMu ?? compact.effectiveMean);
159
+ const variance = sq128ToNumber(compact.effectiveVariance);
160
+ return { mean, variance, sigma: variance === null ? null : Math.sqrt(Math.max(variance, 0)) };
161
+ }
162
+ // bivariate projection: first marginal (x1)
163
+ const bivDist = compact.effectiveDist;
164
+ const mean = bivDist ? sq128ToNumber(bivDist.mu1) : null;
165
+ const variance = bivDist ? sq128ToNumber(bivDist.variance1) : null;
166
+ return { mean, variance, sigma: variance === null ? null : Math.sqrt(Math.max(variance, 0)) };
167
+ }
168
+ export function createChainReaderService(rpcUrl) {
7
169
  const provider = createProvider({ name: 'custom', chainId: 'SN_SEPOLIA', rpcUrl });
8
- const ammCache = new Map();
170
+ const continuousCache = new Map();
9
171
  const multinoulliAmmCache = new Map();
10
- function getAmm(address) {
11
- let amm = ammCache.get(address);
12
- if (!amm) {
13
- amm = new AMMContract({ address, abi: AMM_ABI, provider });
14
- ammCache.set(address, amm);
172
+ function getContinuousContract(address, marketType) {
173
+ const key = `${marketType}:${address.toLowerCase()}`;
174
+ let contract = continuousCache.get(key);
175
+ if (!contract) {
176
+ contract = new Contract({
177
+ abi: continuousAbi(marketType),
178
+ address,
179
+ providerOrAccount: provider,
180
+ });
181
+ continuousCache.set(key, contract);
15
182
  }
16
- return amm;
183
+ return contract;
17
184
  }
18
185
  function getMultinoulliAmm(address) {
19
186
  let amm = multinoulliAmmCache.get(address);
@@ -23,79 +190,92 @@ export const ChainReaderLive = (rpcUrl) => {
23
190
  }
24
191
  return amm;
25
192
  }
26
- return Layer.succeed(ChainReaderTag, ChainReaderTag.of({
27
- readMarketState: (marketAddress) => Effect.tryPromise({
193
+ return {
194
+ readMarketState: (marketAddress, marketType = 'normal') => Effect.tryPromise({
28
195
  try: async () => {
29
- const amm = getAmm(marketAddress);
30
- const [distribution, status, lpInfo] = await Promise.all([
31
- amm.getDistribution(),
32
- amm.getMarketStatus(),
33
- amm.getLPInfo(),
196
+ const contract = getContinuousContract(marketAddress, marketType);
197
+ const [rawDistribution, rawStatus, rawLpInfo, rawParams] = await Promise.all([
198
+ contract.call('get_distribution', []),
199
+ contract.call('get_market_status', []),
200
+ contract.call('get_lp_info', []),
201
+ contract.call('get_params', []),
34
202
  ]);
203
+ const distribution = normalizeResponse(rawDistribution);
204
+ const status = normalizeResponse(rawStatus);
205
+ const lpInfo = normalizeResponse(rawLpInfo);
206
+ const params = normalizeResponse(rawParams);
207
+ const projected = projectedDistributionFields(marketType, distribution);
208
+ const mean = sq128ToNumber(projected.meanRaw);
209
+ const variance = sq128ToNumber(projected.varianceRaw);
210
+ const directSigma = sq128ToNumber(projected.sigmaRaw);
211
+ const sigma = directSigma ?? (variance === null ? null : Math.sqrt(Math.max(variance, 0)));
35
212
  return {
36
- mean: distribution?.mean.toNumber() ?? null,
37
- sigma: distribution?.sigma.toNumber() ?? null,
38
- variance: distribution?.variance.toNumber() ?? null,
39
- isInitialized: status.isInitialized,
40
- isPaused: status.isPaused,
41
- isSettled: status.isSettled,
42
- settlementValue: status.settlementValue?.toNumber() ?? null,
43
- totalShares: lpInfo?.totalShares.toRaw().limb0.toString() ?? null,
44
- totalBacking: lpInfo?.totalBackingDeposited.toRaw().limb0.toString() ?? null,
45
- meanRaw: distribution
46
- ? JSON.stringify({
47
- mag: distribution.mean.toRaw().limb0.toString(),
48
- sign: distribution.mean.toRaw().neg,
49
- })
50
- : null,
51
- sigmaRaw: distribution
52
- ? JSON.stringify({
53
- mag: distribution.sigma.toRaw().limb0.toString(),
54
- sign: false,
55
- })
56
- : null,
57
- varianceRaw: distribution
58
- ? JSON.stringify({
59
- mag: distribution.variance.toRaw().limb0.toString(),
60
- sign: distribution.variance.toRaw().neg,
61
- })
62
- : null,
213
+ mean,
214
+ sigma,
215
+ variance,
216
+ isInitialized: toBoolValue(status.isInitialized),
217
+ isPaused: toBoolValue(status.isPaused),
218
+ isSettled: toBoolValue(status.isSettled),
219
+ settlementValue: settlementValueFromStatus(status),
220
+ totalShares: sq128MagnitudeToString(lpInfo.totalShares),
221
+ totalBacking: sq128MagnitudeToString(lpInfo.totalBackingDeposited),
222
+ meanRaw: projected.meanRaw ? JSON.stringify(projected.meanRaw) : null,
223
+ sigmaRaw: projected.sigmaRaw ? JSON.stringify(projected.sigmaRaw) : null,
224
+ varianceRaw: projected.varianceRaw ? JSON.stringify(projected.varianceRaw) : null,
225
+ k: sq128ToNumber(params.k),
226
+ effectiveK: sq128ToNumber(params.backing),
63
227
  };
64
228
  },
65
229
  catch: (e) => new ChainReadError(`Failed to read market state: ${e instanceof Error ? e.message : 'Unknown'}`, e),
66
230
  }),
67
- readPosition: (marketAddress, trader) => Effect.tryPromise({
231
+ readPosition: (marketAddress, trader, marketType = 'normal') => Effect.tryPromise({
68
232
  try: async () => {
69
- const amm = getAmm(marketAddress);
70
- const [position, extended] = await Promise.all([
71
- amm.getPositionCompact(trader),
72
- amm.getPositionSummary(trader),
233
+ const contract = getContinuousContract(marketAddress, marketType);
234
+ const [rawCompact, rawSummary] = await Promise.all([
235
+ contract.call('get_position_compact', [trader]),
236
+ contract.call('get_position_summary', [trader]),
73
237
  ]);
74
- if (!(position && extended)) {
238
+ const compact = normalizeResponse(rawCompact);
239
+ const summary = normalizeResponse(rawSummary);
240
+ const exists = toBoolValue(compact.exists ?? summary.exists);
241
+ if (!exists) {
75
242
  return {
76
243
  hasPosition: false,
77
244
  collateralLocked: null,
245
+ collateralLockedNumber: 0,
78
246
  mean: null,
79
247
  sigma: null,
80
248
  variance: null,
249
+ effectiveMean: null,
250
+ effectiveSigma: null,
251
+ effectiveVariance: null,
81
252
  settlementState: 'never_traded',
82
253
  deltaCount: 0,
83
254
  claimed: false,
84
255
  };
85
256
  }
257
+ const originalDistribution = compact.originalDistribution ?? {};
258
+ const projected = projectedPositionFields(marketType, originalDistribution);
259
+ const effective = projectedEffectivePositionFields(marketType, compact);
260
+ const claimed = toBoolValue(summary.claimed);
261
+ const tracksSettlementClaim = toBoolValue(summary.tracksSettlementClaim);
86
262
  return {
87
- hasPosition: position.exists,
88
- collateralLocked: extended.totalCollateralLocked?.toRaw().limb0.toString() ?? null,
89
- mean: position.originalMean?.toNumber() ?? null,
90
- sigma: position.originalSigma?.toNumber() ?? null,
91
- variance: position.originalVariance?.toNumber() ?? null,
92
- settlementState: extended.claimed
263
+ hasPosition: true,
264
+ collateralLocked: sq128MagnitudeToString(summary.totalCollateralLocked),
265
+ collateralLockedNumber: sq128ToNumber(summary.totalCollateralLocked) ?? 0,
266
+ mean: projected.mean,
267
+ sigma: projected.sigma,
268
+ variance: projected.variance,
269
+ effectiveMean: effective.mean,
270
+ effectiveSigma: effective.sigma,
271
+ effectiveVariance: effective.variance,
272
+ settlementState: claimed
93
273
  ? 'claimed'
94
- : extended.tracksSettlementClaim
274
+ : tracksSettlementClaim
95
275
  ? 'pending_claim'
96
276
  : 'active',
97
277
  deltaCount: 0,
98
- claimed: extended.claimed,
278
+ claimed,
99
279
  };
100
280
  },
101
281
  catch: (e) => new ChainReadError(`Failed to read position: ${e instanceof Error ? e.message : 'Unknown'}`, e),
@@ -120,8 +300,12 @@ export const ChainReaderLive = (rpcUrl) => {
120
300
  probs,
121
301
  k: params?.k.toNumber() ?? null,
122
302
  effectiveK: params?.backing.toNumber() ?? null,
123
- totalShares: lpInfo?.totalShares.toRaw().limb0.toString() ?? null,
124
- totalBacking: lpInfo?.totalBackingDeposited.toRaw().limb0.toString() ?? null,
303
+ totalShares: lpInfo?.totalShares
304
+ ? sq128MagnitudeToString(lpInfo.totalShares.toRaw())
305
+ : null,
306
+ totalBacking: lpInfo?.totalBackingDeposited
307
+ ? sq128MagnitudeToString(lpInfo.totalBackingDeposited.toRaw())
308
+ : null,
125
309
  isInitialized: status.isInitialized,
126
310
  isPaused: status.isPaused,
127
311
  isSettled: status.isSettled,
@@ -146,8 +330,10 @@ export const ChainReaderLive = (rpcUrl) => {
146
330
  exists: false,
147
331
  claimed: false,
148
332
  totalCollateralLocked: null,
333
+ collateralLockedNumber: 0,
149
334
  outcomeCount: 0,
150
335
  originalProbs: [],
336
+ effectiveProbs: [],
151
337
  settlementState: 'never_traded',
152
338
  };
153
339
  }
@@ -155,12 +341,18 @@ export const ChainReaderLive = (rpcUrl) => {
155
341
  const parsed = SQ128x128.fromRaw(raw);
156
342
  return parsed?.toNumber() ?? 0;
157
343
  });
344
+ const effectiveProbs = compact.effectiveDistribution.probs.map((raw) => {
345
+ const parsed = SQ128x128.fromRaw(raw);
346
+ return parsed?.toNumber() ?? 0;
347
+ });
158
348
  return {
159
349
  exists: summary.exists,
160
350
  claimed: summary.claimed,
161
- totalCollateralLocked: summary.totalCollateralLocked.toRaw().limb0.toString(),
351
+ totalCollateralLocked: sq128MagnitudeToString(summary.totalCollateralLocked.toRaw()),
352
+ collateralLockedNumber: summary.totalCollateralLocked.toNumber(),
162
353
  outcomeCount: summary.outcomeCount,
163
354
  originalProbs,
355
+ effectiveProbs,
164
356
  settlementState: summary.claimed
165
357
  ? 'claimed'
166
358
  : summary.tracksSettlementClaim
@@ -170,6 +362,7 @@ export const ChainReaderLive = (rpcUrl) => {
170
362
  },
171
363
  catch: (e) => new ChainReadError(`Failed to read multinoulli position: ${e instanceof Error ? e.message : 'Unknown'}`, e),
172
364
  }),
173
- }));
174
- };
365
+ };
366
+ }
367
+ export const ChainReaderLive = (rpcUrl) => Layer.succeed(ChainReaderTag, ChainReaderTag.of(createChainReaderService(rpcUrl)));
175
368
  //# sourceMappingURL=ChainReaderLive.js.map
@@ -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 +1 @@
1
- {"version":3,"file":"DatabaseLive.d.ts","sourceRoot":"","sources":["../../src/layers/DatabaseLive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAU/B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAahE,CAAC"}
1
+ {"version":3,"file":"DatabaseLive.d.ts","sourceRoot":"","sources":["../../src/layers/DatabaseLive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAW/B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAchE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Layer } from 'effect';
2
2
  import { CursorRepository, EventRepository, MarketRepository, MarketStateRepository, MultinoulliMarketStateRepository, PositionRepository, RankingRepository, } from '../db/repositories';
3
+ import { MultinoulliSnapshotsRepository } from '../db/repositories/multinoulli-snapshots';
3
4
  import { DatabaseTag } from '../services/Database';
4
5
  export const DatabaseLive = (db) => Layer.succeed(DatabaseTag, DatabaseTag.of({
5
6
  db,
@@ -7,6 +8,7 @@ export const DatabaseLive = (db) => Layer.succeed(DatabaseTag, DatabaseTag.of({
7
8
  events: new EventRepository(db),
8
9
  marketState: new MarketStateRepository(db),
9
10
  multinoulliMarketState: new MultinoulliMarketStateRepository(db),
11
+ multinoulliSnapshots: new MultinoulliSnapshotsRepository(db),
10
12
  positions: new PositionRepository(db),
11
13
  cursors: new CursorRepository(db),
12
14
  rankings: new RankingRepository(db),
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseLive.js","sourceRoot":"","sources":["../../src/layers/DatabaseLive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAY,EAA4B,EAAE,CACrE,KAAK,CAAC,OAAO,CACX,WAAW,EACX,WAAW,CAAC,EAAE,CAAC;IACb,EAAE;IACF,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;IACjC,MAAM,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC;IAC/B,WAAW,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC;IAC1C,sBAAsB,EAAE,IAAI,gCAAgC,CAAC,EAAE,CAAC;IAChE,SAAS,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC;CACpC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"DatabaseLive.js","sourceRoot":"","sources":["../../src/layers/DatabaseLive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAY,EAA4B,EAAE,CACrE,KAAK,CAAC,OAAO,CACX,WAAW,EACX,WAAW,CAAC,EAAE,CAAC;IACb,EAAE;IACF,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;IACjC,MAAM,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC;IAC/B,WAAW,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC;IAC1C,sBAAsB,EAAE,IAAI,gCAAgC,CAAC,EAAE,CAAC;IAChE,oBAAoB,EAAE,IAAI,8BAA8B,CAAC,EAAE,CAAC;IAC5D,SAAS,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC;CACpC,CAAC,CACH,CAAC"}
@@ -1,4 +1,4 @@
1
- export { ChainReaderLive } from './ChainReaderLive';
1
+ export { ChainReaderLive, createChainReaderService } from './ChainReaderLive';
2
2
  export { DatabaseLive } from './DatabaseLive';
3
3
  export { EventBusLive } from './EventBusLive';
4
4
  export { VoyagerClientLive } from './VoyagerClientLive';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { ChainReaderLive } from './ChainReaderLive';
1
+ export { ChainReaderLive, createChainReaderService } from './ChainReaderLive';
2
2
  export { DatabaseLive } from './DatabaseLive';
3
3
  export { EventBusLive } from './EventBusLive';
4
4
  export { VoyagerClientLive } from './VoyagerClientLive';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Context, type Effect } from 'effect';
2
- import type { MultinoulliMarketChainState, MultinoulliTraderPosition } from '../types';
2
+ import type { MarketType, MultinoulliMarketChainState, MultinoulliTraderPosition } from '../types';
3
3
  export interface MarketChainState {
4
4
  readonly mean: number | null;
5
5
  readonly sigma: number | null;
@@ -13,13 +13,21 @@ export interface MarketChainState {
13
13
  readonly meanRaw: string | null;
14
14
  readonly sigmaRaw: string | null;
15
15
  readonly varianceRaw: string | null;
16
+ readonly k: number | null;
17
+ readonly effectiveK: number | null;
16
18
  }
17
19
  export interface TraderPosition {
18
20
  readonly hasPosition: boolean;
21
+ /** Raw SQ128x128 magnitude as string (for DB storage) */
19
22
  readonly collateralLocked: string | null;
23
+ /** Collateral as a proper number (magnitude / 2^128) */
24
+ readonly collateralLockedNumber: number;
20
25
  readonly mean: number | null;
21
26
  readonly sigma: number | null;
22
27
  readonly variance: number | null;
28
+ readonly effectiveMean: number | null;
29
+ readonly effectiveSigma: number | null;
30
+ readonly effectiveVariance: number | null;
23
31
  readonly settlementState: string;
24
32
  readonly deltaCount: number;
25
33
  readonly claimed: boolean;
@@ -31,8 +39,8 @@ export declare class ChainReadError {
31
39
  constructor(message: string, cause?: unknown | undefined);
32
40
  }
33
41
  export interface ChainReaderService {
34
- readonly readMarketState: (marketAddress: string) => Effect.Effect<MarketChainState, ChainReadError>;
35
- readonly readPosition: (marketAddress: string, trader: string) => Effect.Effect<TraderPosition, ChainReadError>;
42
+ readonly readMarketState: (marketAddress: string, marketType?: Exclude<MarketType, 'multinoulli'>) => Effect.Effect<MarketChainState, ChainReadError>;
43
+ readonly readPosition: (marketAddress: string, trader: string, marketType?: Exclude<MarketType, 'multinoulli'>) => Effect.Effect<TraderPosition, ChainReadError>;
36
44
  readonly readMultinoulliMarketState: (marketAddress: string) => Effect.Effect<MultinoulliMarketChainState, ChainReadError>;
37
45
  readonly readMultinoulliPosition: (marketAddress: string, trader: string) => Effect.Effect<MultinoulliTraderPosition, ChainReadError>;
38
46
  }
@@ -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,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAEvF,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;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,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,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,KAClB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAErD,QAAQ,CAAC,YAAY,EAAE,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,KACX,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;CAC/D;;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;AA6B9C,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;AAsBD,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;AAqC9C,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;AAwBD,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAGnE;CAAG"}
@@ -1,12 +1,14 @@
1
1
  import type { Database as BunDatabase } from 'bun:sqlite';
2
2
  import { Context } from 'effect';
3
3
  import type { CursorRepository, EventRepository, MarketRepository, MarketStateRepository, MultinoulliMarketStateRepository, PositionRepository, RankingRepository } from '../db/repositories';
4
+ import type { MultinoulliSnapshotsRepository } from '../db/repositories/multinoulli-snapshots';
4
5
  export interface DatabaseService {
5
6
  readonly db: BunDatabase;
6
7
  readonly markets: MarketRepository;
7
8
  readonly events: EventRepository;
8
9
  readonly marketState: MarketStateRepository;
9
10
  readonly multinoulliMarketState: MultinoulliMarketStateRepository;
11
+ readonly multinoulliSnapshots: MultinoulliSnapshotsRepository;
10
12
  readonly positions: PositionRepository;
11
13
  readonly cursors: CursorRepository;
12
14
  readonly rankings: RankingRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/services/Database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;;AAED,qBAAa,WAAY,SAAQ,gBAA+D;CAAG"}
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/services/Database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;IAClE,QAAQ,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;;AAED,qBAAa,WAAY,SAAQ,gBAA+D;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/services/Database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAsBjC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAgC;CAAG"}
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/services/Database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAwBjC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAgC;CAAG"}
@@ -90,6 +90,7 @@ export interface TraderPositionResponse {
90
90
  readonly variance: number | null;
91
91
  readonly settlementState: string;
92
92
  readonly unrealizedPnl: number | null;
93
+ readonly expectedValue: number | null;
93
94
  readonly deltaCount: number;
94
95
  readonly claimed: boolean;
95
96
  readonly fetchedAt: number;
@@ -161,4 +162,15 @@ export interface AdminUpdateMarketBody {
161
162
  readonly col_labels?: readonly string[] | null | undefined;
162
163
  readonly resolution_source?: string | null | undefined;
163
164
  }
165
+ export interface MultinoulliSnapshotResponse {
166
+ readonly timestamp: number;
167
+ readonly probs: readonly number[];
168
+ readonly outcomeCount: number;
169
+ readonly matrixRows: number;
170
+ readonly matrixCols: number;
171
+ }
172
+ export interface MultinoulliSnapshotsResponse {
173
+ readonly data: readonly MultinoulliSnapshotResponse[];
174
+ readonly total: number;
175
+ }
164
176
  //# sourceMappingURL=api.d.ts.map