@gzeoneth/gov-tracker 0.2.1-beta.b2eeb41 → 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.
Files changed (184) hide show
  1. package/README.md +81 -2
  2. package/dist/abis.d.ts +3 -0
  3. package/dist/abis.d.ts.map +1 -1
  4. package/dist/abis.js +30 -2
  5. package/dist/abis.js.map +1 -1
  6. package/dist/cli/cli.js +265 -27
  7. package/dist/cli/cli.js.map +1 -1
  8. package/dist/cli/lib/cli.d.ts +48 -2
  9. package/dist/cli/lib/cli.d.ts.map +1 -1
  10. package/dist/cli/lib/cli.js +356 -63
  11. package/dist/cli/lib/cli.js.map +1 -1
  12. package/dist/cli/lib/json-state.d.ts +23 -0
  13. package/dist/cli/lib/json-state.d.ts.map +1 -1
  14. package/dist/cli/lib/json-state.js +51 -4
  15. package/dist/cli/lib/json-state.js.map +1 -1
  16. package/dist/constants.d.ts +39 -1
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +47 -2
  19. package/dist/constants.js.map +1 -1
  20. package/dist/data/bundled-cache.json +11061 -1460
  21. package/dist/deduplication.d.ts +132 -0
  22. package/dist/deduplication.d.ts.map +1 -0
  23. package/dist/deduplication.js +270 -0
  24. package/dist/deduplication.js.map +1 -0
  25. package/dist/discovery/governor-discovery.d.ts.map +1 -1
  26. package/dist/discovery/governor-discovery.js +50 -35
  27. package/dist/discovery/governor-discovery.js.map +1 -1
  28. package/dist/discovery/timelock-discovery.d.ts +15 -6
  29. package/dist/discovery/timelock-discovery.d.ts.map +1 -1
  30. package/dist/discovery/timelock-discovery.js +27 -11
  31. package/dist/discovery/timelock-discovery.js.map +1 -1
  32. package/dist/election/contracts.d.ts +8 -0
  33. package/dist/election/contracts.d.ts.map +1 -0
  34. package/dist/election/contracts.js +28 -0
  35. package/dist/election/contracts.js.map +1 -0
  36. package/dist/election/details.d.ts +15 -0
  37. package/dist/election/details.d.ts.map +1 -0
  38. package/dist/election/details.js +157 -0
  39. package/dist/election/details.js.map +1 -0
  40. package/dist/election/index.d.ts +11 -0
  41. package/dist/election/index.d.ts.map +1 -0
  42. package/dist/election/index.js +48 -0
  43. package/dist/election/index.js.map +1 -0
  44. package/dist/election/params.d.ts +13 -0
  45. package/dist/election/params.d.ts.map +1 -0
  46. package/dist/election/params.js +93 -0
  47. package/dist/election/params.js.map +1 -0
  48. package/dist/election/participants.d.ts +6 -0
  49. package/dist/election/participants.d.ts.map +1 -0
  50. package/dist/election/participants.js +104 -0
  51. package/dist/election/participants.js.map +1 -0
  52. package/dist/election/prepare.d.ts +10 -0
  53. package/dist/election/prepare.d.ts.map +1 -0
  54. package/dist/election/prepare.js +52 -0
  55. package/dist/election/prepare.js.map +1 -0
  56. package/dist/election/proposal-ids.d.ts +18 -0
  57. package/dist/election/proposal-ids.d.ts.map +1 -0
  58. package/dist/election/proposal-ids.js +77 -0
  59. package/dist/election/proposal-ids.js.map +1 -0
  60. package/dist/election/status.d.ts +15 -0
  61. package/dist/election/status.d.ts.map +1 -0
  62. package/dist/election/status.js +102 -0
  63. package/dist/election/status.js.map +1 -0
  64. package/dist/election/tracking.d.ts +28 -0
  65. package/dist/election/tracking.d.ts.map +1 -0
  66. package/dist/election/tracking.js +412 -0
  67. package/dist/election/tracking.js.map +1 -0
  68. package/dist/index.d.ts +9 -5
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +72 -8
  71. package/dist/index.js.map +1 -1
  72. package/dist/stages/builder.d.ts +4 -0
  73. package/dist/stages/builder.d.ts.map +1 -1
  74. package/dist/stages/builder.js +7 -0
  75. package/dist/stages/builder.js.map +1 -1
  76. package/dist/stages/l2-to-l1-message.d.ts +3 -1
  77. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  78. package/dist/stages/l2-to-l1-message.js +6 -6
  79. package/dist/stages/l2-to-l1-message.js.map +1 -1
  80. package/dist/stages/proposal-created.d.ts +1 -0
  81. package/dist/stages/proposal-created.d.ts.map +1 -1
  82. package/dist/stages/proposal-created.js +1 -0
  83. package/dist/stages/proposal-created.js.map +1 -1
  84. package/dist/stages/proposal-queued.d.ts +1 -0
  85. package/dist/stages/proposal-queued.d.ts.map +1 -1
  86. package/dist/stages/proposal-queued.js +3 -1
  87. package/dist/stages/proposal-queued.js.map +1 -1
  88. package/dist/stages/retryables.js +2 -2
  89. package/dist/stages/retryables.js.map +1 -1
  90. package/dist/stages/timelock.d.ts +3 -1
  91. package/dist/stages/timelock.d.ts.map +1 -1
  92. package/dist/stages/timelock.js +12 -12
  93. package/dist/stages/timelock.js.map +1 -1
  94. package/dist/stages/utils.d.ts +5 -9
  95. package/dist/stages/utils.d.ts.map +1 -1
  96. package/dist/stages/utils.js +34 -29
  97. package/dist/stages/utils.js.map +1 -1
  98. package/dist/stages/voting.d.ts.map +1 -1
  99. package/dist/stages/voting.js +5 -4
  100. package/dist/stages/voting.js.map +1 -1
  101. package/dist/tracker/cache.d.ts +10 -6
  102. package/dist/tracker/cache.d.ts.map +1 -1
  103. package/dist/tracker/cache.js +36 -13
  104. package/dist/tracker/cache.js.map +1 -1
  105. package/dist/tracker/checkpoint-helpers.d.ts +81 -0
  106. package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
  107. package/dist/tracker/checkpoint-helpers.js +201 -0
  108. package/dist/tracker/checkpoint-helpers.js.map +1 -0
  109. package/dist/tracker/discovery.d.ts +40 -9
  110. package/dist/tracker/discovery.d.ts.map +1 -1
  111. package/dist/tracker/discovery.js +152 -15
  112. package/dist/tracker/discovery.js.map +1 -1
  113. package/dist/tracker/execute.d.ts.map +1 -1
  114. package/dist/tracker/execute.js +1 -25
  115. package/dist/tracker/execute.js.map +1 -1
  116. package/dist/tracker/pipeline.d.ts.map +1 -1
  117. package/dist/tracker/pipeline.js +26 -11
  118. package/dist/tracker/pipeline.js.map +1 -1
  119. package/dist/tracker/query.d.ts +1 -0
  120. package/dist/tracker/query.d.ts.map +1 -1
  121. package/dist/tracker/query.js +14 -61
  122. package/dist/tracker/query.js.map +1 -1
  123. package/dist/tracker/state.d.ts +0 -10
  124. package/dist/tracker/state.d.ts.map +1 -1
  125. package/dist/tracker/state.js +1 -28
  126. package/dist/tracker/state.js.map +1 -1
  127. package/dist/tracker.d.ts +100 -8
  128. package/dist/tracker.d.ts.map +1 -1
  129. package/dist/tracker.js +405 -42
  130. package/dist/tracker.js.map +1 -1
  131. package/dist/types/config.d.ts +49 -0
  132. package/dist/types/config.d.ts.map +1 -1
  133. package/dist/types/core.d.ts +4 -2
  134. package/dist/types/core.d.ts.map +1 -1
  135. package/dist/types/election.d.ts +143 -0
  136. package/dist/types/election.d.ts.map +1 -1
  137. package/dist/types/index.d.ts +5 -7
  138. package/dist/types/index.d.ts.map +1 -1
  139. package/dist/types/index.js +2 -3
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/stages.d.ts +72 -7
  142. package/dist/types/stages.d.ts.map +1 -1
  143. package/dist/types/stages.js.map +1 -1
  144. package/dist/types/tracking.d.ts +34 -8
  145. package/dist/types/tracking.d.ts.map +1 -1
  146. package/dist/utils/block-cache.d.ts +50 -0
  147. package/dist/utils/block-cache.d.ts.map +1 -0
  148. package/dist/utils/block-cache.js +80 -0
  149. package/dist/utils/block-cache.js.map +1 -0
  150. package/dist/utils/formatters.d.ts +91 -0
  151. package/dist/utils/formatters.d.ts.map +1 -0
  152. package/dist/utils/formatters.js +327 -0
  153. package/dist/utils/formatters.js.map +1 -0
  154. package/dist/utils/multicall.d.ts +52 -0
  155. package/dist/utils/multicall.d.ts.map +1 -0
  156. package/dist/utils/multicall.js +75 -0
  157. package/dist/utils/multicall.js.map +1 -0
  158. package/dist/utils/rpc-utils.d.ts +7 -1
  159. package/dist/utils/rpc-utils.d.ts.map +1 -1
  160. package/dist/utils/rpc-utils.js +42 -29
  161. package/dist/utils/rpc-utils.js.map +1 -1
  162. package/dist/utils/salt-computation.d.ts.map +1 -1
  163. package/dist/utils/salt-computation.js +33 -7
  164. package/dist/utils/salt-computation.js.map +1 -1
  165. package/dist/utils/sanitize.d.ts.map +1 -1
  166. package/dist/utils/sanitize.js +3 -0
  167. package/dist/utils/sanitize.js.map +1 -1
  168. package/dist/utils/stage-metadata.d.ts +0 -20
  169. package/dist/utils/stage-metadata.d.ts.map +1 -1
  170. package/dist/utils/stage-metadata.js +29 -44
  171. package/dist/utils/stage-metadata.js.map +1 -1
  172. package/dist/utils/timing.d.ts +13 -0
  173. package/dist/utils/timing.d.ts.map +1 -1
  174. package/dist/utils/timing.js +37 -1
  175. package/dist/utils/timing.js.map +1 -1
  176. package/package.json +3 -2
  177. package/dist/election.d.ts +0 -172
  178. package/dist/election.d.ts.map +0 -1
  179. package/dist/election.js +0 -467
  180. package/dist/election.js.map +0 -1
  181. package/dist/types/cross-chain.d.ts +0 -24
  182. package/dist/types/cross-chain.d.ts.map +0 -1
  183. package/dist/types/cross-chain.js +0 -6
  184. package/dist/types/cross-chain.js.map +0 -1
