@the-situation/indexer 0.9.3 → 0.11.1
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.
- package/README.md +5 -1
- package/dist/api/app.d.ts +42 -0
- package/dist/api/app.d.ts.map +1 -1
- package/dist/api/app.js +3 -2
- package/dist/api/app.js.map +1 -1
- package/dist/api/middleware/admin-auth.d.ts.map +1 -1
- package/dist/api/middleware/admin-auth.js +6 -4
- package/dist/api/middleware/admin-auth.js.map +1 -1
- package/dist/api/middleware/error-handler.d.ts.map +1 -1
- package/dist/api/middleware/error-handler.js +0 -1
- package/dist/api/middleware/error-handler.js.map +1 -1
- package/dist/api/routes/admin.d.ts +2 -0
- package/dist/api/routes/admin.d.ts.map +1 -1
- package/dist/api/routes/admin.js +27 -6
- package/dist/api/routes/admin.js.map +1 -1
- package/dist/api/routes/index.d.ts +4 -3
- package/dist/api/routes/index.d.ts.map +1 -1
- package/dist/api/routes/index.js +4 -3
- package/dist/api/routes/index.js.map +1 -1
- package/dist/api/routes/market-events.d.ts.map +1 -1
- package/dist/api/routes/market-events.js +12 -8
- package/dist/api/routes/market-events.js.map +1 -1
- package/dist/api/routes/market-traders.d.ts.map +1 -1
- package/dist/api/routes/market-traders.js +1 -1
- package/dist/api/routes/market-traders.js.map +1 -1
- package/dist/api/routes/markets.d.ts.map +1 -1
- package/dist/api/routes/markets.js +18 -9
- package/dist/api/routes/markets.js.map +1 -1
- package/dist/api/routes/multinoulli-snapshots.d.ts +78 -0
- package/dist/api/routes/multinoulli-snapshots.d.ts.map +1 -0
- package/dist/api/routes/multinoulli-snapshots.js +33 -0
- package/dist/api/routes/multinoulli-snapshots.js.map +1 -0
- package/dist/api/routes/rankings.d.ts.map +1 -1
- package/dist/api/routes/rankings.js +2 -1
- package/dist/api/routes/rankings.js.map +1 -1
- package/dist/api/routes/trader-events.d.ts +1 -1
- package/dist/api/routes/trader-events.d.ts.map +1 -1
- package/dist/api/routes/trader-events.js +9 -6
- package/dist/api/routes/trader-events.js.map +1 -1
- package/dist/api/routes/ws.d.ts.map +1 -1
- package/dist/api/routes/ws.js +4 -3
- package/dist/api/routes/ws.js.map +1 -1
- package/dist/client/IndexerClient.d.ts +2 -1
- package/dist/client/IndexerClient.d.ts.map +1 -1
- package/dist/client/IndexerClient.js.map +1 -1
- package/dist/client/IndexerClientLive.d.ts.map +1 -1
- package/dist/client/IndexerClientLive.js +24 -9
- package/dist/client/IndexerClientLive.js.map +1 -1
- package/dist/client/convenience.d.ts +3 -2
- package/dist/client/convenience.d.ts.map +1 -1
- package/dist/client/convenience.js +1 -0
- package/dist/client/convenience.js.map +1 -1
- package/dist/client/index.d.ts +5 -5
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/trader-stats.d.ts +2 -2
- package/dist/client/trader-stats.d.ts.map +1 -1
- package/dist/client/trader-stats.js +1 -1
- package/dist/client/trader-stats.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -4
- package/dist/config.js.map +1 -1
- package/dist/db/repositories/event.d.ts +3 -2
- package/dist/db/repositories/event.d.ts.map +1 -1
- package/dist/db/repositories/event.js +17 -15
- package/dist/db/repositories/event.js.map +1 -1
- package/dist/db/repositories/index.d.ts +3 -3
- package/dist/db/repositories/index.d.ts.map +1 -1
- package/dist/db/repositories/index.js +3 -3
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/db/repositories/market-state.d.ts.map +1 -1
- package/dist/db/repositories/market-state.js +1 -3
- package/dist/db/repositories/market-state.js.map +1 -1
- package/dist/db/repositories/market.d.ts +1 -1
- package/dist/db/repositories/market.d.ts.map +1 -1
- package/dist/db/repositories/market.js +22 -24
- package/dist/db/repositories/market.js.map +1 -1
- package/dist/db/repositories/multinoulli-snapshots.d.ts +44 -0
- package/dist/db/repositories/multinoulli-snapshots.d.ts.map +1 -0
- package/dist/db/repositories/multinoulli-snapshots.js +54 -0
- package/dist/db/repositories/multinoulli-snapshots.js.map +1 -0
- package/dist/db/repositories/position.d.ts +2 -1
- package/dist/db/repositories/position.d.ts.map +1 -1
- package/dist/db/repositories/position.js +6 -0
- package/dist/db/repositories/position.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +127 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/etl/decoder.d.ts +1 -1
- package/dist/etl/decoder.d.ts.map +1 -1
- package/dist/etl/decoder.js +233 -63
- package/dist/etl/decoder.js.map +1 -1
- package/dist/etl/event-indexer.d.ts +1 -1
- package/dist/etl/event-indexer.d.ts.map +1 -1
- package/dist/etl/event-indexer.js +36 -11
- package/dist/etl/event-indexer.js.map +1 -1
- package/dist/etl/position-refresher.d.ts +2 -2
- package/dist/etl/position-refresher.d.ts.map +1 -1
- package/dist/etl/position-refresher.js +15 -8
- package/dist/etl/position-refresher.js.map +1 -1
- package/dist/etl/scheduler.d.ts +2 -2
- package/dist/etl/scheduler.d.ts.map +1 -1
- package/dist/etl/scheduler.js +19 -23
- package/dist/etl/scheduler.js.map +1 -1
- package/dist/etl/state-refresher.d.ts +2 -2
- package/dist/etl/state-refresher.d.ts.map +1 -1
- package/dist/etl/state-refresher.js +17 -5
- package/dist/etl/state-refresher.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -189
- package/dist/index.js.map +1 -1
- package/dist/layers/ChainReaderLive.d.ts +2 -0
- package/dist/layers/ChainReaderLive.d.ts.map +1 -1
- package/dist/layers/ChainReaderLive.js +222 -65
- package/dist/layers/ChainReaderLive.js.map +1 -1
- package/dist/layers/DatabaseLive.d.ts +1 -1
- package/dist/layers/DatabaseLive.d.ts.map +1 -1
- package/dist/layers/DatabaseLive.js +3 -1
- package/dist/layers/DatabaseLive.js.map +1 -1
- package/dist/layers/EventBusLive.d.ts.map +1 -1
- package/dist/layers/EventBusLive.js +2 -2
- package/dist/layers/EventBusLive.js.map +1 -1
- package/dist/layers/VoyagerClientLive.d.ts.map +1 -1
- package/dist/layers/VoyagerClientLive.js +10 -6
- package/dist/layers/VoyagerClientLive.js.map +1 -1
- package/dist/layers/index.d.ts +2 -2
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/layers/index.js +2 -2
- package/dist/layers/index.js.map +1 -1
- package/dist/services/ChainReader.d.ts +3 -3
- package/dist/services/ChainReader.d.ts.map +1 -1
- package/dist/services/ChainReader.js.map +1 -1
- package/dist/services/Database.d.ts +4 -2
- package/dist/services/Database.d.ts.map +1 -1
- package/dist/services/Database.js.map +1 -1
- package/dist/services/EventBus.d.ts.map +1 -1
- package/dist/services/EventBus.js.map +1 -1
- package/dist/services/VoyagerRateLimit.d.ts.map +1 -1
- package/dist/services/VoyagerRateLimit.js +5 -6
- package/dist/services/VoyagerRateLimit.js.map +1 -1
- package/dist/services/index.d.ts +4 -4
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/types/api.d.ts +11 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/event.d.ts +16 -1
- package/dist/types/event.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/market.d.ts +1 -1
- package/dist/types/market.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Effect } from 'effect';
|
|
5
5
|
import { DatabaseTag } from '../services/Database';
|
|
6
|
-
import { VoyagerClientTag } from '../services/VoyagerClient';
|
|
7
6
|
import { EventBusTag } from '../services/EventBus';
|
|
7
|
+
import { VoyagerClientTag } from '../services/VoyagerClient';
|
|
8
8
|
import { decodeEvents } from './decoder';
|
|
9
9
|
const PAGE_SIZE = 100;
|
|
10
10
|
const MAX_PAGES = 10;
|
|
11
11
|
const RELEVANT_NAMES = new Set([
|
|
12
|
-
'bootstrapped',
|
|
13
|
-
'
|
|
14
|
-
'
|
|
12
|
+
'bootstrapped',
|
|
13
|
+
'trademoved',
|
|
14
|
+
'tradeexecuted',
|
|
15
|
+
'marketinitialized',
|
|
16
|
+
'marketsettled',
|
|
17
|
+
'marketsettledmulti',
|
|
15
18
|
]);
|
|
16
19
|
function isMultinoulliTradeEvent(d) {
|
|
17
20
|
return d.eventType === 'multinoulli_trade_executed';
|
|
@@ -32,6 +35,7 @@ function decodedEventToInsert(marketAddress, d) {
|
|
|
32
35
|
if (isMultinoulliTradeEvent(d)) {
|
|
33
36
|
return {
|
|
34
37
|
market_address: marketAddress,
|
|
38
|
+
event_uid: d.eventUid,
|
|
35
39
|
tx_hash: d.txHash,
|
|
36
40
|
block_number: d.blockNumber,
|
|
37
41
|
timestamp: d.timestamp,
|
|
@@ -48,11 +52,15 @@ function decodedEventToInsert(marketAddress, d) {
|
|
|
48
52
|
outcome_count: d.outcomeCount,
|
|
49
53
|
min_outcome_index: d.minOutcomeIndex,
|
|
50
54
|
is_position_sell: d.isPositionSell,
|
|
55
|
+
settlement_value: null,
|
|
56
|
+
settlement_x1: null,
|
|
57
|
+
settlement_x2: null,
|
|
51
58
|
};
|
|
52
59
|
}
|
|
53
60
|
if (isMarketSettledEvent(d)) {
|
|
54
61
|
return {
|
|
55
62
|
market_address: marketAddress,
|
|
63
|
+
event_uid: d.eventUid,
|
|
56
64
|
tx_hash: d.txHash,
|
|
57
65
|
block_number: d.blockNumber,
|
|
58
66
|
timestamp: d.timestamp,
|
|
@@ -67,11 +75,15 @@ function decodedEventToInsert(marketAddress, d) {
|
|
|
67
75
|
collateral_posted: null,
|
|
68
76
|
raw_data: JSON.stringify(d.rawData),
|
|
69
77
|
settlement_outcome_index: d.settlementOutcomeIndex,
|
|
78
|
+
settlement_value: d.settlementValue ?? null,
|
|
79
|
+
settlement_x1: d.settlementX1 ?? null,
|
|
80
|
+
settlement_x2: d.settlementX2 ?? null,
|
|
70
81
|
};
|
|
71
82
|
}
|
|
72
83
|
if (isMarketSettledMultiEvent(d)) {
|
|
73
84
|
return {
|
|
74
85
|
market_address: marketAddress,
|
|
86
|
+
event_uid: d.eventUid,
|
|
75
87
|
tx_hash: d.txHash,
|
|
76
88
|
block_number: d.blockNumber,
|
|
77
89
|
timestamp: d.timestamp,
|
|
@@ -86,12 +98,16 @@ function decodedEventToInsert(marketAddress, d) {
|
|
|
86
98
|
collateral_posted: null,
|
|
87
99
|
raw_data: JSON.stringify(d.rawData),
|
|
88
100
|
settlement_outcomes_json: JSON.stringify(d.outcomes),
|
|
101
|
+
settlement_value: null,
|
|
102
|
+
settlement_x1: null,
|
|
103
|
+
settlement_x2: null,
|
|
89
104
|
};
|
|
90
105
|
}
|
|
91
106
|
// Normal market events (DecodedMarketEvent)
|
|
92
107
|
const n = d;
|
|
93
108
|
return {
|
|
94
109
|
market_address: marketAddress,
|
|
110
|
+
event_uid: n.eventUid,
|
|
95
111
|
tx_hash: n.txHash,
|
|
96
112
|
block_number: n.blockNumber,
|
|
97
113
|
timestamp: n.timestamp,
|
|
@@ -105,9 +121,14 @@ function decodedEventToInsert(marketAddress, d) {
|
|
|
105
121
|
old_std_dev: n.oldStdDev,
|
|
106
122
|
collateral_posted: n.collateralPosted,
|
|
107
123
|
raw_data: JSON.stringify(n.rawData),
|
|
124
|
+
settlement_value: null,
|
|
125
|
+
settlement_x1: null,
|
|
126
|
+
settlement_x2: null,
|
|
108
127
|
};
|
|
109
128
|
}
|
|
110
|
-
export const indexMarketEvents = (marketAddress, marketType = 'normal') =>
|
|
129
|
+
export const indexMarketEvents = (marketAddress, marketType = 'normal') =>
|
|
130
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: pipeline stages are intentionally linear and explicit.
|
|
131
|
+
Effect.gen(function* () {
|
|
111
132
|
const db = yield* DatabaseTag;
|
|
112
133
|
const voyager = yield* VoyagerClientTag;
|
|
113
134
|
const bus = yield* EventBusTag;
|
|
@@ -121,10 +142,12 @@ export const indexMarketEvents = (marketAddress, marketType = 'normal') => Effec
|
|
|
121
142
|
const batchResult = yield* Effect.either(voyager.fetchEvents(marketAddress, currentPage, PAGE_SIZE));
|
|
122
143
|
if (batchResult._tag === 'Left') {
|
|
123
144
|
const err = batchResult.left;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
145
|
+
if (err.status === 429 || err.status === 503) {
|
|
146
|
+
// Retry budget exhausted under rate limiting.
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Non-retryable fetch error.
|
|
150
|
+
}
|
|
128
151
|
break;
|
|
129
152
|
}
|
|
130
153
|
const batch = batchResult.right;
|
|
@@ -133,14 +156,16 @@ export const indexMarketEvents = (marketAddress, marketType = 'normal') => Effec
|
|
|
133
156
|
const relevant = batch.events.filter((e) => {
|
|
134
157
|
const isRelevant = RELEVANT_NAMES.has(e.name.toLowerCase());
|
|
135
158
|
const isNew = e.blockNumber > lastBlock;
|
|
136
|
-
if (isRelevant && !isNew)
|
|
159
|
+
if (isRelevant && !isNew) {
|
|
137
160
|
sawOldEvent = true;
|
|
161
|
+
}
|
|
138
162
|
return isRelevant && isNew;
|
|
139
163
|
});
|
|
140
164
|
allEvents.push(...relevant);
|
|
141
165
|
// Early exit: if we've reached events we already indexed, stop paging
|
|
142
|
-
if (sawOldEvent)
|
|
166
|
+
if (sawOldEvent) {
|
|
143
167
|
break;
|
|
168
|
+
}
|
|
144
169
|
hasMore = currentPage < batch.lastPage;
|
|
145
170
|
currentPage++;
|
|
146
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-indexer.js","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"event-indexer.js","sourceRoot":"","sources":["../../src/etl/event-indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Position refresher — reads trader positions from chain.
|
|
3
3
|
*/
|
|
4
4
|
import { Effect } from 'effect';
|
|
5
|
-
import { DatabaseTag } from '../services/Database';
|
|
6
5
|
import { ChainReaderTag } from '../services/ChainReader';
|
|
6
|
+
import { DatabaseTag } from '../services/Database';
|
|
7
7
|
import { EventBusTag } from '../services/EventBus';
|
|
8
8
|
import type { MarketType } from '../types';
|
|
9
9
|
import type { PositionRefreshResult } from './types';
|
|
10
10
|
export declare const refreshPosition: (marketAddress: string, trader: string, marketType?: MarketType) => Effect.Effect<PositionRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
|
|
11
|
-
export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag |
|
|
11
|
+
export declare const refreshAllPositions: Effect.Effect<PositionRefreshResult[], never, DatabaseTag | EventBusTag | ChainReaderTag>;
|
|
12
12
|
//# sourceMappingURL=position-refresher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"position-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,EACrB,QAAQ,MAAM,EACd,aAAY,UAAqB,KAChC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,CAuFrF,CAAC;AAIL,eAAO,MAAM,mBAAmB,2FA2B9B,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Position refresher — reads trader positions from chain.
|
|
3
3
|
*/
|
|
4
4
|
import { Effect } from 'effect';
|
|
5
|
-
import { DatabaseTag } from '../services/Database';
|
|
6
5
|
import { ChainReaderTag } from '../services/ChainReader';
|
|
6
|
+
import { DatabaseTag } from '../services/Database';
|
|
7
7
|
import { EventBusTag } from '../services/EventBus';
|
|
8
8
|
export const refreshPosition = (marketAddress, trader, marketType = 'normal') => Effect.gen(function* () {
|
|
9
9
|
const db = yield* DatabaseTag;
|
|
@@ -12,7 +12,6 @@ export const refreshPosition = (marketAddress, trader, marketType = 'normal') =>
|
|
|
12
12
|
if (marketType === 'multinoulli') {
|
|
13
13
|
const posResult = yield* Effect.either(chain.readMultinoulliPosition(marketAddress, trader));
|
|
14
14
|
if (posResult._tag === 'Left') {
|
|
15
|
-
console.error(`[PositionRefresher] Multinoulli error for ${trader} in ${marketAddress}:`, posResult.left.message);
|
|
16
15
|
return {
|
|
17
16
|
marketAddress,
|
|
18
17
|
trader,
|
|
@@ -41,9 +40,8 @@ export const refreshPosition = (marketAddress, trader, marketType = 'normal') =>
|
|
|
41
40
|
return { marketAddress, trader, success: true };
|
|
42
41
|
}
|
|
43
42
|
// Normal market
|
|
44
|
-
const posResult = yield* Effect.either(chain.readPosition(marketAddress, trader));
|
|
43
|
+
const posResult = yield* Effect.either(chain.readPosition(marketAddress, trader, marketType));
|
|
45
44
|
if (posResult._tag === 'Left') {
|
|
46
|
-
console.error(`[PositionRefresher] Error for ${trader} in ${marketAddress}:`, posResult.left.message);
|
|
47
45
|
return {
|
|
48
46
|
marketAddress,
|
|
49
47
|
trader,
|
|
@@ -63,7 +61,7 @@ export const refreshPosition = (marketAddress, trader, marketType = 'normal') =>
|
|
|
63
61
|
settlement_state: pos.settlementState,
|
|
64
62
|
delta_count: pos.deltaCount,
|
|
65
63
|
claimed: pos.claimed,
|
|
66
|
-
position_type:
|
|
64
|
+
position_type: marketType,
|
|
67
65
|
});
|
|
68
66
|
bus.broadcast({
|
|
69
67
|
type: 'position_update',
|
|
@@ -77,13 +75,22 @@ export const refreshAllPositions = Effect.gen(function* () {
|
|
|
77
75
|
const db = yield* DatabaseTag;
|
|
78
76
|
const allPositions = db.positions.findAll();
|
|
79
77
|
const markets = db.markets.findAll(true);
|
|
80
|
-
// Build market type lookup
|
|
78
|
+
// Build market type lookup from active markets only
|
|
81
79
|
const marketTypeMap = new Map();
|
|
82
80
|
for (const m of markets) {
|
|
83
81
|
marketTypeMap.set(m.address, (m.market_type ?? 'normal'));
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
// Only refresh positions for markets that are still active in the indexer.
|
|
84
|
+
// Positions for deleted/inactive markets are skipped to avoid calling
|
|
85
|
+
// the wrong contract entrypoint (e.g. normal ABI on a multinoulli contract).
|
|
86
|
+
const activePositions = allPositions.filter((pos) => {
|
|
87
|
+
if (marketTypeMap.has(pos.market_address)) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
});
|
|
92
|
+
const effects = activePositions.map((pos) => {
|
|
93
|
+
const marketType = marketTypeMap.get(pos.market_address);
|
|
87
94
|
return refreshPosition(pos.market_address, pos.trader, marketType);
|
|
88
95
|
});
|
|
89
96
|
return yield* Effect.all(effects, { concurrency: RPC_CONCURRENCY });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position-refresher.js","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"position-refresher.js","sourceRoot":"","sources":["../../src/etl/position-refresher.ts"],"names":[],"mappings":"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"}
|
package/dist/etl/scheduler.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { IndexerConfig } from '../config';
|
|
2
|
-
import type { DatabaseService } from '../services/Database';
|
|
3
|
-
import { type VoyagerClientService } from '../services/VoyagerClient';
|
|
4
2
|
import { type ChainReaderService } from '../services/ChainReader';
|
|
3
|
+
import type { DatabaseService } from '../services/Database';
|
|
5
4
|
import { type EventBusService } from '../services/EventBus';
|
|
5
|
+
import { type VoyagerClientService } from '../services/VoyagerClient';
|
|
6
6
|
export interface SchedulerHandles {
|
|
7
7
|
readonly stop: () => void;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/etl/scheduler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/etl/scheduler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,yBAAyB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,KAAK,oBAAoB,EAAoB,MAAM,2BAA2B,CAAC;AAKxF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAiCD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE;IACR,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,eAAe,CAAC;CAC3B,GACA,gBAAgB,CA0DlB"}
|
package/dist/etl/scheduler.js
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* the previous one finishes, preventing concurrent retry storms.
|
|
6
6
|
*/
|
|
7
7
|
import { Effect, Layer } from 'effect';
|
|
8
|
-
import { DatabaseTag } from '../services/Database';
|
|
9
|
-
import { VoyagerClientTag } from '../services/VoyagerClient';
|
|
10
8
|
import { ChainReaderTag } from '../services/ChainReader';
|
|
9
|
+
import { DatabaseTag } from '../services/Database';
|
|
11
10
|
import { EventBusTag } from '../services/EventBus';
|
|
11
|
+
import { VoyagerClientTag } from '../services/VoyagerClient';
|
|
12
12
|
import { indexAllMarkets } from './event-indexer';
|
|
13
|
-
import { refreshAllMarketStates } from './state-refresher';
|
|
14
13
|
import { refreshAllPositions } from './position-refresher';
|
|
14
|
+
import { refreshAllMarketStates } from './state-refresher';
|
|
15
15
|
/**
|
|
16
16
|
* Start a non-overlapping loop: run `fn`, wait `intervalMs`, repeat.
|
|
17
17
|
* The next cycle only starts after the previous one completes.
|
|
@@ -21,19 +21,22 @@ function startNonOverlappingLoop(fn, intervalMs) {
|
|
|
21
21
|
let stopped = false;
|
|
22
22
|
let timer = null;
|
|
23
23
|
async function loop() {
|
|
24
|
-
if (stopped)
|
|
24
|
+
if (stopped) {
|
|
25
25
|
return;
|
|
26
|
+
}
|
|
26
27
|
await fn();
|
|
27
|
-
if (stopped)
|
|
28
|
+
if (stopped) {
|
|
28
29
|
return;
|
|
30
|
+
}
|
|
29
31
|
timer = setTimeout(loop, intervalMs);
|
|
30
32
|
}
|
|
31
33
|
// Start the first cycle after the initial delay
|
|
32
34
|
timer = setTimeout(loop, intervalMs);
|
|
33
35
|
return () => {
|
|
34
36
|
stopped = true;
|
|
35
|
-
if (timer !== null)
|
|
37
|
+
if (timer !== null) {
|
|
36
38
|
clearTimeout(timer);
|
|
39
|
+
}
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
42
|
export function startScheduler(config, services) {
|
|
@@ -44,44 +47,38 @@ export function startScheduler(config, services) {
|
|
|
44
47
|
const results = await run(indexAllMarkets);
|
|
45
48
|
const total = results.reduce((sum, r) => sum + r.newEvents, 0);
|
|
46
49
|
if (total > 0) {
|
|
47
|
-
|
|
50
|
+
// Event refresh completed and detected new events.
|
|
48
51
|
}
|
|
49
52
|
}
|
|
50
|
-
catch (
|
|
51
|
-
|
|
53
|
+
catch (_err) {
|
|
54
|
+
// Keep scheduler loop alive; downstream monitoring handles surfaced failures.
|
|
52
55
|
}
|
|
53
56
|
}, config.eventPollIntervalMs);
|
|
54
57
|
const cancelState = startNonOverlappingLoop(async () => {
|
|
55
58
|
try {
|
|
56
59
|
await run(refreshAllMarketStates);
|
|
57
60
|
}
|
|
58
|
-
catch (
|
|
59
|
-
|
|
61
|
+
catch (_err) {
|
|
62
|
+
// Keep scheduler loop alive; downstream monitoring handles surfaced failures.
|
|
60
63
|
}
|
|
61
64
|
}, config.statePollIntervalMs);
|
|
62
65
|
const cancelPositions = startNonOverlappingLoop(async () => {
|
|
63
66
|
try {
|
|
64
67
|
await run(refreshAllPositions);
|
|
65
68
|
}
|
|
66
|
-
catch (
|
|
67
|
-
|
|
69
|
+
catch (_err) {
|
|
70
|
+
// Keep scheduler loop alive; downstream monitoring handles surfaced failures.
|
|
68
71
|
}
|
|
69
72
|
}, config.positionPollIntervalMs);
|
|
70
73
|
// Run immediately on start
|
|
71
74
|
void (async () => {
|
|
72
75
|
try {
|
|
73
|
-
|
|
74
|
-
const results = await run(indexAllMarkets);
|
|
75
|
-
const total = results.reduce((sum, r) => sum + r.newEvents, 0);
|
|
76
|
-
console.log(`[Scheduler] Initial: ${total} events across ${results.length} markets`);
|
|
77
|
-
console.log('[Scheduler] Initial state refresh...');
|
|
76
|
+
await run(indexAllMarkets);
|
|
78
77
|
await run(refreshAllMarketStates);
|
|
79
|
-
console.log('[Scheduler] Initial position refresh...');
|
|
80
78
|
await run(refreshAllPositions);
|
|
81
|
-
console.log('[Scheduler] Initialization complete');
|
|
82
79
|
}
|
|
83
|
-
catch (
|
|
84
|
-
|
|
80
|
+
catch (_err) {
|
|
81
|
+
// Keep scheduler boot sequence non-fatal; loops continue independently.
|
|
85
82
|
}
|
|
86
83
|
})();
|
|
87
84
|
return {
|
|
@@ -89,7 +86,6 @@ export function startScheduler(config, services) {
|
|
|
89
86
|
cancelEvents();
|
|
90
87
|
cancelState();
|
|
91
88
|
cancelPositions();
|
|
92
|
-
console.log('[Scheduler] Stopped');
|
|
93
89
|
},
|
|
94
90
|
};
|
|
95
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/etl/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/etl/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* State refresher — periodic RPC reads for market state.
|
|
3
3
|
*/
|
|
4
4
|
import { Effect } from 'effect';
|
|
5
|
-
import { DatabaseTag } from '../services/Database';
|
|
6
5
|
import { ChainReaderTag } from '../services/ChainReader';
|
|
6
|
+
import { DatabaseTag } from '../services/Database';
|
|
7
7
|
import { EventBusTag } from '../services/EventBus';
|
|
8
8
|
import type { MarketType } from '../types';
|
|
9
9
|
import type { StateRefreshResult } from './types';
|
|
10
10
|
export declare const refreshMarketState: (marketAddress: string, marketType?: MarketType) => Effect.Effect<StateRefreshResult, never, DatabaseTag | ChainReaderTag | EventBusTag>;
|
|
11
|
-
export declare const refreshAllMarketStates: Effect.Effect<StateRefreshResult[], never, DatabaseTag |
|
|
11
|
+
export declare const refreshAllMarketStates: Effect.Effect<StateRefreshResult[], never, DatabaseTag | EventBusTag | ChainReaderTag>;
|
|
12
12
|
//# sourceMappingURL=state-refresher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/state-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"state-refresher.d.ts","sourceRoot":"","sources":["../../src/etl/state-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,aAAY,UAAqB,KAChC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,CAuFlF,CAAC;AAIL,eAAO,MAAM,sBAAsB,wFAUjC,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* State refresher — periodic RPC reads for market state.
|
|
3
3
|
*/
|
|
4
4
|
import { Effect } from 'effect';
|
|
5
|
-
import { DatabaseTag } from '../services/Database';
|
|
6
5
|
import { ChainReaderTag } from '../services/ChainReader';
|
|
6
|
+
import { DatabaseTag } from '../services/Database';
|
|
7
7
|
import { EventBusTag } from '../services/EventBus';
|
|
8
8
|
export const refreshMarketState = (marketAddress, marketType = 'normal') => Effect.gen(function* () {
|
|
9
9
|
const db = yield* DatabaseTag;
|
|
@@ -12,14 +12,14 @@ export const refreshMarketState = (marketAddress, marketType = 'normal') => Effe
|
|
|
12
12
|
if (marketType === 'multinoulli') {
|
|
13
13
|
const stateResult = yield* Effect.either(chain.readMultinoulliMarketState(marketAddress));
|
|
14
14
|
if (stateResult._tag === 'Left') {
|
|
15
|
-
console.error(`[StateRefresher] Multinoulli error for ${marketAddress}:`, stateResult.left.message);
|
|
16
15
|
return { marketAddress, success: false, error: stateResult.left.message };
|
|
17
16
|
}
|
|
18
17
|
const state = stateResult.right;
|
|
18
|
+
const probsJson = JSON.stringify(state.probs);
|
|
19
19
|
db.multinoulliMarketState.upsert({
|
|
20
20
|
market_address: marketAddress,
|
|
21
21
|
outcome_count: state.outcomeCount,
|
|
22
|
-
probs_json:
|
|
22
|
+
probs_json: probsJson,
|
|
23
23
|
k: state.k,
|
|
24
24
|
effective_k: state.effectiveK,
|
|
25
25
|
total_shares: state.totalShares,
|
|
@@ -33,6 +33,19 @@ export const refreshMarketState = (marketAddress, marketType = 'normal') => Effe
|
|
|
33
33
|
matrix_cols: state.matrixCols,
|
|
34
34
|
matrix_enforce_full_row: state.matrixEnforceFullRow,
|
|
35
35
|
});
|
|
36
|
+
// Store a historical snapshot if probabilities changed
|
|
37
|
+
if (state.isInitialized && state.probs.length > 0) {
|
|
38
|
+
// Simple hash: first 6 probs truncated to 8 decimals, joined
|
|
39
|
+
const probsHash = state.probs.slice(0, 8).map((p) => p.toFixed(8)).join(',');
|
|
40
|
+
db.multinoulliSnapshots.insertIfChanged({
|
|
41
|
+
market_address: marketAddress,
|
|
42
|
+
probs_json: probsJson,
|
|
43
|
+
probs_hash: probsHash,
|
|
44
|
+
outcome_count: state.outcomeCount,
|
|
45
|
+
matrix_rows: state.matrixRows,
|
|
46
|
+
matrix_cols: state.matrixCols,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
36
49
|
bus.broadcast({
|
|
37
50
|
type: 'state_update',
|
|
38
51
|
marketAddress,
|
|
@@ -41,9 +54,8 @@ export const refreshMarketState = (marketAddress, marketType = 'normal') => Effe
|
|
|
41
54
|
return { marketAddress, success: true };
|
|
42
55
|
}
|
|
43
56
|
// Normal market
|
|
44
|
-
const stateResult = yield* Effect.either(chain.readMarketState(marketAddress));
|
|
57
|
+
const stateResult = yield* Effect.either(chain.readMarketState(marketAddress, marketType));
|
|
45
58
|
if (stateResult._tag === 'Left') {
|
|
46
|
-
console.error(`[StateRefresher] Error for ${marketAddress}:`, stateResult.left.message);
|
|
47
59
|
return { marketAddress, success: false, error: stateResult.left.message };
|
|
48
60
|
}
|
|
49
61
|
const state = stateResult.right;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-refresher.js","sourceRoot":"","sources":["../../src/etl/state-refresher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"state-refresher.js","sourceRoot":"","sources":["../../src/etl/state-refresher.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|