@gzeoneth/gov-tracker 0.2.1-beta.b2eeb41 → 0.2.1-beta.c266765

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 (55) hide show
  1. package/README.md +41 -2
  2. package/dist/abis.d.ts.map +1 -1
  3. package/dist/abis.js +22 -1
  4. package/dist/abis.js.map +1 -1
  5. package/dist/cli/cli.js +206 -12
  6. package/dist/cli/cli.js.map +1 -1
  7. package/dist/cli/lib/cli.d.ts +9 -1
  8. package/dist/cli/lib/cli.d.ts.map +1 -1
  9. package/dist/cli/lib/cli.js +80 -4
  10. package/dist/cli/lib/cli.js.map +1 -1
  11. package/dist/data/bundled-cache.json +1155 -962
  12. package/dist/deduplication.d.ts +132 -0
  13. package/dist/deduplication.d.ts.map +1 -0
  14. package/dist/deduplication.js +270 -0
  15. package/dist/deduplication.js.map +1 -0
  16. package/dist/election.d.ts +141 -1
  17. package/dist/election.d.ts.map +1 -1
  18. package/dist/election.js +505 -88
  19. package/dist/election.js.map +1 -1
  20. package/dist/index.d.ts +4 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +27 -3
  23. package/dist/index.js.map +1 -1
  24. package/dist/stages/builder.d.ts +4 -0
  25. package/dist/stages/builder.d.ts.map +1 -1
  26. package/dist/stages/builder.js +7 -0
  27. package/dist/stages/builder.js.map +1 -1
  28. package/dist/stages/voting.d.ts.map +1 -1
  29. package/dist/stages/voting.js +5 -4
  30. package/dist/stages/voting.js.map +1 -1
  31. package/dist/tracker/discovery.d.ts +39 -8
  32. package/dist/tracker/discovery.d.ts.map +1 -1
  33. package/dist/tracker/discovery.js +141 -12
  34. package/dist/tracker/discovery.js.map +1 -1
  35. package/dist/tracker.d.ts +24 -4
  36. package/dist/tracker.d.ts.map +1 -1
  37. package/dist/tracker.js +57 -8
  38. package/dist/tracker.js.map +1 -1
  39. package/dist/types/core.d.ts +1 -1
  40. package/dist/types/core.d.ts.map +1 -1
  41. package/dist/types/election.d.ts +88 -0
  42. package/dist/types/election.d.ts.map +1 -1
  43. package/dist/types/index.d.ts +2 -2
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/types/stages.d.ts +6 -0
  47. package/dist/types/stages.d.ts.map +1 -1
  48. package/dist/types/stages.js.map +1 -1
  49. package/dist/types/tracking.d.ts +27 -1
  50. package/dist/types/tracking.d.ts.map +1 -1
  51. package/dist/utils/timing.d.ts +13 -0
  52. package/dist/utils/timing.d.ts.map +1 -1
  53. package/dist/utils/timing.js +35 -0
  54. package/dist/utils/timing.js.map +1 -1
  55. package/package.json +1 -1
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.WATERMARKS_KEY = void 0;
10
10
  exports.loadWatermarks = loadWatermarks;
11
+ exports.verifyWatermark = verifyWatermark;
11
12
  exports.saveWatermarks = saveWatermarks;
12
13
  exports.discoverProposals = discoverProposals;
13
14
  exports.discoverTimelockOps = discoverTimelockOps;
@@ -17,6 +18,7 @@ const constants_1 = require("../constants");
17
18
  const governor_discovery_1 = require("../discovery/governor-discovery");
18
19
  const timelock_discovery_1 = require("../discovery/timelock-discovery");
19
20
  const logger_1 = require("../utils/logger");
21
+ const rpc_utils_1 = require("../utils/rpc-utils");
20
22
  const { tracker: logTracker, discovery: logDiscovery } = logger_1.loggers;
21
23
  /**
22
24
  * Cache key for discovery watermarks checkpoint.
@@ -26,20 +28,83 @@ exports.WATERMARKS_KEY = "discovery:watermarks";
26
28
  /**
27
29
  * Load discovery watermarks from cache.
28
30
  * Watermarks are stored as a TrackingCheckpoint for unified cache format.
29
- * Returns empty object if no watermarks are cached.
31
+ * Returns empty objects if no watermarks are cached.
30
32
  */
