@gzeoneth/gov-tracker 0.3.0 → 0.4.0-beta.18db0de
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.
- package/README.md +0 -1
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +10 -56
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts +21 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +30 -0
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +30 -42
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/tui/utils/index.d.ts +1 -1
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +1 -2
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/stage-formatter.d.ts +1 -1
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +1 -1
- package/dist/cli/tui/utils/stage-formatter.js +1 -2
- package/dist/cli/tui/utils/stage-formatter.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +3 -3
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/cli/tui/views/StageView.d.ts.map +1 -1
- package/dist/cli/tui/views/StageView.js +1 -1
- package/dist/cli/tui/views/StageView.js.map +1 -1
- package/dist/data/bundled-cache.json +21513 -22619
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +43 -48
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/security-council.d.ts +15 -0
- package/dist/discovery/security-council.d.ts.map +1 -1
- package/dist/discovery/security-council.js +42 -19
- package/dist/discovery/security-council.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +34 -54
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/details.d.ts.map +1 -1
- package/dist/election/details.js +28 -30
- package/dist/election/details.js.map +1 -1
- package/dist/election/index.d.ts +3 -6
- package/dist/election/index.d.ts.map +1 -1
- package/dist/election/index.js +7 -14
- package/dist/election/index.js.map +1 -1
- package/dist/election/params.d.ts +8 -1
- package/dist/election/params.d.ts.map +1 -1
- package/dist/election/params.js +45 -1
- package/dist/election/params.js.map +1 -1
- package/dist/election/participants.d.ts.map +1 -1
- package/dist/election/participants.js +21 -24
- package/dist/election/participants.js.map +1 -1
- package/dist/election/proposal-ids.d.ts +10 -0
- package/dist/election/proposal-ids.d.ts.map +1 -1
- package/dist/election/proposal-ids.js +45 -5
- package/dist/election/proposal-ids.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/dist/simulation/simulation-data.js +2 -2
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/stages/builder.js +1 -1
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +2 -8
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +4 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.d.ts +4 -3
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +25 -48
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +1 -0
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +44 -58
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +39 -5
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +102 -40
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +4 -9
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts +25 -6
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +428 -211
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +20 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +86 -1
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/stage-runner.d.ts +62 -0
- package/dist/tracker/stage-runner.d.ts.map +1 -0
- package/dist/tracker/stage-runner.js +80 -0
- package/dist/tracker/stage-runner.js.map +1 -0
- package/dist/tracker/state.d.ts +64 -0
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +191 -12
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +30 -1
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +220 -167
- package/dist/tracker.js.map +1 -1
- package/dist/types/core.d.ts +3 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +3 -2
- package/dist/types/core.js.map +1 -1
- package/dist/types/tracking.d.ts +11 -0
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/log-filters.d.ts.map +1 -1
- package/dist/utils/log-filters.js +4 -8
- package/dist/utils/log-filters.js.map +1 -1
- package/dist/utils/timing.d.ts +10 -3
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +39 -13
- package/dist/utils/timing.js.map +1 -1
- package/package.json +7 -6
- package/dist/election/prepare.d.ts +0 -10
- package/dist/election/prepare.d.ts.map +0 -1
- package/dist/election/prepare.js +0 -52
- package/dist/election/prepare.js.map +0 -1
- package/dist/election/tracking.d.ts +0 -28
- package/dist/election/tracking.d.ts.map +0 -1
- package/dist/election/tracking.js +0 -412
- package/dist/election/tracking.js.map +0 -1
package/dist/stages/timelock.js
CHANGED
|
@@ -48,26 +48,15 @@ const L1_TIMELOCK_CONFIG = {
|
|
|
48
48
|
// ============================================================================
|
|
49
49
|
// Proposal types from governor contracts (not Security Council operations)
|
|
50
50
|
const GOVERNOR_PROPOSAL_TYPES = new Set(["CONSTITUTIONAL", "NON_CONSTITUTIONAL"]);
|
|
51
|
-
/**
|
|
52
|
-
* Check if proposal is from a known governor (not a Security Council operation).
|
|
53
|
-
* Governor proposals have proposalType of CONSTITUTIONAL or NON_CONSTITUTIONAL.
|
|
54
|
-
*/
|
|
55
|
-
function isKnownGovernorProposal(allStages) {
|
|
56
|
-
if (!allStages)
|
|
57
|
-
return false;
|
|
58
|
-
const proposalStage = allStages.find((s) => s.type === "PROPOSAL_CREATED");
|
|
59
|
-
const proposalType = proposalStage?.data.proposalType;
|
|
60
|
-
return proposalType ? GOVERNOR_PROPOSAL_TYPES.has(proposalType) : false;
|
|
61
|
-
}
|
|
62
51
|
/**
|
|
63
52
|
* Get Security Council enrichment data if applicable.
|
|
64
53
|
* Returns data to merge into stage, or null if not a SC operation.
|
|
65
54
|
*
|
|
66
55
|
* Skips the check for known governor proposals to avoid unnecessary RPC call.
|
|
67
56
|
*/
|
|
68
|
-
async function getSecurityCouncilData(timelockState, operationId, provider,
|
|
57
|
+
async function getSecurityCouncilData(timelockState, operationId, provider, proposalType) {
|
|
69
58
|
// Skip for known governor proposals - they are never SC operations
|
|
70
|
-
if (
|
|
59
|
+
if (proposalType && GOVERNOR_PROPOSAL_TYPES.has(proposalType)) {
|
|
71
60
|
return null;
|
|
72
61
|
}
|
|
73
62
|
const queueTxHash = timelockState.scheduledData?.txHash;
|
|
@@ -92,24 +81,22 @@ async function getSecurityCouncilData(timelockState, operationId, provider, allS
|
|
|
92
81
|
* Find L1 operation ID from a known OutBox execution transaction.
|
|
93
82
|
*/
|
|
94
83
|
async function findL1OperationIdFromTx(outboxTxHash, outboxTxBlock, l1Provider) {
|
|
84
|
+
const result = {
|
|
85
|
+
l1OperationId: null,
|
|
86
|
+
l1ScheduleTxHash: outboxTxHash,
|
|
87
|
+
l1ScheduleBlock: outboxTxBlock,
|
|
88
|
+
};
|
|
95
89
|
const receipt = await (0, rpc_utils_1.queryWithRetry)(() => l1Provider.getTransactionReceipt(outboxTxHash));
|
|
96
|
-
if (!receipt)
|
|
97
|
-
return
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
l1ScheduleTxHash: outboxTxHash,
|
|
107
|
-
l1ScheduleBlock: outboxTxBlock,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return { l1OperationId: null, l1ScheduleTxHash: outboxTxHash, l1ScheduleBlock: outboxTxBlock };
|
|
90
|
+
if (!receipt)
|
|
91
|
+
return result;
|
|
92
|
+
const callScheduledLog = receipt.logs.find((log) => (0, chain_1.addressEquals)(log.address, constants_1.ADDRESSES.L1_TIMELOCK) &&
|
|
93
|
+
log.topics[0] === constants_1.EVENT_TOPICS.CALL_SCHEDULED);
|
|
94
|
+
if (callScheduledLog) {
|
|
95
|
+
const parsed = (0, timelock_discovery_1.parseCallScheduledEvent)(callScheduledLog);
|
|
96
|
+
if (parsed)
|
|
97
|
+
result.l1OperationId = parsed.operationId;
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
113
100
|
}
|
|
114
101
|
// ============================================================================
|
|
115
102
|
// Generic Tracking Function
|
|
@@ -163,35 +150,30 @@ async function trackTimelock(config, timelockAddress, operationId, provider, fro
|
|
|
163
150
|
// Check for Security Council enrichment (L2 only)
|
|
164
151
|
// Skip for known governor proposals to avoid unnecessary RPC call
|
|
165
152
|
if (options.checkSecurityCouncil) {
|
|
166
|
-
const scData = await getSecurityCouncilData(timelockState, operationId, provider, options.
|
|
153
|
+
const scData = await getSecurityCouncilData(timelockState, operationId, provider, options.proposalType);
|
|
167
154
|
if (scData) {
|
|
168
155
|
builder.data(scData);
|
|
169
156
|
}
|
|
170
157
|
}
|
|
171
|
-
// Compute and
|
|
158
|
+
// Compute salt and predecessor, then validate operation type
|
|
159
|
+
let salt = ethers_1.ethers.constants.HashZero;
|
|
160
|
+
let predecessor = ethers_1.ethers.constants.HashZero;
|
|
172
161
|
if (config.stageType === "L2_TIMELOCK") {
|
|
173
|
-
// Get current stage data for salt computation
|
|
174
162
|
const currentData = builder.build().data;
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (allData.length > 0 && allData[0].predecessor) {
|
|
179
|
-
builder.data({ predecessor: allData[0].predecessor });
|
|
180
|
-
}
|
|
163
|
+
salt = await (0, salt_computation_1.computeL2TimelockSalt)(currentData, options.allStages, provider);
|
|
164
|
+
predecessor = allData[0]?.predecessor ?? ethers_1.ethers.constants.HashZero;
|
|
165
|
+
builder.data({ salt, predecessor });
|
|
181
166
|
log("%s: Computed salt: %s", config.logPrefix, salt.slice(0, 10) + "...");
|
|
182
167
|
}
|
|
183
168
|
else if (config.stageType === "L1_TIMELOCK") {
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
169
|
+
const computed = (0, salt_computation_1.computeL1TimelockSalt)(options.allStages);
|
|
170
|
+
salt = computed.salt;
|
|
171
|
+
predecessor = computed.predecessor ?? ethers_1.ethers.constants.HashZero;
|
|
172
|
+
builder.data({ salt, predecessor });
|
|
189
173
|
log("%s: Computed salt: %s", config.logPrefix, salt.slice(0, 10) + "...");
|
|
190
174
|
}
|
|
191
175
|
// Determine if operation uses scheduleBatch or schedule by trying both validations
|
|
192
176
|
if (allData.length > 0) {
|
|
193
|
-
const salt = builder.build().data.salt ?? ethers_1.ethers.constants.HashZero;
|
|
194
|
-
const predecessor = builder.build().data.predecessor ?? ethers_1.ethers.constants.HashZero;
|
|
195
177
|
// Try batch validation first (common for L2 timelock)
|
|
196
178
|
const targets = allData.map((d) => d.target);
|
|
197
179
|
const values = allData.map((d) => d.value);
|
|
@@ -230,20 +212,23 @@ async function trackTimelock(config, timelockAddress, operationId, provider, fro
|
|
|
230
212
|
}
|
|
231
213
|
// Add queue transaction if available (for all statuses where scheduled)
|
|
232
214
|
let queueTimestamp;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
queueTimestamp = await (0, utils_1.getBlockTimestamp)(
|
|
236
|
-
const chainId = (0, types_1.chainToChainId)(config.chain)
|
|
237
|
-
builder.tx(
|
|
215
|
+
const scheduled = timelockState.scheduledData;
|
|
216
|
+
if (scheduled?.txHash && scheduled.blockNumber !== undefined) {
|
|
217
|
+
queueTimestamp = await (0, utils_1.getBlockTimestamp)(scheduled.blockNumber, provider);
|
|
218
|
+
const chainId = (0, types_1.chainToChainId)(config.chain);
|
|
219
|
+
builder.tx(scheduled.txHash, scheduled.blockNumber, config.chain, chainId, {
|
|
220
|
+
timestamp: queueTimestamp,
|
|
221
|
+
description: "queued",
|
|
222
|
+
});
|
|
238
223
|
}
|
|
239
224
|
// Determine status based on operation state
|
|
240
225
|
// Priority: COMPLETED (isDone) > READY (isReady) > PENDING (isPending) > NOT_STARTED
|
|
241
226
|
if (operationState.isDone) {
|
|
242
|
-
let executionSearchStart =
|
|
243
|
-
if (
|
|
244
|
-
const delaySeconds =
|
|
227
|
+
let executionSearchStart = scheduled?.blockNumber ?? fromBlock;
|
|
228
|
+
if (scheduled) {
|
|
229
|
+
const delaySeconds = scheduled.delay.toNumber();
|
|
245
230
|
if (delaySeconds > 0) {
|
|
246
|
-
executionSearchStart = await (0, timing_1.blockAfterDelay)(provider,
|
|
231
|
+
executionSearchStart = await (0, timing_1.blockAfterDelay)(provider, scheduled.blockNumber, delaySeconds, config.blockTimeSeconds);
|
|
247
232
|
log("%s execution search optimized: start=%d", config.logPrefix, executionSearchStart);
|
|
248
233
|
}
|
|
249
234
|
}
|
|
@@ -252,7 +237,7 @@ async function trackTimelock(config, timelockAddress, operationId, provider, fro
|
|
|
252
237
|
const receipt = await (0, rpc_utils_1.queryWithRetry)(() => provider.getTransactionReceipt(cachedTxHash));
|
|
253
238
|
if (receipt) {
|
|
254
239
|
const execTimestamp = await (0, utils_1.getBlockTimestamp)(receipt.blockNumber, provider);
|
|
255
|
-
const chainId = (0, types_1.chainToChainId)(config.chain)
|
|
240
|
+
const chainId = (0, types_1.chainToChainId)(config.chain);
|
|
256
241
|
builder
|
|
257
242
|
.status("COMPLETED")
|
|
258
243
|
.tx(options.cachedExecutionTxHash, receipt.blockNumber, config.chain, chainId, {
|
|
@@ -335,6 +320,7 @@ async function trackL2Timelock(timelockAddress, operationId, provider, fromBlock
|
|
|
335
320
|
cachedExecutionTxHash: options.cachedExecutionTxHash,
|
|
336
321
|
checkSecurityCouncil: true,
|
|
337
322
|
allStages: options.allStages,
|
|
323
|
+
proposalType: options.proposalType,
|
|
338
324
|
chunkSize: options.chunkSize,
|
|
339
325
|
});
|
|
340
326
|
}
|
|
@@ -465,7 +451,7 @@ async function prepareTimelockOperation(timelockAddress, params, operationId, st
|
|
|
465
451
|
predecessor,
|
|
466
452
|
salt,
|
|
467
453
|
]);
|
|
468
|
-
const chainId = (0, types_1.chainToChainId)(chain)
|
|
454
|
+
const chainId = (0, types_1.chainToChainId)(chain);
|
|
469
455
|
return {
|
|
470
456
|
success: true,
|
|
471
457
|
prepared: {
|
|
@@ -527,7 +513,7 @@ async function prepareTimelockBatch(timelockAddress, params, operationId, stageD
|
|
|
527
513
|
predecessor,
|
|
528
514
|
salt,
|
|
529
515
|
]);
|
|
530
|
-
const chainId = (0, types_1.chainToChainId)(chain)
|
|
516
|
+
const chainId = (0, types_1.chainToChainId)(chain);
|
|
531
517
|
return {
|
|
532
518
|
success: true,
|
|
533
519
|
prepared: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timelock.js","sourceRoot":"","sources":["../../src/stages/timelock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timelock.js","sourceRoot":"","sources":["../../src/stages/timelock.ts"],"names":[],"mappings":"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"}
|
package/dist/stages/utils.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Previously split between stages/base.ts and utils/stage-helpers.ts.
|
|
6
6
|
*/
|
|
7
7
|
import { ethers } from "ethers";
|
|
8
|
-
import { CallScheduledData, Chain, OperationState, PrepareResult, SerializedCallScheduledData, StageType, TimelockState, TrackedStage } from "../types";
|
|
8
|
+
import { CallScheduledData, Chain, OperationState, PrepareResult, SerializedCallScheduledData, StageStatus, StageType, TimelockState, TrackedStage } from "../types";
|
|
9
9
|
/** Generic serializer: converts BigNumber fields to strings for JSON storage. */
|
|
10
10
|
export declare function serialize<T>(data: T, bigNumFields: readonly string[]): T;
|
|
11
11
|
/** Generic deserializer: converts string fields back to BigNumber. */
|
|
@@ -17,15 +17,41 @@ export declare const deserializeCallScheduledData: (data: SerializedCallSchedule
|
|
|
17
17
|
/** Serialize/deserialize arrays. */
|
|
18
18
|
export declare const serializeCallScheduledDataArray: (data: CallScheduledData[]) => SerializedCallScheduledData[];
|
|
19
19
|
export declare const deserializeCallScheduledDataArray: (data: SerializedCallScheduledData[]) => CallScheduledData[];
|
|
20
|
+
/**
|
|
21
|
+
* Tracking path types for stage initialization
|
|
22
|
+
*/
|
|
23
|
+
export type TrackingPath = "governor" | "timelock" | "election";
|
|
20
24
|
/**
|
|
21
25
|
* Get stage types for a tracking path.
|
|
22
|
-
* @param
|
|
26
|
+
* @param path - The tracking path type: "governor", "timelock", or "election"
|
|
23
27
|
*/
|
|
24
|
-
export declare function
|
|
28
|
+
export declare function getStagesForTrackingPath(path: TrackingPath): StageType[];
|
|
29
|
+
/** Get chain for a stage type (L1 stages run on ethereum, others on arb1) */
|
|
30
|
+
export declare const getChainForStage: (type: StageType) => Chain;
|
|
31
|
+
export declare function initializeStagesForTrackingPath(path: TrackingPath): TrackedStage[];
|
|
25
32
|
/**
|
|
26
|
-
*
|
|
33
|
+
* Check if a stage type is part of the timelock path (for modular caching).
|
|
34
|
+
* Includes all stages after proposal/election execution: L2_TIMELOCK → RETRYABLE_EXECUTED
|
|
27
35
|
*/
|
|
28
|
-
export declare function
|
|
36
|
+
export declare function isTimelockPathStage(type: StageType): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Split stages into parent and timelock stages for modular caching.
|
|
39
|
+
*
|
|
40
|
+
* Parent stages:
|
|
41
|
+
* - Governor: PROPOSAL_CREATED, VOTING_ACTIVE, PROPOSAL_QUEUED
|
|
42
|
+
* - Election: CREATE_ELECTION, NOMINEE_ELECTION, NOMINEE_VETTING, MEMBER_ELECTION
|
|
43
|
+
*
|
|
44
|
+
* Timelock stages: L2_TIMELOCK, L2_TO_L1_MESSAGE, L1_TIMELOCK, RETRYABLE_EXECUTED
|
|
45
|
+
*/
|
|
46
|
+
export declare function splitStages(stages: TrackedStage[]): {
|
|
47
|
+
parentStages: TrackedStage[];
|
|
48
|
+
timelockStages: TrackedStage[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Check if stages have any timelock progress (for determining if we need linked checkpoint).
|
|
52
|
+
* Returns true if any timelock path stage has been started.
|
|
53
|
+
*/
|
|
54
|
+
export declare function hasTimelockProgress(stages: TrackedStage[]): boolean;
|
|
29
55
|
/**
|
|
30
56
|
* Find a stage by type in a list of stages
|
|
31
57
|
*/
|
|
@@ -34,6 +60,14 @@ export declare function findStage(stages: TrackedStage[], type: StageType): Trac
|
|
|
34
60
|
* Update a stage in a list of stages
|
|
35
61
|
*/
|
|
36
62
|
export declare function updateStageInList(stages: TrackedStage[], updatedStage: TrackedStage): TrackedStage[];
|
|
63
|
+
/**
|
|
64
|
+
* Check if status is terminal (COMPLETED, SKIPPED, or FAILED)
|
|
65
|
+
*/
|
|
66
|
+
export declare function isStageTerminal(status: StageStatus | undefined): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Check if status represents successful completion (COMPLETED or SKIPPED)
|
|
69
|
+
*/
|
|
70
|
+
export declare function isStageSuccess(status: StageStatus | undefined): boolean;
|
|
37
71
|
/**
|
|
38
72
|
* Get the current active stage (first non-completed stage)
|
|
39
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/stages/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,KAAK,EAGL,cAAc,EACd,aAAa,EACb,2BAA2B,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/stages/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/stages/utils.js
CHANGED
|
@@ -6,13 +6,18 @@
|
|
|
6
6
|
* Previously split between stages/base.ts and utils/stage-helpers.ts.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.TIMELOCK_STAGE_TYPES = exports.deserializeCallScheduledDataArray = exports.serializeCallScheduledDataArray = exports.deserializeCallScheduledData = exports.serializeCallScheduledData = void 0;
|
|
9
|
+
exports.TIMELOCK_STAGE_TYPES = exports.getChainForStage = exports.deserializeCallScheduledDataArray = exports.serializeCallScheduledDataArray = exports.deserializeCallScheduledData = exports.serializeCallScheduledData = void 0;
|
|
10
10
|
exports.serialize = serialize;
|
|
11
11
|
exports.deserialize = deserialize;
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
12
|
+
exports.getStagesForTrackingPath = getStagesForTrackingPath;
|
|
13
|
+
exports.initializeStagesForTrackingPath = initializeStagesForTrackingPath;
|
|
14
|
+
exports.isTimelockPathStage = isTimelockPathStage;
|
|
15
|
+
exports.splitStages = splitStages;
|
|
16
|
+
exports.hasTimelockProgress = hasTimelockProgress;
|
|
14
17
|
exports.findStage = findStage;
|
|
15
18
|
exports.updateStageInList = updateStageInList;
|
|
19
|
+
exports.isStageTerminal = isStageTerminal;
|
|
20
|
+
exports.isStageSuccess = isStageSuccess;
|
|
16
21
|
exports.getCurrentStage = getCurrentStage;
|
|
17
22
|
exports.areAllStagesComplete = areAllStagesComplete;
|
|
18
23
|
exports.findExecutableStage = findExecutableStage;
|
|
@@ -92,7 +97,7 @@ exports.deserializeCallScheduledDataArray = deserializeCallScheduledDataArray;
|
|
|
92
97
|
* Used for initializing placeholder stages that will be filled in later.
|
|
93
98
|
*/
|
|
94
99
|
function createStage(type, chain, status = "NOT_STARTED") {
|
|
95
|
-
const chainId = (0, types_1.chainToChainId)(chain)
|
|
100
|
+
const chainId = (0, types_1.chainToChainId)(chain);
|
|
96
101
|
// Assertion needed: we create placeholder stages with empty data that get
|
|
97
102
|
// replaced by properly-built stages. TypeScript can't track this flow.
|
|
98
103
|
return {
|
|
@@ -105,41 +110,93 @@ function createStage(type, chain, status = "NOT_STARTED") {
|
|
|
105
110
|
executable: false,
|
|
106
111
|
};
|
|
107
112
|
}
|
|
113
|
+
/** Common timelock stages shared by all paths */
|
|
114
|
+
const COMMON_TIMELOCK_STAGES = [
|
|
115
|
+
"L2_TIMELOCK",
|
|
116
|
+
"L2_TO_L1_MESSAGE",
|
|
117
|
+
"L1_TIMELOCK",
|
|
118
|
+
"RETRYABLE_EXECUTED",
|
|
119
|
+
];
|
|
108
120
|
/** Full proposal stages (from governor proposal) */
|
|
109
121
|
const FULL_PROPOSAL_STAGES = [
|
|
110
122
|
"PROPOSAL_CREATED",
|
|
111
123
|
"VOTING_ACTIVE",
|
|
112
124
|
"PROPOSAL_QUEUED",
|
|
113
|
-
|
|
114
|
-
"L2_TO_L1_MESSAGE",
|
|
115
|
-
"L1_TIMELOCK",
|
|
116
|
-
"RETRYABLE_EXECUTED",
|
|
125
|
+
...COMMON_TIMELOCK_STAGES,
|
|
117
126
|
];
|
|
118
127
|
/** Timelock-only stages (direct timelock entry) */
|
|
119
|
-
const TIMELOCK_ONLY_STAGES =
|
|
128
|
+
const TIMELOCK_ONLY_STAGES = COMMON_TIMELOCK_STAGES;
|
|
129
|
+
/** Election stages (full election lifecycle) */
|
|
130
|
+
const ELECTION_STAGES = [
|
|
131
|
+
"CREATE_ELECTION",
|
|
132
|
+
"NOMINEE_ELECTION",
|
|
133
|
+
"NOMINEE_VETTING",
|
|
134
|
+
"MEMBER_ELECTION",
|
|
135
|
+
...COMMON_TIMELOCK_STAGES,
|
|
136
|
+
];
|
|
137
|
+
/**
|
|
138
|
+
* Get stage types for a tracking path.
|
|
139
|
+
* @param path - The tracking path type: "governor", "timelock", or "election"
|
|
140
|
+
*/
|
|
141
|
+
function getStagesForTrackingPath(path) {
|
|
142
|
+
switch (path) {
|
|
143
|
+
case "governor":
|
|
144
|
+
return FULL_PROPOSAL_STAGES;
|
|
145
|
+
case "timelock":
|
|
146
|
+
return TIMELOCK_ONLY_STAGES;
|
|
147
|
+
case "election":
|
|
148
|
+
return ELECTION_STAGES;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Initialize all stages for a tracking path
|
|
153
|
+
* @param path - The tracking path type: "governor", "timelock", or "election"
|
|
154
|
+
*/
|
|
155
|
+
/** L1 stages (execute on Ethereum mainnet) */
|
|
156
|
+
const L1_STAGES = new Set(["L1_TIMELOCK", "RETRYABLE_EXECUTED"]);
|
|
157
|
+
/** Get chain for a stage type (L1 stages run on ethereum, others on arb1) */
|
|
158
|
+
const getChainForStage = (type) => L1_STAGES.has(type) ? "ethereum" : "arb1";
|
|
159
|
+
exports.getChainForStage = getChainForStage;
|
|
160
|
+
function initializeStagesForTrackingPath(path) {
|
|
161
|
+
return getStagesForTrackingPath(path).map((type) => createStage(type, (0, exports.getChainForStage)(type), "NOT_STARTED"));
|
|
162
|
+
}
|
|
163
|
+
// ============================================================================
|
|
164
|
+
// Modular Caching: Stage Splitting
|
|
165
|
+
// ============================================================================
|
|
166
|
+
/** All timelock path stages for modular caching (full path, not just executable) */
|
|
167
|
+
const TIMELOCK_PATH_STAGES = new Set([
|
|
120
168
|
"L2_TIMELOCK",
|
|
121
169
|
"L2_TO_L1_MESSAGE",
|
|
122
170
|
"L1_TIMELOCK",
|
|
123
171
|
"RETRYABLE_EXECUTED",
|
|
124
|
-
];
|
|
172
|
+
]);
|
|
125
173
|
/**
|
|
126
|
-
*
|
|
127
|
-
*
|
|
174
|
+
* Check if a stage type is part of the timelock path (for modular caching).
|
|
175
|
+
* Includes all stages after proposal/election execution: L2_TIMELOCK → RETRYABLE_EXECUTED
|
|
128
176
|
*/
|
|
129
|
-
function
|
|
130
|
-
return
|
|
177
|
+
function isTimelockPathStage(type) {
|
|
178
|
+
return TIMELOCK_PATH_STAGES.has(type);
|
|
131
179
|
}
|
|
132
180
|
/**
|
|
133
|
-
*
|
|
181
|
+
* Split stages into parent and timelock stages for modular caching.
|
|
182
|
+
*
|
|
183
|
+
* Parent stages:
|
|
184
|
+
* - Governor: PROPOSAL_CREATED, VOTING_ACTIVE, PROPOSAL_QUEUED
|
|
185
|
+
* - Election: CREATE_ELECTION, NOMINEE_ELECTION, NOMINEE_VETTING, MEMBER_ELECTION
|
|
186
|
+
*
|
|
187
|
+
* Timelock stages: L2_TIMELOCK, L2_TO_L1_MESSAGE, L1_TIMELOCK, RETRYABLE_EXECUTED
|
|
134
188
|
*/
|
|
135
|
-
function
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
189
|
+
function splitStages(stages) {
|
|
190
|
+
const parentStages = stages.filter((s) => !isTimelockPathStage(s.type));
|
|
191
|
+
const timelockStages = stages.filter((s) => isTimelockPathStage(s.type));
|
|
192
|
+
return { parentStages, timelockStages };
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if stages have any timelock progress (for determining if we need linked checkpoint).
|
|
196
|
+
* Returns true if any timelock path stage has been started.
|
|
197
|
+
*/
|
|
198
|
+
function hasTimelockProgress(stages) {
|
|
199
|
+
return stages.some((s) => isTimelockPathStage(s.type) && s.status !== "NOT_STARTED");
|
|
143
200
|
}
|
|
144
201
|
/**
|
|
145
202
|
* Find a stage by type in a list of stages
|
|
@@ -156,12 +213,24 @@ function updateStageInList(stages, updatedStage) {
|
|
|
156
213
|
// ============================================================================
|
|
157
214
|
// Section 3: Stage Querying and Status
|
|
158
215
|
// ============================================================================
|
|
216
|
+
/**
|
|
217
|
+
* Check if status is terminal (COMPLETED, SKIPPED, or FAILED)
|
|
218
|
+
*/
|
|
219
|
+
function isStageTerminal(status) {
|
|
220
|
+
return status === "COMPLETED" || status === "SKIPPED" || status === "FAILED";
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Check if status represents successful completion (COMPLETED or SKIPPED)
|
|
224
|
+
*/
|
|
225
|
+
function isStageSuccess(status) {
|
|
226
|
+
return status === "COMPLETED" || status === "SKIPPED";
|
|
227
|
+
}
|
|
159
228
|
/**
|
|
160
229
|
* Get the current active stage (first non-completed stage)
|
|
161
230
|
*/
|
|
162
231
|
function getCurrentStage(stages) {
|
|
163
232
|
for (const stage of stages) {
|
|
164
|
-
if (stage.status
|
|
233
|
+
if (!isStageTerminal(stage.status)) {
|
|
165
234
|
return stage;
|
|
166
235
|
}
|
|
167
236
|
}
|
|
@@ -171,7 +240,7 @@ function getCurrentStage(stages) {
|
|
|
171
240
|
* Check if all stages are complete
|
|
172
241
|
*/
|
|
173
242
|
function areAllStagesComplete(stages) {
|
|
174
|
-
return stages.every((s) => s.status
|
|
243
|
+
return stages.every((s) => isStageTerminal(s.status));
|
|
175
244
|
}
|
|
176
245
|
/**
|
|
177
246
|
* Find first READY stage that's executable
|
|
@@ -233,20 +302,13 @@ function getTrackingStatusSummary(stages) {
|
|
|
233
302
|
* @returns The operationId if found, undefined otherwise
|
|
234
303
|
*/
|
|
235
304
|
function extractOperationId(stages) {
|
|
236
|
-
// Check PROPOSAL_QUEUED
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
// Fallback to L2_TIMELOCK
|
|
245
|
-
const l2TimelockStage = stages.find((s) => s.type === "L2_TIMELOCK");
|
|
246
|
-
if (l2TimelockStage?.type === "L2_TIMELOCK") {
|
|
247
|
-
const opId = l2TimelockStage.data.operationId;
|
|
248
|
-
if (typeof opId === "string" && opId.length > 0) {
|
|
249
|
-
return opId;
|
|
305
|
+
// Check stages that contain operationId (PROPOSAL_QUEUED is most common)
|
|
306
|
+
for (const stage of stages) {
|
|
307
|
+
if (stage.type === "PROPOSAL_QUEUED" || stage.type === "L2_TIMELOCK") {
|
|
308
|
+
const opId = stage.data.operationId;
|
|
309
|
+
if (typeof opId === "string" && opId.length > 0) {
|
|
310
|
+
return opId;
|
|
311
|
+
}
|
|
250
312
|
}
|
|
251
313
|
}
|
|
252
314
|
return undefined;
|
|
@@ -437,7 +499,7 @@ async function searchAndCompleteTimelockExecution(stage, timelockAddress, operat
|
|
|
437
499
|
builder.timing(stage.timing);
|
|
438
500
|
if (event) {
|
|
439
501
|
const execTimestamp = await getBlockTimestamp(event.blockNumber, provider);
|
|
440
|
-
const chainId = (0, types_1.chainToChainId)(chain)
|
|
502
|
+
const chainId = (0, types_1.chainToChainId)(chain);
|
|
441
503
|
builder
|
|
442
504
|
.status("COMPLETED")
|
|
443
505
|
.tx(event.txHash, event.blockNumber, chain, chainId, {
|