@gzeoneth/gov-tracker 0.2.0-0 → 0.2.0-2

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 (101) hide show
  1. package/README.md +3 -0
  2. package/dist/calldata/decoder.d.ts.map +1 -1
  3. package/dist/calldata/decoder.js +14 -8
  4. package/dist/calldata/decoder.js.map +1 -1
  5. package/dist/calldata/parameter-decoder.js +8 -8
  6. package/dist/calldata/parameter-decoder.js.map +1 -1
  7. package/dist/cli/lib/cli.d.ts.map +1 -1
  8. package/dist/cli/lib/cli.js +5 -6
  9. package/dist/cli/lib/cli.js.map +1 -1
  10. package/dist/cli/lib/json-state.d.ts.map +1 -1
  11. package/dist/cli/lib/json-state.js +12 -11
  12. package/dist/cli/lib/json-state.js.map +1 -1
  13. package/dist/cli/monitor.js +2 -2
  14. package/dist/cli/monitor.js.map +1 -1
  15. package/dist/index.d.ts +6 -6
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +24 -20
  18. package/dist/index.js.map +1 -1
  19. package/dist/simulation/simulation-data.js +2 -2
  20. package/dist/simulation/simulation-data.js.map +1 -1
  21. package/dist/stages/{stage-builder.d.ts → builder.d.ts} +11 -7
  22. package/dist/stages/builder.d.ts.map +1 -0
  23. package/dist/stages/{stage-builder.js → builder.js} +12 -3
  24. package/dist/stages/builder.js.map +1 -0
  25. package/dist/stages/l2-to-l1-message.d.ts +3 -3
  26. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  27. package/dist/stages/l2-to-l1-message.js +11 -12
  28. package/dist/stages/l2-to-l1-message.js.map +1 -1
  29. package/dist/stages/proposal-created.d.ts +2 -2
  30. package/dist/stages/proposal-created.d.ts.map +1 -1
  31. package/dist/stages/proposal-created.js +4 -4
  32. package/dist/stages/proposal-created.js.map +1 -1
  33. package/dist/stages/proposal-queued.d.ts +2 -2
  34. package/dist/stages/proposal-queued.d.ts.map +1 -1
  35. package/dist/stages/proposal-queued.js +8 -9
  36. package/dist/stages/proposal-queued.js.map +1 -1
  37. package/dist/stages/retryables.d.ts +3 -3
  38. package/dist/stages/retryables.d.ts.map +1 -1
  39. package/dist/stages/retryables.js +14 -15
  40. package/dist/stages/retryables.js.map +1 -1
  41. package/dist/stages/timelock.d.ts +3 -3
  42. package/dist/stages/timelock.d.ts.map +1 -1
  43. package/dist/stages/timelock.js +32 -32
  44. package/dist/stages/timelock.js.map +1 -1
  45. package/dist/stages/{base.d.ts → utils.d.ts} +78 -35
  46. package/dist/stages/utils.d.ts.map +1 -0
  47. package/dist/stages/{base.js → utils.js} +208 -63
  48. package/dist/stages/utils.js.map +1 -0
  49. package/dist/stages/voting.d.ts +2 -2
  50. package/dist/stages/voting.d.ts.map +1 -1
  51. package/dist/stages/voting.js +2 -2
  52. package/dist/stages/voting.js.map +1 -1
  53. package/dist/tracker/cache.d.ts +104 -0
  54. package/dist/tracker/cache.d.ts.map +1 -0
  55. package/dist/tracker/cache.js +287 -0
  56. package/dist/tracker/cache.js.map +1 -0
  57. package/dist/tracker/execute.js +8 -8
  58. package/dist/tracker/execute.js.map +1 -1
  59. package/dist/tracker/pipeline.d.ts +3 -3
  60. package/dist/tracker/pipeline.d.ts.map +1 -1
  61. package/dist/tracker/pipeline.js +38 -35
  62. package/dist/tracker/pipeline.js.map +1 -1
  63. package/dist/tracker/query.js +3 -3
  64. package/dist/tracker/query.js.map +1 -1
  65. package/dist/tracker/state.d.ts +88 -81
  66. package/dist/tracker/state.d.ts.map +1 -1
  67. package/dist/tracker/state.js +241 -264
  68. package/dist/tracker/state.js.map +1 -1
  69. package/dist/tracker.d.ts +4 -4
  70. package/dist/tracker.d.ts.map +1 -1
  71. package/dist/tracker.js +22 -20
  72. package/dist/tracker.js.map +1 -1
  73. package/dist/types/calldata.d.ts +15 -3
  74. package/dist/types/calldata.d.ts.map +1 -1
  75. package/dist/types/calldata.js +7 -0
  76. package/dist/types/calldata.js.map +1 -1
  77. package/dist/types/core.d.ts +12 -0
  78. package/dist/types/core.d.ts.map +1 -1
  79. package/dist/types/core.js +30 -0
  80. package/dist/types/core.js.map +1 -1
  81. package/dist/types/index.d.ts +3 -3
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/types/index.js +7 -1
  84. package/dist/types/index.js.map +1 -1
  85. package/dist/types/stages.d.ts +32 -17
  86. package/dist/types/stages.d.ts.map +1 -1
  87. package/dist/types/stages.js +2 -0
  88. package/dist/types/stages.js.map +1 -1
  89. package/package.json +2 -1
  90. package/dist/stages/base.d.ts.map +0 -1
  91. package/dist/stages/base.js.map +0 -1
  92. package/dist/stages/stage-builder.d.ts.map +0 -1
  93. package/dist/stages/stage-builder.js.map +0 -1
  94. package/dist/tracker/context.d.ts +0 -111
  95. package/dist/tracker/context.d.ts.map +0 -1
  96. package/dist/tracker/context.js +0 -264
  97. package/dist/tracker/context.js.map +0 -1
  98. package/dist/utils/stage-helpers.d.ts +0 -50
  99. package/dist/utils/stage-helpers.d.ts.map +0 -1
  100. package/dist/utils/stage-helpers.js +0 -135
  101. package/dist/utils/stage-helpers.js.map +0 -1
