@gzeoneth/gov-tracker 0.2.1-beta.c266765 → 0.2.1-beta.d575294
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 +40 -0
- package/dist/abis.d.ts +3 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +8 -1
- package/dist/abis.js.map +1 -1
- package/dist/cli/cli.js +88 -44
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +41 -3
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +333 -116
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/json-state.d.ts +23 -0
- package/dist/cli/lib/json-state.d.ts.map +1 -1
- package/dist/cli/lib/json-state.js +51 -4
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/constants.d.ts +39 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +47 -2
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +10988 -1580
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +50 -35
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts +15 -6
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -11
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts +8 -0
- package/dist/election/contracts.d.ts.map +1 -0
- package/dist/election/contracts.js +28 -0
- package/dist/election/contracts.js.map +1 -0
- package/dist/election/details.d.ts +15 -0
- package/dist/election/details.d.ts.map +1 -0
- package/dist/election/details.js +157 -0
- package/dist/election/details.js.map +1 -0
- package/dist/election/index.d.ts +11 -0
- package/dist/election/index.d.ts.map +1 -0
- package/dist/election/index.js +48 -0
- package/dist/election/index.js.map +1 -0
- package/dist/election/params.d.ts +13 -0
- package/dist/election/params.d.ts.map +1 -0
- package/dist/election/params.js +93 -0
- package/dist/election/params.js.map +1 -0
- package/dist/election/participants.d.ts +6 -0
- package/dist/election/participants.d.ts.map +1 -0
- package/dist/election/participants.js +104 -0
- package/dist/election/participants.js.map +1 -0
- package/dist/election/prepare.d.ts +10 -0
- package/dist/election/prepare.d.ts.map +1 -0
- package/dist/election/prepare.js +52 -0
- package/dist/election/prepare.js.map +1 -0
- package/dist/election/proposal-ids.d.ts +18 -0
- package/dist/election/proposal-ids.d.ts.map +1 -0
- package/dist/election/proposal-ids.js +77 -0
- package/dist/election/proposal-ids.js.map +1 -0
- package/dist/election/status.d.ts +15 -0
- package/dist/election/status.d.ts.map +1 -0
- package/dist/election/status.js +102 -0
- package/dist/election/status.js.map +1 -0
- package/dist/election/tracking.d.ts +28 -0
- package/dist/election/tracking.d.ts.map +1 -0
- package/dist/election/tracking.js +412 -0
- package/dist/election/tracking.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -11
- package/dist/index.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts +3 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +6 -6
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-created.d.ts +1 -0
- package/dist/stages/proposal-created.d.ts.map +1 -1
- package/dist/stages/proposal-created.js +1 -0
- package/dist/stages/proposal-created.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts +1 -0
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +3 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.js +2 -2
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +3 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +12 -12
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +5 -9
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +34 -29
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/cache.d.ts +10 -6
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +36 -13
- package/dist/tracker/cache.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +81 -0
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
- package/dist/tracker/checkpoint-helpers.js +201 -0
- package/dist/tracker/checkpoint-helpers.js.map +1 -0
- package/dist/tracker/discovery.d.ts +1 -1
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +11 -3
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/execute.d.ts.map +1 -1
- package/dist/tracker/execute.js +1 -25
- package/dist/tracker/execute.js.map +1 -1
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +26 -11
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +1 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +14 -61
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +0 -10
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +1 -28
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +79 -7
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +357 -43
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +3 -1
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/election.d.ts +66 -11
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/stages.d.ts +66 -7
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +10 -10
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/block-cache.d.ts +50 -0
- package/dist/utils/block-cache.d.ts.map +1 -0
- package/dist/utils/block-cache.js +80 -0
- package/dist/utils/block-cache.js.map +1 -0
- package/dist/utils/formatters.d.ts +91 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +327 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/multicall.d.ts +52 -0
- package/dist/utils/multicall.d.ts.map +1 -0
- package/dist/utils/multicall.js +75 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/rpc-utils.d.ts +7 -1
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +42 -29
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/salt-computation.d.ts.map +1 -1
- package/dist/utils/salt-computation.js +33 -7
- package/dist/utils/salt-computation.js.map +1 -1
- package/dist/utils/sanitize.d.ts.map +1 -1
- package/dist/utils/sanitize.js +3 -0
- package/dist/utils/sanitize.js.map +1 -1
- package/dist/utils/stage-metadata.d.ts +0 -20
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +29 -44
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +2 -1
- package/dist/utils/timing.js.map +1 -1
- package/package.json +3 -2
- package/dist/election.d.ts +0 -312
- package/dist/election.d.ts.map +0 -1
- package/dist/election.js +0 -884
- package/dist/election.js.map +0 -1
- package/dist/types/cross-chain.d.ts +0 -24
- package/dist/types/cross-chain.d.ts.map +0 -1
- package/dist/types/cross-chain.js +0 -6
- package/dist/types/cross-chain.js.map +0 -1
package/dist/tracker.js
CHANGED
|
@@ -19,12 +19,50 @@ exports.createTracker = createTracker;
|
|
|
19
19
|
const ethers_1 = require("ethers");
|
|
20
20
|
const logger_1 = require("./utils/logger");
|
|
21
21
|
const rpc_utils_1 = require("./utils/rpc-utils");
|
|
22
|
+
const timing_1 = require("./utils/timing");
|
|
23
|
+
const checkpoint_helpers_1 = require("./tracker/checkpoint-helpers");
|
|
22
24
|
const constants_1 = require("./constants");
|
|
23
25
|
const election_1 = require("./election");
|
|
24
26
|
const governor_discovery_1 = require("./discovery/governor-discovery");
|
|
25
27
|
const timelock_discovery_1 = require("./discovery/timelock-discovery");
|
|
26
28
|
const utils_1 = require("./stages/utils");
|
|
27
29
|
const { tracker: logTracker, discovery: logDiscovery } = logger_1.loggers;
|
|
30
|
+
/**
|
|
31
|
+
* Build a TrackingContext with current block numbers and timestamp.
|
|
32
|
+
* Called once at the start of a tracking session for consistent state.
|
|
33
|
+
*/
|
|
34
|
+
async function buildTrackingContext(options) {
|
|
35
|
+
const { l2Provider, l1Provider, novaProvider, chunkSize, skipCache } = options;
|
|
36
|
+
const l2BlockInfo = await (0, timing_1.getCurrentBlockInfo)(l2Provider);
|
|
37
|
+
const context = {
|
|
38
|
+
l2BlockNumber: l2BlockInfo.blockNumber,
|
|
39
|
+
timestamp: l2BlockInfo.timestamp,
|
|
40
|
+
chunkSize,
|
|
41
|
+
skipCache,
|
|
42
|
+
};
|
|
43
|
+
logTracker("buildTrackingContext: l2Block=%d timestamp=%d", context.l2BlockNumber, context.timestamp);
|
|
44
|
+
if (l1Provider) {
|
|
45
|
+
try {
|
|
46
|
+
const l1Block = await (0, timing_1.getL1BlockNumberFromL2)(l2Provider);
|
|
47
|
+
context.l1BlockNumber = l1Block.toNumber();
|
|
48
|
+
logTracker("buildTrackingContext: l1Block=%d", context.l1BlockNumber);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
logTracker("buildTrackingContext: failed to get L1 block: %s", err.message);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (novaProvider) {
|
|
55
|
+
try {
|
|
56
|
+
const novaBlockInfo = await (0, timing_1.getCurrentBlockInfo)(novaProvider);
|
|
57
|
+
context.novaBlockNumber = novaBlockInfo.blockNumber;
|
|
58
|
+
logTracker("buildTrackingContext: novaBlock=%d", context.novaBlockNumber);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
logTracker("buildTrackingContext: failed to get Nova block: %s", err.message);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return context;
|
|
65
|
+
}
|
|
28
66
|
// Import context and pipeline from tracker modules
|
|
29
67
|
const state_1 = require("./tracker/state");
|
|
30
68
|
const pipeline_1 = require("./tracker/pipeline");
|
|
@@ -118,6 +156,44 @@ class ProposalStageTracker {
|
|
|
118
156
|
static async readCacheStatus(cachePath) {
|
|
119
157
|
return (0, cache_1.readCacheStatus)(cachePath);
|
|
120
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Clear a specific cache entry. Used by --force to ensure fresh tracking.
|
|
161
|
+
*/
|
|
162
|
+
async clearCacheEntry(key) {
|
|
163
|
+
if (this.cache) {
|
|
164
|
+
await this.cache.delete(key);
|
|
165
|
+
logTracker("cleared cache entry: %s", key);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Clear all cache entries for a transaction.
|
|
170
|
+
* This clears both the base tx key and any operation-specific keys (tx:{hash}:op:{opId}).
|
|
171
|
+
* Used by CLI --force to ensure fresh tracking of all operations in a tx.
|
|
172
|
+
*/
|
|
173
|
+
async clearTxCacheEntries(txHash) {
|
|
174
|
+
if (!this.cache)
|
|
175
|
+
return 0;
|
|
176
|
+
const baseCacheKey = (0, checkpoint_helpers_1.txHashCacheKey)(txHash);
|
|
177
|
+
const prefix = `${baseCacheKey}:op:`;
|
|
178
|
+
let cleared = 0;
|
|
179
|
+
// Clear the base tx key
|
|
180
|
+
if (await this.cache.has(baseCacheKey)) {
|
|
181
|
+
await this.cache.delete(baseCacheKey);
|
|
182
|
+
logTracker("cleared cache entry: %s", baseCacheKey);
|
|
183
|
+
cleared++;
|
|
184
|
+
}
|
|
185
|
+
// Clear all operation-specific keys for this tx
|
|
186
|
+
const allKeys = await this.cache.keys(prefix);
|
|
187
|
+
const keys = Array.isArray(allKeys) ? allKeys : Array.from(allKeys);
|
|
188
|
+
for (const key of keys) {
|
|
189
|
+
if (key.startsWith(prefix)) {
|
|
190
|
+
await this.cache.delete(key);
|
|
191
|
+
logTracker("cleared cache entry: %s", key);
|
|
192
|
+
cleared++;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return cleared;
|
|
196
|
+
}
|
|
121
197
|
// Watermark Management
|
|
122
198
|
/**
|
|
123
199
|
* Load discovery watermarks from cache.
|
|
@@ -142,36 +218,73 @@ class ProposalStageTracker {
|
|
|
142
218
|
* Save an election checkpoint to cache.
|
|
143
219
|
* Elections are stored with key format: `election:{electionIndex}`
|
|
144
220
|
*
|
|
221
|
+
* For COMPLETED elections, automatically fetches and caches nominee/member
|
|
222
|
+
* election details to enable zero-RPC reads for historical elections.
|
|
223
|
+
*
|
|
145
224
|
* @param electionStatus - Election status from trackElectionProposal
|
|
225
|
+
* @param options.nomineeDetails - Pre-fetched nominee details (skips RPC fetch)
|
|
226
|
+
* @param options.memberDetails - Pre-fetched member details (skips RPC fetch)
|
|
146
227
|
*/
|
|
147
|
-
async saveElectionCheckpoint(electionStatus) {
|
|
228
|
+
async saveElectionCheckpoint(electionStatus, options = {}) {
|
|
148
229
|
if (!this.cache)
|
|
149
230
|
return;
|
|
150
231
|
const key = `election:${electionStatus.electionIndex}`;
|
|
151
|
-
const
|
|
232
|
+
const now = Date.now();
|
|
233
|
+
let nomineeDetails = options.nomineeDetails;
|
|
234
|
+
let memberDetails = options.memberDetails;
|
|
235
|
+
// For COMPLETED elections, fetch details if not provided
|
|
236
|
+
if (electionStatus.phase === "COMPLETED" && !nomineeDetails && !memberDetails) {
|
|
237
|
+
try {
|
|
238
|
+
const [rawNomineeDetails, rawMemberDetails] = await Promise.all([
|
|
239
|
+
(0, election_1.getNomineeElectionDetails)(electionStatus.electionIndex, this.l2Provider),
|
|
240
|
+
(0, election_1.getMemberElectionDetails)(electionStatus.electionIndex, this.l2Provider),
|
|
241
|
+
]);
|
|
242
|
+
if (rawNomineeDetails) {
|
|
243
|
+
nomineeDetails = (0, election_1.serializeNomineeDetails)(rawNomineeDetails);
|
|
244
|
+
}
|
|
245
|
+
if (rawMemberDetails) {
|
|
246
|
+
memberDetails = (0, election_1.serializeMemberDetails)(rawMemberDetails);
|
|
247
|
+
}
|
|
248
|
+
logTracker("fetched election %d details: nominees=%d, members=%d", electionStatus.electionIndex, nomineeDetails?.nominees?.length ?? 0, memberDetails?.nominees?.length ?? 0);
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
logTracker("failed to fetch election %d details (non-fatal): %s", electionStatus.electionIndex, err.message);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
await this.cache.set(key, {
|
|
152
255
|
version: 1,
|
|
153
|
-
createdAt:
|
|
256
|
+
createdAt: now,
|
|
154
257
|
input: { type: "election", electionIndex: electionStatus.electionIndex },
|
|
155
258
|
lastProcessedStage: null,
|
|
156
259
|
lastProcessedBlock: { l1: 0, l2: 0 },
|
|
157
|
-
cachedData: { electionStatus },
|
|
158
|
-
metadata: { errorCount: 0, lastTrackedAt:
|
|
159
|
-
};
|
|
160
|
-
await this.cache.set(key, checkpoint);
|
|
260
|
+
cachedData: { electionStatus, nomineeDetails, memberDetails },
|
|
261
|
+
metadata: { errorCount: 0, lastTrackedAt: now },
|
|
262
|
+
});
|
|
161
263
|
logTracker("saved election checkpoint: %s (phase: %s)", key, electionStatus.phase);
|
|
162
264
|
}
|
|
163
265
|
/**
|
|
164
266
|
* Get an election checkpoint from cache.
|
|
165
267
|
*
|
|
268
|
+
* For COMPLETED elections, includes cached nominee/member details:
|
|
269
|
+
* - nomineeDetails: Contenders, nominees, excluded nominees, quorum threshold
|
|
270
|
+
* - memberDetails: Final nominee rankings, winners, voting deadlines
|
|
271
|
+
*
|
|
166
272
|
* @param electionIndex - Election index
|
|
167
|
-
* @returns Election
|
|
273
|
+
* @returns Election data or null if not cached
|
|
168
274
|
*/
|
|
169
275
|
async getElectionCheckpoint(electionIndex) {
|
|
170
276
|
if (!this.cache)
|
|
171
277
|
return null;
|
|
172
278
|
const key = `election:${electionIndex}`;
|
|
173
279
|
const checkpoint = await this.cache.get(key);
|
|
174
|
-
|
|
280
|
+
if (!checkpoint?.cachedData?.electionStatus) {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
status: checkpoint.cachedData.electionStatus,
|
|
285
|
+
nomineeDetails: checkpoint.cachedData.nomineeDetails ?? null,
|
|
286
|
+
memberDetails: checkpoint.cachedData.memberDetails ?? null,
|
|
287
|
+
};
|
|
175
288
|
}
|
|
176
289
|
// Discovery API
|
|
177
290
|
/**
|
|
@@ -270,42 +383,58 @@ class ProposalStageTracker {
|
|
|
270
383
|
* - Automatically loads existing checkpoint from cache (zero-RPC resume)
|
|
271
384
|
* - Automatically saves checkpoint to cache after tracking
|
|
272
385
|
*
|
|
386
|
+
* @param txHash - Transaction hash to track
|
|
387
|
+
* @param operationId - Optional: track only this specific timelock operation
|
|
388
|
+
*
|
|
273
389
|
* @example
|
|
274
390
|
* ```typescript
|
|
391
|
+
* // Track all operations in a transaction
|
|
275
392
|
* const results = await tracker.trackByTxHash("0x...");
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
393
|
+
*
|
|
394
|
+
* // Track a specific operation
|
|
395
|
+
* const results = await tracker.trackByTxHash("0x...", "0xoperationId...");
|
|
279
396
|
* ```
|
|
280
397
|
*/
|
|
281
|
-
async trackByTxHash(txHash) {
|
|
282
|
-
logTracker("trackByTxHash %s", txHash);
|
|
283
|
-
//
|
|
284
|
-
|
|
398
|
+
async trackByTxHash(txHash, operationId) {
|
|
399
|
+
logTracker("trackByTxHash %s%s", txHash, operationId ? ` operationId=${operationId}` : "");
|
|
400
|
+
// Determine cache key based on whether operationId is provided
|
|
401
|
+
// - Governor proposals and timelock discovery: tx:{txHash}
|
|
402
|
+
// - Specific timelock operation: tx:{txHash}:op:{operationId}
|
|
403
|
+
const baseCacheKey = (0, checkpoint_helpers_1.txHashCacheKey)(txHash);
|
|
285
404
|
// Load checkpoint from cache for resume
|
|
286
405
|
let checkpoint;
|
|
287
406
|
if (this.cache) {
|
|
288
|
-
|
|
289
|
-
if (
|
|
290
|
-
|
|
407
|
+
// If operationId provided, try operation-specific key first
|
|
408
|
+
if (operationId) {
|
|
409
|
+
const opCacheKey = (0, checkpoint_helpers_1.timelockOpCacheKey)(txHash, operationId);
|
|
410
|
+
checkpoint = (await this.cache.get(opCacheKey)) ?? undefined;
|
|
411
|
+
if (checkpoint) {
|
|
412
|
+
logTracker("loaded checkpoint from cache: %s", opCacheKey);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
// Fall back to base cache key (for governor proposals or legacy checkpoints)
|
|
416
|
+
if (!checkpoint) {
|
|
417
|
+
checkpoint = (await this.cache.get(baseCacheKey)) ?? undefined;
|
|
418
|
+
if (checkpoint) {
|
|
419
|
+
logTracker("loaded checkpoint from cache: %s", baseCacheKey);
|
|
420
|
+
}
|
|
291
421
|
}
|
|
292
422
|
}
|
|
293
423
|
try {
|
|
294
|
-
return await this.trackByTxHashInternal(txHash,
|
|
424
|
+
return await this.trackByTxHashInternal(txHash, baseCacheKey, checkpoint, operationId);
|
|
295
425
|
}
|
|
296
426
|
catch (error) {
|
|
297
427
|
// Save checkpoint on error with incremented error count
|
|
298
428
|
// Gas estimation errors don't count against consecutive errors
|
|
299
429
|
if (this.cache) {
|
|
300
|
-
const input = {
|
|
301
|
-
type: "governor",
|
|
302
|
-
governorAddress: "",
|
|
303
|
-
proposalId: "",
|
|
304
|
-
creationTxHash: txHash,
|
|
305
|
-
};
|
|
306
430
|
const prevErrorCount = checkpoint?.metadata?.errorCount ?? 0;
|
|
431
|
+
const newErrorCount = (0, checkpoint_helpers_1.incrementErrorCount)(prevErrorCount, error);
|
|
307
432
|
const isGasError = (0, rpc_utils_1.isGasEstimationError)(error);
|
|
308
|
-
|
|
433
|
+
// Use operation-specific key for timelock errors if operationId is known
|
|
434
|
+
const errorCacheKey = operationId ? (0, checkpoint_helpers_1.timelockOpCacheKey)(txHash, operationId) : baseCacheKey;
|
|
435
|
+
const input = operationId
|
|
436
|
+
? { type: "timelock", timelockAddress: "", operationId, scheduledTxHash: txHash }
|
|
437
|
+
: { type: "governor", governorAddress: "", proposalId: "", creationTxHash: txHash };
|
|
309
438
|
const errorCheckpoint = checkpoint ?? {
|
|
310
439
|
version: 1,
|
|
311
440
|
createdAt: Date.now(),
|
|
@@ -314,9 +443,9 @@ class ProposalStageTracker {
|
|
|
314
443
|
lastProcessedBlock: { l1: 0, l2: 0 },
|
|
315
444
|
cachedData: {},
|
|
316
445
|
};
|
|
317
|
-
errorCheckpoint.metadata =
|
|
318
|
-
await this.cache.set(
|
|
319
|
-
logTracker("saved checkpoint on error: %s (errorCount=%d%s)",
|
|
446
|
+
errorCheckpoint.metadata = (0, checkpoint_helpers_1.createCheckpointMetadata)(newErrorCount);
|
|
447
|
+
await this.cache.set(errorCacheKey, errorCheckpoint);
|
|
448
|
+
logTracker("saved checkpoint on error: %s (errorCount=%d%s)", errorCacheKey, newErrorCount, isGasError ? " - gas error, not incrementing" : "");
|
|
320
449
|
}
|
|
321
450
|
throw error;
|
|
322
451
|
}
|
|
@@ -326,29 +455,32 @@ class ProposalStageTracker {
|
|
|
326
455
|
*
|
|
327
456
|
* Uses PipelineContext for stateful tracking - no parameter passing between stages.
|
|
328
457
|
*/
|
|
329
|
-
async trackByTxHashInternal(txHash,
|
|
458
|
+
async trackByTxHashInternal(txHash, baseCacheKey, checkpoint, operationId) {
|
|
330
459
|
// RESUME PATH: If we have a checkpoint, check what type it is
|
|
331
460
|
if (checkpoint && checkpoint.input.type !== "discovery") {
|
|
332
461
|
logTracker("RESUME: found checkpoint for tx, type=%s", checkpoint.input.type);
|
|
333
462
|
if (checkpoint.input.type === "governor") {
|
|
334
463
|
const input = checkpoint.input;
|
|
335
|
-
const result = await this.trackGovernorWithPipeline(input.governorAddress, input.proposalId, input.creationTxHash, checkpoint,
|
|
464
|
+
const result = await this.trackGovernorWithPipeline(input.governorAddress, input.proposalId, input.creationTxHash, checkpoint, baseCacheKey);
|
|
336
465
|
return [result];
|
|
337
466
|
}
|
|
338
467
|
else if (checkpoint.input.type === "timelock") {
|
|
339
468
|
const input = checkpoint.input;
|
|
340
|
-
const
|
|
469
|
+
const opCacheKey = (0, checkpoint_helpers_1.timelockOpCacheKey)(txHash, input.operationId);
|
|
470
|
+
const result = await this.trackTimelockWithPipeline(input.timelockAddress, input.operationId, input.scheduledTxHash, checkpoint, opCacheKey);
|
|
341
471
|
return [result];
|
|
342
472
|
}
|
|
343
473
|
}
|
|
344
|
-
// Try as proposal first
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
474
|
+
// Try as proposal first (only if no operationId specified)
|
|
475
|
+
if (!operationId) {
|
|
476
|
+
const proposal = await (0, governor_discovery_1.discoverProposalByTxHash)(txHash, this.l2Provider);
|
|
477
|
+
if (proposal) {
|
|
478
|
+
logDiscovery("found proposal in tx, proposalId=%s", proposal.proposalId);
|
|
479
|
+
const result = await this.trackGovernorWithPipeline(proposal.governorAddress, proposal.proposalId, proposal.creationTxHash, checkpoint, baseCacheKey);
|
|
480
|
+
return [result];
|
|
481
|
+
}
|
|
350
482
|
}
|
|
351
|
-
// Try as timelock operations
|
|
483
|
+
// Try as timelock operations
|
|
352
484
|
const callScheduledEvents = await (0, timelock_discovery_1.findCallScheduledByTxHash)(txHash, this.l2Provider);
|
|
353
485
|
if (callScheduledEvents && callScheduledEvents.length > 0) {
|
|
354
486
|
logDiscovery("found %d timelock operation(s) in tx", callScheduledEvents.length);
|
|
@@ -356,11 +488,28 @@ class ProposalStageTracker {
|
|
|
356
488
|
const seenOperationIds = new Set();
|
|
357
489
|
const results = [];
|
|
358
490
|
for (const event of callScheduledEvents) {
|
|
491
|
+
// Skip if we've already seen this operationId (batch deduplication)
|
|
359
492
|
if (seenOperationIds.has(event.operationId))
|
|
360
493
|
continue;
|
|
361
494
|
seenOperationIds.add(event.operationId);
|
|
362
|
-
|
|
495
|
+
// If specific operationId requested, skip non-matching operations
|
|
496
|
+
if (operationId && event.operationId.toLowerCase() !== operationId.toLowerCase())
|
|
497
|
+
continue;
|
|
498
|
+
// Use operation-specific cache key for each timelock operation
|
|
499
|
+
const opCacheKey = (0, checkpoint_helpers_1.timelockOpCacheKey)(txHash, event.operationId);
|
|
500
|
+
// Load operation-specific checkpoint if not already loaded
|
|
501
|
+
let opCheckpoint = checkpoint;
|
|
502
|
+
if (this.cache && !opCheckpoint) {
|
|
503
|
+
opCheckpoint = (await this.cache.get(opCacheKey)) ?? undefined;
|
|
504
|
+
if (opCheckpoint) {
|
|
505
|
+
logTracker("loaded operation checkpoint from cache: %s", opCacheKey);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
const result = await this.trackTimelockWithPipeline(event.timelockAddress, event.operationId, txHash, opCheckpoint, opCacheKey, event);
|
|
363
509
|
results.push(result);
|
|
510
|
+
// If specific operationId requested and found, we're done
|
|
511
|
+
if (operationId)
|
|
512
|
+
break;
|
|
364
513
|
}
|
|
365
514
|
return results;
|
|
366
515
|
}
|
|
@@ -394,7 +543,23 @@ class ProposalStageTracker {
|
|
|
394
543
|
const finalState = await (0, pipeline_1.trackGovernorPipeline)(initialState);
|
|
395
544
|
// Build result from state
|
|
396
545
|
const result = this.buildResultFromState(finalState);
|
|
397
|
-
//
|
|
546
|
+
// Track election status if this is an election governor proposal
|
|
547
|
+
if (result.isElection) {
|
|
548
|
+
const electionStatus = await this.trackElectionStatus(proposalId);
|
|
549
|
+
if (electionStatus) {
|
|
550
|
+
result.electionStatus = electionStatus;
|
|
551
|
+
await this.saveElectionCheckpoint(electionStatus);
|
|
552
|
+
// Elections are fully tracked via election checkpoints, remove tx:* checkpoint
|
|
553
|
+
if (this.cache && cacheKey) {
|
|
554
|
+
await this.cache.delete(cacheKey);
|
|
555
|
+
logTracker("election tracked via election checkpoint, removed tx:* checkpoint: %s", cacheKey);
|
|
556
|
+
}
|
|
557
|
+
return result;
|
|
558
|
+
}
|
|
559
|
+
// If election tracking failed, fall through to save tx:* checkpoint for retry
|
|
560
|
+
logTracker("election tracking failed, saving tx:* checkpoint for retry");
|
|
561
|
+
}
|
|
562
|
+
// Save checkpoint to cache (non-elections and failed election tracking)
|
|
398
563
|
if (this.cache && cacheKey) {
|
|
399
564
|
result.checkpoint.metadata = { errorCount: 0, lastTrackedAt: Date.now() };
|
|
400
565
|
await this.cache.set(cacheKey, result.checkpoint);
|
|
@@ -558,6 +723,154 @@ class ProposalStageTracker {
|
|
|
558
723
|
nova: this.novaProvider,
|
|
559
724
|
};
|
|
560
725
|
}
|
|
726
|
+
// Election Tracking
|
|
727
|
+
/**
|
|
728
|
+
* Track election status for a given proposal ID.
|
|
729
|
+
*
|
|
730
|
+
* Searches through elections to find the one containing this proposal,
|
|
731
|
+
* then tracks the full election lifecycle.
|
|
732
|
+
*/
|
|
733
|
+
async trackElectionStatus(proposalId) {
|
|
734
|
+
logTracker("trackElectionStatus for proposal %s", proposalId);
|
|
735
|
+
try {
|
|
736
|
+
// Get current L2 block for block-scoped caching
|
|
737
|
+
const { blockNumber: l2BlockNumber } = await (0, timing_1.getCurrentBlockInfo)(this.l2Provider);
|
|
738
|
+
const electionIndex = await (0, election_1.getElectionIndexForProposalId)(proposalId, this.l2Provider, this.l1Provider, { novaProvider: this.novaProvider, blockNumber: l2BlockNumber });
|
|
739
|
+
if (electionIndex === null) {
|
|
740
|
+
logTracker("no election found for proposal %s", proposalId);
|
|
741
|
+
return null;
|
|
742
|
+
}
|
|
743
|
+
logTracker("found election index %d for proposal %s", electionIndex, proposalId);
|
|
744
|
+
return (0, election_1.trackElectionProposal)(electionIndex, this.l2Provider, this.l1Provider, {
|
|
745
|
+
novaProvider: this.novaProvider,
|
|
746
|
+
});
|
|
747
|
+
}
|
|
748
|
+
catch (error) {
|
|
749
|
+
// Election tracking is non-critical - log and return null
|
|
750
|
+
// The proposal stages are already tracked successfully
|
|
751
|
+
logTracker("election tracking failed for proposal %s: %O", proposalId, error);
|
|
752
|
+
return null;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Track an election by its index.
|
|
757
|
+
*
|
|
758
|
+
* This method provides direct election tracking when you have the election index.
|
|
759
|
+
* For tracking via tx hash, use trackByTxHash() which auto-detects elections.
|
|
760
|
+
*
|
|
761
|
+
* Caching behavior:
|
|
762
|
+
* - COMPLETED elections: Returns cached data immediately (0 RPC calls)
|
|
763
|
+
* - Incomplete elections: Makes fresh RPC calls and updates cache
|
|
764
|
+
* - No cache: Always makes fresh RPC calls
|
|
765
|
+
*
|
|
766
|
+
* @param electionIndex - Election index (0-based)
|
|
767
|
+
* @param options.force - Force fresh tracking even for completed elections
|
|
768
|
+
* @returns Election status
|
|
769
|
+
*/
|
|
770
|
+
async trackElection(electionIndex, options = {}) {
|
|
771
|
+
logTracker("trackElection for index %d (force=%s)", electionIndex, options.force ?? false);
|
|
772
|
+
// Check cache first for completed elections (skip RPC calls)
|
|
773
|
+
if (this.cache && !options.force) {
|
|
774
|
+
const cached = await this.getElectionCheckpoint(electionIndex);
|
|
775
|
+
if (cached && cached.status.phase === "COMPLETED") {
|
|
776
|
+
logTracker("returning cached COMPLETED election %d (0 RPC calls)", electionIndex);
|
|
777
|
+
return cached.status;
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
// Build full tracking context for consistent state across all calls
|
|
781
|
+
const context = await buildTrackingContext({
|
|
782
|
+
l2Provider: this.l2Provider,
|
|
783
|
+
l1Provider: this.l1Provider,
|
|
784
|
+
novaProvider: this.novaProvider,
|
|
785
|
+
skipCache: options.force,
|
|
786
|
+
});
|
|
787
|
+
// Track fresh for incomplete elections or cache miss
|
|
788
|
+
const status = await (0, election_1.trackElectionProposal)(electionIndex, this.l2Provider, this.l1Provider, {
|
|
789
|
+
novaProvider: this.novaProvider,
|
|
790
|
+
l2BlockNumber: context.l2BlockNumber,
|
|
791
|
+
timestamp: context.timestamp,
|
|
792
|
+
skipCache: context.skipCache,
|
|
793
|
+
});
|
|
794
|
+
if (this.cache) {
|
|
795
|
+
await this.saveElectionCheckpoint(status);
|
|
796
|
+
}
|
|
797
|
+
return status;
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* Track all elections with caching.
|
|
801
|
+
*
|
|
802
|
+
* Caching behavior:
|
|
803
|
+
* - COMPLETED elections: Returns cached data immediately (0 RPC calls)
|
|
804
|
+
* - Incomplete elections: Makes fresh RPC calls and updates cache
|
|
805
|
+
*
|
|
806
|
+
* @param options.includeNext - Include the "next" election slot (default: true)
|
|
807
|
+
* @param options.force - Force fresh tracking for all elections
|
|
808
|
+
* @returns Array of election statuses
|
|
809
|
+
*/
|
|
810
|
+
async trackAllElections(options = {}) {
|
|
811
|
+
logTracker("trackAllElections (includeNext=%s, force=%s)", options.includeNext ?? true, options.force ?? false);
|
|
812
|
+
// Build context once at the start for consistent state across all elections
|
|
813
|
+
const context = await buildTrackingContext({
|
|
814
|
+
l2Provider: this.l2Provider,
|
|
815
|
+
l1Provider: this.l1Provider,
|
|
816
|
+
novaProvider: this.novaProvider,
|
|
817
|
+
skipCache: options.force,
|
|
818
|
+
});
|
|
819
|
+
const status = await (0, election_1.checkElectionStatus)(this.l2Provider, this.l1Provider);
|
|
820
|
+
const electionCount = status.electionCount;
|
|
821
|
+
const results = [];
|
|
822
|
+
// Track existing elections (indices 0 to electionCount-1)
|
|
823
|
+
for (let i = 0; i < electionCount; i++) {
|
|
824
|
+
try {
|
|
825
|
+
// Check cache first for completed elections (skip RPC calls)
|
|
826
|
+
if (this.cache && !options.force) {
|
|
827
|
+
const cached = await this.getElectionCheckpoint(i);
|
|
828
|
+
if (cached && cached.status.phase === "COMPLETED") {
|
|
829
|
+
logTracker("returning cached COMPLETED election %d (0 RPC calls)", i);
|
|
830
|
+
results.push(cached.status);
|
|
831
|
+
continue;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
// Track with shared context
|
|
835
|
+
const electionStatus = await (0, election_1.trackElectionProposal)(i, this.l2Provider, this.l1Provider, {
|
|
836
|
+
novaProvider: this.novaProvider,
|
|
837
|
+
l2BlockNumber: context.l2BlockNumber,
|
|
838
|
+
timestamp: context.timestamp,
|
|
839
|
+
skipCache: context.skipCache,
|
|
840
|
+
});
|
|
841
|
+
results.push(electionStatus);
|
|
842
|
+
if (this.cache) {
|
|
843
|
+
await this.saveElectionCheckpoint(electionStatus);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
catch (err) {
|
|
847
|
+
logTracker("Failed to track election %d: %s", i, err);
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
// Optionally track the next election (not yet created) for createElection preparation
|
|
851
|
+
if (options.includeNext ?? true) {
|
|
852
|
+
try {
|
|
853
|
+
// Next election always needs fresh RPC calls since it doesn't exist yet
|
|
854
|
+
const nextElectionStatus = await (0, election_1.trackElectionProposal)(electionCount, this.l2Provider, this.l1Provider, {
|
|
855
|
+
novaProvider: this.novaProvider,
|
|
856
|
+
l2BlockNumber: context.l2BlockNumber,
|
|
857
|
+
timestamp: context.timestamp,
|
|
858
|
+
});
|
|
859
|
+
results.push({
|
|
860
|
+
...nextElectionStatus,
|
|
861
|
+
canCreateElection: status.canCreateElection,
|
|
862
|
+
secondsUntilElection: status.secondsUntilElection,
|
|
863
|
+
timeUntilElection: status.timeUntilElection,
|
|
864
|
+
});
|
|
865
|
+
// Don't cache the "next" election since it doesn't exist yet
|
|
866
|
+
}
|
|
867
|
+
catch (err) {
|
|
868
|
+
logTracker("Failed to track next election %d: %s", electionCount, err);
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
logTracker("Tracked %d elections", results.length);
|
|
872
|
+
return results;
|
|
873
|
+
}
|
|
561
874
|
// Election Support
|
|
562
875
|
/**
|
|
563
876
|
* Check Security Council election status and prepare available actions
|
|
@@ -582,7 +895,8 @@ class ProposalStageTracker {
|
|
|
582
895
|
}
|
|
583
896
|
if (status.electionCount > 0) {
|
|
584
897
|
const currentElectionIndex = status.electionCount - 1;
|
|
585
|
-
|
|
898
|
+
// Use cached tracking for the current election
|
|
899
|
+
const electionStatus = await this.trackElection(currentElectionIndex);
|
|
586
900
|
result.currentElection = electionStatus;
|
|
587
901
|
result.canTriggerMember = electionStatus.canProceedToMemberPhase;
|
|
588
902
|
result.canExecuteMember = electionStatus.canExecuteMember;
|
package/dist/tracker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|