@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
package/README.md CHANGED
@@ -192,8 +192,29 @@ bun run --filter '@the-situation/indexer' build
192
192
 
193
193
  # Run tests
194
194
  bun run --filter '@the-situation/indexer' test
195
+
196
+ # Run opt-in performance suite (prints throughput/latency/memory metrics)
197
+ bun run --filter '@the-situation/indexer' test:perf
198
+
199
+ # Run strict perf checks (enables hard memory-trend assertions)
200
+ bun run --filter '@the-situation/indexer' test:perf:strict
195
201
  ```
196
202
 
203
+ ### Performance Suite Notes
204
+
205
+ The perf suite is intentionally **opt-in** (`RUN_PERF=1`) and uses relative
206
+ regression guards to reduce machine-specific flakes:
207
+
208
+ - Ingestion throughput: compares second-half median throughput vs first-half.
209
+ - Query latency: checks tail amplification (`p95` vs `p50`) under mixed API load.
210
+ - Memory trend: compares retained `heapUsed`/`rss` medians across sustained rounds.
211
+
212
+ In strict mode (`PERF_STRICT=1`), the suite requires GC availability and enforces
213
+ hard memory trend thresholds suitable for dedicated performance runners.
214
+
215
+ Tests print the measured summaries (`min`, `p50`, `p95`, `p99`, `max`, `mean`)
216
+ to help interpret changes across commits.
217
+
197
218
  ## Deploying to Fly.io
198
219
 
199
220
  The indexer is configured for [Fly.io](https://fly.io) with a persistent volume for SQLite.
@@ -0,0 +1,26 @@
1
+ import type { DatabaseService } from '../../services/Database';
2
+ import type { EventBusService } from '../../services/EventBus';
3
+ import type { VoyagerClientService } from '../../services/VoyagerClient';
4
+ import type { VoyagerEvent } from '../../types';
5
+ export interface SeedMarketOptions {
6
+ readonly marketAddress: string;
7
+ readonly title: string;
8
+ readonly totalEvents: number;
9
+ readonly startBlock?: number;
10
+ readonly traderCardinality?: number;
11
+ readonly chunkSize?: number;
12
+ }
13
+ export interface TradeMovedBatchOptions {
14
+ readonly marketAddress: string;
15
+ readonly batchCount: number;
16
+ readonly batchSize: number;
17
+ readonly startBlock?: number;
18
+ }
19
+ export declare function createPerfDatabaseService(): DatabaseService;
20
+ export declare function createNoopEventBus(): EventBusService;
21
+ export declare function createSequentialVoyagerClient(batches: readonly (readonly VoyagerEvent[])[]): VoyagerClientService;
22
+ export declare function buildTradeMovedBatches(options: TradeMovedBatchOptions): readonly VoyagerEvent[][];
23
+ export declare function seedMarketWithEvents(dbService: DatabaseService, options: SeedMarketOptions): {
24
+ insertedEvents: number;
25
+ };
26
+ //# sourceMappingURL=perf-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/performance/perf-fixtures.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAKlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAkB3D;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,GAC5C,oBAAoB,CAiBtB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,YAAY,EAAE,EAAE,CA4CjG;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,iBAAiB,GACzB;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAoD5B"}
@@ -0,0 +1,172 @@
1
+ import { Effect } from 'effect';
2
+ import { ActivityFeedRepository, CursorRepository, EventRepository, LPPositionRepository, MarketRepository, MarketStateRepository, MultinoulliMarketStateRepository, PositionRepository, RankingRepository, SubscriptionRepository, } from '../../db/repositories';
3
+ import { MultinoulliSnapshotsRepository } from '../../db/repositories/multinoulli-snapshots';
4
+ import { createInMemoryDatabase } from '../../db/connection';
5
+ import { initializeSchema } from '../../db/schema';
6
+ const Q96 = 2n ** 96n;
7
+ const BASE_TIMESTAMP = 1_700_000_000;
8
+ export function createPerfDatabaseService() {
9
+ const db = createInMemoryDatabase();
10
+ initializeSchema(db);
11
+ return {
12
+ db,
13
+ markets: new MarketRepository(db),
14
+ events: new EventRepository(db),
15
+ marketState: new MarketStateRepository(db),
16
+ multinoulliMarketState: new MultinoulliMarketStateRepository(db),
17
+ multinoulliSnapshots: new MultinoulliSnapshotsRepository(db),
18
+ positions: new PositionRepository(db),
19
+ lpPositions: new LPPositionRepository(db),
20
+ cursors: new CursorRepository(db),
21
+ rankings: new RankingRepository(db),
22
+ activityFeed: new ActivityFeedRepository(db),
23
+ subscriptions: new SubscriptionRepository(db),
24
+ };
25
+ }
26
+ export function createNoopEventBus() {
27
+ return {
28
+ broadcast: () => { },
29
+ subscribe: () => () => { },
30
+ };
31
+ }
32
+ export function createSequentialVoyagerClient(batches) {
33
+ let callIndex = 0;
34
+ return {
35
+ fetchEvents: (_contractAddress, page) => {
36
+ if (page !== 1) {
37
+ return Effect.succeed({ events: [], lastPage: 1 });
38
+ }
39
+ const events = batches[callIndex] ?? [];
40
+ callIndex += 1;
41
+ return Effect.succeed({
42
+ events,
43
+ lastPage: 1,
44
+ });
45
+ },
46
+ };
47
+ }
48
+ export function buildTradeMovedBatches(options) {
49
+ const batchCount = Math.max(options.batchCount, 1);
50
+ const batchSize = Math.max(options.batchSize, 1);
51
+ const startBlock = options.startBlock ?? 10_000;
52
+ const marketAddress = options.marketAddress.toLowerCase();
53
+ const batches = [];
54
+ for (let batchIndex = 0; batchIndex < batchCount; batchIndex++) {
55
+ const batch = [];
56
+ const batchBlockStart = startBlock + batchIndex * batchSize;
57
+ for (let inBatch = 0; inBatch < batchSize; inBatch++) {
58
+ const globalIndex = batchIndex * batchSize + inBatch;
59
+ const blockNumber = batchBlockStart + inBatch;
60
+ const timestamp = BASE_TIMESTAMP + blockNumber;
61
+ const oldMean = 48 + (globalIndex % 25) * 0.15;
62
+ const newMean = oldMean + ((globalIndex % 7) - 3) * 0.08;
63
+ const oldStdDev = 8 + (globalIndex % 9) * 0.12;
64
+ const newStdDev = Math.max(0.2, oldStdDev + ((globalIndex % 5) - 2) * 0.05);
65
+ batch.push(createTradeMovedEvent({
66
+ marketAddress,
67
+ blockNumber,
68
+ timestamp,
69
+ transactionNumber: inBatch + 1,
70
+ eventNumber: 1,
71
+ txHash: `0xperf${blockNumber.toString(16)}${inBatch.toString(16)}`,
72
+ eventId: `${blockNumber}_${inBatch + 1}_1`,
73
+ trader: `0xtrader${(globalIndex % 512).toString(16).padStart(4, '0')}`,
74
+ oldMean,
75
+ newMean,
76
+ oldStdDev,
77
+ newStdDev,
78
+ collateralRaw: 5000n + BigInt(globalIndex * 3),
79
+ }));
80
+ }
81
+ batches.push(batch);
82
+ }
83
+ return batches;
84
+ }
85
+ export function seedMarketWithEvents(dbService, options) {
86
+ const marketAddress = options.marketAddress.toLowerCase();
87
+ const existing = dbService.markets.findByAddress(marketAddress);
88
+ if (!existing) {
89
+ dbService.markets.create({
90
+ address: marketAddress,
91
+ title: options.title,
92
+ category: 'performance',
93
+ market_type: 'normal',
94
+ });
95
+ }
96
+ const chunkSize = Math.max(options.chunkSize ?? 1_000, 1);
97
+ const startBlock = options.startBlock ?? 100_000;
98
+ const traderCardinality = Math.max(options.traderCardinality ?? 256, 1);
99
+ let insertedEvents = 0;
100
+ for (let start = 0; start < options.totalEvents; start += chunkSize) {
101
+ const chunkEnd = Math.min(start + chunkSize, options.totalEvents);
102
+ const inputs = [];
103
+ for (let i = start; i < chunkEnd; i++) {
104
+ const blockNumber = startBlock + i;
105
+ const timestamp = BASE_TIMESTAMP + blockNumber;
106
+ const mean = 52 + (i % 21) * 0.2;
107
+ const stdDev = 5 + (i % 11) * 0.08;
108
+ const trader = `0xseedtrader${(i % traderCardinality).toString(16).padStart(4, '0')}`;
109
+ const eventType = i % 4 === 0 ? 'trade_moved' : 'trade_executed';
110
+ inputs.push({
111
+ market_address: marketAddress,
112
+ event_uid: `seed:${marketAddress}:${i}`,
113
+ tx_hash: `0xseed${i.toString(16).padStart(8, '0')}`,
114
+ block_number: blockNumber,
115
+ timestamp,
116
+ event_type: eventType,
117
+ trader,
118
+ mean,
119
+ std_dev: stdDev,
120
+ lower_bound: mean - stdDev,
121
+ upper_bound: mean + stdDev,
122
+ old_mean: mean - 0.15,
123
+ old_std_dev: Math.max(0.01, stdDev - 0.05),
124
+ collateral_posted: (2000n + BigInt(i)).toString(),
125
+ raw_data: null,
126
+ });
127
+ }
128
+ insertedEvents += dbService.events.insertBatch(inputs);
129
+ }
130
+ return { insertedEvents };
131
+ }
132
+ function createTradeMovedEvent(options) {
133
+ const data = [
134
+ options.trader,
135
+ toQ96Hex(options.oldMean),
136
+ '0x0',
137
+ toQ96Hex(options.oldStdDev),
138
+ '0x0',
139
+ toQ96Hex(options.newMean),
140
+ '0x0',
141
+ toQ96Hex(options.newStdDev),
142
+ '0x0',
143
+ `0x${options.collateralRaw.toString(16)}`,
144
+ '0x0',
145
+ ];
146
+ return {
147
+ blockNumber: options.blockNumber,
148
+ transactionNumber: options.transactionNumber,
149
+ number: options.eventNumber,
150
+ data,
151
+ fromAddress: options.marketAddress,
152
+ keys: ['0xselector', options.trader],
153
+ classHash: '0xclass',
154
+ transactionHash: options.txHash,
155
+ blockHash: `0xblock${options.blockNumber.toString(16)}`,
156
+ timestamp: options.timestamp,
157
+ selector: '0xselector',
158
+ name: 'TradeMoved',
159
+ nestedName: '',
160
+ nestedEventNames: [],
161
+ eventId: options.eventId,
162
+ classAlias: null,
163
+ contractAlias: null,
164
+ abiVerified: false,
165
+ };
166
+ }
167
+ function toQ96Hex(value) {
168
+ const normalized = Math.max(0, value);
169
+ const scaled = BigInt(Math.round(normalized * Number(Q96)));
170
+ return `0x${scaled.toString(16)}`;
171
+ }
172
+ //# sourceMappingURL=perf-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-fixtures.js","sourceRoot":"","sources":["../../../src/__tests__/performance/perf-fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export type BenchmarkPhase = 'warmup' | 'measured';
2
+ export interface BenchmarkContext {
3
+ readonly phase: BenchmarkPhase;
4
+ readonly iteration: number;
5
+ }
6
+ export interface BenchmarkOptions<TResult> {
7
+ readonly warmupIterations: number;
8
+ readonly measuredIterations: number;
9
+ readonly operation: (context: BenchmarkContext) => Promise<TResult> | TResult;
10
+ }
11
+ export interface BenchmarkResult<TResult> {
12
+ readonly measuredDurationsMs: readonly number[];
13
+ readonly measuredResults: readonly TResult[];
14
+ }
15
+ export interface NumericSummary {
16
+ readonly min: number;
17
+ readonly mean: number;
18
+ readonly p50: number;
19
+ readonly p95: number;
20
+ readonly p99: number;
21
+ readonly max: number;
22
+ }
23
+ export interface MemorySample {
24
+ readonly rssBytes: number;
25
+ readonly heapTotalBytes: number;
26
+ readonly heapUsedBytes: number;
27
+ readonly externalBytes: number;
28
+ readonly arrayBuffersBytes: number;
29
+ }
30
+ export interface MedianTrend {
31
+ readonly firstHalfMedian: number;
32
+ readonly secondHalfMedian: number;
33
+ readonly ratio: number;
34
+ }
35
+ export declare function runBenchmark<TResult>(options: BenchmarkOptions<TResult>): Promise<BenchmarkResult<TResult>>;
36
+ export declare function percentile(values: readonly number[], value: number): number;
37
+ export declare function summarizeSamples(values: readonly number[]): NumericSummary;
38
+ export declare function computeMedianTrend(values: readonly number[]): MedianTrend;
39
+ export declare function sampleMemoryUsage(): MemorySample;
40
+ export declare function bytesToMiB(bytes: number): number;
41
+ export declare function formatSummary(label: string, summary: NumericSummary, unit: string): string;
42
+ //# sourceMappingURL=perf-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-utils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/performance/perf-utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/E;AAED,MAAM,WAAW,eAAe,CAAC,OAAO;IACtC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,YAAY,CAAC,OAAO,EACxC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAqBnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmB3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAiB1E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CA0BzE;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CAShD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1F"}
@@ -0,0 +1,91 @@
1
+ export async function runBenchmark(options) {
2
+ for (let i = 0; i < options.warmupIterations; i++) {
3
+ await options.operation({ phase: 'warmup', iteration: i });
4
+ }
5
+ const measuredDurationsMs = [];
6
+ const measuredResults = [];
7
+ for (let i = 0; i < options.measuredIterations; i++) {
8
+ const startedAt = performance.now();
9
+ const result = await options.operation({ phase: 'measured', iteration: i });
10
+ const durationMs = performance.now() - startedAt;
11
+ measuredDurationsMs.push(durationMs);
12
+ measuredResults.push(result);
13
+ }
14
+ return {
15
+ measuredDurationsMs,
16
+ measuredResults,
17
+ };
18
+ }
19
+ export function percentile(values, value) {
20
+ if (values.length === 0) {
21
+ throw new Error('percentile() requires at least one sample');
22
+ }
23
+ const sorted = [...values].sort((a, b) => a - b);
24
+ const clamped = Math.min(1, Math.max(0, value));
25
+ const rawIndex = (sorted.length - 1) * clamped;
26
+ const lowerIndex = Math.floor(rawIndex);
27
+ const upperIndex = Math.ceil(rawIndex);
28
+ if (lowerIndex === upperIndex) {
29
+ return sorted[lowerIndex];
30
+ }
31
+ const weight = rawIndex - lowerIndex;
32
+ const lower = sorted[lowerIndex];
33
+ const upper = sorted[upperIndex];
34
+ return lower + (upper - lower) * weight;
35
+ }
36
+ export function summarizeSamples(values) {
37
+ if (values.length === 0) {
38
+ throw new Error('summarizeSamples() requires at least one sample');
39
+ }
40
+ const min = Math.min(...values);
41
+ const max = Math.max(...values);
42
+ const mean = values.reduce((acc, sample) => acc + sample, 0) / values.length;
43
+ return {
44
+ min,
45
+ mean,
46
+ p50: percentile(values, 0.5),
47
+ p95: percentile(values, 0.95),
48
+ p99: percentile(values, 0.99),
49
+ max,
50
+ };
51
+ }
52
+ export function computeMedianTrend(values) {
53
+ if (values.length === 0) {
54
+ throw new Error('computeMedianTrend() requires at least one sample');
55
+ }
56
+ if (values.length === 1) {
57
+ return {
58
+ firstHalfMedian: values[0],
59
+ secondHalfMedian: values[0],
60
+ ratio: 1,
61
+ };
62
+ }
63
+ const middle = Math.floor(values.length / 2);
64
+ const firstHalf = values.slice(0, middle);
65
+ const secondHalf = values.slice(middle);
66
+ const firstHalfMedian = percentile(firstHalf.length > 0 ? firstHalf : values, 0.5);
67
+ const secondHalfMedian = percentile(secondHalf.length > 0 ? secondHalf : values, 0.5);
68
+ const safeBase = Math.max(firstHalfMedian, Number.EPSILON);
69
+ return {
70
+ firstHalfMedian,
71
+ secondHalfMedian,
72
+ ratio: secondHalfMedian / safeBase,
73
+ };
74
+ }
75
+ export function sampleMemoryUsage() {
76
+ const usage = process.memoryUsage();
77
+ return {
78
+ rssBytes: usage.rss,
79
+ heapTotalBytes: usage.heapTotal,
80
+ heapUsedBytes: usage.heapUsed,
81
+ externalBytes: usage.external,
82
+ arrayBuffersBytes: usage.arrayBuffers,
83
+ };
84
+ }
85
+ export function bytesToMiB(bytes) {
86
+ return bytes / (1024 * 1024);
87
+ }
88
+ export function formatSummary(label, summary, unit) {
89
+ return `${label} min=${summary.min.toFixed(2)}${unit} p50=${summary.p50.toFixed(2)}${unit} p95=${summary.p95.toFixed(2)}${unit} p99=${summary.p99.toFixed(2)}${unit} max=${summary.max.toFixed(2)}${unit} mean=${summary.mean.toFixed(2)}${unit}`;
90
+ }
91
+ //# sourceMappingURL=perf-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-utils.js","sourceRoot":"","sources":["../../../src/__tests__/performance/perf-utils.ts"],"names":[],"mappings":"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"}
package/dist/api/app.d.ts CHANGED
@@ -527,10 +527,10 @@ export declare function createApp(config: AppConfig): Elysia<"", {
527
527
  name: string;
528
528
  webhook_url: string;
529
529
  filters: {
530
- traders?: string[];
531
530
  eventTypes?: ("trade_move" | "settlement" | "market_created")[];
532
531
  marketTypes?: string[];
533
532
  marketAddresses?: string[];
533
+ traders?: string[];
534
534
  minCollateral?: number;
535
535
  };
536
536
  };
@@ -607,14 +607,14 @@ export declare function createApp(config: AppConfig): Elysia<"", {
607
607
  ":id": {
608
608
  put: {
609
609
  body: {
610
+ secret?: string;
610
611
  name?: string;
611
612
  webhook_url?: string;
612
- secret?: string;
613
613
  filters?: {
614
- traders?: string[];
615
614
  eventTypes?: ("trade_move" | "settlement" | "market_created")[];
616
615
  marketTypes?: string[];
617
616
  marketAddresses?: string[];
617
+ traders?: string[];
618
618
  minCollateral?: number;
619
619
  };
620
620
  is_active?: boolean;
@@ -28,10 +28,10 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
28
28
  name: string;
29
29
  webhook_url: string;
30
30
  filters: {
31
- traders?: string[];
32
31
  eventTypes?: ("trade_move" | "settlement" | "market_created")[];
33
32
  marketTypes?: string[];
34
33
  marketAddresses?: string[];
34
+ traders?: string[];
35
35
  minCollateral?: number;
36
36
  };
37
37
  };
@@ -108,14 +108,14 @@ export declare const adminSubscriptionRoutes: (db: DatabaseService, adminApiKey:
108
108
  ":id": {
109
109
  put: {
110
110
  body: {
111
+ secret?: string;
111
112
  name?: string;
112
113
  webhook_url?: string;
113
- secret?: string;
114
114
  filters?: {
115
- traders?: string[];
116
115
  eventTypes?: ("trade_move" | "settlement" | "market_created")[];
117
116
  marketTypes?: string[];
118
117
  marketAddresses?: string[];
118
+ traders?: string[];
119
119
  minCollateral?: number;
120
120
  };
121
121
  is_active?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAW/D,eAAO,MAAM,WAAW,GAAI,IAAI,eAAe,EAAE,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoF9D,CAAC"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAW/D,eAAO,MAAM,WAAW,GAAI,IAAI,eAAe,EAAE,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwF9D,CAAC"}
@@ -42,6 +42,8 @@ export const adminRoutes = (db, adminApiKey) => new Elysia()
42
42
  market_type: input.market_type,
43
43
  x_axis_label: input.x_axis_label,
44
44
  x_axis_unit: input.x_axis_unit,
45
+ y_axis_label: input.y_axis_label,
46
+ y_axis_unit: input.y_axis_unit,
45
47
  outcome_labels: input.outcome_labels,
46
48
  row_labels: input.row_labels,
47
49
  col_labels: input.col_labels,
@@ -66,6 +68,8 @@ export const adminRoutes = (db, adminApiKey) => new Elysia()
66
68
  market_type: input.market_type,
67
69
  x_axis_label: input.x_axis_label,
68
70
  x_axis_unit: input.x_axis_unit,
71
+ y_axis_label: input.y_axis_label,
72
+ y_axis_unit: input.y_axis_unit,
69
73
  outcome_labels: input.outcome_labels,
70
74
  row_labels: input.row_labels,
71
75
  col_labels: input.col_labels,
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAE5F,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAmB,EAAE,WAAmB,EAAE,EAAE,CACtE,IAAI,MAAM,EAAE;KACT,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,IAA6B,CAAC;IAC5C,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,4EAA4E;SACpF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,+EAA+E;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,CAAC,yBAAyB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,IAA6B,CAAC;IAC5C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,+EAA+E;SACvF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;QAC9D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC,CAAC;KACD,MAAM,CAAC,yBAAyB,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvC,CAAC;IACD,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAC7C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAE5F,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAmB,EAAE,WAAmB,EAAE,EAAE,CACtE,IAAI,MAAM,EAAE;KACT,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,IAA6B,CAAC;IAC5C,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,4EAA4E;SACpF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,+EAA+E;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,CAAC,yBAAyB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,IAA6B,CAAC;IAC5C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,+EAA+E;SACvF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;QAC9D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC,CAAC;KACD,MAAM,CAAC,yBAAyB,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvC,CAAC;IACD,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAC7C,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"market-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAkB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAoBpF,eAAO,MAAM,kBAAkB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsClD,CAAC"}
1
+ {"version":3,"file":"market-events.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAkB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA4BpF,eAAO,MAAM,kBAAkB,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsClD,CAAC"}
@@ -16,6 +16,14 @@ function toEventResponse(row) {
16
16
  upperBound: row.upper_bound,
17
17
  oldMean: row.old_mean,
18
18
  oldStdDev: row.old_std_dev,
19
+ mean2: row.mean_2,
20
+ stdDev2: row.std_dev_2,
21
+ lowerBound2: row.lower_bound_2,
22
+ upperBound2: row.upper_bound_2,
23
+ oldMean2: row.old_mean_2,
24
+ oldStdDev2: row.old_std_dev_2,
25
+ rho: row.rho,
26
+ oldRho: row.old_rho,
19
27
  collateralPosted: row.collateral_posted,
20
28
  };
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"market-events.js","sourceRoot":"","sources":["../../../src/api/routes/market-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,SAAS,eAAe,CAAC,GAAmB;IAC1C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,WAAW;QAC1B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAmB,EAAE,EAAE,CACxD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACrE,MAAM,UAAU,GAAG,KAKlB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAErC,MAAM,IAAI,GAKN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAqC;QACjD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QAC/B,KAAK;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"market-events.js","sourceRoot":"","sources":["../../../src/api/routes/market-events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"market-lps.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA2BtD,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/C,CAAC"}
1
+ {"version":3,"file":"market-lps.d.ts","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgCtD,eAAO,MAAM,eAAe,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB/C,CAAC"}
@@ -2,7 +2,8 @@
2
2
  * GET /api/markets/:address/lps — LP positions for a market.
3
3
  */
4
4
  import { Elysia } from 'elysia';
5
- function toLPResponse(row) {
5
+ import { computeLPValuationSnapshots } from '../../lp/valuation';
6
+ function toLPResponse(row, valuation) {
6
7
  return {
7
8
  marketAddress: row.market_address,
8
9
  provider: row.provider,
@@ -10,23 +11,36 @@ function toLPResponse(row) {
10
11
  sharesNumber: row.shares_number,
11
12
  totalDeposited: row.total_deposited,
12
13
  totalWithdrawn: row.total_withdrawn,
13
- currentValue: row.current_value,
14
- unrealizedPnl: row.unrealized_pnl,
14
+ currentValue: valuation?.currentValue ?? row.current_value,
15
+ unrealizedPnl: valuation?.unrealizedPnl ?? row.unrealized_pnl,
15
16
  depositCount: row.deposit_count,
16
17
  withdrawalCount: row.withdrawal_count,
17
18
  firstDepositAt: row.first_deposit_at,
18
19
  lastActivityAt: row.last_activity_at,
19
- entryMean: row.entry_mean,
20
- entrySigma: row.entry_sigma,
21
- entryK: row.entry_k,
22
- componentLambda: row.component_lambda,
20
+ claimComponentCount: valuation?.claimComponentCount ?? 0,
21
+ entryMean: valuation?.entryMean ?? row.entry_mean,
22
+ entrySigma: valuation?.entrySigma ?? row.entry_sigma,
23
+ entryK: valuation?.entryK ?? row.entry_k,
24
+ componentLambda: valuation?.componentLambda ?? row.component_lambda,
23
25
  claimedAt: row.claimed_at,
24
26
  claimPayout: row.claim_payout,
25
27
  fetchedAt: row.fetched_at,
26
28
  };
27
29
  }
28
30
  export const marketLPsRoutes = (db) => new Elysia().get('/api/markets/:address/lps', ({ params }) => {
29
- const positions = db.lpPositions.findByMarket(params.address.toLowerCase());
30
- return positions.map(toLPResponse);
31
+ const marketAddress = params.address.toLowerCase();
32
+ const positions = db.lpPositions.findByMarket(marketAddress);
33
+ const market = db.markets.findByAddress(marketAddress);
34
+ const marketState = db.marketState.findByMarket(marketAddress);
35
+ const traderPositions = db.positions.findByMarket(marketAddress);
36
+ const events = db.events.findByMarketForLPReplay(marketAddress);
37
+ const valuations = computeLPValuationSnapshots({
38
+ marketType: (market?.market_type ?? 'normal'),
39
+ marketState,
40
+ lpPositions: positions,
41
+ traderPositions,
42
+ events,
43
+ });
44
+ return positions.map((position) => toLPResponse(position, valuations.get(position.provider)));
31
45
  });
32
46
  //# sourceMappingURL=market-lps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"market-lps.js","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,SAAS,YAAY,CAAC,GAAkB;IACtC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAE,EAAE,CACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3D,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"market-lps.js","sourceRoot":"","sources":["../../../src/api/routes/market-lps.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,2BAA2B,EAA4B,MAAM,oBAAoB,CAAC;AAE3F,SAAS,YAAY,CACnB,GAAkB,EAClB,SAA0C;IAE1C,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,GAAG,CAAC,aAAa;QAC1D,aAAa,EAAE,SAAS,EAAE,aAAa,IAAI,GAAG,CAAC,cAAc;QAC7D,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,mBAAmB,EAAE,SAAS,EAAE,mBAAmB,IAAI,CAAC;QACxD,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,GAAG,CAAC,UAAU;QACjD,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,GAAG,CAAC,WAAW;QACpD,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO;QACxC,eAAe,EAAE,SAAS,EAAE,eAAe,IAAI,GAAG,CAAC,gBAAgB;QACnE,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAE,EAAE,CACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC7C,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAyD;QACrG,WAAW;QACX,WAAW,EAAE,SAAS;QACtB,eAAe;QACf,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,aAAa,CAAC;AAwIrB,eAAO,MAAM,YAAY,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1C,CAAC"}
1
+ {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../src/api/routes/markets.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,aAAa,CAAC;AAgJrB,eAAO,MAAM,YAAY,GAAI,IAAI,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1C,CAAC"}
@@ -37,12 +37,18 @@ function toMarketResponse(market, state, multinoulliState = null) {
37
37
  mean: state.mean,
38
38
  sigma: state.sigma,
39
39
  variance: state.variance,
40
+ mean2: state.mean_2,
41
+ sigma2: state.sigma_2,
42
+ variance2: state.variance_2,
43
+ rho: state.rho,
40
44
  k: state.k,
41
45
  effectiveK: state.effective_k,
42
46
  isInitialized: state.is_initialized === 1,
43
47
  isPaused: state.is_paused === 1,
44
48
  isSettled: state.is_settled === 1,
45
49
  settlementValue: state.settlement_value,
50
+ settlementX1: state.settlement_x1,
51
+ settlementX2: state.settlement_x2,
46
52
  totalShares: state.total_shares,
47
53
  totalBacking: state.total_backing,
48
54
  payoutAmplifier: state.payout_amplifier ?? 1,
@@ -120,6 +126,8 @@ function toMarketResponse(market, state, multinoulliState = null) {
120
126
  marketType,
121
127
  xAxisLabel: market.x_axis_label,
122
128
  xAxisUnit: market.x_axis_unit,
129
+ yAxisLabel: market.y_axis_label,
130
+ yAxisUnit: market.y_axis_unit,
123
131
  outcomeLabels: parsedOutcomeLabels,
124
132
  rowLabels: parsedRowLabels,
125
133
  colLabels: parsedColLabels,