@@ -1,287 +1,264 @@
1
1
  "use strict";
2
2
  /**
3
- * Cache utilities for tracker state
3
+ * TrackingState - Functional state management for pipeline tracking
4
4
  *
5
- * Provides cache implementations and utility functions.
6
- * All other state management is handled directly in tracker.ts.
5
+ * This module provides a purely functional approach to tracking context:
6
+ * - TrackingState interface defines the immutable state shape
7
+ * - Pure functions transform state and derive values
8
+ * - No classes, no mutation, no hidden state
7
9
  *
8
- * Available cache adapters:
9
- * - FileCache: File-based persistence (Node.js only)
10
- * - LocalStorageCache: Browser localStorage (web only)
11
- * - MemoryCache: In-memory, no persistence (universal)
10
+ * Benefits:
11
+ * - Easy testing: just create plain objects
12
+ * - Transparent: can log/inspect full state anytime
13
+ * - Predictable: same input same output
14
+ * - Composable: mix and match functions freely
15
+ * - Debuggable: save/restore state snapshots
12
16
  */
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || (function () {
30
- var ownKeys = function(o) {
31
- ownKeys = Object.getOwnPropertyNames || function (o) {
32
- var ar = [];
33
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
- return ar;
35
- };
36
- return ownKeys(o);
37
- };
38
- return function (mod) {
39
- if (mod && mod.__esModule) return mod;
40
- var result = {};
41
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
- __setModuleDefault(result, mod);
43
- return result;
44
- };
45
- })();
46
17
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.MemoryCache = exports.LocalStorageCache = exports.FileCache = void 0;
48
- exports.txHashCacheKey = txHashCacheKey;
49
- exports.readCacheStatus = readCacheStatus;
50
- const fs = __importStar(require("fs"));
51
- const discovery_1 = require("./discovery");
18
+ exports.getFirstExecutableBlock = exports.getProposalState = exports.getIsElection = exports.getQueueBlockNumber = exports.getFirstCallScheduledData = exports.getProposalId = exports.getGovernorAddress = void 0;
19
+ exports.createTrackingState = createTrackingState;
20
+ exports.addStage = addStage;
21
+ exports.isStageCompleted = isStageCompleted;
22
+ exports.getCompletedStage = getCompletedStage;
23
+ exports.getCachedStage = getCachedStage;
24
+ exports.isComplete = isComplete;
25
+ exports.getTimelockAddress = getTimelockAddress;
26
+ exports.getOperationId = getOperationId;
27
+ exports.getCallScheduledData = getCallScheduledData;
28
+ exports.getProposalData = getProposalData;
29
+ exports.getProposalType = getProposalType;
30
+ exports.getVotingEndBlock = getVotingEndBlock;
31
+ exports.getL2ExecutionTxHash = getL2ExecutionTxHash;
32
+ exports.getOutboxExecutionTx = getOutboxExecutionTx;
33
+ exports.getL1ExecutionTxHash = getL1ExecutionTxHash;
34
+ exports.createCheckpoint = createCheckpoint;
35
+ exports.toResult = toResult;
36
+ const ethers_1 = require("ethers");
37
+ const logger_1 = require("../utils/logger");
38
+ const utils_1 = require("../stages/utils");
39
+ const governor_discovery_1 = require("../discovery/governor-discovery");
40
+ const constants_1 = require("../constants");
41
+ const { tracker: logTracker } = logger_1.loggers;
42
+ // State Creation
52
43
  /**
53
- * File-based cache that persists to JSON file.
54
- * Synchronously loads on construction, persists on every write.
55
- * Uses a write queue to prevent race conditions from concurrent writes.
44
+ * Create a new TrackingState.
56
45
  */