@@ -14,6 +14,7 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.loopOptions = exports.gasOptions = exports.chunkingOptions = exports.executionOptions = exports.cacheOptions = exports.verboseOption = exports.rpcOptions = exports.HEALTH_CHECK_TIMEOUT_MS = exports.DEFAULT_L2_GAS_SETTINGS = exports.MAX_CONSECUTIVE_ERRORS = exports.DEFAULT_MAX_AGE_DAYS = exports.DEFAULT_BLOCK_LAG = exports.isElectionGovernor = void 0;
16
16
  exports.addOptions = addOptions;
17
+ exports.validateCliOptions = validateCliOptions;
17
18
  exports.parseGasSettings = parseGasSettings;
18
19
  exports.parseChunkingConfig = parseChunkingConfig;
19
20
  exports.createProvidersFromOptions = createProvidersFromOptions;
@@ -24,8 +25,12 @@ exports.formatDryRun = formatDryRun;
24
25
  exports.formatMultiplePreparedTransactions = formatMultiplePreparedTransactions;
25
26
  exports.formatTrackingResult = formatTrackingResult;
26
27
  exports.formatCacheStatus = formatCacheStatus;
28
+ exports.formatElectionResult = formatElectionResult;
29
+ exports.displayTrackingResult = displayTrackingResult;
27
30
  exports.isShuttingDown = isShuttingDown;
