@gzeoneth/gov-tracker 0.2.1-beta.682a255 → 0.2.1-beta.746bfec
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 +126 -80
- package/dist/abis.d.ts +3 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +30 -2
- package/dist/abis.js.map +1 -1
- package/dist/calldata/index.d.ts +1 -1
- package/dist/calldata/index.d.ts.map +1 -1
- package/dist/calldata/index.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +8 -1
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/signature-lookup.d.ts +17 -2
- package/dist/calldata/signature-lookup.d.ts.map +1 -1
- package/dist/calldata/signature-lookup.js +20 -2
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.d.ts +21 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/{monitor.js → cli.js} +315 -46
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/lib/cli.d.ts +54 -3
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +384 -75
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/concurrency.d.ts +20 -0
- package/dist/cli/lib/concurrency.d.ts.map +1 -0
- package/dist/cli/lib/concurrency.js +32 -0
- package/dist/cli/lib/concurrency.js.map +1 -0
- package/dist/cli/lib/json-state.d.ts +23 -0
- package/dist/cli/lib/json-state.d.ts.map +1 -1
- package/dist/cli/lib/json-state.js +51 -4
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/constants.d.ts +39 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +47 -1
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +11807 -2559
- package/dist/deduplication.d.ts +132 -0
- package/dist/deduplication.d.ts.map +1 -0
- package/dist/deduplication.js +270 -0
- package/dist/deduplication.js.map +1 -0
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +52 -36
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts +15 -6
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -11
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts +8 -0
- package/dist/election/contracts.d.ts.map +1 -0
- package/dist/election/contracts.js +28 -0
- package/dist/election/contracts.js.map +1 -0
- package/dist/election/details.d.ts +15 -0
- package/dist/election/details.d.ts.map +1 -0
- package/dist/election/details.js +157 -0
- package/dist/election/details.js.map +1 -0
- package/dist/election/index.d.ts +11 -0
- package/dist/election/index.d.ts.map +1 -0
- package/dist/election/index.js +48 -0
- package/dist/election/index.js.map +1 -0
- package/dist/election/params.d.ts +13 -0
- package/dist/election/params.d.ts.map +1 -0
- package/dist/election/params.js +93 -0
- package/dist/election/params.js.map +1 -0
- package/dist/election/participants.d.ts +6 -0
- package/dist/election/participants.d.ts.map +1 -0
- package/dist/election/participants.js +102 -0
- package/dist/election/participants.js.map +1 -0
- package/dist/election/prepare.d.ts +10 -0
- package/dist/election/prepare.d.ts.map +1 -0
- package/dist/election/prepare.js +52 -0
- package/dist/election/prepare.js.map +1 -0
- package/dist/election/proposal-ids.d.ts +18 -0
- package/dist/election/proposal-ids.d.ts.map +1 -0
- package/dist/election/proposal-ids.js +77 -0
- package/dist/election/proposal-ids.js.map +1 -0
- package/dist/election/status.d.ts +15 -0
- package/dist/election/status.d.ts.map +1 -0
- package/dist/election/status.js +102 -0
- package/dist/election/status.js.map +1 -0
- package/dist/election/tracking.d.ts +28 -0
- package/dist/election/tracking.d.ts.map +1 -0
- package/dist/election/tracking.js +412 -0
- package/dist/election/tracking.js.map +1 -0
- package/dist/index.d.ts +30 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -9
- package/dist/index.js.map +1 -1
- package/dist/stages/builder.d.ts +4 -0
- package/dist/stages/builder.d.ts.map +1 -1
- package/dist/stages/builder.js +7 -0
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts +8 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +79 -13
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-created.d.ts +1 -0
- package/dist/stages/proposal-created.d.ts.map +1 -1
- package/dist/stages/proposal-created.js +1 -0
- package/dist/stages/proposal-created.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts +1 -0
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +3 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.js +2 -2
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +3 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +10 -4
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +7 -8
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +40 -27
- package/dist/stages/utils.js.map +1 -1
- package/dist/stages/voting.d.ts.map +1 -1
- package/dist/stages/voting.js +5 -4
- package/dist/stages/voting.js.map +1 -1
- package/dist/tracker/cache.d.ts +10 -6
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +39 -15
- package/dist/tracker/cache.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +63 -0
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
- package/dist/tracker/checkpoint-helpers.js +176 -0
- package/dist/tracker/checkpoint-helpers.js.map +1 -0
- package/dist/tracker/discovery.d.ts +40 -9
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +152 -15
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +26 -11
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +1 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +14 -61
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +0 -10
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +1 -28
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +86 -4
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +311 -13
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +4 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/election.d.ts +143 -0
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/stages.d.ts +79 -1
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +34 -4
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/block-cache.d.ts +50 -0
- package/dist/utils/block-cache.d.ts.map +1 -0
- package/dist/utils/block-cache.js +80 -0
- package/dist/utils/block-cache.js.map +1 -0
- package/dist/utils/formatters.d.ts +91 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +327 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/multicall.d.ts +52 -0
- package/dist/utils/multicall.d.ts.map +1 -0
- package/dist/utils/multicall.js +75 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/salt-computation.d.ts.map +1 -1
- package/dist/utils/salt-computation.js +33 -7
- package/dist/utils/salt-computation.js.map +1 -1
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +52 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/stage-metadata.d.ts +0 -20
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +29 -44
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +13 -0
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +37 -1
- package/dist/utils/timing.js.map +1 -1
- package/package.json +25 -16
- package/dist/cli/monitor.d.ts +0 -3
- package/dist/cli/monitor.d.ts.map +0 -1
- package/dist/cli/monitor.js.map +0 -1
- package/dist/election.d.ts +0 -172
- package/dist/election.d.ts.map +0 -1
- package/dist/election.js +0 -467
- package/dist/election.js.map +0 -1
- package/dist/types/cross-chain.d.ts +0 -24
- package/dist/types/cross-chain.d.ts.map +0 -1
- package/dist/types/cross-chain.js +0 -6
- package/dist/types/cross-chain.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multicall utilities for batching L2 RPC calls
|
|
3
|
+
*
|
|
4
|
+
* Wraps @arbitrum/sdk's MultiCaller to batch multiple contract calls into a single RPC request.
|
|
5
|
+
* Only use for L2 calls - L1 RPCs are typically rate-limited and don't benefit as much.
|
|
6
|
+
*/
|
|
7
|
+
import { ethers } from "ethers";
|
|
8
|
+
import { MultiCaller, CallInput } from "@arbitrum/sdk";
|
|
9
|
+
/**
|
|
10
|
+
* Create a MultiCaller instance for the given provider
|
|
11
|
+
*
|
|
12
|
+
* Uses the SDK's address resolution to find the correct Multicall2 contract.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getMultiCaller(provider: ethers.providers.Provider): Promise<MultiCaller>;
|
|
15
|
+
/**
|
|
16
|
+
* Build a CallInput for a contract method call
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const input = buildCallInput(
|
|
21
|
+
* timelockAddress,
|
|
22
|
+
* timelockInterface,
|
|
23
|
+
* "isOperationReady",
|
|
24
|
+
* [operationId]
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildCallInput<T>(targetAddr: string, iface: ethers.utils.Interface, method: string, args?: unknown[]): CallInput<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Execute multiple calls in a single RPC request
|
|
31
|
+
*
|
|
32
|
+
* @param provider - L2 provider (Arbitrum One/Nova)
|
|
33
|
+
* @param calls - Array of CallInput objects
|
|
34
|
+
* @param requireSuccess - If true, reverts if any call fails. If false, failed calls return undefined.
|
|
35
|
+
* @returns Array of results in the same order as inputs
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const timelockIface = new ethers.utils.Interface(TIMELOCK_ABI);
|
|
40
|
+
*
|
|
41
|
+
* const [isReady, isDone, timestamp] = await multicall(provider, [
|
|
42
|
+
* buildCallInput(timelockAddr, timelockIface, "isOperationReady", [opId]),
|
|
43
|
+
* buildCallInput(timelockAddr, timelockIface, "isOperationDone", [opId]),
|
|
44
|
+
* buildCallInput(timelockAddr, timelockIface, "getTimestamp", [opId]),
|
|
45
|
+
* ]);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function multicall<T extends CallInput<unknown>[]>(provider: ethers.providers.Provider, calls: [...T], requireSuccess?: boolean): Promise<{
|
|
49
|
+
[K in keyof T]: T[K] extends CallInput<infer U> ? U | undefined : never;
|
|
50
|
+
}>;
|
|
51
|
+
export { CallInput } from "@arbitrum/sdk";
|
|
52
|
+
//# sourceMappingURL=multicall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAKvD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAE9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,OAAO,EAAO,GACnB,SAAS,CAAC,CAAC,CAAC,CASd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5D,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EACb,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK;CAAE,CAAC,CAatF;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Multicall utilities for batching L2 RPC calls
|
|
4
|
+
*
|
|
5
|
+
* Wraps @arbitrum/sdk's MultiCaller to batch multiple contract calls into a single RPC request.
|
|
6
|
+
* Only use for L2 calls - L1 RPCs are typically rate-limited and don't benefit as much.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getMultiCaller = getMultiCaller;
|
|
10
|
+
exports.buildCallInput = buildCallInput;
|
|
11
|
+
exports.multicall = multicall;
|
|
12
|
+
const sdk_1 = require("@arbitrum/sdk");
|
|
13
|
+
const logger_1 = require("./logger");
|
|
14
|
+
const log = logger_1.loggers.rpc;
|
|
15
|
+
/**
|
|
16
|
+
* Create a MultiCaller instance for the given provider
|
|
17
|
+
*
|
|
18
|
+
* Uses the SDK's address resolution to find the correct Multicall2 contract.
|
|
19
|
+
*/
|
|
20
|
+
async function getMultiCaller(provider) {
|
|
21
|
+
return sdk_1.MultiCaller.fromProvider(provider);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build a CallInput for a contract method call
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const input = buildCallInput(
|
|
29
|
+
* timelockAddress,
|
|
30
|
+
* timelockInterface,
|
|
31
|
+
* "isOperationReady",
|
|
32
|
+
* [operationId]
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
function buildCallInput(targetAddr, iface, method, args = []) {
|
|
37
|
+
return {
|
|
38
|
+
targetAddr,
|
|
39
|
+
encoder: () => iface.encodeFunctionData(method, args),
|
|
40
|
+
decoder: (returnData) => {
|
|
41
|
+
const result = iface.decodeFunctionResult(method, returnData);
|
|
42
|
+
return result[0];
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Execute multiple calls in a single RPC request
|
|
48
|
+
*
|
|
49
|
+
* @param provider - L2 provider (Arbitrum One/Nova)
|
|
50
|
+
* @param calls - Array of CallInput objects
|
|
51
|
+
* @param requireSuccess - If true, reverts if any call fails. If false, failed calls return undefined.
|
|
52
|
+
* @returns Array of results in the same order as inputs
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const timelockIface = new ethers.utils.Interface(TIMELOCK_ABI);
|
|
57
|
+
*
|
|
58
|
+
* const [isReady, isDone, timestamp] = await multicall(provider, [
|
|
59
|
+
* buildCallInput(timelockAddr, timelockIface, "isOperationReady", [opId]),
|
|
60
|
+
* buildCallInput(timelockAddr, timelockIface, "isOperationDone", [opId]),
|
|
61
|
+
* buildCallInput(timelockAddr, timelockIface, "getTimestamp", [opId]),
|
|
62
|
+
* ]);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
async function multicall(provider, calls, requireSuccess = false) {
|
|
66
|
+
if (calls.length === 0) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
log("multicall: batching %d calls", calls.length);
|
|
70
|
+
const multiCaller = await getMultiCaller(provider);
|
|
71
|
+
const results = await multiCaller.multiCall(calls, requireSuccess);
|
|
72
|
+
log("multicall: completed %d calls", calls.length);
|
|
73
|
+
return results;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=multicall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAaH,wCAEC;AAeD,wCAcC;AAqBD,8BAiBC;AA/ED,uCAAuD;AACvD,qCAAmC;AAEnC,MAAM,GAAG,GAAG,gBAAO,CAAC,GAAG,CAAC;AAExB;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAmC;IACtE,OAAO,iBAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,cAAc,CAC5B,UAAkB,EAClB,KAA6B,EAC7B,MAAc,EACd,OAAkB,EAAE;IAEpB,OAAO;QACL,UAAU;QACV,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;QACrD,OAAO,EAAE,CAAC,UAAkB,EAAK,EAAE;YACjC,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC,CAAC,CAAM,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,SAAS,CAC7B,QAAmC,EACnC,KAAa,EACb,iBAA0B,KAAK;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAiF,CAAC;IAC3F,CAAC;IAED,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAEnE,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnD,OAAO,OAAsF,CAAC;AAChG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salt-computation.d.ts","sourceRoot":"","sources":["../../src/utils/salt-computation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAgC7F;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE;IACT,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACpD,EACD,SAAS,CAAC,EAAE,YAAY,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GACnC,OAAO,CAAC,MAAM,CAAC,CA2BjB;
|
|
1
|
+
{"version":3,"file":"salt-computation.d.ts","sourceRoot":"","sources":["../../src/utils/salt-computation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAgC7F;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE;IACT,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACpD,EACD,SAAS,CAAC,EAAE,YAAY,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GACnC,OAAO,CAAC,MAAM,CAAC,CA2BjB;AA2BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA"}
|
|
@@ -98,6 +98,30 @@ async function computeL2TimelockSalt(stageData, allStages, provider) {
|
|
|
98
98
|
// Priority 3: HashZero fallback
|
|
99
99
|
return ethers_1.ethers.constants.HashZero;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Extract calldata from L2ToL1Tx event
|
|
103
|
+
*
|
|
104
|
+
* Handles both live event object (with .data property) and serialized array format
|
|
105
|
+
* where the data field is at index 8 (the 9th element):
|
|
106
|
+
* [caller, destination, hash, position, arbBlockNum, ethBlockNum, timestamp, callvalue, data]
|
|
107
|
+
*/
|
|
108
|
+
function extractL2ToL1TxData(l2ToL1TxEvent) {
|
|
109
|
+
if (!l2ToL1TxEvent)
|
|
110
|
+
return null;
|
|
111
|
+
// Handle object format (live event)
|
|
112
|
+
if (typeof l2ToL1TxEvent === "object" && !Array.isArray(l2ToL1TxEvent)) {
|
|
113
|
+
const data = l2ToL1TxEvent.data;
|
|
114
|
+
if (typeof data === "string")
|
|
115
|
+
return data;
|
|
116
|
+
}
|
|
117
|
+
// Handle array format (serialized from cache)
|
|
118
|
+
if (Array.isArray(l2ToL1TxEvent) && l2ToL1TxEvent.length >= 9) {
|
|
119
|
+
const data = l2ToL1TxEvent[8];
|
|
120
|
+
if (typeof data === "string")
|
|
121
|
+
return data;
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
101
125
|
/**
|
|
102
126
|
* Compute salt for L1 timelock stage
|
|
103
127
|
*
|
|
@@ -109,13 +133,15 @@ function computeL1TimelockSalt(allStages) {
|
|
|
109
133
|
if (allStages) {
|
|
110
134
|
const l2ToL1Stage = allStages.find((s) => s.type === "L2_TO_L1_MESSAGE");
|
|
111
135
|
if (l2ToL1Stage?.data.l2ToL1TxEvent) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
136
|
+
const l2ToL1TxData = extractL2ToL1TxData(l2ToL1Stage.data.l2ToL1TxEvent);
|
|
137
|
+
if (l2ToL1TxData) {
|
|
138
|
+
const decoded = decodeL1TimelockSchedule(l2ToL1TxData);
|
|
139
|
+
if (decoded) {
|
|
140
|
+
return {
|
|
141
|
+
salt: decoded.salt,
|
|
142
|
+
predecessor: decoded.predecessor,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
119
145
|
}
|
|
120
146
|
}
|
|
121
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salt-computation.js","sourceRoot":"","sources":["../../src/utils/salt-computation.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAcH,kDAEC;AASD,kEAaC;AAkCD,4DAgCC;AAUD,sDAmCC;
|
|
1
|
+
{"version":3,"file":"salt-computation.js","sourceRoot":"","sources":["../../src/utils/salt-computation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Sanitization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Functions to sanitize untrusted data from on-chain sources.
|
|
5
|
+
* Proposal data (especially descriptions) can be created by anyone.
|
|
6
|
+
*/
|
|
7
|
+
/** Maximum description length to prevent DoS via large strings */
|
|
8
|
+
export declare const MAX_DESCRIPTION_LENGTH = 100000;
|
|
9
|
+
/**
|
|
10
|
+
* Truncate description to prevent DoS from extremely large strings.
|
|
11
|
+
* Proposals are user-submitted and could contain arbitrarily large descriptions.
|
|
12
|
+
*/
|
|
13
|
+
export declare function truncateDescription(description: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Sanitize string for terminal display by removing control characters.
|
|
16
|
+
*
|
|
17
|
+
* Removes ANSI escape codes and control characters that could manipulate
|
|
18
|
+
* terminal output. Preserves newlines and tabs for readability.
|
|
19
|
+
*/
|
|
20
|
+
export declare function sanitizeForDisplay(str: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Safe JSON parse with prototype pollution protection.
|
|
23
|
+
*
|
|
24
|
+
* Prevents attacks via __proto__, constructor, or prototype keys
|
|
25
|
+
* that could pollute Object.prototype when parsing untrusted JSON.
|
|
26
|
+
*/
|
|
27
|
+
export declare function safeJsonParse<T>(json: string): T;
|
|
28
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAOhD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Security Sanitization Utilities
|
|
4
|
+
*
|
|
5
|
+
* Functions to sanitize untrusted data from on-chain sources.
|
|
6
|
+
* Proposal data (especially descriptions) can be created by anyone.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MAX_DESCRIPTION_LENGTH = void 0;
|
|
10
|
+
exports.truncateDescription = truncateDescription;
|
|
11
|
+
exports.sanitizeForDisplay = sanitizeForDisplay;
|
|
12
|
+
exports.safeJsonParse = safeJsonParse;
|
|
13
|
+
/** Maximum description length to prevent DoS via large strings */
|
|
14
|
+
exports.MAX_DESCRIPTION_LENGTH = 100000; // ~100KB
|
|
15
|
+
/**
|
|
16
|
+
* Truncate description to prevent DoS from extremely large strings.
|
|
17
|
+
* Proposals are user-submitted and could contain arbitrarily large descriptions.
|
|
18
|
+
*/
|
|
19
|
+
function truncateDescription(description) {
|
|
20
|
+
if (description.length <= exports.MAX_DESCRIPTION_LENGTH) {
|
|
21
|
+
return description;
|
|
22
|
+
}
|
|
23
|
+
return description.slice(0, exports.MAX_DESCRIPTION_LENGTH) + "... [truncated]";
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sanitize string for terminal display by removing control characters.
|
|
27
|
+
*
|
|
28
|
+
* Removes ANSI escape codes and control characters that could manipulate
|
|
29
|
+
* terminal output. Preserves newlines and tabs for readability.
|
|
30
|
+
*/
|
|
31
|
+
function sanitizeForDisplay(str) {
|
|
32
|
+
// Remove ANSI escape codes (e.g., color codes, cursor movement)
|
|
33
|
+
// Remove control characters except \t (0x09), \n (0x0A), \r (0x0D)
|
|
34
|
+
return str.replace(
|
|
35
|
+
// eslint-disable-next-line no-control-regex
|
|
36
|
+
/\x1B\[[0-9;]*[a-zA-Z]|\x1B\](?:[^\x07\x1B]*)(?:\x07|\x1B\\)|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "");
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Safe JSON parse with prototype pollution protection.
|
|
40
|
+
*
|
|
41
|
+
* Prevents attacks via __proto__, constructor, or prototype keys
|
|
42
|
+
* that could pollute Object.prototype when parsing untrusted JSON.
|
|
43
|
+
*/
|
|
44
|
+
function safeJsonParse(json) {
|
|
45
|
+
return JSON.parse(json, (key, value) => {
|
|
46
|
+
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,kDAKC;AAQD,gDAQC;AAQD,sCAOC;AA3CD,kEAAkE;AACrD,QAAA,sBAAsB,GAAG,MAAO,CAAC,CAAC,SAAS;AAExD;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,IAAI,WAAW,CAAC,MAAM,IAAI,8BAAsB,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,8BAAsB,CAAC,GAAG,iBAAiB,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,gEAAgE;IAChE,mEAAmE;IACnE,OAAO,GAAG,CAAC,OAAO;IAChB,4CAA4C;IAC5C,+FAA+F,EAC/F,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAI,IAAY;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACrC,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -30,22 +30,6 @@ export interface StageMetadata {
|
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
32
|
export declare function getStageMetadata(stageType: StageType, _proposalType?: ProposalType): StageMetadata;
|
|
33
|
-
/**
|
|
34
|
-
* Get metadata for all stages in order
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const allMeta = getAllStageMetadata();
|
|
39
|
-
* for (const [type, meta] of Object.entries(allMeta)) {
|
|
40
|
-
* console.log(`${meta.title} (${meta.estimatedDays}d)`);
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare function getAllStageMetadata(proposalType?: ProposalType): Record<StageType, StageMetadata>;
|
|
45
|
-
/**
|
|
46
|
-
* Get stages that require user action (executable stages)
|
|
47
|
-
*/
|
|
48
|
-
export declare function getActionableStages(): StageType[];
|
|
49
33
|
/**
|
|
50
34
|
* Format stage type as human-readable title
|
|
51
35
|
*
|
|
@@ -55,8 +39,4 @@ export declare function getActionableStages(): StageType[];
|
|
|
55
39
|
* ```
|
|
56
40
|
*/
|
|
57
41
|
export declare function formatStageTitle(stageType: StageType): string;
|
|
58
|
-
/**
|
|
59
|
-
* Get total expected duration for the full governance lifecycle in days
|
|
60
|
-
*/
|
|
61
|
-
export declare function getTotalExpectedDuration(): number;
|
|
62
42
|
//# sourceMappingURL=stage-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/stage-metadata.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC;IAC7B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"stage-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/stage-metadata.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC;IAC7B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAC;CACzB;AA4FD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,aAAa,CAAC,EAAE,YAAY,GAC3B,aAAa,CAQf;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE7D"}
|
|
@@ -6,10 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.getStageMetadata = getStageMetadata;
|
|
9
|
-
exports.getAllStageMetadata = getAllStageMetadata;
|
|
10
|
-
exports.getActionableStages = getActionableStages;
|
|
11
9
|
exports.formatStageTitle = formatStageTitle;
|
|
12
|
-
exports.getTotalExpectedDuration = getTotalExpectedDuration;
|
|
13
10
|
const constants_1 = require("../constants");
|
|
14
11
|
const BASE_METADATA = {
|
|
15
12
|
PROPOSAL_CREATED: {
|
|
@@ -54,6 +51,30 @@ const BASE_METADATA = {
|
|
|
54
51
|
chain: "CROSS_CHAIN",
|
|
55
52
|
requiresAction: true,
|
|
56
53
|
},
|
|
54
|
+
CREATE_ELECTION: {
|
|
55
|
+
title: "Create Election",
|
|
56
|
+
description: "Security Council election created on-chain",
|
|
57
|
+
chain: "arb1",
|
|
58
|
+
requiresAction: true,
|
|
59
|
+
},
|
|
60
|
+
NOMINEE_ELECTION: {
|
|
61
|
+
title: "Nominee Election",
|
|
62
|
+
description: "Token holders voting on nominee candidates",
|
|
63
|
+
chain: "arb1",
|
|
64
|
+
requiresAction: false,
|
|
65
|
+
},
|
|
66
|
+
NOMINEE_VETTING: {
|
|
67
|
+
title: "Nominee Vetting",
|
|
68
|
+
description: "Vetting period for nominated candidates before member election",
|
|
69
|
+
chain: "arb1",
|
|
70
|
+
requiresAction: true,
|
|
71
|
+
},
|
|
72
|
+
MEMBER_ELECTION: {
|
|
73
|
+
title: "Member Election",
|
|
74
|
+
description: "Token holders voting to elect Security Council members",
|
|
75
|
+
chain: "arb1",
|
|
76
|
+
requiresAction: true,
|
|
77
|
+
},
|
|
57
78
|
};
|
|
58
79
|
const DEFAULT_DURATIONS = {
|
|
59
80
|
PROPOSAL_CREATED: 0,
|
|
@@ -66,6 +87,11 @@ const DEFAULT_DURATIONS = {
|
|
|
66
87
|
// L1_TIMELOCK combines delay (3 days) + execution (0 days)
|
|
67
88
|
L1_TIMELOCK: constants_1.GOVERNANCE_STAGE_DURATION_DAYS.L1_TIMELOCK,
|
|
68
89
|
RETRYABLE_EXECUTED: 0,
|
|
90
|
+
// Election stages
|
|
91
|
+
CREATE_ELECTION: 0,
|
|
92
|
+
NOMINEE_ELECTION: 7, // ~7 days voting
|
|
93
|
+
NOMINEE_VETTING: 7, // ~7 days vetting
|
|
94
|
+
MEMBER_ELECTION: 21, // ~21 days voting
|
|
69
95
|
};
|
|
70
96
|
/**
|
|
71
97
|
* Get metadata for a specific stage
|
|
@@ -85,41 +111,6 @@ function getStageMetadata(stageType, _proposalType) {
|
|
|
85
111
|
estimatedDays,
|
|
86
112
|
};
|
|
87
113
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Get metadata for all stages in order
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* const allMeta = getAllStageMetadata();
|
|
94
|
-
* for (const [type, meta] of Object.entries(allMeta)) {
|
|
95
|
-
* console.log(`${meta.title} (${meta.estimatedDays}d)`);
|
|
96
|
-
* }
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
|
-
function getAllStageMetadata(proposalType) {
|
|
100
|
-
const stages = [
|
|
101
|
-
"PROPOSAL_CREATED",
|
|
102
|
-
"VOTING_ACTIVE",
|
|
103
|
-
"PROPOSAL_QUEUED",
|
|
104
|
-
"L2_TIMELOCK",
|
|
105
|
-
"L2_TO_L1_MESSAGE",
|
|
106
|
-
"L1_TIMELOCK",
|
|
107
|
-
"RETRYABLE_EXECUTED",
|
|
108
|
-
];
|
|
109
|
-
const result = {};
|
|
110
|
-
for (const stage of stages) {
|
|
111
|
-
result[stage] = getStageMetadata(stage, proposalType);
|
|
112
|
-
}
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get stages that require user action (executable stages)
|
|
117
|
-
*/
|
|
118
|
-
function getActionableStages() {
|
|
119
|
-
return Object.entries(BASE_METADATA)
|
|
120
|
-
.filter(([, meta]) => meta.requiresAction)
|
|
121
|
-
.map(([type]) => type);
|
|
122
|
-
}
|
|
123
114
|
/**
|
|
124
115
|
* Format stage type as human-readable title
|
|
125
116
|
*
|
|
@@ -131,10 +122,4 @@ function getActionableStages() {
|
|
|
131
122
|
function formatStageTitle(stageType) {
|
|
132
123
|
return BASE_METADATA[stageType].title;
|
|
133
124
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Get total expected duration for the full governance lifecycle in days
|
|
136
|
-
*/
|
|
137
|
-
function getTotalExpectedDuration() {
|
|
138
|
-
return Object.values(DEFAULT_DURATIONS).reduce((sum, d) => sum + d, 0);
|
|
139
|
-
}
|
|
140
125
|
//# sourceMappingURL=stage-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-metadata.js","sourceRoot":"","sources":["../../src/utils/stage-metadata.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"stage-metadata.js","sourceRoot":"","sources":["../../src/utils/stage-metadata.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAyHH,4CAWC;AAUD,4CAEC;AA7ID,4CAA8D;AAkB9D,MAAM,aAAa,GAA4D;IAC7E,gBAAgB,EAAE;QAChB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,iEAAiE;QAC9E,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,KAAK;KACtB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,0CAA0C;QACvD,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,KAAK;KACtB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,kDAAkD;QAC/D,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,iHAAiH;QACnH,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI;KACrB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2IAA2I;QAC7I,KAAK,EAAE,aAAa;QACpB,cAAc,EAAE,IAAI;KACrB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,iHAAiH;QACnH,KAAK,EAAE,UAAU;QACjB,cAAc,EAAE,IAAI;KACrB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,aAAa;QACpB,cAAc,EAAE,IAAI;KACrB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI;KACrB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,KAAK;KACtB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI;KACrB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,wDAAwD;QACrE,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,IAAI;KACrB;CACF,CAAC;AAEF,MAAM,iBAAiB,GAA8B;IACnD,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,0CAA8B,CAAC,MAAM;IACpD,eAAe,EAAE,CAAC;IAClB,oFAAoF;IACpF,WAAW,EAAE,0CAA8B,CAAC,0BAA0B;IACtE,wEAAwE;IACxE,gBAAgB,EAAE,0CAA8B,CAAC,gBAAgB;IACjE,2DAA2D;IAC3D,WAAW,EAAE,0CAA8B,CAAC,WAAW;IACvD,kBAAkB,EAAE,CAAC;IACrB,kBAAkB;IAClB,eAAe,EAAE,CAAC;IAClB,gBAAgB,EAAE,CAAC,EAAE,iBAAiB;IACtC,eAAe,EAAE,CAAC,EAAE,kBAAkB;IACtC,eAAe,EAAE,EAAE,EAAE,kBAAkB;CACxC,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAC9B,SAAoB,EACpB,aAA4B;IAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEnD,OAAO;QACL,GAAG,IAAI;QACP,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC"}
|
package/dist/utils/timing.d.ts
CHANGED
|
@@ -97,6 +97,19 @@ export declare function getFirstL2BlockForL1Block(l2Provider: ethers.providers.P
|
|
|
97
97
|
* @returns A block number at or shortly before timestamp >= startTimestamp + delaySeconds
|
|
98
98
|
*/
|
|
99
99
|
export declare function blockAfterDelay(provider: ethers.providers.Provider, startBlock: number, delaySeconds: number, estimatedBlockTime?: number): Promise<number>;
|
|
100
|
+
/**
|
|
101
|
+
* Check if a stage is stale (READY but past expected completion time).
|
|
102
|
+
*
|
|
103
|
+
* A stage is considered stale when:
|
|
104
|
+
* - Status is READY
|
|
105
|
+
* - Current time > (eta + staleness threshold)
|
|
106
|
+
*
|
|
107
|
+
* @param stage - The stage to check
|
|
108
|
+
* @param currentTimestamp - Current Unix timestamp (seconds)
|
|
109
|
+
* @param customThreshold - Optional custom staleness threshold in seconds
|
|
110
|
+
* @returns true if stale, false if not stale, undefined if staleness cannot be determined
|
|
111
|
+
*/
|
|
112
|
+
export declare function isStageStale(stage: TrackedStage, currentTimestamp: number, customThreshold?: number): boolean | undefined;
|
|
100
113
|
/**
|
|
101
114
|
* Calculate expected ETA for a stage that hasn't started yet
|
|
102
115
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AA4BxD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,GAAE,MAA6B,GACvC,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,GAAE,MAA6B,GACvC,MAAM,GAAG,IAAI,CAMf;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAA6B,GACvC,MAAM,CAMR;AAaD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBrD;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GACpC,OAAO,CAAC,SAAS,CAAC,CAkBpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AA4BxD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,GAAE,MAA6B,GACvC,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,GAAE,MAA6B,GACvC,MAAM,GAAG,IAAI,CAMf;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAA6B,GACvC,MAAM,CAMR;AAaD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBrD;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GACpC,OAAO,CAAC,SAAS,CAAC,CAkBpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2D7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,GAAE,MAA6B,GAChD,OAAO,CAAC,MAAM,CAAC,CAoFjB;AA8BD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,GAAG,SAAS,CAUrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAmCpB"}
|
package/dist/utils/timing.js
CHANGED
|
@@ -14,6 +14,7 @@ exports.getL1BlockNumberFromL2 = getL1BlockNumberFromL2;
|
|
|
14
14
|
exports.getL1BlockForL2Block = getL1BlockForL2Block;
|
|
15
15
|
exports.getFirstL2BlockForL1Block = getFirstL2BlockForL1Block;
|
|
16
16
|
exports.blockAfterDelay = blockAfterDelay;
|
|
17
|
+
exports.isStageStale = isStageStale;
|
|
17
18
|
exports.calculateExpectedEta = calculateExpectedEta;
|
|
18
19
|
const ethers_1 = require("ethers");
|
|
19
20
|
const NodeInterface__factory_1 = require("@arbitrum/sdk/dist/lib/abi/factories/NodeInterface__factory");
|
|
@@ -188,7 +189,8 @@ async function getFirstL2BlockForL1Block(l2Provider, targetL1Block, options = {}
|
|
|
188
189
|
if (l1Block <= 0)
|
|
189
190
|
break;
|
|
190
191
|
try {
|
|
191
|
-
|
|
192
|
+
// queryWithRetry handles rate limits; reverts (no L2 block for L1) won't be retried
|
|
193
|
+
const range = await (0, rpc_utils_1.queryWithRetry)(() => nodeInterface.l2BlockRangeForL1(l1Block));
|
|
192
194
|
// For exact match (offset=0), return firstBlock
|
|
193
195
|
// For nearby blocks, return lastBlock+1 as the first block >= targetL1Block
|
|
194
196
|
const result = offset === 0 ? range.firstBlock.toNumber() : range.lastBlock.toNumber() + 1;
|
|
@@ -292,6 +294,40 @@ const STAGE_DURATION_DAYS = {
|
|
|
292
294
|
L2_TO_L1_MESSAGE: constants_1.GOVERNANCE_STAGE_DURATION_DAYS.CHALLENGE_PERIOD,
|
|
293
295
|
L1_TIMELOCK: constants_1.GOVERNANCE_STAGE_DURATION_DAYS.L1_TIMELOCK,
|
|
294
296
|
};
|
|
297
|
+
/**
|
|
298
|
+
* Default staleness thresholds by stage type (in seconds)
|
|
299
|
+
*
|
|
300
|
+
* - Timelocks: 7 days past ETA
|
|
301
|
+
* - Retryables: 14 days past ETA (they have 7-day expiry window)
|
|
302
|
+
* - Other: 7 days default
|
|
303
|
+
*/
|
|
304
|
+
const DEFAULT_STALENESS_THRESHOLDS = {
|
|
305
|
+
L2_TIMELOCK: 7 * 24 * 60 * 60,
|
|
306
|
+
L1_TIMELOCK: 7 * 24 * 60 * 60,
|
|
307
|
+
L2_TO_L1_MESSAGE: 7 * 24 * 60 * 60,
|
|
308
|
+
RETRYABLE_EXECUTED: 14 * 24 * 60 * 60,
|
|
309
|
+
};
|
|
310
|
+
const DEFAULT_STALENESS_THRESHOLD = 7 * 24 * 60 * 60; // 7 days
|
|
311
|
+
/**
|
|
312
|
+
* Check if a stage is stale (READY but past expected completion time).
|
|
313
|
+
*
|
|
314
|
+
* A stage is considered stale when:
|
|
315
|
+
* - Status is READY
|
|
316
|
+
* - Current time > (eta + staleness threshold)
|
|
317
|
+
*
|
|
318
|
+
* @param stage - The stage to check
|
|
319
|
+
* @param currentTimestamp - Current Unix timestamp (seconds)
|
|
320
|
+
* @param customThreshold - Optional custom staleness threshold in seconds
|
|
321
|
+
* @returns true if stale, false if not stale, undefined if staleness cannot be determined
|
|
322
|
+
*/
|
|
323
|
+
function isStageStale(stage, currentTimestamp, customThreshold) {
|
|
324
|
+
const eta = stage.timing?.eta;
|
|
325
|
+
if (stage.status !== "READY" || eta === undefined) {
|
|
326
|
+
return undefined;
|
|
327
|
+
}
|
|
328
|
+
const threshold = customThreshold ?? DEFAULT_STALENESS_THRESHOLDS[stage.type] ?? DEFAULT_STALENESS_THRESHOLD;
|
|
329
|
+
return currentTimestamp > eta + threshold;
|
|
330
|
+
}
|
|
295
331
|
/**
|
|
296
332
|
* Calculate expected ETA for a stage that hasn't started yet
|
|
297
333
|
*
|
package/dist/utils/timing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAoCH,gEASC;AAKD,oCAWC;AAKD,8DAUC;AAoBD,4DAMC;AAQD,kDAwBC;AAWD,wDAoBC;AAcD,oDAqBC;AAoBD,
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":"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"}
|