57
- class FileCache {
58
- constructor(path) {
59
- this.writeQueue = Promise.resolve();
60
- this.path = path;
61
- this.cache = this.load();
62
- }
63
- load() {
64
- try {
65
- const data = JSON.parse(fs.readFileSync(this.path, "utf8"));
66
- return new Map(Object.entries(data));
67
- }
68
- catch {
69
- return new Map();
70
- }
71
- }
72
- persistSync() {
73
- const obj = Object.fromEntries(this.cache);
74
- fs.writeFileSync(this.path, JSON.stringify(obj, null, 2));
75
- }
76
- async persist() {
77
- // Chain writes to prevent race conditions
78
- // Create the write promise that may reject on error
79
- const writePromise = this.writeQueue.then(() => {
80
- this.persistSync();
81
- });
82
- // Update the queue with error recovery to prevent getting stuck
83
- // This ensures future writes can proceed even if this one fails
84
- this.writeQueue = writePromise.catch(() => {
85
- // Silently recover the queue - error is propagated via writePromise
86
- });
87
- // Return the original promise so errors propagate to caller
88
- return writePromise;
89
- }
90
- async get(key) {
91
- return this.cache.get(key) ?? null;
92
- }
93
- async set(key, value) {
94
- this.cache.set(key, value);
95
- await this.persist();
96
- }
97
- async delete(key) {
98
- this.cache.delete(key);
99
- await this.persist();
100
- }
101
- async clear() {
102
- this.cache.clear();
103
- await this.persist();
104
- }
105
- async has(key) {
106
- return this.cache.has(key);
107
- }
108
- keys() {
109
- return this.cache.keys();
46
+ function createTrackingState(options) {
47
+ // Initialize stages based on tracking path
48
+ const includeProposal = options.input.type === "governor";
49
+ const addressForPath = options.input.type === "governor"
50
+ ? options.input.governorAddress
51
+ : options.input.type === "timelock"
52
+ ? options.input.timelockAddress
53
+ : "";
54
+ const initialStages = (0, utils_1.initializeStagesForPath)(addressForPath, includeProposal);
55
+ let ctx = {
56
+ providers: options.providers,
57
+ chunkingConfig: options.chunkingConfig ?? constants_1.DEFAULT_CHUNKING_CONFIG,
58
+ onProgress: options.onProgress,
59
+ cacheKey: options.cacheKey,
60
+ input: options.input,
61
+ callScheduledData: options.callScheduledData,
62
+ stages: initialStages,
63
+ stageIndex: 0,
64
+ };
65
+ // Load from checkpoint if provided
66
+ if (options.checkpoint?.cachedData.completedStages?.length) {
67
+ ctx = loadFromCheckpoint(ctx, options.checkpoint);
110
68
  }
69
+ return ctx;
111
70
  }
112
- exports.FileCache = FileCache;
113
71
  /**
114
- * Get localStorage if available (browser environment)
72
+ * Load stages from a checkpoint.
115
73
  */
116
- function getLocalStorage() {
117
- // Check for browser environment with localStorage
118
- if (typeof globalThis !== "undefined") {
119
- const global = globalThis;
120
- if (typeof global.localStorage !== "undefined") {
121
- return global.localStorage;
122
- }
74
+ function loadFromCheckpoint(ctx, checkpoint) {
75
+ const completedStages = checkpoint.cachedData.completedStages;
76
+ if (!completedStages?.length)
77
+ return ctx;
78
+ logTracker("RESUME: loading %d completed stages from checkpoint", completedStages.length);
79
+ let stages = ctx.stages;
80
+ for (const stage of completedStages) {
81
+ stages = (0, utils_1.updateStageInList)(stages, stage);
123
82
  }
124
- return null;
83
+ return { ...ctx, stages, stageIndex: completedStages.length };
125
84
  }
85
+ // Stage Management
126
86
  /**
127
- * Browser localStorage-based cache adapter.
128
- * Persists to localStorage with a configurable key prefix.
129
- *
130
- * Limitations:
131
- * - 5MB storage limit (varies by browser)
132
- * - Synchronous API (blocks main thread, usually negligible)
133
- * - String-only storage (JSON serialization handled internally)
134
- *
135
- * @example
136
- * ```typescript
137
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
138
- *
139
- * const tracker = createTracker({
140
- * l2Provider,
141
- * l1Provider,
142
- * cache: new LocalStorageCache("arb-gov:"),
143
- * });
144
- * ```
87
+ * Add or update a stage. Returns new context.
145
88
  */
146
- class LocalStorageCache {
147
- constructor(prefix = "tracker:") {
148
- this.prefix = prefix;
149
- }
150
- fullKey(key) {
151
- return `${this.prefix}${key}`;
152
- }
153
- async get(key) {
154
- const storage = getLocalStorage();
155
- if (!storage)
156
- return null;
157
- const data = storage.getItem(this.fullKey(key));
158
- if (data === null)
159
- return null;
160
- try {
161
- return JSON.parse(data);
162
- }
163
- catch {
164
- return null;
165
- }
166
- }
167
- async set(key, value) {
168
- const storage = getLocalStorage();
169
- if (!storage)
170
- return;
171
- storage.setItem(this.fullKey(key), JSON.stringify(value));
172
- }
173
- async delete(key) {
174
- const storage = getLocalStorage();
175
- if (!storage)
176
- return;
177
- storage.removeItem(this.fullKey(key));
178
- }
179
- async clear() {
180
- const storage = getLocalStorage();
181
- if (!storage)
182
- return;
183
- const keysToRemove = [];
184
- for (let i = 0; i < storage.length; i++) {
185
- const key = storage.key(i);
186
- if (key?.startsWith(this.prefix)) {
187
- keysToRemove.push(key);
188
- }
189
- }
190
- keysToRemove.forEach((k) => storage.removeItem(k));
191
- }
192
- async has(key) {
193
- const storage = getLocalStorage();
194
- if (!storage)
195
- return false;
196
- return storage.getItem(this.fullKey(key)) !== null;
197
- }
198
- async keys(prefix) {
199
- const storage = getLocalStorage();
200
- if (!storage)
201
- return [];
202
- const result = [];
203
- for (let i = 0; i < storage.length; i++) {
204
- const fullKey = storage.key(i);
205
- if (fullKey?.startsWith(this.prefix)) {
206
- const key = fullKey.slice(this.prefix.length);
207
- if (!prefix || key.startsWith(prefix)) {
208
- result.push(key);
209
- }
210
- }
211
- }
212
- return result;
213
- }
89
+ async function addStage(ctx, stage) {
90
+ const newStages = (0, utils_1.updateStageInList)(ctx.stages, stage);
91
+ const newCtx = {
92
+ ...ctx,
93
+ stages: newStages,
94
+ stageIndex: ctx.stageIndex + 1,
95
+ };
96
+ await emitProgress(newCtx, stage);
97
+ return newCtx;
214
98
  }
215
- exports.LocalStorageCache = LocalStorageCache;
216
- /**
217
- * In-memory cache adapter with no persistence.
218
- * Useful for testing, short-lived sessions, or as a fallback.
219
- *
220
- * Data is lost when the page is refreshed or the process exits.
221
- *
222
- * @example
223
- * ```typescript
224
- * import { createTracker, MemoryCache } from "@gzeoneth/gov-tracker";
225
- *
226
- * const tracker = createTracker({
227
- * l2Provider,
228
- * l1Provider,
229
- * cache: new MemoryCache(),
230
- * });
231
- * ```
232
- */
233
- class MemoryCache {
234
- constructor() {
235
- this.cache = new Map();
236
- }
237
- async get(key) {
238
- return this.cache.get(key) ?? null;
239
- }
240
- async set(key, value) {
241
- this.cache.set(key, value);
242
- }
243
- async delete(key) {
244
- this.cache.delete(key);
245
- }
246
- async clear() {
247
- this.cache.clear();
248
- }
249
- async has(key) {
250
- return this.cache.has(key);
251
- }
252
- keys() {
253
- return this.cache.keys();
254
- }
99
+ // Stage lookup helper (defined early for use in stage management functions)
100
+ const findStage = (ctx, type) => ctx.stages.find((s) => s.type === type);
101
+ /** Check if a stage is completed (COMPLETED or SKIPPED). */
102
+ function isStageCompleted(ctx, type) {
103
+ const s = findStage(ctx, type);
104
+ return s?.status === "COMPLETED" || s?.status === "SKIPPED";
255
105
  }
256
- exports.MemoryCache = MemoryCache;
257
- /**
258
- * Generate cache key from transaction hash (primary cache key format)
259
- */
260
- function txHashCacheKey(txHash) {
261
- return `tx:${txHash.toLowerCase()}`;
106
+ /** Get a completed stage for zero-RPC resume. */
107
+ function getCompletedStage(ctx, type) {
108
+ const s = findStage(ctx, type);
109
+ return s?.status === "COMPLETED" || s?.status === "SKIPPED" ? s : undefined;
110
+ }
111
+ /** Get a cached stage (any status). */
112
+ function getCachedStage(ctx, type) {
113
+ return findStage(ctx, type);
262
114
  }
263
115
  /**
264
- * Read all cache data without requiring RPC providers.
265
- * Use this for status/dashboard views that only need cached data.
266
- *
267
- * @param cachePath - Path to the cache file
116
+ * Check if all stages are complete.
268
117
  */
269
- async function readCacheStatus(cachePath) {
270
- const cache = new FileCache(cachePath);
271
- // Load watermarks from discovery checkpoint (unified format)
272
- const discoveryCheckpoint = await cache.get(discovery_1.WATERMARKS_KEY);
273
- const watermarks = discoveryCheckpoint?.cachedData.discoveryWatermarks ?? {};
274
- const checkpoints = new Map();
275
- const allKeys = cache.keys();
276
- const keys = Array.from(allKeys);
277
- for (const key of keys) {
278
- if (key.startsWith("tx:")) {
279
- const checkpoint = await cache.get(key);
280
- if (checkpoint) {
281
- checkpoints.set(key, checkpoint);
282
- }
283
- }
284
- }
285
- return { watermarks, checkpoints };
118
+ function isComplete(ctx) {
119
+ return (0, utils_1.areAllStagesComplete)(ctx.stages);
120
+ }
121
+ // Stage data helpers
122
+ const stageData = (ctx, type) => findStage(ctx, type)?.data;
123
+ const execTx = (s) => s?.transactions?.find((tx) => tx.description === "executed");
124
+ const chainTx = (s, chain) => s?.transactions?.find((tx) => tx.chain === chain);
125
+ // Derived Getters - Input-based
126
+ const getGovernorAddress = (ctx) => ctx.input.type === "governor" ? ctx.input.governorAddress : undefined;
127
+ exports.getGovernorAddress = getGovernorAddress;
128
+ const getProposalId = (ctx) => ctx.input.type === "governor" ? ctx.input.proposalId : undefined;
129
+ exports.getProposalId = getProposalId;
130
+ // Derived Getters - Multi-source lookups
131
+ function getTimelockAddress(ctx) {
132
+ if (ctx.input.type === "timelock")
133
+ return ctx.input.timelockAddress;
134
+ return (stageData(ctx, "PROPOSAL_QUEUED")?.timelockAddress ??
135
+ stageData(ctx, "L2_TIMELOCK")?.timelockAddress);
136
+ }
137
+ function getOperationId(ctx) {
138
+ if (ctx.input.type === "timelock")
139
+ return ctx.input.operationId;
140
+ return (stageData(ctx, "PROPOSAL_QUEUED")?.operationId ??
141
+ stageData(ctx, "L2_TIMELOCK")?.operationId);
142
+ }
143
+ function getCallScheduledData(ctx) {
144
+ if (ctx.callScheduledData)
145
+ return ctx.callScheduledData;
146
+ const qData = stageData(ctx, "PROPOSAL_QUEUED")?.callScheduledData;
147
+ if (qData?.length)
148
+ return (0, utils_1.deserializeCallScheduledDataArray)(qData);
149
+ const l2Data = stageData(ctx, "L2_TIMELOCK")?.callScheduledData;
150
+ return l2Data?.length ? (0, utils_1.deserializeCallScheduledDataArray)(l2Data) : undefined;
151
+ }
152
+ const getFirstCallScheduledData = (ctx) => getCallScheduledData(ctx)?.[0];
153
+ exports.getFirstCallScheduledData = getFirstCallScheduledData;
154
+ const getQueueBlockNumber = (ctx) => (0, exports.getFirstCallScheduledData)(ctx)?.blockNumber;
155
+ exports.getQueueBlockNumber = getQueueBlockNumber;
156
+ /** Proposal data from PROPOSAL_CREATED stage */
157
+ function getProposalData(ctx) {
158
+ const s = findStage(ctx, "PROPOSAL_CREATED");
159
+ if (!s || s.status === "NOT_STARTED")
160
+ return undefined;
161
+ const data = s.data;
162
+ const tx = s.transactions?.[0];
163
+ if (!data.proposalId ||
164
+ !data.startBlock ||
165
+ !data.endBlock ||
166
+ !data.proposer ||
167
+ !data.targets ||
168
+ !data.values ||
169
+ !data.signatures ||
170
+ !data.calldatas ||
171
+ !tx)
172
+ return undefined;
173
+ return {
174
+ proposalId: data.proposalId,
175
+ proposer: data.proposer,
176
+ description: data.description,
177
+ targets: data.targets,
178
+ values: data.values.map((v) => ethers_1.BigNumber.from(v)),
179
+ signatures: data.signatures,
180
+ calldatas: data.calldatas,
181
+ startBlock: ethers_1.BigNumber.from(data.startBlock),
182
+ endBlock: ethers_1.BigNumber.from(data.endBlock),
183
+ creationBlock: tx.blockNumber,
184
+ creationTxHash: tx.hash,
185
+ };
186
+ }
187
+ function getProposalType(ctx) {
188
+ const data = stageData(ctx, "PROPOSAL_CREATED");
189
+ if (data?.proposalType)
190
+ return data.proposalType;
191
+ const addr = (0, exports.getGovernorAddress)(ctx);
192
+ return addr ? (0, governor_discovery_1.detectProposalType)(addr) : undefined;
193
+ }
194
+ const getIsElection = (ctx) => {
195
+ const type = getProposalType(ctx);
196
+ return type ? (0, governor_discovery_1.isElectionProposal)(type) : false;
197
+ };
198
+ exports.getIsElection = getIsElection;
199
+ const getProposalState = (ctx) => stageData(ctx, "VOTING_ACTIVE")?.proposalState;
200
+ exports.getProposalState = getProposalState;
201
+ function getVotingEndBlock(ctx) {
202
+ const data = stageData(ctx, "VOTING_ACTIVE");
203
+ if (!data?.deadline)
204
+ return undefined;
205
+ const deadline = parseInt(data.deadline, 10);
206
+ const extended = data.extendedDeadline ? parseInt(data.extendedDeadline, 10) : 0;
207
+ return extended > deadline ? extended : deadline;
208
+ }
209
+ function getL2ExecutionTxHash(ctx) {
210
+ const s = findStage(ctx, "L2_TIMELOCK");
211
+ return s?.status === "COMPLETED" ? execTx(s)?.hash : undefined;
212
+ }
213
+ const getFirstExecutableBlock = (ctx) => stageData(ctx, "L2_TO_L1_MESSAGE")?.firstExecutableBlock;
214
+ exports.getFirstExecutableBlock = getFirstExecutableBlock;
215
+ function getOutboxExecutionTx(ctx) {
216
+ const s = findStage(ctx, "L2_TO_L1_MESSAGE");
217
+ if (s?.status !== "COMPLETED")
218
+ return undefined;
219
+ const tx = chainTx(s, "ethereum");
220
+ return tx ? { hash: tx.hash, blockNumber: tx.blockNumber } : undefined;
221
+ }
222
+ function getL1ExecutionTxHash(ctx) {
223
+ const s = findStage(ctx, "L1_TIMELOCK");
224
+ return s?.status === "COMPLETED" ? execTx(s)?.hash : undefined;
225
+ }
226
+ // Checkpoint & Result
227
+ function createCheckpoint(ctx) {
228
+ const completedStages = ctx.stages.filter((s) => s.status !== "NOT_STARTED");
229
+ const lastProcessedStage = [...ctx.stages].reverse().find((s) => s.status !== "NOT_STARTED")?.type ?? null;
230
+ return {
231
+ version: 1,
232
+ createdAt: Date.now(),
233
+ input: ctx.input,
234
+ lastProcessedStage,
235
+ lastProcessedBlock: { l1: 0, l2: 0, nova: 0 },
236
+ cachedData: { completedStages },
237
+ metadata: { errorCount: 0, lastTrackedAt: Date.now() },
238
+ };
239
+ }
240
+ async function emitProgress(ctx, s) {
241
+ if (!ctx.onProgress)
242
+ return;
243
+ const idx = ctx.stages.findIndex((x) => x.type === s.type);
244
+ await ctx.onProgress({
245
+ stage: s,
246
+ stages: ctx.stages,
247
+ currentIndex: idx >= 0 ? idx : ctx.stageIndex,
248
+ totalStages: ctx.stages.length,
249
+ isComplete: isComplete(ctx),
250
+ });
251
+ }
252
+ function toResult(ctx) {
253
+ return {
254
+ input: ctx.input,
255
+ stages: ctx.stages,
256
+ checkpoint: createCheckpoint(ctx),
257
+ isComplete: isComplete(ctx),
258
+ proposalType: getProposalType(ctx),
259
+ proposalData: getProposalData(ctx),
260
+ currentState: (0, exports.getProposalState)(ctx),
261
+ isElection: (0, exports.getIsElection)(ctx),
262
+ };
286
263
  }
287
264
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"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"}
package/dist/tracker.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * either a governor proposal or a timelock operation.
6
6
  *
7
7
  * This file is the public API that composes focused modules:
8
- * - tracker/context.ts: Functional TrackingContext for stage tracking
8
+ * - tracker/context.ts: Functional TrackingState for stage tracking
9
9
  * - tracker/pipeline.ts: Pure functions that track stages
10
10
  * - tracker/discovery.ts: Proposal and timelock discovery
11
11
  * - tracker/query.ts: Checkpoint query operations
@@ -175,15 +175,15 @@ export declare class ProposalStageTracker {
175
175
  */
176
176
  private trackByTxHashInternal;
177
177
  /**
178
- * Track governor proposal using TrackingContext (stateful tracking)
178
+ * Track governor proposal using TrackingState (stateful tracking)
179
179
  */
180
180
  private trackGovernorWithPipeline;
181
181
  /**
182
- * Track timelock operation using TrackingContext (stateful tracking)
182
+ * Track timelock operation using TrackingState (stateful tracking)
183
183
  */
184
184
  private trackTimelockWithPipeline;
185
185
  /**
186
- * Build TrackingResult from TrackingContext
186
+ * Build TrackingResult from TrackingState
187
187
  */
188
188
  private buildResultFromState;
189
189
  /**
@@ -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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"}