31
33
  async function loadWatermarks(cache) {
32
34
  if (!cache)
33
- return {};
35
+ return { watermarks: {}, hashes: {} };
34
36
  const checkpoint = await cache.get(exports.WATERMARKS_KEY);
35
- return checkpoint?.cachedData.discoveryWatermarks ?? {};
37
+ return {
38
+ watermarks: checkpoint?.cachedData.discoveryWatermarks ?? {},
39
+ hashes: checkpoint?.cachedData.watermarkHashes ?? {},
40
+ };
41
+ }
42
+ /**
43
+ * Number of blocks to roll back when a reorg is detected.
44
+ * 1000 blocks on L2 Arbitrum ≈ ~4 minutes, provides safety margin.
45
+ */
46
+ const REORG_ROLLBACK_BLOCKS = 1000;
47
+ /**
48
+ * Verify a watermark's block hash against the chain.
49
+ * If the hash doesn't match (reorg detected), returns a rolled-back block number.
50
+ *
51
+ * @param key - Watermark key for logging
52
+ * @param blockNumber - The watermark block number to verify
53
+ * @param expectedHash - The stored block hash (undefined if not stored)
54
+ * @param provider - Provider to fetch current block hash
55
+ * @returns The verified block number (original if valid, rolled back if reorg detected)
56
+ */
57
+ async function verifyWatermark(key, blockNumber, expectedHash, provider) {
58
+ const rollback = () => ({
59
+ blockNumber: Math.max(0, blockNumber - REORG_ROLLBACK_BLOCKS),
60
+ isValid: false,
61
+ });
62
+ // No stored hash - can't verify, but fetch current hash for future verification
63
+ if (!expectedHash) {
64
+ try {
65
+ const block = await (0, rpc_utils_1.queryWithRetry)(() => provider.getBlock(blockNumber));
66
+ if (block) {
67
+ logDiscovery("%s: no stored hash, establishing hash at block %d", key, blockNumber);
68
+ return { blockNumber, isValid: true, newHash: block.hash };
69
+ }
70
+ }
71
+ catch {
72
+ // Block might not exist yet or provider error - continue without hash
73
+ }
74
+ return { blockNumber, isValid: true };
75
+ }
76
+ // Verify stored hash against chain
77
+ try {
78
+ const block = await (0, rpc_utils_1.queryWithRetry)(() => provider.getBlock(blockNumber));
79
+ if (!block) {
80
+ const result = rollback();
81
+ logDiscovery("%s: block %d not found, rolling back to %d", key, blockNumber, result.blockNumber);
82
+ return result;
83
+ }
84
+ if (block.hash.toLowerCase() === expectedHash.toLowerCase()) {
85
+ return { blockNumber, isValid: true, newHash: block.hash };
86
+ }
87
+ // Hash mismatch - reorg detected
88
+ const result = rollback();
89
+ logDiscovery("%s: REORG DETECTED at block %d (expected %s, got %s), rolling back to %d", key, blockNumber, expectedHash.slice(0, 10), block.hash.slice(0, 10), result.blockNumber);
90
+ return result;
91
+ }
92
+ catch {
93
+ // Provider error - be conservative and continue with stored watermark
94
+ logDiscovery("%s: failed to verify block %d, continuing with stored value", key, blockNumber);
95
+ return { blockNumber, isValid: true };
96
+ }
36
97
  }
37
98
  /**
38
99
  * Save discovery watermarks to cache.
39
100
  * Watermarks are stored as TrackingCheckpoint with proper metadata,
40
101
  * following the same pattern as proposal/timelock checkpoints.
102
+ *
103
+ * @param watermarks - Block numbers per discovery key
104
+ * @param hashes - Block hashes per discovery key (for reorg detection)
105
+ * @param cache - Cache adapter
41
106
  */