28
31
  exports.runWithLoop = runWithLoop;
32
+ exports.filterCheckpointsByTargets = filterCheckpointsByTargets;
33
+ exports.calculateFilteredStats = calculateFilteredStats;
29
34
  exports.runMonitorCycle = runMonitorCycle;
30
35
  exports.trackAndPrepare = trackAndPrepare;
31
36
  const commander_1 = require("commander");
@@ -114,6 +119,59 @@ exports.loopOptions = [
114
119
  function addOptions(cmd, opts) {
115
120
  opts.forEach((o) => cmd.addOption(o));
116
121
  }
122
+ /**
123
+ * Validate CLI options for contradictions and conflicts.
124
+ * Throws an error if conflicting options are detected.
125
+ */
126
+ function validateCliOptions(opts, command) {
127
+ const errors = [];
128
+ // Cache conflicts
129
+ if (opts.cache && opts.noCache) {
130
+ errors.push({
131
+ flags: ["--cache", "--no-cache"],
132
+ message: "--cache and --no-cache are mutually exclusive",
133
+ });
134
+ }
135
+ // --force overrides --start-block (warn, not error)
136
+ if (opts.force && opts.startBlock) {
137
+ errors.push({
138
+ flags: ["--force", "--start-block"],
139
+ message: "--force resets discovery to block 0, overriding --start-block",
140
+ });
141
+ }
142
+ // Track command specific validations
143
+ if (command === "track") {
144
+ // --inspect and --inspect-only are mutually exclusive
145
+ if (opts.inspect && opts.inspectOnly) {
146
+ errors.push({
147
+ flags: ["--inspect", "--inspect-only"],
148
+ message: "--inspect and --inspect-only are mutually exclusive",
149
+ });
150
+ }
151
+ // --inspect-only skips tracking, so execution options don't make sense
152
+ if (opts.inspectOnly) {
153
+ const conflictingFlags = [];
154
+ if (opts.prepare)
155
+ conflictingFlags.push("--prepare");
156
+ if (opts.write)
157
+ conflictingFlags.push("--write");
158
+ if (opts.prepareCompleted)
159
+ conflictingFlags.push("--prepare-completed");
160
+ if (opts.preparePending)
161
+ conflictingFlags.push("--prepare-pending");
162
+ if (conflictingFlags.length > 0) {
163
+ errors.push({
164
+ flags: ["--inspect-only", ...conflictingFlags],
165
+ message: `--inspect-only skips tracking; ${conflictingFlags.join(", ")} require tracking`,
166
+ });
167
+ }
168
+ }
169
+ }
170
+ if (errors.length > 0) {
171
+ const messages = errors.map((e) => ` ${e.flags.join(" + ")}: ${e.message}`);
172
+ throw new Error(`Conflicting options detected:\n${messages.join("\n")}`);
173
+ }
174
+ }
117
175
  /**
118
176
  * Parse gas settings from CLI options
119
177
  */
@@ -340,57 +398,114 @@ function formatTrackingResult(result, label) {
340
398
  }
341
399
  return lines.join("\n").concat("\n");
342
400
  }
