@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,10 +1,11 @@
1
1
  /**
2
- * Shared utilities for stage tracking
2
+ * Stage Utilities
3
3
  *
4
- * Common patterns and helpers used across all stage modules
4
+ * Consolidated utilities for stage tracking, serialization, and timelock operations.
5
+ * Previously split between stages/base.ts and utils/stage-helpers.ts.
5
6
  */
6
7
  import { ethers } from "ethers";
7
- import { CallScheduledData, PrepareResult, SerializedCallScheduledData, StageType, TrackedStage } from "../types";
8
+ import { CallScheduledData, Chain, OperationState, PrepareResult, SerializedCallScheduledData, StageType, TimelockState, TrackedStage } from "../types";
8
9
  /** Generic serializer: converts BigNumber fields to strings for JSON storage. */
9
10
  export declare function serialize<T>(data: T, bigNumFields: readonly string[]): T;
10
11
  /** Generic deserializer: converts string fields back to BigNumber. */
@@ -16,27 +17,6 @@ export declare const deserializeCallScheduledData: (data: SerializedCallSchedule
16
17
  /** Serialize/deserialize arrays. */
17
18
  export declare const serializeCallScheduledDataArray: (data: CallScheduledData[]) => SerializedCallScheduledData[];
18
19
  export declare const deserializeCallScheduledDataArray: (data: SerializedCallScheduledData[]) => CallScheduledData[];
19
- /**
20
- * Calculate ETA from CallScheduled event data
21
- *
22
- * ETA = block timestamp + delay seconds
23
- * This works even when operation is done (contract returns _DONE_TIMESTAMP=1)
24
- */
25
- export declare function calculateEtaFromScheduledData(blockNumber: number, delaySeconds: number, provider: ethers.providers.Provider): Promise<number>;
26
- /**
27
- * Check if a proposal is Constitutional (requires L1 round-trip).
28
- *
29
- * Constitutional proposals (from Constitutional Governor) go through:
30
- * L2 Timelock (8 days) → L2→L1 Message → L1 Timelock (3 days) → Retryables
31
- *
32
- * Non-Constitutional proposals (from Non-Constitutional Governor) are L2-only:
33
- * L2 Timelock (3 days) → L2 Execution
34
- *
35
- * Also works with timelock addresses for direct timelock entry.
36
- *
37
- * @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
38
- */
39
- export declare function isConstitutional(governorOrTimelockAddress: string): boolean;
40
20
  /**
41
21
  * Get all stages for a governor path
42
22
  *
@@ -65,20 +45,10 @@ export declare function getCurrentStage(stages: TrackedStage[]): TrackedStage |
65
45
  * Check if all stages are complete
66
46
  */
67
47
  export declare function areAllStagesComplete(stages: TrackedStage[]): boolean;
68
- /**
69
- * Get block timestamp from provider
70
- */
71
- export declare function getBlockTimestamp(blockNumber: number, provider: ethers.providers.Provider): Promise<number>;
72
48
  /**
73
49
  * Find first READY stage that's executable
74
50
  */
75
51
  export declare function findExecutableStage(stages: TrackedStage[]): TrackedStage | null;
76
- /** Timelock stage types (consolidated stages that require execution) */
77
- export declare const TIMELOCK_STAGE_TYPES: readonly ["L2_TIMELOCK", "L1_TIMELOCK"];
78
- /**
79
- * Check if a stage type is a timelock stage
80
- */
81
- export declare function isTimelockStage(type: StageType | string): boolean;
82
52
  /**
83
53
  * Find all READY executable stages
84
54
  */
@@ -114,6 +84,37 @@ export declare function getTrackingStatusSummary(stages: TrackedStage[]): {
114
84
  * @returns The operationId if found, undefined otherwise
115
85
  */
116
86
  export declare function extractOperationId(stages: TrackedStage[]): string | undefined;
87
+ /**
88
+ * Check if a proposal is Constitutional (requires L1 round-trip).
89
+ *
90
+ * Constitutional proposals (from Constitutional Governor) go through:
91
+ * L2 Timelock (8 days) → L2→L1 Message → L1 Timelock (3 days) → Retryables
92
+ *
93
+ * Non-Constitutional proposals (from Non-Constitutional Governor) are L2-only:
94
+ * L2 Timelock (3 days) → L2 Execution
95
+ *
96
+ * Also works with timelock addresses for direct timelock entry.
97
+ *
98
+ * @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
99
+ */
100
+ export declare function isConstitutional(governorOrTimelockAddress: string): boolean;
101
+ /** Timelock stage types (consolidated stages that require execution) */
102
+ export declare const TIMELOCK_STAGE_TYPES: readonly ["L2_TIMELOCK", "L1_TIMELOCK"];
103
+ /**
104
+ * Check if a stage type is a timelock stage
105
+ */
106
+ export declare function isTimelockStage(type: StageType | string): boolean;
107
+ /**
108
+ * Get block timestamp from provider
109
+ */
110
+ export declare function getBlockTimestamp(blockNumber: number, provider: ethers.providers.Provider): Promise<number>;
111
+ /**
112
+ * Calculate ETA from CallScheduled event data
113
+ *
114
+ * ETA = block timestamp + delay seconds
115
+ * This works even when operation is done (contract returns _DONE_TIMESTAMP=1)
116
+ */
117
+ export declare function calculateEtaFromScheduledData(blockNumber: number, delaySeconds: number, provider: ethers.providers.Provider): Promise<number>;
117
118
  /**
118
119
  * Create a failed PrepareResult with an error message.
119
120
  * Reduces boilerplate for the common pattern: { success: false, error: "..." }
@@ -124,4 +125,46 @@ export declare function failPrepare(error: string): PrepareResult;
124
125
  * Returns null if ready, or an error result if not ready or already executed.
125
126
  */
126
127
  export declare function checkOperationReady(timelockAddress: string, operationId: string, provider: ethers.providers.Provider): Promise<PrepareResult | null>;
127
- //# sourceMappingURL=base.d.ts.map
128
+ /** Execution payload data for timelock operations. */
129
+ export interface TimelockExecutionPayload {
130
+ timelockAddress: string;
131
+ operationId: string;
132
+ callScheduledData: CallScheduledData[];
133
+ isSecurityCouncilOperation?: boolean;
134
+ securityCouncilMembers?: string[];
135
+ securityCouncilNonce?: string;
136
+ }
137
+ /** Extract timelock execution payload from a stage. */
138
+ export declare function createTimelockStageData(stage: TrackedStage): TimelockExecutionPayload | null;
139
+ /** Collect all CallScheduledData from a timelock state. */
140
+ export declare function collectAllScheduledData(timelockState: TimelockState): CallScheduledData[];
141
+ /** Calculate ETA for a timelock operation. */
142
+ export declare function calculateTimelockEta(timelockState: TimelockState, operationState: OperationState, provider: ethers.providers.Provider): Promise<number | undefined>;
143
+ /** Build serialized execution payload data for stage storage. */
144
+ export declare function buildExecutionPayloadData(timelockAddress: string, operationId: string, allScheduledData: CallScheduledData[]): Record<string, unknown>;
145
+ export interface PrepareValidationOptions {
146
+ prepareCompleted?: boolean;
147
+ expectedTypes?: StageType[];
148
+ }
149
+ /** Validate stage for preparation. Returns error or null if valid. */
150
+ export declare function validateStageForPrepare(stage: TrackedStage, options?: PrepareValidationOptions): PrepareResult | null;
151
+ export interface BulkPrepareResult<T extends Chain = Chain> {
152
+ total: number;
153
+ results: PrepareResult[];
154
+ targetChain: T;
155
+ }
156
+ export interface SimpleBulkResult {
157
+ total: number;
158
+ results: PrepareResult[];
159
+ }
160
+ export declare function bulkPrepareError<T extends Chain>(error: string, targetChain: T): BulkPrepareResult<T>;
161
+ export declare function simpleBulkError(error: string): SimpleBulkResult;
162
+ export declare function validateStageForBulkPrepare<T extends Chain>(stage: TrackedStage, targetChain: T, options?: PrepareValidationOptions): BulkPrepareResult<T> | null;
163
+ export declare function validateStageForSimpleBulk(stage: TrackedStage, options?: PrepareValidationOptions): SimpleBulkResult | null;
164
+ /** Search for timelock execution event and complete stage. */
165
+ export declare function searchAndCompleteTimelockExecution(stage: TrackedStage, timelockAddress: string, operationId: string, provider: ethers.providers.Provider, chain: Chain, fromBlock: number, toBlock?: number, queueTimestamp?: number): Promise<{
166
+ stage: TrackedStage;
167
+ executionTxHash: string | null;
168
+ executionBlock: number | null;
169
+ }>;
170
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/stages/utils.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,51 @@
1
1
  "use strict";
2
2
  /**
3
- * Shared utilities for stage tracking
3
+ * Stage Utilities
4
4
  *
5
- * Common patterns and helpers used across all stage modules
5
+ * Consolidated utilities for stage tracking, serialization, and timelock operations.
6
+ * Previously split between stages/base.ts and utils/stage-helpers.ts.
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.TIMELOCK_STAGE_TYPES = exports.deserializeCallScheduledDataArray = exports.serializeCallScheduledDataArray = exports.deserializeCallScheduledData = exports.serializeCallScheduledData = void 0;
9
10
  exports.serialize = serialize;
10
11
  exports.deserialize = deserialize;
11
- exports.calculateEtaFromScheduledData = calculateEtaFromScheduledData;
12
- exports.isConstitutional = isConstitutional;
13
12
  exports.getStagesForPath = getStagesForPath;
14
13
  exports.initializeStagesForPath = initializeStagesForPath;
15
14
  exports.findStage = findStage;
16
15
  exports.updateStageInList = updateStageInList;
17
16
  exports.getCurrentStage = getCurrentStage;
18
17
  exports.areAllStagesComplete = areAllStagesComplete;
19
- exports.getBlockTimestamp = getBlockTimestamp;
20
18
  exports.findExecutableStage = findExecutableStage;
21
- exports.isTimelockStage = isTimelockStage;
22
19
  exports.findAllExecutableStages = findAllExecutableStages;
23
20
  exports.needsAction = needsAction;
24
21
  exports.getTrackingStatusSummary = getTrackingStatusSummary;
25
22
  exports.extractOperationId = extractOperationId;
23
+ exports.isConstitutional = isConstitutional;
24
+ exports.isTimelockStage = isTimelockStage;
25
+ exports.getBlockTimestamp = getBlockTimestamp;
26
+ exports.calculateEtaFromScheduledData = calculateEtaFromScheduledData;
26
27
  exports.failPrepare = failPrepare;
27
28
  exports.checkOperationReady = checkOperationReady;
29
+ exports.createTimelockStageData = createTimelockStageData;
30
+ exports.collectAllScheduledData = collectAllScheduledData;
31
+ exports.calculateTimelockEta = calculateTimelockEta;
32
+ exports.buildExecutionPayloadData = buildExecutionPayloadData;
33
+ exports.validateStageForPrepare = validateStageForPrepare;
34
+ exports.bulkPrepareError = bulkPrepareError;
35
+ exports.simpleBulkError = simpleBulkError;
36
+ exports.validateStageForBulkPrepare = validateStageForBulkPrepare;
37
+ exports.validateStageForSimpleBulk = validateStageForSimpleBulk;
38
+ exports.searchAndCompleteTimelockExecution = searchAndCompleteTimelockExecution;
28
39
  const ethers_1 = require("ethers");
29
40
  const types_1 = require("../types");
30
41
  const abis_1 = require("../abis");
31
42
  const constants_1 = require("../constants");
32
43
  const chain_1 = require("../utils/chain");
33
44
  const rpc_utils_1 = require("../utils/rpc-utils");
45
+ const builder_1 = require("./builder");
46
+ const timelock_discovery_1 = require("../discovery/timelock-discovery");
34
47
  // ============================================================================
35
- // Serialization Utilities
48
+ // Section 1: Serialization Utilities
36
49
  // ============================================================================
37
50
  const CALL_SCHEDULED_BIGNUM_FIELDS = ["index", "value", "delay"];
38
51
  /** Generic serializer: converts BigNumber fields to strings for JSON storage. */
@@ -71,13 +84,16 @@ exports.serializeCallScheduledDataArray = serializeCallScheduledDataArray;
71
84
  const deserializeCallScheduledDataArray = (data) => data.map(exports.deserializeCallScheduledData);
72
85
  exports.deserializeCallScheduledDataArray = deserializeCallScheduledDataArray;
73
86
  // ============================================================================
74
- // Stage Creation and Management
87
+ // Section 2: Stage Creation and Management
75
88
  // ============================================================================
76
89
  /**
77
- * Create a new tracked stage with default values
90
+ * Create a new tracked stage with default values.
91
+ * Used for initializing placeholder stages that will be filled in later.
78
92
  */
79
93
  function createStage(type, chain, status = "NOT_STARTED") {
80
- const chainId = (0, types_1.chainToChainId)(chain) ?? 0; // Default to 0 for unknown chains
94
+ const chainId = (0, types_1.chainToChainId)(chain) ?? 0;
95
+ // Assertion needed: we create placeholder stages with empty data that get
96
+ // replaced by properly-built stages. TypeScript can't track this flow.
81
97
  return {
82
98
  type,
83
99
  status,
@@ -88,35 +104,6 @@ function createStage(type, chain, status = "NOT_STARTED") {
88
104
  executable: false,
89
105
  };
90
106
  }
91
- /**
92
- * Calculate ETA from CallScheduled event data
93
- *
94
- * ETA = block timestamp + delay seconds
95
- * This works even when operation is done (contract returns _DONE_TIMESTAMP=1)
96
- */
97
- async function calculateEtaFromScheduledData(blockNumber, delaySeconds, provider) {
98
- const timestamp = await getBlockTimestamp(blockNumber, provider);
99
- return timestamp + delaySeconds;
100
- }
101
- /**
102
- * Check if a proposal is Constitutional (requires L1 round-trip).
103
- *
104
- * Constitutional proposals (from Constitutional Governor) go through:
105
- * L2 Timelock (8 days) → L2→L1 Message → L1 Timelock (3 days) → Retryables
106
- *
107
- * Non-Constitutional proposals (from Non-Constitutional Governor) are L2-only:
108
- * L2 Timelock (3 days) → L2 Execution
109
- *
110
- * Also works with timelock addresses for direct timelock entry.
111
- *
112
- * @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
113
- */
114
- function isConstitutional(governorOrTimelockAddress) {
115
- return (0, chain_1.isAddressIn)(governorOrTimelockAddress, [
116
- constants_1.ADDRESSES.CONSTITUTIONAL_GOVERNOR,
117
- constants_1.ADDRESSES.L2_CONSTITUTIONAL_TIMELOCK,
118
- ]);
119
- }
120
107
  /**
121
108
  * Get all stages for a governor path
122
109
  *
@@ -161,6 +148,9 @@ function findStage(stages, type) {
161
148
  function updateStageInList(stages, updatedStage) {
162
149
  return stages.map((s) => (s.type === updatedStage.type ? updatedStage : s));
163
150
  }
151
+ // ============================================================================
152
+ // Section 3: Stage Querying and Status
153
+ // ============================================================================
164
154
  /**
165
155
  * Get the current active stage (first non-completed stage)
166
156
  */
@@ -178,30 +168,12 @@ function getCurrentStage(stages) {
178
168
  function areAllStagesComplete(stages) {
179
169
  return stages.every((s) => s.status === "COMPLETED" || s.status === "SKIPPED" || s.status === "FAILED");
180
170
  }
181
- /**
182
- * Get block timestamp from provider
183
- */
184
- async function getBlockTimestamp(blockNumber, provider) {
185
- const block = await (0, rpc_utils_1.queryWithRetry)(() => provider.getBlock(blockNumber));
186
- if (!block) {
187
- throw new Error(`Block ${blockNumber} not found`);
188
- }
189
- return block.timestamp;
190
- }
191
171
  /**
192
172
  * Find first READY stage that's executable
193
173
  */
194
174
  function findExecutableStage(stages) {
195
175
  return stages.find((s) => s.status === "READY" && s.executable === true) ?? null;
196
176
  }
197
- /** Timelock stage types (consolidated stages that require execution) */
198
- exports.TIMELOCK_STAGE_TYPES = ["L2_TIMELOCK", "L1_TIMELOCK"];
199
- /**
200
- * Check if a stage type is a timelock stage
201
- */
202
- function isTimelockStage(type) {
203
- return exports.TIMELOCK_STAGE_TYPES.includes(type);
204
- }
205
177
  /**
206
178
  * Find all READY executable stages
207
179
  */
@@ -247,17 +219,80 @@ function getTrackingStatusSummary(stages) {
247
219
  * @returns The operationId if found, undefined otherwise
248
220
  */
249
221
  function extractOperationId(stages) {
250
- // Check stages that contain operationId (in order of likelihood)
251
- const stageTypes = ["PROPOSAL_QUEUED", "L2_TIMELOCK"];
252
- for (const type of stageTypes) {
253
- const stage = stages.find((s) => s.type === type);
254
- const opId = stage?.data?.operationId;
222
+ // Check PROPOSAL_QUEUED first (most common)
223
+ const queuedStage = stages.find((s) => s.type === "PROPOSAL_QUEUED");
224
+ if (queuedStage?.type === "PROPOSAL_QUEUED") {
225
+ const opId = queuedStage.data.operationId;
226
+ if (typeof opId === "string" && opId.length > 0) {
227
+ return opId;
228
+ }
229
+ }
230
+ // Fallback to L2_TIMELOCK
231
+ const l2TimelockStage = stages.find((s) => s.type === "L2_TIMELOCK");
232
+ if (l2TimelockStage?.type === "L2_TIMELOCK") {
233
+ const opId = l2TimelockStage.data.operationId;
255
234
  if (typeof opId === "string" && opId.length > 0) {
256
235
  return opId;
257
236
  }
258
237
  }
259
238
  return undefined;
260
239
  }
240
+ // ============================================================================
241
+ // Section 4: Governance Logic
242
+ // ============================================================================
243
+ /**
244
+ * Check if a proposal is Constitutional (requires L1 round-trip).
245
+ *
246
+ * Constitutional proposals (from Constitutional Governor) go through:
247
+ * L2 Timelock (8 days) → L2→L1 Message → L1 Timelock (3 days) → Retryables
248
+ *
249
+ * Non-Constitutional proposals (from Non-Constitutional Governor) are L2-only:
250
+ * L2 Timelock (3 days) → L2 Execution
251
+ *
252
+ * Also works with timelock addresses for direct timelock entry.
253
+ *
254
+ * @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
255
+ */
256
+ function isConstitutional(governorOrTimelockAddress) {
257
+ return (0, chain_1.isAddressIn)(governorOrTimelockAddress, [
258
+ constants_1.ADDRESSES.CONSTITUTIONAL_GOVERNOR,
259
+ constants_1.ADDRESSES.L2_CONSTITUTIONAL_TIMELOCK,
260
+ ]);
261
+ }
262
+ /** Timelock stage types (consolidated stages that require execution) */
263
+ exports.TIMELOCK_STAGE_TYPES = ["L2_TIMELOCK", "L1_TIMELOCK"];
264
+ /**
265
+ * Check if a stage type is a timelock stage
266
+ */
267
+ function isTimelockStage(type) {
268
+ return exports.TIMELOCK_STAGE_TYPES.includes(type);
269
+ }
270
+ // ============================================================================
271
+ // Section 5: Block & Timing Utilities
272
+ // ============================================================================
273
+ /**
274
+ * Get block timestamp from provider
275
+ */
276
+ async function getBlockTimestamp(blockNumber, provider) {
277
+ const block = await (0, rpc_utils_1.queryWithRetry)(() => provider.getBlock(blockNumber));
278
+ if (!block) {
279
+ throw new Error(`Block ${blockNumber} not found`);
280
+ }
281
+ return block.timestamp;
282
+ }
283
+ /**
284
+ * Calculate ETA from CallScheduled event data
285
+ *
286
+ * ETA = block timestamp + delay seconds
287
+ * This works even when operation is done (contract returns _DONE_TIMESTAMP=1)
288
+ */
289
+ async function calculateEtaFromScheduledData(blockNumber, delaySeconds, provider) {
290
+ const timestamp = await getBlockTimestamp(blockNumber, provider);
291
+ return timestamp + delaySeconds;
292
+ }
293
+ // ============================================================================
294
+ // Section 6: Preparation Helpers
295
+ // ============================================================================
261
296
  /**
262
297
  * Create a failed PrepareResult with an error message.
263
298
  * Reduces boilerplate for the common pattern: { success: false, error: "..." }
@@ -280,4 +315,114 @@ async function checkOperationReady(timelockAddress, operationId, provider) {
280
315
  }
281
316
  return failPrepare("Operation is not ready for execution");
282
317
  }
283
- //# sourceMappingURL=base.js.map
318
+ /** Extract timelock execution payload from a stage. */
319
+ function createTimelockStageData(stage) {
320
+ let stageData = null;
321
+ for (const stageType of exports.TIMELOCK_STAGE_TYPES) {
322
+ stageData = (0, types_1.getStageData)(stage, stageType);
323
+ if (stageData)
324
+ break;
325
+ }
326
+ if (!stageData?.timelockAddress ||
327
+ !stageData?.operationId ||
328
+ !stageData?.callScheduledData?.length) {
329
+ return null;
330
+ }
331
+ const payload = {
332
+ timelockAddress: stageData.timelockAddress,
333
+ operationId: stageData.operationId,
334
+ callScheduledData: (0, exports.deserializeCallScheduledDataArray)(stageData.callScheduledData),
335
+ };
336
+ if (stageData.isSecurityCouncilOperation) {
337
+ payload.isSecurityCouncilOperation = true;
338
+ payload.securityCouncilMembers = stageData.securityCouncilMembers;
339
+ payload.securityCouncilNonce = stageData.securityCouncilNonce;
340
+ }
341
+ return payload;
342
+ }
343
+ /** Collect all CallScheduledData from a timelock state. */
344
+ function collectAllScheduledData(timelockState) {
345
+ return (timelockState.allScheduledData ??
346
+ (timelockState.scheduledData ? [timelockState.scheduledData] : []));
347
+ }
348
+ /** Calculate ETA for a timelock operation. */
349
+ async function calculateTimelockEta(timelockState, operationState, provider) {
350
+ if (timelockState.scheduledData) {
351
+ return calculateEtaFromScheduledData(timelockState.scheduledData.blockNumber, timelockState.scheduledData.delay.toNumber(), provider);
352
+ }
353
+ const contractTimestamp = operationState.timestamp.toNumber();
354
+ return !operationState.isDone && contractTimestamp > 1 ? contractTimestamp : undefined;
355
+ }
356
+ /** Build serialized execution payload data for stage storage. */
357
+ function buildExecutionPayloadData(timelockAddress, operationId, allScheduledData) {
358
+ const payload = { timelockAddress, operationId };
359
+ if (allScheduledData.length > 0) {
360
+ payload.callScheduledData = (0, exports.serializeCallScheduledDataArray)(allScheduledData);
361
+ }
362
+ return payload;
363
+ }
364
+ /** Validate stage for preparation. Returns error or null if valid. */
365
+ function validateStageForPrepare(stage, options = {}) {
366
+ if (!options.prepareCompleted && stage.status !== "READY") {
367
+ return failPrepare(`Stage is not ready. Current status: ${stage.status}`);
368
+ }
369
+ if (options.expectedTypes?.length && !options.expectedTypes.includes(stage.type)) {
370
+ return failPrepare(`Unexpected stage type: ${stage.type}. Expected: ${options.expectedTypes.join(", ")}`);
371
+ }
372
+ return null;
373
+ }
374
+ function bulkPrepareError(error, targetChain) {
375
+ return { total: 0, results: [{ success: false, error }], targetChain };
376
+ }
377
+ function simpleBulkError(error) {
378
+ return { total: 0, results: [{ success: false, error }] };
379
+ }
380
+ function validateStageForBulkPrepare(stage, targetChain, options = {}) {
381
+ const error = validateStageForPrepare(stage, options);
382
+ return error ? { total: 0, results: [error], targetChain } : null;
383
+ }
384
+ function validateStageForSimpleBulk(stage, options = {}) {
385
+ const error = validateStageForPrepare(stage, options);
386
+ return error ? { total: 0, results: [error] } : null;
387
+ }
388
+ // ============================================================================
389
+ // Section 9: Execution Search Helper
390
+ // ============================================================================
391
+ /** Search for timelock execution event and complete stage. */
392
+ async function searchAndCompleteTimelockExecution(stage, timelockAddress, operationId, provider, chain, fromBlock, toBlock, queueTimestamp) {
393
+ const event = await (0, timelock_discovery_1.findCallExecutedEvent)(timelockAddress, operationId, provider, {
394
+ startBlock: fromBlock,
395
+ endBlock: toBlock,
396
+ });
397
+ const builder = new builder_1.StageBuilder(stage.type, stage.chain)
398
+ .data(stage.data)
399
+ .transactions(stage.transactions);
400
+ if (stage.timing)
401
+ builder.timing(stage.timing);
402
+ if (event) {
403
+ const execTimestamp = await getBlockTimestamp(event.blockNumber, provider);
404
+ const chainId = (0, types_1.chainToChainId)(chain) ?? 0;
405
+ builder
406
+ .status("COMPLETED")
407
+ .tx(event.txHash, event.blockNumber, chain, chainId, {
408
+ timestamp: execTimestamp,
409
+ description: "executed",
410
+ })
411
+ .timing({ startedAt: queueTimestamp ?? execTimestamp })
412
+ .data({ operationId });
413
+ return {
414
+ stage: builder.build(),
415
+ executionTxHash: event.txHash,
416
+ executionBlock: event.blockNumber,
417
+ };
418
+ }
419
+ return {
420
+ stage: builder
421
+ .status("COMPLETED")
422
+ .data({ operationId, note: "Execution confirmed by state, event not found" })
423
+ .build(),
424
+ executionTxHash: null,
425
+ executionBlock: null,
426
+ };
427
+ }
428
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/stages/utils.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,12 @@
7
7
  * When calculating ETA for vetting period, we must use L1 block time.
8
8
  */
9
9
  import { ethers } from "ethers";
10
- import { ProposalData, TrackedStage, VotingData } from "../types";
10
+ import { ProposalData, TypedTrackedStage, VotingData } from "../types";
11
11
  /**
12
12
  * Track voting stage for a proposal
13
13
  */
14
14
  export declare function trackVotingStage(governorAddress: string, proposalId: string, proposalData: ProposalData, provider: ethers.providers.Provider): Promise<{
15
- stage: TrackedStage;
15
+ stage: TypedTrackedStage<"VOTING_ACTIVE">;
16
16
  votingData: VotingData | null;
17
17
  }>;
18
18
  //# sourceMappingURL=voting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"voting.d.ts","sourceRoot":"","sources":["../../src/stages/voting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAelE;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC;IACT,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B,CAAC,CA8HD"}
1
+ {"version":3,"file":"voting.d.ts","sourceRoot":"","sources":["../../src/stages/voting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAevE;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC;IACT,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B,CAAC,CA8HD"}
@@ -12,14 +12,14 @@ exports.trackVotingStage = trackVotingStage;
12
12
  const ethers_1 = require("ethers");
13
13
  const governor_discovery_1 = require("../discovery/governor-discovery");
14
14
  const security_council_1 = require("../discovery/security-council");
15
- const stage_builder_1 = require("./stage-builder");
15
+ const builder_1 = require("./builder");
16
16
  const timing_1 = require("../utils/timing");
17
17
  const constants_1 = require("../constants");
18
18
  /**
19
19
  * Track voting stage for a proposal
20
20
  */
21
21
  async function trackVotingStage(governorAddress, proposalId, proposalData, provider) {
22
- const builder = new stage_builder_1.StageBuilder("VOTING_ACTIVE", "arb1");
22
+ const builder = new builder_1.StageBuilder("VOTING_ACTIVE", "arb1");
23
23
  // Get current block info
24
24
  const { blockNumber: currentBlock, timestamp: currentTimestamp } = await (0, timing_1.getCurrentBlockInfo)(provider);
25
25
  // Check if voting has started
@@ -1 +1 @@
1
- {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../src/stages/voting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../src/stages/voting.ts"],"names":[],"mappings":"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"}