42
- async function saveWatermarks(watermarks, cache) {
107
+ async function saveWatermarks(watermarks, hashes, cache) {
43
108
  if (!cache)
44
109
  return;
45
110
  // Calculate the max L2 block from watermarks for lastProcessedBlock
@@ -61,6 +126,7 @@ async function saveWatermarks(watermarks, cache) {
61
126
  lastProcessedBlock: { l1: 0, l2: maxL2Block },
62
127
  cachedData: {
63
128
  discoveryWatermarks: watermarks,
129
+ watermarkHashes: hashes,
64
130
  },
65
131
  metadata: {
66
132
  errorCount: 0,
@@ -143,25 +209,65 @@ async function createPendingCheckpoints(proposals, _timelockOps, cache) {
143
209
  * Discover all proposals and timelock operations with auto-watermark management.
144
210
  *
145
211
  * This is the unified discovery API that handles everything internally:
212
+ * - Verifies watermark hashes to detect chain reorgs (rolls back if mismatch)
146
213
  * - Loads watermarks from provided watermarks or starts from governance deployment
147
214
  * - Discovers from all enabled targets in parallel (with scoped logging)
148
215
  * - Creates pending checkpoints for discovered items
149
- * - Returns updated watermarks for saving
216
+ * - Returns updated watermarks and hashes for saving
150
217
  *
151
218
  * @param targets - Which governors/timelocks to scan
152
219
  * @param toBlock - End block for discovery
153
220
  * @param l2Provider - L2 provider
154
221
  * @param cache - Cache adapter for pending checkpoint creation
155
- * @param fromWatermarks - Starting watermarks
222
+ * @param fromWatermarks - Starting watermarks (block numbers)
223
+ * @param fromHashes - Starting hashes for reorg detection
156
224
  * @param options.chunkSize - Optional chunk size for log searches
157
- * @returns Discovered proposals, timelock ops, and updated watermarks
225
+ * @param options.skipReorgCheck - Skip reorg verification (for testing)
226
+ * @returns Discovered proposals, timelock ops, updated watermarks and hashes
158
227
  */
159
- async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks, options = {}) {
160
- const watermarks = fromWatermarks;
228
+ async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks, fromHashes = {}, options = {}) {
161
229
  const defaultStartBlock = constants_1.GOVERNANCE_START_BLOCKS.L2;
230
+ // Determine which keys we'll be discovering
231
+ const allKeys = [
232
+ "constitutionalGovernor",
233
+ "nonConstitutionalGovernor",
234
+ "electionNomineeGovernor",
235
+ "electionMemberGovernor",
236
+ "l2ConstitutionalTimelock",
237
+ "l2NonConstitutionalTimelock",
238
+ ];
239
+ const activeKeys = allKeys.filter((key) => targets[key]);
240
+ // Verify watermarks and get effective start blocks (with reorg detection)
241
+ const verifiedWatermarks = {};
242
+ const updatedHashes = { ...fromHashes };
243
+ if (!options.skipReorgCheck) {
244
+ // Verify all active watermarks in parallel
245
+ const verificationPromises = activeKeys.map(async (key) => {
246
+ const storedBlock = fromWatermarks[key];
247
+ if (storedBlock === undefined) {
248
+ return { key, blockNumber: defaultStartBlock };
249
+ }
250
+ const result = await verifyWatermark(key, storedBlock, fromHashes[key], l2Provider);
251
+ // Update hash if we got a new one
252
+ if (result.newHash) {
253
+ updatedHashes[key] = result.newHash;
254
+ }
255
+ return { key, blockNumber: result.blockNumber };
256
+ });
257
+ const verificationResults = await Promise.all(verificationPromises);
258
+ for (const { key, blockNumber } of verificationResults) {
259
+ verifiedWatermarks[key] = blockNumber;
260
+ }
261
+ }
262
+ else {
263
+ // Skip verification - use provided watermarks directly
264
+ for (const key of activeKeys) {
265
+ verifiedWatermarks[key] = fromWatermarks[key] ?? defaultStartBlock;
266
+ }
267
+ }
162
268
  // Helper to create scoped discovery task
163
269
  const scopedProposalTask = (key, scopeName, governorAddress) => {
164
- const fromBlock = watermarks[key] ?? defaultStartBlock;
270
+ const fromBlock = verifiedWatermarks[key] ?? defaultStartBlock;
165
271
  return (0, logger_1.withScope)(scopeName, async () => {
166
272
  const proposals = await discoverProposals(governorAddress, fromBlock, toBlock, l2Provider, {
167
273
  chunkSize: options.chunkSize,
@@ -170,7 +276,7 @@ async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks,
170
276
  });
171
277
  };
172
278
  const scopedTimelockTask = (key, scopeName, timelockAddress) => {
173
- const fromBlock = watermarks[key] ?? defaultStartBlock;
279
+ const fromBlock = verifiedWatermarks[key] ?? defaultStartBlock;
174
280
  return (0, logger_1.withScope)(scopeName, async () => {
175
281
  const ops = await discoverTimelockOps(timelockAddress, fromBlock, toBlock, l2Provider, {
176
282
  chunkSize: options.chunkSize,
@@ -207,7 +313,7 @@ async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks,
207
313
  // Collect results and update watermarks
208
314
  const allProposals = [];
209
315
  const allTimelockOps = [];
210
- const newWatermarks = { ...watermarks };
316
+ const newWatermarks = { ...verifiedWatermarks };
211
317
  for (const { key, proposals } of proposalResults) {
212
318
  allProposals.push(...proposals);
213
319
  newWatermarks[key] = toBlock;
@@ -216,6 +322,28 @@ async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks,
216
322
  allTimelockOps.push(...ops);
217
323
  newWatermarks[key] = toBlock;
218
324
  }
325
+ // Fetch toBlock hash for reorg detection on next run
326
+ // Only need to fetch once since all keys use the same toBlock
327
+ let toBlockHash;
328
+ if (activeKeys.length > 0) {
329
+ try {
330
+ const block = await (0, rpc_utils_1.queryWithRetry)(() => l2Provider.getBlock(toBlock));
331
+ if (block) {
332
+ toBlockHash = block.hash;
333
+ }
334
+ }
335
+ catch {
336
+ // Failed to get block hash - continue without it
337
+ logDiscovery("failed to fetch toBlock hash for reorg detection");
338
+ }
339
+ }
340
+ // Update hashes for all active keys with toBlock hash
341
+ const newHashes = { ...updatedHashes };
342
+ if (toBlockHash) {
343
+ for (const key of activeKeys) {
344
+ newHashes[key] = toBlockHash;
345
+ }
346
+ }
219
347
  // Create pending checkpoints for discovered items
220
348
  await createPendingCheckpoints(allProposals, allTimelockOps, cache);
221
349
  logDiscovery("complete: %d proposals, %d timelockOps", allProposals.length, allTimelockOps.length);
@@ -223,6 +351,7 @@ async function discoverAll(targets, toBlock, l2Provider, cache, fromWatermarks,
223
351
  proposals: allProposals,
224
352
  timelockOps: allTimelockOps,
225
353
  watermarks: newWatermarks,
354
+ hashes: newHashes,
226
355
  };
227
356
  }
228
357
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tracker/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tracker/discovery.ts"],"names":[],"mappings":"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"}
package/dist/tracker.d.ts CHANGED
@@ -12,7 +12,9 @@
12
12
  * - tracker/execute.ts: Transaction preparation
13
13
  */
14
14
  import { ethers } from "ethers";
15
- import { TrackerOptions, TrackingResult, TrackedStage, TrackingCheckpoint, TrackerStats, ChunkingConfig, DiscoveryWatermarks, DiscoveryTargets, PrepareResult, PrepareOptions, ElectionCheckResult, TimelockLink } from "./types";
15
+ import { TrackerOptions, TrackingResult, TrackedStage, TrackingCheckpoint, TrackerStats, ChunkingConfig, DiscoveryWatermarks, DiscoveryTargets, PrepareResult, PrepareOptions, ElectionCheckResult, ElectionProposalStatus, TimelockLink } from "./types";
16
+ import { LoadedWatermarks } from "./tracker/discovery";
17
+ import { WatermarkHashes } from "./types";
16
18
  import { DiscoveredProposal, DiscoveredTimelockOp } from "./tracker/discovery";
17
19
  /**
18
20
  * Extract TimelockLink from stages if PROPOSAL_QUEUED is completed
@@ -72,13 +74,30 @@ export declare class ProposalStageTracker {
72
74
  * Watermarks are stored as a TrackingCheckpoint for unified cache format.
73
75
  * Returns empty object if no watermarks are cached.
74
76
  */
75
- loadWatermarks(): Promise<DiscoveryWatermarks>;
77
+ loadWatermarks(): Promise<LoadedWatermarks>;
76
78
  /**
77
79
  * Save discovery watermarks to cache.
78
80
  * Watermarks are stored as TrackingCheckpoint with proper metadata,
79
81
  * following the same pattern as proposal/timelock checkpoints.
82
+ *
83
+ * @param watermarks - Block numbers per discovery key
84
+ * @param hashes - Block hashes per discovery key (for reorg detection)
85
+ */
86
+ saveWatermarks(watermarks: DiscoveryWatermarks, hashes?: WatermarkHashes): Promise<void>;
87
+ /**
88
+ * Save an election checkpoint to cache.
89
+ * Elections are stored with key format: `election:{electionIndex}`
90
+ *
91
+ * @param electionStatus - Election status from trackElectionProposal
92
+ */
93
+ saveElectionCheckpoint(electionStatus: ElectionProposalStatus): Promise<void>;
94
+ /**
95
+ * Get an election checkpoint from cache.
96
+ *
97
+ * @param electionIndex - Election index
98
+ * @returns Election status or null if not cached
80
99
  */
81
- saveWatermarks(watermarks: DiscoveryWatermarks): Promise<void>;
100
+ getElectionCheckpoint(electionIndex: number): Promise<ElectionProposalStatus | null>;
82
101
  /**
83
102
  * Discover proposals from a governor in a block range.
84
103
  *
@@ -101,9 +120,10 @@ export declare class ProposalStageTracker {
101
120
  * Discover all proposals and timelock operations with auto-watermark management.
102
121
  *
103
122
  * This is the unified discovery API that handles everything internally:
123
+ * - Verifies watermark hashes to detect chain reorgs (rolls back if mismatch)
104
124
  * - Loads watermarks from cache (or uses provided fromWatermarks)
105
125
  * - Discovers from all enabled targets in parallel
106
- * - Auto-saves updated watermarks to cache
126
+ * - Auto-saves updated watermarks and hashes to cache
107
127
  *
108
128
  * @param targets - Which governors/timelocks to scan
109
129
  * @param toBlock - End block for discovery
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
package/dist/tracker.js CHANGED
@@ -131,9 +131,47 @@ class ProposalStageTracker {
131
131
  * Save discovery watermarks to cache.
132
132
  * Watermarks are stored as TrackingCheckpoint with proper metadata,
133
133
  * following the same pattern as proposal/timelock checkpoints.
134
+ *
135
+ * @param watermarks - Block numbers per discovery key
136
+ * @param hashes - Block hashes per discovery key (for reorg detection)
137
+ */
138
+ async saveWatermarks(watermarks, hashes = {}) {
139
+ return (0, discovery_1.saveWatermarks)(watermarks, hashes, this.cache);
140
+ }
141
+ /**
142
+ * Save an election checkpoint to cache.
143
+ * Elections are stored with key format: `election:{electionIndex}`
144
+ *
145
+ * @param electionStatus - Election status from trackElectionProposal
146
+ */
147
+ async saveElectionCheckpoint(electionStatus) {
148
+ if (!this.cache)
149
+ return;
150
+ const key = `election:${electionStatus.electionIndex}`;
151
+ const checkpoint = {
152
+ version: 1,
153
+ createdAt: Date.now(),
154
+ input: { type: "election", electionIndex: electionStatus.electionIndex },
155
+ lastProcessedStage: null,
156
+ lastProcessedBlock: { l1: 0, l2: 0 },
157
+ cachedData: { electionStatus },
158
+ metadata: { errorCount: 0, lastTrackedAt: Date.now() },
159
+ };
160
+ await this.cache.set(key, checkpoint);
161
+ logTracker("saved election checkpoint: %s (phase: %s)", key, electionStatus.phase);
162
+ }
163
+ /**
164
+ * Get an election checkpoint from cache.
165
+ *
166
+ * @param electionIndex - Election index
167
+ * @returns Election status or null if not cached
134
168
  */
135
- async saveWatermarks(watermarks) {
136
- return (0, discovery_1.saveWatermarks)(watermarks, this.cache);
169
+ async getElectionCheckpoint(electionIndex) {
170
+ if (!this.cache)
171
+ return null;
172
+ const key = `election:${electionIndex}`;
173
+ const checkpoint = await this.cache.get(key);
174
+ return checkpoint?.cachedData?.electionStatus ?? null;
137
175
  }
138
176
  // Discovery API
139
177
  /**
@@ -162,9 +200,10 @@ class ProposalStageTracker {
162
200
  * Discover all proposals and timelock operations with auto-watermark management.
163
201
  *
164
202
  * This is the unified discovery API that handles everything internally:
203
+ * - Verifies watermark hashes to detect chain reorgs (rolls back if mismatch)
165
204
  * - Loads watermarks from cache (or uses provided fromWatermarks)
166
205
  * - Discovers from all enabled targets in parallel
167
- * - Auto-saves updated watermarks to cache
206
+ * - Auto-saves updated watermarks and hashes to cache
168
207
  *
169
208
  * @param targets - Which governors/timelocks to scan
170
209
  * @param toBlock - End block for discovery
@@ -172,11 +211,13 @@ class ProposalStageTracker {
172
211
  * @returns Discovered proposals, timelock ops, and updated watermarks
173
212
  */
174
213
  async discoverAll(targets, toBlock, fromWatermarks) {
175
- // Load watermarks from cache (or use provided override)
176
- const watermarks = fromWatermarks ?? (await this.loadWatermarks());
177
- const result = await (0, discovery_2.discoverAll)(targets, toBlock, this.l2Provider, this.cache, watermarks, { chunkSize: this.chunkingConfig.l2ChunkSize });
178
- // Auto-save updated watermarks
179
- await this.saveWatermarks(result.watermarks);
214
+ // Load watermarks and hashes from cache (or use provided override)
215
+ const loaded = await this.loadWatermarks();
216
+ const watermarks = fromWatermarks ?? loaded.watermarks;
217
+ const hashes = fromWatermarks ? {} : loaded.hashes; // Only use cached hashes if using cached watermarks
218
+ const result = await (0, discovery_2.discoverAll)(targets, toBlock, this.l2Provider, this.cache, watermarks, hashes, { chunkSize: this.chunkingConfig.l2ChunkSize });
219
+ // Auto-save updated watermarks and hashes
220
+ await this.saveWatermarks(result.watermarks, result.hashes);
180
221
  return result;
181
222
  }
182
223
  // Checkpoint Query API
@@ -532,6 +573,7 @@ class ProposalStageTracker {
532
573
  status,
533
574
  canCreate: status.canCreateElection,
534
575
  canTriggerMember: false,
576
+ canExecuteMember: false,
535
577
  prepared: {},
536
578
  };
537
579
  if (status.canCreateElection) {
@@ -543,12 +585,19 @@ class ProposalStageTracker {
543
585
  const electionStatus = await (0, election_1.trackElectionProposal)(currentElectionIndex, this.l2Provider, this.l1Provider);
544
586
  result.currentElection = electionStatus;
545
587
  result.canTriggerMember = electionStatus.canProceedToMemberPhase;
588
+ result.canExecuteMember = electionStatus.canExecuteMember;
546
589
  if (electionStatus.canProceedToMemberPhase) {
547
590
  const memberTx = await (0, election_1.prepareMemberElectionTrigger)(electionStatus, this.l2Provider);
548
591
  if (memberTx) {
549
592
  result.prepared.triggerMember = memberTx;
550
593
  }
551
594
  }
595
+ if (electionStatus.canExecuteMember) {
596
+ const executeTx = await (0, election_1.prepareMemberElectionExecution)(electionStatus, this.l2Provider);
597
+ if (executeTx) {
598
+ result.prepared.executeMember = executeTx;
599
+ }
600
+ }
552
601
  }
553
602
  return result;
554
603
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAuEH,kDA0BC;AA+pBD,sCAEC;AAhwBD,mCAAgC;AAChC,2CAAyC;AACzC,iDAAyD;AAkBzD,2CAAmF;AACnF,yCAKoB;AACpB,uEAA0E;AAC1E,uEAA2E;AAC3E,0CAA2C;AAE3C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,gBAAO,CAAC;AAEjE,mDAAmD;AACnD,2CASyB;AACzB,iDAAkF;AAElF,8BAA8B;AAC9B,2CAA6E;AAC7E,mDAAqE;AAErE,mDAM6B;AAC7B,2CAMyB;AACzB,+CAAqF;AAErF;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAsB;IACxD,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAEzD,IACE,CAAC,WAAW;QACZ,WAAW,CAAC,IAAI,KAAK,iBAAiB;QACtC,WAAW,CAAC,MAAM,KAAK,WAAW,EAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACjD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;IACjD,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;IACzD,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IAElE,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM;QACN,WAAW;QACX,eAAe;QACf,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,oBAAoB;IAU/B,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,8EAA8E;QAC9E,IAAI,CAAC,UAAU;YACb,OAAO,CAAC,UAAU,IAAI,IAAI,eAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,OAAO,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,YAAY,IAAI,IAAI,eAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,IAAI,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,mCAAuB,CAAC;QAExE,uEAAuE;QACvE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,sBAAsB;IAEtB;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,SAAiB;QAI5C,OAAO,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,uBAAuB;IAEvB;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,IAAA,0BAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,UAA+B;QAClD,OAAO,IAAA,0BAAc,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB;IAEhB;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,eAAuB,EACvB,SAAiB,EACjB,OAAe;QAEf,OAAO,IAAA,6BAAyB,EAAC,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,mBAAmB,CACvB,eAAuB,EACvB,SAAiB,EACjB,OAAe;QAEf,OAAO,IAAA,+BAA2B,EAAC,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,WAAW,CACf,OAAyB,EACzB,OAAe,EACf,cAAoC;QAMpC,wDAAwD;QACxD,MAAM,UAAU,GAAG,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAmB,EACtC,OAAO,EACP,OAAO,EACP,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,EACV,UAAU,EACV,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAC/C,CAAC;QAEF,+BAA+B;QAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB;IAEvB;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAA,0BAA0B,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,GAAW;QAC7B,OAAO,IAAA,qBAAqB,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAA,yBAAyB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,0BAA0B,CAC9B,UAGI,EAAE;QAEN,OAAO,IAAA,kCAAkC,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,gBAAwB,CAAC;QACtC,OAAO,IAAA,gBAAgB,EAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,6BAA6B;IAE7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAEvC,iCAAiC;QACjC,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;QAExC,wCAAwC;QACxC,IAAI,UAA0C,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC;YAC/E,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wDAAwD;YACxD,+DAA+D;YAC/D,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,GAA0B;oBACnC,IAAI,EAAE,UAAU;oBAChB,eAAe,EAAE,EAAE;oBACnB,UAAU,EAAE,EAAE;oBACd,cAAc,EAAE,MAAM;iBACvB,CAAC;gBACF,MAAM,cAAc,GAAG,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,IAAA,gCAAoB,EAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;gBAEvE,MAAM,eAAe,GAAuB,UAAU,IAAI;oBACxD,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,KAAK;oBACL,kBAAkB,EAAE,IAAI;oBACxB,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACpC,UAAU,EAAE,EAAE;iBACf,CAAC;gBACF,eAAe,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBAChD,UAAU,CACR,iDAAiD,EACjD,QAAQ,EACR,aAAa,EACb,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CACnD,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CACjC,MAAc,EACd,QAAgB,EAChB,UAA0C;QAE1C,8DAA8D;QAC9D,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxD,UAAU,CAAC,0CAA0C,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE9E,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjD,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,UAAU,EACV,QAAQ,CACT,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjD,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,eAAe,EACrB,UAAU,EACV,QAAQ,CACT,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAA,6CAAwB,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,QAAQ,EAAE,CAAC;YACb,YAAY,CAAC,qCAAqC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjD,QAAQ,CAAC,eAAe,EACxB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,cAAc,EACvB,UAAU,EACV,QAAQ,CACT,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,MAAM,IAAA,8CAAyB,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrF,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,YAAY,CAAC,sCAAsC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjF,2FAA2F;YAC3F,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC3C,MAAM,OAAO,GAAqB,EAAE,CAAC;YAErC,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;gBACxC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;oBAAE,SAAS;gBACtD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjD,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,WAAW,EACjB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,KAAK,CACN,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,UAAU,CAAC,gDAAgD,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CACrC,eAAuB,EACvB,UAAkB,EAClB,cAAsB,EACtB,UAA0C,EAC1C,QAAgB;QAEhB,MAAM,KAAK,GAA0B;YACnC,IAAI,EAAE,UAAU;YAChB,eAAe;YACf,UAAU;YACV,cAAc;SACf,CAAC;QAEF,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC;YACvC,SAAS,EAAE;gBACT,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,IAAI,EAAE,IAAI,CAAC,YAAY;aACxB;YACD,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU;YACV,QAAQ;SACT,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAA,gCAAqB,EAAC,YAAY,CAAC,CAAC;QAE7D,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAErD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,UAAU,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CACrC,eAAuB,EACvB,WAAmB,EACnB,eAAuB,EACvB,UAA0C,EAC1C,QAAgB,EAChB,kBAAwD;QAExD,MAAM,KAAK,GAA0B;YACnC,IAAI,EAAE,UAAU;YAChB,eAAe;YACf,WAAW;YACX,eAAe;SAChB,CAAC;QAEF,8CAA8C;QAC9C,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC;YACvC,SAAS,EAAE;gBACT,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,IAAI,EAAE,IAAI,CAAC,YAAY;aACxB;YACD,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU;YACV,QAAQ;YACR,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAA,gCAAqB,EAAC,YAAY,CAAC,CAAC;QAE7D,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAErD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,UAAU,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,KAAoB;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM;YACN,UAAU;YACV,UAAU,EAAE,IAAA,kBAAU,EAAC,KAAK,CAAC;YAC7B,YAAY,EAAE,IAAA,uBAAe,EAAC,KAAK,CAAC;YACpC,YAAY,EAAE,IAAA,uBAAe,EAAC,KAAK,CAAC;YACpC,YAAY;YACZ,YAAY,EAAE,IAAA,wBAAgB,EAAC,KAAK,CAAC;YACrC,UAAU,EAAE,IAAA,qBAAa,EAAC,KAAK,CAAC;SACjC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAA8B;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CACR,gFAAgF;oBAC9E,yCAAyC,EAC3C,OAAO,CAAC,MAAM,EACd,KAAK,CAAC,cAAc,CACrB,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CACR,gFAAgF;oBAC9E,yCAAyC,EAC3C,OAAO,CAAC,MAAM,EACd,KAAK,CAAC,eAAe,CACtB,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sCAAuC,KAA0B,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,0BAA0B;IAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,kBAAkB,CACtB,KAAmB,EACnB,UAA0B,EAAE;QAE5B,OAAO,IAAA,4BAA0B,EAC/B,KAAK,EACL;YACE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,kBAAkB;IAElB;;OAEG;IACH,YAAY;QAKV,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,UAAU;YACnB,EAAE,EAAE,IAAI,CAAC,UAAU;YACnB,IAAI,EAAE,IAAI,CAAC,YAAY;SACxB,CAAC;IACJ,CAAC;IAED,mBAAmB;IAEnB;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,UAA+C,EAAE;QAEjD,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,IAAI,qBAAS,CAAC,yBAAyB,CAAC;QAE9F,UAAU,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAE5F,MAAM,MAAM,GAAwB;YAClC,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACnC,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACzE,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,WAAW,CAAC;QAC/C,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,oBAAoB,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,MAAM,IAAA,gCAAqB,EAChD,oBAAoB,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,CAChB,CAAC;YAEF,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC;YACxC,MAAM,CAAC,gBAAgB,GAAG,cAAc,CAAC,uBAAuB,CAAC;YAEjE,IAAI,cAAc,CAAC,uBAAuB,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,uCAA4B,EAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9nBD,oDA8nBC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAuB;IACnD,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export declare function isL2Chain(chain: Chain): chain is L2Chain;
48
48
  */
49
49
  export declare function getChainDisplayName(chain: Chain): string;
50
50
  export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED";
51
- export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED";
51
+ export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED" | "CANCELED";
52
52
  export interface StageTransaction {
53
53
  hash: string;
54
54
  blockNumber: number;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAI1C,CAAC;AAWX;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU,CAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAExD;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAID,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,oBAAoB,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACpC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAI1C,CAAC;AAWX;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU,CAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAExD;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAID,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,oBAAoB,CAAC;AAEzB,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,SAAS,GACT,OAAO,GACP,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACpC"}
@@ -1,8 +1,92 @@
1
1
  /**
2
2
  * Election-related types for Security Council elections
3
3
  */
4
+ import { BigNumber } from "ethers";
4
5
  import { ProposalState } from "./governor";
5
6
  import { PreparedTransaction } from "./tracking";
7
+ /**
8
+ * A contender who has registered for the nominee election
9
+ */
10
+ export interface ElectionContender {
11
+ address: string;
12
+ /** Block number when they registered as contender */
13
+ registeredAtBlock: number;
14
+ /** Transaction hash of ContenderAdded event */
15
+ registrationTxHash: string;
16
+ }
17
+ /**
18
+ * A nominee who received enough votes to qualify
19
+ */
20
+ export interface ElectionNominee {
21
+ address: string;
22
+ /** Total votes received from all voters */
23
+ votesReceived: BigNumber;
24
+ /** Whether excluded by the nominee vetter */
25
+ isExcluded: boolean;
26
+ /** Block when became nominee (crossed vote threshold) */
27
+ nominatedAtBlock?: number;
28
+ /** Block when excluded (if applicable) */
29
+ excludedAtBlock?: number;
30
+ /** Transaction hash of exclusion (if applicable) */
31
+ exclusionTxHash?: string;
32
+ }
33
+ /**
34
+ * Vote cast in the member election (with decreasing weight over time)
35
+ */
36
+ export interface MemberElectionVote {
37
+ voter: string;
38
+ nominee: string;
39
+ votes: BigNumber;
40
+ weight: BigNumber;
41
+ blockNumber: number;
42
+ txHash: string;
43
+ }
44
+ /**
45
+ * Nominee's standing in the member election
46
+ */
47
+ export interface MemberElectionNominee {
48
+ address: string;
49
+ /** Total weighted votes received */
50
+ weightReceived: BigNumber;
51
+ /** Whether in top 6 (will be elected) */
52
+ isWinner: boolean;
53
+ /** Rank by weight (1 = highest) */
54
+ rank: number;
55
+ }
56
+ /**
57
+ * Detailed nominee election information
58
+ */
59
+ export interface NomineeElectionDetails {
60
+ proposalId: string;
61
+ electionIndex: number;
62
+ /** All registered contenders */
63
+ contenders: ElectionContender[];
64
+ /** All nominees (including excluded) */
65
+ nominees: ElectionNominee[];
66
+ /** Compliant (non-excluded) nominees */
67
+ compliantNominees: ElectionNominee[];
68
+ /** Excluded nominees with reasons */
69
+ excludedNominees: ElectionNominee[];
70
+ /** Vote threshold to become nominee */
71
+ quorumThreshold: BigNumber;
72
+ /** Target number of nominees needed */
73
+ targetNomineeCount: number;
74
+ }
75
+ /**
76
+ * Detailed member election information
77
+ */
78
+ export interface MemberElectionDetails {
79
+ proposalId: string;
80
+ electionIndex: number;
81
+ /** All nominees with their weighted votes */
82
+ nominees: MemberElectionNominee[];
83
+ /** Top 6 winners who will be elected */
84
+ winners: string[];
85
+ /** Full weight voting deadline block */
86
+ fullWeightDeadline: number;
87
+ /** Proposal deadline block */
88
+ proposalDeadline: number;
89
+ }
6
90
  /**
7
91
  * Cohort identifier for Security Council elections
8
92
  */
@@ -27,6 +111,8 @@ export interface ElectionProposalStatus {
27
111
  vettingDeadline: number | null;
28
112
  isInVettingPeriod: boolean;
29
113
  canProceedToMemberPhase: boolean;
114
+ /** True when member election succeeded and can be executed to install new council */
115
+ canExecuteMember: boolean;
30
116
  }
31
117
  /**
32
118
  * Election status information
@@ -47,10 +133,12 @@ export interface ElectionCheckResult {
47
133
  status: ElectionStatus;
48
134
  canCreate: boolean;
49
135
  canTriggerMember: boolean;
136
+ canExecuteMember: boolean;
50
137
  currentElection?: ElectionProposalStatus;
51
138
  prepared: {
52
139
  createElection?: PreparedTransaction;
53
140
  triggerMember?: PreparedTransaction;
141
+ executeMember?: PreparedTransaction;
54
142
  };
55
143
  }
56
144
  //# sourceMappingURL=election.d.ts.map