@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
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.trackGovernorPipeline = trackGovernorPipeline;
10
10
  exports.trackTimelockPipeline = trackTimelockPipeline;
11
11
  const logger_1 = require("../utils/logger");
12
- const context_1 = require("./context");
13
- const base_1 = require("../stages/base");
12
+ const state_1 = require("./state");
13
+ const utils_1 = require("../stages/utils");
14
14
  const proposal_created_1 = require("../stages/proposal-created");
15
15
  const voting_1 = require("../stages/voting");
16
16
  const proposal_queued_1 = require("../stages/proposal-queued");
@@ -26,7 +26,9 @@ const { pipeline: log, tracker: logTracker } = logger_1.loggers;
26
26
  // L1_TIMELOCK is the only L1 stage; RETRYABLE_EXECUTED runs on L2 (Arb1/Nova)
27
27
  const L1_STAGES = new Set(["L1_TIMELOCK"]);
28
28
  // Helper: create placeholder stage
29
- const placeholder = (type, status, reason) => ({
29
+ const placeholder = (type, status, reason) =>
30
+ // Assertion needed: placeholder stages have partial data that gets filled later
31
+ ({
30
32
  type,
31
33
  status,
32
34
  chain: L1_STAGES.has(type) ? "ethereum" : "arb1",
@@ -36,10 +38,10 @@ const placeholder = (type, status, reason) => ({
36
38
  });
37
39
  // Helper: track with cache check
38
40
  async function withCache(state, stageType, key, onCached, onTrack) {
39
- const cached = (0, context_1.getCompletedStage)(state, stageType);
41
+ const cached = (0, state_1.getCompletedStage)(state, stageType);
40
42
  if (cached) {
41
43
  log("%s: using cached stage", stageType);
42
- return { state: await (0, context_1.addStage)(state, cached), [key]: onCached(cached) };
44
+ return { state: await (0, state_1.addStage)(state, cached), [key]: onCached(cached) };
43
45
  }
44
46
  return onTrack();
45
47
  }
@@ -47,7 +49,7 @@ async function withCache(state, stageType, key, onCached, onTrack) {
47
49
  async function track(state, stageType, key, tracker) {
48
50
  try {
49
51
  const { stage, result } = await tracker();
50
- return { state: await (0, context_1.addStage)(state, stage), [key]: result };
52
+ return { state: await (0, state_1.addStage)(state, stage), [key]: result };
51
53
  }
52
54
  catch (error) {
53
55
  throw new Error(`Failed to track ${stageType}: ${error instanceof Error ? error.message : String(error)}`);
@@ -55,11 +57,11 @@ async function track(state, stageType, key, tracker) {
55
57
  }
56
58
  // Governor Stages (1-3)
57
59
  async function pipelineTrackProposalCreated(state) {
58
- const governorAddress = (0, context_1.getGovernorAddress)(state);
59
- const proposalId = (0, context_1.getProposalId)(state);
60
+ const governorAddress = (0, state_1.getGovernorAddress)(state);
61
+ const proposalId = (0, state_1.getProposalId)(state);
60
62
  if (!governorAddress || !proposalId)
61
63
  return { state, found: false };
62
- if ((0, context_1.getIsElection)(state))
64
+ if ((0, state_1.getIsElection)(state))
63
65
  return { state, found: false };
64
66
  return withCache(state, "PROPOSAL_CREATED", "found", () => true, async () => {
65
67
  log("PROPOSAL_CREATED: tracking");
@@ -73,9 +75,9 @@ async function pipelineTrackProposalCreated(state) {
73
75
  });
74
76
  }
75
77
  async function pipelineTrackVoting(state) {
76
- const governorAddress = (0, context_1.getGovernorAddress)(state);
77
- const proposalId = (0, context_1.getProposalId)(state);
78
- const proposalData = (0, context_1.getProposalData)(state);
78
+ const governorAddress = (0, state_1.getGovernorAddress)(state);
79
+ const proposalId = (0, state_1.getProposalId)(state);
80
+ const proposalData = (0, state_1.getProposalData)(state);
79
81
  if (!governorAddress || !proposalId || !proposalData)
80
82
  return { state, complete: false };
81
83
  return withCache(state, "VOTING_ACTIVE", "complete", (c) => c.status === "COMPLETED", async () => {
@@ -87,9 +89,9 @@ async function pipelineTrackVoting(state) {
87
89
  });
88
90
  }
89
91
  async function pipelineTrackProposalQueued(state) {
90
- const governorAddress = (0, context_1.getGovernorAddress)(state);
91
- const proposalId = (0, context_1.getProposalId)(state);
92
- const proposalData = (0, context_1.getProposalData)(state);
92
+ const governorAddress = (0, state_1.getGovernorAddress)(state);
93
+ const proposalId = (0, state_1.getProposalId)(state);
94
+ const proposalData = (0, state_1.getProposalData)(state);
93
95
  if (!governorAddress || !proposalId)
94
96
  return { state, queued: false };
95
97
  return withCache(state, "PROPOSAL_QUEUED", "queued", () => true, async () => {
@@ -97,7 +99,7 @@ async function pipelineTrackProposalQueued(state) {
97
99
  return track(state, "PROPOSAL_QUEUED", "queued", async () => {
98
100
  // Voting deadline is L1 block number - convert to L2 for searching
99
101
  // Use bounds to speed up binary search: min=creation block, max=creation+7M (~20 days)
100
- const votingDeadlineL1 = (0, context_1.getVotingEndBlock)(state);
102
+ const votingDeadlineL1 = (0, state_1.getVotingEndBlock)(state);
101
103
  let votingEndBlock;
102
104
  if (votingDeadlineL1) {
103
105
  const creationBlock = proposalData?.creationBlock ?? 0;
@@ -110,7 +112,8 @@ async function pipelineTrackProposalQueued(state) {
110
112
  }
111
113
  const r = await (0, proposal_queued_1.trackProposalQueued)(governorAddress, proposalId, state.providers.l2, proposalData?.creationBlock ?? 0, { votingEndBlock });
112
114
  let stage = r.stage;
113
- if (stage.status === "READY" && proposalData) {
115
+ if (stage.type === "PROPOSAL_QUEUED" && stage.status === "READY" && proposalData) {
116
+ // Enrich stage data with proposal info for READY state
114
117
  stage = {
115
118
  ...stage,
116
119
  data: {
@@ -128,16 +131,16 @@ async function pipelineTrackProposalQueued(state) {
128
131
  }
129
132
  // Timelock Stage (4)
130
133
  async function pipelineTrackL2Timelock(state) {
131
- const timelockAddress = (0, context_1.getTimelockAddress)(state);
132
- const operationId = (0, context_1.getOperationId)(state);
133
- const firstCallScheduledData = (0, context_1.getFirstCallScheduledData)(state);
134
+ const timelockAddress = (0, state_1.getTimelockAddress)(state);
135
+ const operationId = (0, state_1.getOperationId)(state);
136
+ const firstCallScheduledData = (0, state_1.getFirstCallScheduledData)(state);
134
137
  if (!timelockAddress || !operationId || !firstCallScheduledData)
135
138
  return { state, executed: false };
136
139
  return withCache(state, "L2_TIMELOCK", "executed", (c) => c.status === "COMPLETED", async () => {
137
140
  log("L2_TIMELOCK: tracking");
138
141
  return track(state, "L2_TIMELOCK", "executed", async () => {
139
- const r = await (0, timelock_1.trackL2Timelock)(timelockAddress, operationId, state.providers.l2, (0, context_1.getQueueBlockNumber)(state) ?? 0, firstCallScheduledData, {
140
- cachedExecutionTxHash: (0, context_1.getL2ExecutionTxHash)(state),
142
+ const r = await (0, timelock_1.trackL2Timelock)(timelockAddress, operationId, state.providers.l2, (0, state_1.getQueueBlockNumber)(state) ?? 0, firstCallScheduledData, {
143
+ cachedExecutionTxHash: (0, state_1.getL2ExecutionTxHash)(state),
141
144
  allStages: state.stages,
142
145
  });
143
146
  return { stage: r.stage, result: r.executionTxHash !== null };
@@ -149,13 +152,13 @@ const L1_ROUNDTRIP_STAGES = ["L2_TO_L1_MESSAGE", "L1_TIMELOCK", "RETRYABLE_EXECU
149
152
  async function addSkippedL1Stages(state) {
150
153
  let s = state;
151
154
  for (const type of L1_ROUNDTRIP_STAGES)
152
- s = await (0, context_1.addStage)(s, placeholder(type, "SKIPPED", "L2-only path"));
155
+ s = await (0, state_1.addStage)(s, placeholder(type, "SKIPPED", "L2-only path"));
153
156
  return s;
154
157
  }
155
158
  async function pipelineTrackL2ToL1Message(state) {
156
- const l2ExecutionTxHash = (0, context_1.getL2ExecutionTxHash)(state);
157
- const addressForPath = (0, context_1.getGovernorAddress)(state) ?? (0, context_1.getTimelockAddress)(state);
158
- const needsL1 = addressForPath ? (0, base_1.isConstitutional)(addressForPath) : true;
159
+ const l2ExecutionTxHash = (0, state_1.getL2ExecutionTxHash)(state);
160
+ const addressForPath = (0, state_1.getGovernorAddress)(state) ?? (0, state_1.getTimelockAddress)(state);
161
+ const needsL1 = addressForPath ? (0, utils_1.isConstitutional)(addressForPath) : true;
159
162
  if (!needsL1) {
160
163
  log("L2_TO_L1_MESSAGE: L2-only path, skipping L1 stages");
161
164
  return { state: await addSkippedL1Stages(state), executed: false, needsL1: false };
@@ -163,14 +166,14 @@ async function pipelineTrackL2ToL1Message(state) {
163
166
  if (!l2ExecutionTxHash)
164
167
  return { state, executed: false, needsL1: true };
165
168
  // Check completed cache
166
- const cached = (0, context_1.getCompletedStage)(state, "L2_TO_L1_MESSAGE");
169
+ const cached = (0, state_1.getCompletedStage)(state, "L2_TO_L1_MESSAGE");
167
170
  if (cached) {
168
171
  log("L2_TO_L1_MESSAGE: using cached stage");
169
- return { state: await (0, context_1.addStage)(state, cached), executed: true, needsL1: true };
172
+ return { state: await (0, state_1.addStage)(state, cached), executed: true, needsL1: true };
170
173
  }
171
174
  // Fast-path for pending (still in challenge period)
172
- const pending = (0, context_1.getCachedStage)(state, "L2_TO_L1_MESSAGE");
173
- if (pending?.status === "PENDING") {
175
+ const pending = (0, state_1.getCachedStage)(state, "L2_TO_L1_MESSAGE");
176
+ if (pending?.type === "L2_TO_L1_MESSAGE" && pending.status === "PENDING") {
174
177
  const firstExec = pending.data.firstExecutableBlock;
175
178
  if (firstExec) {
176
179
  const { blockNumber: currentL1Block, timestamp } = await (0, timing_2.getCurrentBlockInfo)(state.providers.l1);
@@ -185,7 +188,7 @@ async function pipelineTrackL2ToL1Message(state) {
185
188
  delaySeconds: remainingSeconds,
186
189
  },
187
190
  };
188
- return { state: await (0, context_1.addStage)(state, updated), executed: false, needsL1: true };
191
+ return { state: await (0, state_1.addStage)(state, updated), executed: false, needsL1: true };
189
192
  }
190
193
  }
191
194
  }
@@ -203,8 +206,8 @@ async function pipelineTrackL1Timelock(state) {
203
206
  log("L1_TIMELOCK: tracking");
204
207
  return track(state, "L1_TIMELOCK", "executed", async () => {
205
208
  const r = await (0, timelock_1.trackL1Timelock)(state.providers.l1, {
206
- outboxExecutionTx: (0, context_1.getOutboxExecutionTx)(state),
207
- fromBlock: (0, context_1.getFirstExecutableBlock)(state),
209
+ outboxExecutionTx: (0, state_1.getOutboxExecutionTx)(state),
210
+ fromBlock: (0, state_1.getFirstExecutableBlock)(state),
208
211
  allStages: state.stages,
209
212
  });
210
213
  return { stage: r.stage, result: r.executionTxHash !== null };
@@ -213,7 +216,7 @@ async function pipelineTrackL1Timelock(state) {
213
216
  }
214
217
  // Retryable Stage (7)
215
218
  async function pipelineTrackRetryables(state) {
216
- const l1ExecutionTxHash = (0, context_1.getL1ExecutionTxHash)(state);
219
+ const l1ExecutionTxHash = (0, state_1.getL1ExecutionTxHash)(state);
217
220
  if (!l1ExecutionTxHash)
218
221
  return { state, redeemed: false };
219
222
  return withCache(state, "RETRYABLE_EXECUTED", "redeemed", (c) => c.status === "COMPLETED", async () => {
@@ -231,7 +234,7 @@ async function pipelineTrackRetryables(state) {
231
234
  async function addPlaceholders(state, types, reason) {
232
235
  let s = state;
233
236
  for (const type of types)
234
- s = await (0, context_1.addStage)(s, placeholder(type, "NOT_STARTED", reason));
237
+ s = await (0, state_1.addStage)(s, placeholder(type, "NOT_STARTED", reason));
235
238
  return s;
236
239
  }
237
240
  const RETRYABLE_STAGES = ["RETRYABLE_EXECUTED"];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/tracker/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/tracker/pipeline.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ exports.getCheckpoint = getCheckpoint;
11
11
  exports.getAllCheckpoints = getAllCheckpoints;
12
12
  exports.queryIncompleteCheckpoints = queryIncompleteCheckpoints;
13
13
  exports.getStats = getStats;
14
- const base_1 = require("../stages/base");
14
+ const utils_1 = require("../stages/utils");
15
15
  const constants_1 = require("../constants");
16
16
  /**
17
17
  * List all checkpoint keys in the cache.
@@ -68,7 +68,7 @@ async function queryIncompleteCheckpoints(cache, options = {}) {
68
68
  const errorCount = checkpoint.metadata?.errorCount ?? 0;
69
69
  const completedStages = checkpoint.cachedData.completedStages ?? [];
70
70
  // Skip if already complete
71
- if (completedStages.length > 0 && (0, base_1.areAllStagesComplete)(completedStages)) {
71
+ if (completedStages.length > 0 && (0, utils_1.areAllStagesComplete)(completedStages)) {
72
72
  continue;
73
73
  }
74
74
  // Skip if voting failed (terminal state)
@@ -105,7 +105,7 @@ async function getStats(cache, maxErrorCount = 5) {
105
105
  let electionTotal = 0, electionComplete = 0;
106
106
  for (const [, checkpoint] of checkpoints) {
107
107
  const completedStages = checkpoint.cachedData?.completedStages ?? [];
108
- const isComplete = completedStages.length > 0 && (0, base_1.areAllStagesComplete)(completedStages);
108
+ const isComplete = completedStages.length > 0 && (0, utils_1.areAllStagesComplete)(completedStages);
109
109
  const errorCount = checkpoint.metadata?.errorCount ?? 0;
110
110
  const isErrored = errorCount >= maxErrorCount;
111
111
  const inputType = checkpoint.input.type;
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tracker/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tracker/query.ts"],"names":[],"mappings":"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"}
@@ -1,104 +1,111 @@
1
1
  /**
2
- * Cache utilities for tracker state
2
+ * TrackingState - Functional state management for pipeline tracking
3
3
  *
4
- * Provides cache implementations and utility functions.
5
- * All other state management is handled directly in tracker.ts.
4
+ * This module provides a purely functional approach to tracking context:
5
+ * - TrackingState interface defines the immutable state shape
6
+ * - Pure functions transform state and derive values
7
+ * - No classes, no mutation, no hidden state
6
8
  *
7
- * Available cache adapters:
8
- * - FileCache: File-based persistence (Node.js only)
9
- * - LocalStorageCache: Browser localStorage (web only)
10
- * - MemoryCache: In-memory, no persistence (universal)
9
+ * Benefits:
10
+ * - Easy testing: just create plain objects
11
+ * - Transparent: can log/inspect full state anytime
12
+ * - Predictable: same input same output
13
+ * - Composable: mix and match functions freely
14
+ * - Debuggable: save/restore state snapshots
11
15
  */
12
- import { TrackingCheckpoint, DiscoveryWatermarks, CacheAdapter } from "../types";
16
+ import { ethers } from "ethers";
17
+ import { TrackedStage, TrackingCheckpoint, TrackingInput, StageType, CallScheduledData, ProposalData, ProposalType, ProposalState, OnProgressCallback, ChunkingConfig } from "../types";
13
18
  /**
14
- * File-based cache that persists to JSON file.
15
- * Synchronously loads on construction, persists on every write.
16
- * Uses a write queue to prevent race conditions from concurrent writes.
19
+ * Providers for multi-chain operations
17
20
  */
18
- export declare class FileCache implements CacheAdapter {
19
- private readonly path;
20
- private cache;
21
- private writeQueue;
22
- constructor(path: string);
23
- private load;
24
- private persistSync;
25
- private persist;
26
- get<T>(key: string): Promise<T | null>;
27
- set<T>(key: string, value: T): Promise<void>;
28
- delete(key: string): Promise<void>;
29
- clear(): Promise<void>;
30
- has(key: string): Promise<boolean>;
31
- keys(): IterableIterator<string>;
21
+ export interface Providers {
22
+ readonly l2: ethers.providers.Provider;
23
+ readonly l1: ethers.providers.Provider;
24
+ readonly nova: ethers.providers.Provider;
32
25
  }
33
26
  /**
34
- * Browser localStorage-based cache adapter.
35
- * Persists to localStorage with a configurable key prefix.
36
- *
37
- * Limitations:
38
- * - 5MB storage limit (varies by browser)
39
- * - Synchronous API (blocks main thread, usually negligible)
40
- * - String-only storage (JSON serialization handled internally)
41
- *
42
- * @example
43
- * ```typescript
44
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
45
- *
46
- * const tracker = createTracker({
47
- * l2Provider,
48
- * l1Provider,
49
- * cache: new LocalStorageCache("arb-gov:"),
50
- * });
51
- * ```
27
+ * Options for creating a TrackingState
52
28
  */
53
- export declare class LocalStorageCache implements CacheAdapter {
54
- private readonly prefix;
55
- constructor(prefix?: string);
56
- private fullKey;
57
- get<T>(key: string): Promise<T | null>;
58
- set<T>(key: string, value: T): Promise<void>;
59
- delete(key: string): Promise<void>;
60
- clear(): Promise<void>;
61
- has(key: string): Promise<boolean>;
62
- keys(prefix?: string): Promise<string[]>;
29
+ export interface CreateTrackingStateOptions {
30
+ providers: Providers;
31
+ input: TrackingInput;
32
+ onProgress?: OnProgressCallback;
33
+ chunkingConfig?: ChunkingConfig;
34
+ checkpoint?: TrackingCheckpoint;
35
+ cacheKey?: string;
36
+ /** Bootstrap data for timelock-only tracking */
37
+ callScheduledData?: CallScheduledData[];
63
38
  }
64
39
  /**
65
- * In-memory cache adapter with no persistence.
66
- * Useful for testing, short-lived sessions, or as a fallback.
40
+ * TrackingState - Immutable state for pipeline tracking
67
41
  *
68
- * Data is lost when the page is refreshed or the process exits.
42
+ * All values are derived from stages. This interface represents
43
+ * a snapshot of the pipeline at a point in time.
69
44
  *
70
45
  * @example
71
46
  * ```typescript
72
- * import { createTracker, MemoryCache } from "@gzeoneth/gov-tracker";
73
- *
74
- * const tracker = createTracker({
75
- * l2Provider,
76
- * l1Provider,
77
- * cache: new MemoryCache(),
78
- * });
47
+ * let ctx = createTrackingState({ providers, input });
48
+ * ctx = await addStage(ctx, proposalCreatedStage);
49
+ * const opId = getOperationId(ctx);
79
50
  * ```
80
51
  */
81
- export declare class MemoryCache implements CacheAdapter {
82
- private cache;
83
- get<T>(key: string): Promise<T | null>;
84
- set<T>(key: string, value: T): Promise<void>;
85
- delete(key: string): Promise<void>;
86
- clear(): Promise<void>;
87
- has(key: string): Promise<boolean>;
88
- keys(): IterableIterator<string>;
52
+ export interface TrackingState {
53
+ readonly providers: Providers;
54
+ readonly chunkingConfig: ChunkingConfig;
55
+ readonly onProgress?: OnProgressCallback;
56
+ readonly cacheKey?: string;
57
+ readonly input: TrackingInput;
58
+ readonly callScheduledData?: CallScheduledData[];
59
+ readonly stages: TrackedStage[];
60
+ readonly stageIndex: number;
89
61
  }
90
62
  /**
91
- * Generate cache key from transaction hash (primary cache key format)
63
+ * Create a new TrackingState.
92
64
  */
93
- export declare function txHashCacheKey(txHash: string): string;
65
+ export declare function createTrackingState(options: CreateTrackingStateOptions): TrackingState;
94
66
  /**
95
- * Read all cache data without requiring RPC providers.
96
- * Use this for status/dashboard views that only need cached data.
97
- *
98
- * @param cachePath - Path to the cache file
67
+ * Add or update a stage. Returns new context.
68
+ */
69
+ export declare function addStage(ctx: TrackingState, stage: TrackedStage): Promise<TrackingState>;
70
+ /** Check if a stage is completed (COMPLETED or SKIPPED). */
71
+ export declare function isStageCompleted(ctx: TrackingState, type: StageType): boolean;
72
+ /** Get a completed stage for zero-RPC resume. */
73
+ export declare function getCompletedStage(ctx: TrackingState, type: StageType): TrackedStage | undefined;
74
+ /** Get a cached stage (any status). */
75
+ export declare function getCachedStage(ctx: TrackingState, type: StageType): TrackedStage | undefined;
76
+ /**
77
+ * Check if all stages are complete.
99
78
  */
100
- export declare function readCacheStatus(cachePath: string): Promise<{
101
- watermarks: DiscoveryWatermarks;
102
- checkpoints: Map<string, TrackingCheckpoint>;
103
- }>;
79
+ export declare function isComplete(ctx: TrackingState): boolean;
80
+ export declare const getGovernorAddress: (ctx: TrackingState) => string | undefined;
81
+ export declare const getProposalId: (ctx: TrackingState) => string | undefined;
82
+ export declare function getTimelockAddress(ctx: TrackingState): string | undefined;
83
+ export declare function getOperationId(ctx: TrackingState): string | undefined;
84
+ export declare function getCallScheduledData(ctx: TrackingState): CallScheduledData[] | undefined;
85
+ export declare const getFirstCallScheduledData: (ctx: TrackingState) => CallScheduledData | undefined;
86
+ export declare const getQueueBlockNumber: (ctx: TrackingState) => number | undefined;
87
+ /** Proposal data from PROPOSAL_CREATED stage */
88
+ export declare function getProposalData(ctx: TrackingState): ProposalData | undefined;
89
+ export declare function getProposalType(ctx: TrackingState): ProposalType | undefined;
90
+ export declare const getIsElection: (ctx: TrackingState) => boolean;
91
+ export declare const getProposalState: (ctx: TrackingState) => ProposalState | undefined;
92
+ export declare function getVotingEndBlock(ctx: TrackingState): number | undefined;
93
+ export declare function getL2ExecutionTxHash(ctx: TrackingState): string | undefined;
94
+ export declare const getFirstExecutableBlock: (ctx: TrackingState) => number | undefined;
95
+ export declare function getOutboxExecutionTx(ctx: TrackingState): {
96
+ hash: string;
97
+ blockNumber: number;
98
+ } | undefined;
99
+ export declare function getL1ExecutionTxHash(ctx: TrackingState): string | undefined;
100
+ export declare function createCheckpoint(ctx: TrackingState): TrackingCheckpoint;
101
+ export declare function toResult(ctx: TrackingState): {
102
+ input: TrackingInput;
103
+ stages: TrackedStage[];
104
+ checkpoint: TrackingCheckpoint;
105
+ isComplete: boolean;
106
+ proposalType: ProposalType | undefined;
107
+ proposalData: ProposalData | undefined;
108
+ currentState: ProposalState | undefined;
109
+ isElection: boolean;
110
+ };
104
111
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjF;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAoC;gBAE1C,IAAI,EAAE,MAAM;IAKxB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,WAAW;YAKL,OAAO;IAiBf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAGjC;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,GAAE,MAAmB;IAIvC,OAAO,CAAC,OAAO;IAIT,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAYtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAe/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAGjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,UAAU,EAAE,mBAAmB,CAAC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC9C,CAAC,CAqBD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"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"}