343
- function formatCacheStatus(checkpoints) {
344
- let proposalTotal = 0, proposalComplete = 0, proposalActive = 0, proposalFailed = 0;
345
- let timelockTotal = 0, timelockComplete = 0, timelockActive = 0, timelockFailed = 0;
346
- let electionTotal = 0, electionComplete = 0;
347
- for (const [, checkpoint] of checkpoints) {
348
- const stages = checkpoint.cachedData?.completedStages ?? [];
349
- const isComplete = stages.length > 0 && (0, index_1.areAllStagesComplete)(stages);
350
- const errorCount = checkpoint.metadata?.errorCount ?? 0;
351
- const isFailed = errorCount >= exports.MAX_CONSECUTIVE_ERRORS;
352
- const input = checkpoint.input;
353
- if (input.type === "governor") {
354
- if ((0, index_1.isElectionGovernor)(input.governorAddress)) {
355
- electionTotal++;
356
- if (isComplete)
357
- electionComplete++;
401
+ function formatCacheStatus(checkpoints, elections) {
402
+ const stats = (0, index_1.computeCacheStats)(checkpoints, elections, exports.MAX_CONSECUTIVE_ERRORS);
403
+ const lines = [
404
+ `Total cached: ${stats.total}`,
405
+ ``,
406
+ `Proposals: ${stats.proposals.total}`,
407
+ ` Complete: ${stats.proposals.complete}`,
408
+ ` Active: ${stats.proposals.active}`,
409
+ ];
410
+ if (stats.proposals.errored > 0)
411
+ lines.push(` Failed: ${stats.proposals.errored}`);
412
+ lines.push(``, `Timelock Ops: ${stats.timelocks.total}`, ` Complete: ${stats.timelocks.complete}`, ` Active: ${stats.timelocks.active}`);
413
+ if (stats.timelocks.errored > 0)
414
+ lines.push(` Failed: ${stats.timelocks.errored}`);
415
+ if (stats.elections.total > 0) {
416
+ const active = stats.elections.total - stats.elections.complete;
417
+ lines.push(``, `Elections: ${stats.elections.total}`, ` Complete: ${stats.elections.complete}`, ` Active: ${active}`);
418
+ }
419
+ return lines.join("\n");
420
+ }
421
+ /**
422
+ * Format an election status for CLI output
423
+ */
424
+ function formatElectionResult(election) {
425
+ const lines = [];
426
+ const cohortName = election.cohort === 0 ? "First" : "Second";
427
+ const phaseName = election.phase.replace(/_/g, " ");
428
+ lines.push(`[Election #${election.electionIndex}]`);
429
+ lines.push(`Phase: ${phaseName}`);
430
+ lines.push(`Cohort: ${cohortName}`);
431
+ lines.push(`Complete: ${election.phase === "COMPLETED"}`);
432
+ lines.push(`Stages: ${election.stages?.length ?? 0}`);
433
+ lines.push("");
434
+ if (election.stages && election.stages.length > 0) {
435
+ for (let i = 0; i < election.stages.length; i++) {
436
+ const stage = election.stages[i];
437
+ const statusStr = stage.status;
438
+ const title = (0, index_1.formatStageTitle)(stage.type);
439
+ const eta = (0, index_1.calculateExpectedEta)(election.stages, i);
440
+ let line = ` ${title}: ${statusStr}`;
441
+ if (eta)
442
+ line += ` | ETA: ${new Date(eta * 1000).toISOString()}`;
443
+ lines.push(line);
444
+ for (const tx of stage.transactions) {
445
+ lines.push(` tx: ${tx.hash}`);
446
+ const url = (0, index_1.getStageTransactionUrl)(tx);
447
+ if (url)
448
+ lines.push(` ${url}`);
358
449
  }
359
- else {
360
- proposalTotal++;
361
- if (isComplete)
362
- proposalComplete++;
363
- else if (isFailed)
364
- proposalFailed++;
365
- else
366
- proposalActive++;
450
+ }
451
+ }
452
+ // Show timelock operation ID if tracked (useful for cross-referencing)
453
+ if (election.timelockOperationId) {
454
+ lines.push(` Timelock Op: ${election.timelockOperationId}`);
455
+ }
456
+ if (election.canProceedToMemberPhase) {
457
+ lines.push("");
458
+ lines.push(" → Ready to trigger member election");
459
+ }
460
+ if (election.canExecuteMember) {
461
+ lines.push("");
462
+ lines.push(" → Ready to execute member election");
463
+ }
464
+ if (election.canCreateElection) {
465
+ lines.push("");
466
+ lines.push(" → Ready to create election");
467
+ }
468
+ lines.push("");
469
+ return lines.join("\n");
470
+ }
471
+ /**
472
+ * Display a tracking result, automatically switching to election display for election proposals.
473
+ * Handles the election auto-switch logic internally, falling back to formatTrackingResult for non-elections.
474
+ *
475
+ * @param result - Tracking result to display
476
+ * @param label - Optional label prefix
477
+ */
478
+ function displayTrackingResult(result, label) {
479
+ if (result.isElection && result.electionStatus) {
480
+ const election = result.electionStatus;
481
+ const cohortName = election.cohort === 0 ? "First" : "Second";
482
+ console.log(`=== Election #${election.electionIndex} ===`);
483
+ console.log(`Phase: ${election.phase}`);
484
+ console.log(`Cohort: ${cohortName} (${election.cohort})`);
485
+ console.log(`Compliant Nominees: ${election.compliantNomineeCount}/${election.targetNomineeCount}`);
486
+ if (election.nomineeProposalId) {
487
+ console.log(`\nElection ID: ${election.nomineeProposalId}`);
488
+ console.log(`\nNominee Phase:`);
489
+ console.log(` State: ${election.nomineeProposalState}`);
490
+ if (election.vettingDeadline) {
491
+ console.log(` Vetting Deadline: block ${election.vettingDeadline}`);
367
492
  }
493
+ console.log(` In Vetting Period: ${election.isInVettingPeriod ? "YES" : "NO"}`);
368
494
  }
369
- else if (input.type === "timelock") {
370
- timelockTotal++;
371
- if (isComplete)
372
- timelockComplete++;
373
- else if (isFailed)
374
- timelockFailed++;
375
- else
376
- timelockActive++;
495
+ if (election.memberProposalId) {
496
+ console.log(`\nMember Phase:`);
497
+ console.log(` State: ${election.memberProposalState}`);
498
+ }
499
+ if (election.canProceedToMemberPhase) {
500
+ console.log(`\n→ Ready to trigger member election`);
501
+ }
502
+ if (election.canExecuteMember) {
503
+ console.log(`\n→ Ready to execute member election`);
377
504
  }
505
+ console.log("");
506
+ return;
378
507
  }
379
- const lines = [
380
- `Total cached: ${checkpoints.size}`,
381
- ``,
382
- `Proposals: ${proposalTotal}`,
383
- ` Complete: ${proposalComplete}`,
384
- ` Active: ${proposalActive}`,
385
- ];
386
- if (proposalFailed > 0)
387
- lines.push(` Failed: ${proposalFailed}`);
388
- lines.push(``, `Timelock Ops: ${timelockTotal}`, ` Complete: ${timelockComplete}`, ` Active: ${timelockActive}`);
389
- if (timelockFailed > 0)
390
- lines.push(` Failed: ${timelockFailed}`);
391
- if (electionTotal > 0)
392
- lines.push(``, `Elections: ${electionTotal} (${electionComplete} complete)`);
393
- return lines.join("\n");
508
+ console.log(formatTrackingResult(result, label));
394
509
  }
395
510
  // ============================================================================
396
511
  // Loop Runner
@@ -549,27 +664,193 @@ function shortScope(key) {
549
664
  }
550
665
  return key;
551
666
  }
667
+ /**
668
+ * Check if a checkpoint matches the enabled discovery targets.
669
+ * Used to filter incomplete checkpoints to only re-track types that are enabled.
670
+ */
671
+ function checkpointMatchesTargets(checkpoint, targets) {
672
+ if (checkpoint.input.type === "governor") {
673
+ const governorAddress = checkpoint.input.governorAddress;
674
+ // Skip election governors - they're handled separately
675
+ if ((0, index_1.isElectionGovernor)(governorAddress))
676
+ return false;
677
+ // Check if constitutional or non-constitutional governor is enabled
678
+ const isCore = (0, index_1.isConstitutional)(governorAddress);
679
+ return isCore ? !!targets.constitutionalGovernor : !!targets.nonConstitutionalGovernor;
680
+ }
681
+ if (checkpoint.input.type === "timelock") {
682
+ // Timelock operations: check if the corresponding timelock target is enabled
683
+ const timelockAddress = checkpoint.input.timelockAddress;
684
+ const isCore = (0, index_1.isConstitutional)(timelockAddress);
685
+ return isCore ? !!targets.l2ConstitutionalTimelock : !!targets.l2NonConstitutionalTimelock;
686
+ }
687
+ if (checkpoint.input.type === "election") {
688
+ return !!targets.electionNomineeGovernor || !!targets.electionMemberGovernor;
689
+ }
690
+ // Discovery checkpoints don't need re-tracking
691
+ return false;
692
+ }
693
+ /**
694
+ * Filter checkpoints to only include those matching enabled discovery targets.
695
+ * Used for JSON output and stats to ensure we only show tracked types.
696
+ */
697
+ function filterCheckpointsByTargets(checkpoints, targets) {
698
+ const filtered = new Map();
699
+ for (const [key, checkpoint] of checkpoints) {
700
+ if (checkpointMatchesTargets(checkpoint, targets)) {
701
+ filtered.set(key, checkpoint);
702
+ }
703
+ }
704
+ return filtered;
705
+ }
706
+ /**
707
+ * Calculate stats filtered by enabled discovery targets.
708
+ * Only counts checkpoints that match the enabled governors/timelocks.
709
+ */
710
+ function calculateFilteredStats(checkpoints, targets, maxErrorCount = 5) {
711
+ let proposalTotal = 0, proposalComplete = 0, proposalActive = 0, proposalErrored = 0;
712
+ let timelockTotal = 0, timelockComplete = 0, timelockActive = 0, timelockErrored = 0;
713
+ let electionTotal = 0, electionComplete = 0;
714
+ for (const [, checkpoint] of checkpoints) {
715
+ const complete = (0, index_1.isCheckpointComplete)(checkpoint);
716
+ const errored = (0, index_1.isCheckpointErrored)(checkpoint, maxErrorCount);
717
+ const inputType = checkpoint.input.type;
718
+ if (inputType === "governor") {
719
+ const governorAddress = checkpoint.input.governorAddress;
720
+ if ((0, index_1.isElectionGovernor)(governorAddress))
721
+ continue;
722
+ const isCore = (0, index_1.isConstitutional)(governorAddress);
723
+ const matchesTarget = isCore
724
+ ? !!targets.constitutionalGovernor
725
+ : !!targets.nonConstitutionalGovernor;
726
+ if (!matchesTarget)
727
+ continue;
728
+ proposalTotal++;
729
+ if (complete)
730
+ proposalComplete++;
731
+ else if (errored)
732
+ proposalErrored++;
733
+ else
734
+ proposalActive++;
735
+ }
736
+ else if (inputType === "timelock") {
737
+ const timelockAddress = checkpoint.input.timelockAddress;
738
+ const isCore = (0, index_1.isConstitutional)(timelockAddress);
739
+ const matchesTarget = isCore
740
+ ? !!targets.l2ConstitutionalTimelock
741
+ : !!targets.l2NonConstitutionalTimelock;
742
+ if (!matchesTarget)
743
+ continue;
744
+ timelockTotal++;
745
+ if (complete)
746
+ timelockComplete++;
747
+ else if (errored)
748
+ timelockErrored++;
749
+ else
750
+ timelockActive++;
751
+ }
752
+ else if (inputType === "election") {
753
+ // Only count elections if election tracking is enabled
754
+ if (!targets.electionNomineeGovernor && !targets.electionMemberGovernor)
755
+ continue;
756
+ electionTotal++;
757
+ if (complete)
758
+ electionComplete++;
759
+ }
760
+ }
761
+ return {
762
+ total: proposalTotal + timelockTotal + electionTotal,
763
+ proposals: {
764
+ total: proposalTotal,
765
+ complete: proposalComplete,
766
+ active: proposalActive,
767
+ errored: proposalErrored,
768
+ },
769
+ timelocks: {
770
+ total: timelockTotal,
771
+ complete: timelockComplete,
772
+ active: timelockActive,
773
+ errored: timelockErrored,
774
+ },
775
+ elections: { total: electionTotal, complete: electionComplete },
776
+ };
777
+ }
552
778
  async function runMonitorCycle(tracker, providers, options = {}) {
779
+ const result = { tracked: 0, prepared: 0, errors: 0, retracked: 0 };
780
+ // Fast path: elections-only mode skips discovery entirely
781
+ if (options.electionsOnly) {
782
+ const elections = [];
783
+ if (!isShuttingDown()) {
784
+ try {
785
+ // Use tracker's cached method - completed elections use cache (0 RPC calls)
786
+ // Use forceElections to bypass cache when --force is specified
787
+ const allElections = await tracker.trackAllElections({ force: options.forceElections });
788
+ for (const electionStatus of allElections) {
789
+ elections.push(electionStatus);
790
+ // Print each election
791
+ console.log(formatElectionResult(electionStatus));
792
+ }
793
+ }
794
+ catch (err) {
795
+ console.error("Election tracking failed:", err);
796
+ }
797
+ }
798
+ return {
799
+ result,
800
+ proposals: [],
801
+ timelockOps: [],
802
+ watermarks: {},
803
+ elections,
804
+ };
805
+ }
553
806
  const l2Provider = providers.l2Provider;
554
807
  const tipBlock = await l2Provider.getBlockNumber();
555
808
  const blockLag = options.blockLag ?? exports.DEFAULT_BLOCK_LAG;
556
809
  const currentBlock = Math.max(0, tipBlock - blockLag);
557
810
  const concurrency = options.concurrency ?? 1;
558
811
  const limit = (0, concurrency_1.pLimit)(concurrency);
559
- // Optional startBlock override (watermarks are exclusive, so subtract 1)
560
- const startBlockWatermarks = options.startBlock
561
- ? {
812
+ const maxAgeDays = options.maxAgeDays ?? exports.DEFAULT_MAX_AGE_DAYS;
813
+ // Calculate startBlock based on maxAgeDays if not explicitly provided
814
+ // ~7200 blocks per day on Arbitrum (12s block time on L1, ~250ms on L2)
815
+ const BLOCKS_PER_DAY = 86400 / 0.25; // ~345,600 blocks/day on Arbitrum One
816
+ let startBlockWatermarks;
817
+ // Load existing watermarks to determine scan range
818
+ const loadedWatermarks = await tracker.loadWatermarks();
819
+ const hasWatermarks = Object.values(loadedWatermarks.watermarks).some((v) => v !== undefined);
820
+ if (options.startBlock !== undefined) {
821
+ // Explicit startBlock override (watermarks are exclusive, so subtract 1)
822
+ startBlockWatermarks = {
562
823
  constitutionalGovernor: options.startBlock - 1,
563
824
  nonConstitutionalGovernor: options.startBlock - 1,
564
825
  electionNomineeGovernor: options.startBlock - 1,
565
826
  electionMemberGovernor: options.startBlock - 1,
566
827
  l2ConstitutionalTimelock: options.startBlock - 1,
567
828
  l2NonConstitutionalTimelock: options.startBlock - 1,
568
- }
569
- : undefined;
570
- const targets = (0, index_1.buildDefaultTargets)();
829
+ };
830
+ console.log(`Discovery: blocks ${options.startBlock} → ${currentBlock}`);
831
+ }
832
+ else if (!hasWatermarks) {
833
+ // No cache - calculate start block from maxAgeDays
834
+ const defaultStartBlock = Math.max(0, currentBlock - Math.floor(maxAgeDays * BLOCKS_PER_DAY));
835
+ startBlockWatermarks = {
836
+ constitutionalGovernor: defaultStartBlock,
837
+ nonConstitutionalGovernor: defaultStartBlock,
838
+ electionNomineeGovernor: defaultStartBlock,
839
+ electionMemberGovernor: defaultStartBlock,
840
+ l2ConstitutionalTimelock: defaultStartBlock,
841
+ l2NonConstitutionalTimelock: defaultStartBlock,
842
+ };
843
+ console.log(`No cached watermarks. Discovery: blocks ${defaultStartBlock} → ${currentBlock} (~${maxAgeDays} days)`);
844
+ }
845
+ else {
846
+ // Cached watermarks exist - calculate effective range from min watermark
847
+ const watermarkBlocks = Object.values(loadedWatermarks.watermarks).filter((v) => v !== undefined);
848
+ const minWatermark = Math.min(...watermarkBlocks);
849
+ const blockRange = currentBlock - minWatermark;
850
+ console.log(`Discovery: blocks ${minWatermark} → ${currentBlock} (${blockRange.toLocaleString()} blocks)`);
851
+ }
852
+ const targets = options.targets ?? (0, index_1.buildDefaultTargets)();
571
853
  const discoveryResult = await tracker.discoverAll(targets, currentBlock, startBlockWatermarks);
572
- const result = { tracked: 0, prepared: 0, errors: 0, retracked: 0 };
573
854
  const trackedKeys = new Set();
574
855
  const trackedOperationIds = new Set();
575
856
  async function track(key, trackFn) {
@@ -623,7 +904,6 @@ async function runMonitorCycle(tracker, providers, options = {}) {
623
904
  });
624
905
  }
625
906
  // Query incomplete checkpoints first to avoid duplicate tracking
626
- const maxAgeDays = options.maxAgeDays ?? exports.DEFAULT_MAX_AGE_DAYS;
627
907
  const incompleteCheckpoints = await tracker.queryIncompleteCheckpoints({
628
908
  maxAgeDays,
629
909
  maxErrorCount: exports.MAX_CONSECUTIVE_ERRORS,
@@ -654,14 +934,10 @@ async function runMonitorCycle(tracker, providers, options = {}) {
654
934
  },
655
935
  });
656
936
  }
657
- // 1b. Incomplete governor checkpoints to re-track (excluding elections)
658
- const nonElectionCheckpoints = incompleteCheckpoints.filter(({ checkpoint }) => {
659
- if (checkpoint.input.type === "governor")
660
- return !(0, index_1.isElectionGovernor)(checkpoint.input.governorAddress);
661
- return true;
662
- });
663
- result.retracked = nonElectionCheckpoints.length;
664
- for (const { key, checkpoint } of nonElectionCheckpoints) {
937
+ // 1b. Incomplete checkpoints to re-track (filtered by enabled targets)
938
+ const targetMatchingCheckpoints = incompleteCheckpoints.filter(({ checkpoint }) => checkpointMatchesTargets(checkpoint, targets));
939
+ result.retracked = targetMatchingCheckpoints.length;
940
+ for (const { key, checkpoint } of targetMatchingCheckpoints) {
665
941
  if (checkpoint.input.type === "governor") {
666
942
  proposalTasks.push({
667
943
  key,
@@ -699,7 +975,7 @@ async function runMonitorCycle(tracker, providers, options = {}) {
699
975
  });
700
976
  }
701
977
  // 2b. Incomplete timelock checkpoints to re-track
702
- for (const { key, checkpoint } of nonElectionCheckpoints) {
978
+ for (const { key, checkpoint } of targetMatchingCheckpoints) {
703
979
  if (checkpoint.input.type === "timelock") {
704
980
  const operationId = checkpoint.input.operationId;
705
981
  // Skip if already tracked via proposal
@@ -715,11 +991,28 @@ async function runMonitorCycle(tracker, providers, options = {}) {
715
991
  }
716
992
  // Run timelock tasks
717
993
  await Promise.all(timelockTasks.map((task) => limit(() => track(task.key, task.fn))));
994
+ // Phase 3: Track elections (only if election targets are enabled)
995
+ const elections = [];
996
+ const shouldTrackElections = targets.electionNomineeGovernor || targets.electionMemberGovernor;
997
+ if (shouldTrackElections && !isShuttingDown()) {
998
+ try {
999
+ // Use tracker's cached method - completed elections use cache (0 RPC calls)
1000
+ const allElections = await tracker.trackAllElections({ force: options.forceElections });
1001
+ for (const electionStatus of allElections) {
1002
+ elections.push(electionStatus);
1003
+ }
1004
+ }
1005
+ catch (err) {
1006
+ // Election tracking is non-critical, log and continue
1007
+ console.error("Election tracking failed:", err);
1008
+ }
1009
+ }
718
1010
  return {
719
1011
  result,
720
1012
  proposals: discoveryResult.proposals,
721
1013
  timelockOps: discoveryResult.timelockOps,
722
1014
  watermarks: discoveryResult.watermarks,
1015
+ elections,
723
1016
  };
724
1017
  }
725
1018
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/lib/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/lib/cli.ts"],"names":[],"mappings":"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"}