@gzeoneth/gov-tracker 0.4.0-beta.757932 → 0.4.0-beta.8ed5f35
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 +18 -10
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +33 -28
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +19 -25
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/retryable-ticket.d.ts +2 -2
- package/dist/calldata/retryable-ticket.d.ts.map +1 -1
- package/dist/calldata/retryable-ticket.js +17 -12
- package/dist/calldata/retryable-ticket.js.map +1 -1
- package/dist/calldata/signature-lookup.js +5 -4
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.js +41 -20
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +4 -2
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +34 -18
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/election-check.d.ts.map +1 -1
- package/dist/cli/lib/election-check.js +2 -1
- package/dist/cli/lib/election-check.js.map +1 -1
- package/dist/cli/lib/json-state.js +1 -1
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/tui/components/StageProgress.js +1 -1
- package/dist/cli/tui/components/StageProgress.js.map +1 -1
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +15 -20
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -1
- package/dist/cli/tui/components/VotingStats.js +2 -1
- package/dist/cli/tui/components/VotingStats.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +2 -1
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.js +3 -2
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +2 -3
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +26 -36
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.js +2 -1
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
- package/dist/cli/tui/utils/index.d.ts +7 -7
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +18 -13
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.d.ts +5 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.js +16 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -1
- package/dist/cli/tui/utils/navigation.d.ts +1 -0
- package/dist/cli/tui/utils/navigation.d.ts.map +1 -1
- package/dist/cli/tui/utils/navigation.js +9 -5
- package/dist/cli/tui/utils/navigation.js.map +1 -1
- package/dist/cli/tui/utils/proposal-detail-helpers.js +6 -6
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -1
- package/dist/cli/tui/utils/stage-status.d.ts +4 -0
- package/dist/cli/tui/utils/stage-status.d.ts.map +1 -1
- package/dist/cli/tui/utils/stage-status.js +47 -1
- package/dist/cli/tui/utils/stage-status.js.map +1 -1
- package/dist/cli/tui/utils/time.d.ts +4 -4
- package/dist/cli/tui/utils/time.d.ts.map +1 -1
- package/dist/cli/tui/utils/time.js +13 -11
- package/dist/cli/tui/utils/time.js.map +1 -1
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +3 -2
- package/dist/cli/tui/views/CalldataView.js.map +1 -1
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
- package/dist/cli/tui/views/DescriptionView.js +4 -2
- package/dist/cli/tui/views/DescriptionView.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +4 -9
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/constants.d.ts +11 -23
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +22 -20
- package/dist/constants.js.map +1 -1
- package/dist/deduplication.d.ts.map +1 -1
- package/dist/deduplication.js +34 -54
- package/dist/deduplication.js.map +1 -1
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +7 -10
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -30
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts.map +1 -1
- package/dist/election/contracts.js +4 -1
- package/dist/election/contracts.js.map +1 -1
- package/dist/election/details.d.ts.map +1 -1
- package/dist/election/details.js +7 -3
- package/dist/election/details.js.map +1 -1
- package/dist/election/params.d.ts.map +1 -1
- package/dist/election/params.js +3 -12
- package/dist/election/params.js.map +1 -1
- package/dist/election/participants.d.ts.map +1 -1
- package/dist/election/participants.js +21 -26
- package/dist/election/participants.js.map +1 -1
- package/dist/election/proposal-ids.js +17 -20
- package/dist/election/proposal-ids.js.map +1 -1
- package/dist/election/status.d.ts.map +1 -1
- package/dist/election/status.js +6 -0
- package/dist/election/status.js.map +1 -1
- package/dist/index.d.ts +23 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -13
- package/dist/index.js.map +1 -1
- package/dist/simulation/index.d.ts +4 -1
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +5 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +33 -2
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +68 -24
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/simulation/tenderly-payloads.d.ts +107 -0
- package/dist/simulation/tenderly-payloads.d.ts.map +1 -0
- package/dist/simulation/tenderly-payloads.js +103 -0
- package/dist/simulation/tenderly-payloads.js.map +1 -0
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +43 -63
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +10 -9
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +4 -2
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +45 -53
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +56 -1
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +146 -30
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/bundled-cache.d.ts +136 -0
- package/dist/tracker/bundled-cache.d.ts.map +1 -0
- package/dist/tracker/bundled-cache.js +207 -0
- package/dist/tracker/bundled-cache.js.map +1 -0
- package/dist/tracker/checkpoint-helpers.d.ts +20 -1
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
- package/dist/tracker/checkpoint-helpers.js +41 -7
- package/dist/tracker/checkpoint-helpers.js.map +1 -1
- package/dist/tracker/discovery.d.ts +3 -0
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +59 -34
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts +3 -10
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +18 -32
- 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 +28 -36
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +3 -2
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +5 -4
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +33 -11
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +76 -43
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +39 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/simulation.d.ts +2 -2
- package/dist/types/simulation.d.ts.map +1 -1
- package/dist/utils/chain.d.ts +5 -1
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/chain.js +7 -0
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/formatters.d.ts +2 -6
- package/dist/utils/formatters.d.ts.map +1 -1
- package/dist/utils/formatters.js +9 -12
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/log-filters.js +1 -1
- package/dist/utils/log-filters.js.map +1 -1
- package/dist/utils/multicall.d.ts +0 -1
- package/dist/utils/multicall.d.ts.map +1 -1
- package/dist/utils/rpc-utils.d.ts +5 -0
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +9 -1
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/stage-metadata.d.ts +19 -0
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +44 -0
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +3 -10
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +9 -22
- package/dist/utils/timing.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/tui/utils/calldata-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/calldata-formatter.js +0 -14
- package/dist/cli/tui/utils/calldata-formatter.js.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.js +0 -13
- package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
- package/dist/cli/tui/utils/text.d.ts +0 -7
- package/dist/cli/tui/utils/text.d.ts.map +0 -1
- package/dist/cli/tui/utils/text.js +0 -12
- package/dist/cli/tui/utils/text.js.map +0 -1
package/dist/constants.d.ts
CHANGED
|
@@ -135,7 +135,17 @@ export declare const TIMING: {
|
|
|
135
135
|
readonly RETRYABLE_LIFETIME_SECONDS: 604800;
|
|
136
136
|
/** Voting extension period in days (for late quorum) */
|
|
137
137
|
readonly VOTING_EXTENSION_DAYS: 2;
|
|
138
|
-
/**
|
|
138
|
+
/** Seconds per minute */
|
|
139
|
+
readonly SEC_PER_MINUTE: 60;
|
|
140
|
+
/** Seconds per hour */
|
|
141
|
+
readonly SEC_PER_HOUR: 3600;
|
|
142
|
+
/** Seconds per day */
|
|
143
|
+
readonly SEC_PER_DAY: 86400;
|
|
144
|
+
/** Milliseconds per minute */
|
|
145
|
+
readonly MS_PER_MINUTE: number;
|
|
146
|
+
/** Milliseconds per hour */
|
|
147
|
+
readonly MS_PER_HOUR: number;
|
|
148
|
+
/** Milliseconds per day */
|
|
139
149
|
readonly MS_PER_DAY: number;
|
|
140
150
|
/** Security Council target nominee count per cohort */
|
|
141
151
|
readonly SECURITY_COUNCIL_TARGET_NOMINEES: 6;
|
|
@@ -170,39 +180,17 @@ export declare const GOVERNANCE_STAGE_DURATION_DAYS: {
|
|
|
170
180
|
/** Total on-chain duration for Non-Constitutional proposals: ~21 days */
|
|
171
181
|
readonly TOTAL_ONCHAIN_NON_CONSTITUTIONAL: 21;
|
|
172
182
|
};
|
|
173
|
-
/**
|
|
174
|
-
* Security Council election phase durations in seconds
|
|
175
|
-
*
|
|
176
|
-
* Elections proceed through four phases:
|
|
177
|
-
* 1. Contender Submission (T to T+7 days) - DAO members declare candidacy
|
|
178
|
-
* 2. Nominee Selection (T+7 to T+14 days) - ARB holders vote for contenders
|
|
179
|
-
* 3. Vetting Period (T+14 to T+28 days) - Foundation reviews/vets nominees
|
|
180
|
-
* 4. Member Election (T+28 to T+49 days) - ARB holders vote to elect final members
|
|
181
|
-
*
|
|
182
|
-
* @see https://docs.arbitrum.foundation/concepts/security-council
|
|
183
|
-
*/
|
|
184
183
|
export declare const ELECTION_TIMING: {
|
|
185
|
-
/** Contender submission phase: 7 days (implemented as voting delay) */
|
|
186
184
|
readonly CONTENDER_SUBMISSION_SECONDS: number;
|
|
187
|
-
/** Contender submission phase in days */
|
|
188
185
|
readonly CONTENDER_SUBMISSION_DAYS: 7;
|
|
189
|
-
/** Nominee selection phase: 7 days */
|
|
190
186
|
readonly NOMINEE_SELECTION_SECONDS: number;
|
|
191
|
-
/** Nominee selection phase in days */
|
|
192
187
|
readonly NOMINEE_SELECTION_DAYS: 7;
|
|
193
|
-
/** Vetting period: 14 days (compliance process) */
|
|
194
188
|
readonly VETTING_PERIOD_SECONDS: number;
|
|
195
|
-
/** Vetting period in days */
|
|
196
189
|
readonly VETTING_PERIOD_DAYS: 14;
|
|
197
|
-
/** Member election phase: 21 days */
|
|
198
190
|
readonly MEMBER_ELECTION_SECONDS: number;
|
|
199
|
-
/** Member election phase in days */
|
|
200
191
|
readonly MEMBER_ELECTION_DAYS: 21;
|
|
201
|
-
/** Total election duration: 49 days (7 + 7 + 14 + 21) */
|
|
202
192
|
readonly TOTAL_ELECTION_SECONDS: number;
|
|
203
|
-
/** Total election duration in days */
|
|
204
193
|
readonly TOTAL_ELECTION_DAYS: 49;
|
|
205
|
-
/** Voting delay for elections: 7 days in L1 blocks (contender submission period) */
|
|
206
194
|
readonly VOTING_DELAY_L1_BLOCKS: number;
|
|
207
195
|
};
|
|
208
196
|
/**
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAoCZ,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,gBAAgB,CAanB;AAQD,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAIX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAoCf,CAAC;AAIX;;;;;GAKG;AACH,eAAO,MAAM,WAAW;IACtB,gDAAgD;;IAEhD,gEAAgE;;IAEhE,2BAA2B;;CAEnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,MAAM;IACjB,iEAAiE;;IAGjE,sEAAsE;;IAGtE,2DAA2D;;IAG3D,+DAA+D;;IAG/D,4CAA4C;;IAG5C,mEAAmE;;IAGnE,oDAAoD;;IAGpD,wDAAwD;;IAGxD,yBAAyB;;IAGzB,uBAAuB;;IAGvB,sBAAsB;;IAGtB,8BAA8B;;IAG9B,4BAA4B;;IAG5B,2BAA2B;;IAG3B,uDAAuD;;CAE/C,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B;IACzC,+EAA+E;;IAE/E,+CAA+C;;IAE/C,mDAAmD;;IAEnD,yDAAyD;;IAEzD,gEAAgE;;IAEhE,gCAAgC;;IAEhC,mDAAmD;;IAEnD,qEAAqE;;IAErE,yEAAyE;;CAEjE,CAAC;AAeX,eAAO,MAAM,eAAe;;;;;;;;;;;;CAYlB,CAAC;AAIX;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,+CAA+C;;IAE/C,2CAA2C;;IAE3C,kCAAkC;;IAElC,kDAAkD;;CAE1C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAKlC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;IAClC,iEAAiE;;IAEjE,mEAAmE;;IAEnE,8DAA8D;;CAEtD,CAAC;AAIX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAS5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;CASjB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAMlE;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAW5F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAID;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.getExplorerUrl = getExplorerUrl;
|
|
|
13
13
|
exports.getTxUrl = getTxUrl;
|
|
14
14
|
exports.getStageTransactionUrl = getStageTransactionUrl;
|
|
15
15
|
const ethers_1 = require("ethers");
|
|
16
|
+
const chain_1 = require("./utils/chain");
|
|
16
17
|
// Contract Addresses
|
|
17
18
|
/**
|
|
18
19
|
* Key Arbitrum governance contract addresses
|
|
@@ -58,9 +59,10 @@ exports.ADDRESSES = {
|
|
|
58
59
|
* and are often filtered separately in monitoring applications.
|
|
59
60
|
*/
|
|
60
61
|
function isElectionGovernor(governorAddress) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
return (0, chain_1.isAddressIn)(governorAddress, [
|
|
63
|
+
exports.ADDRESSES.ELECTION_NOMINEE_GOVERNOR,
|
|
64
|
+
exports.ADDRESSES.ELECTION_MEMBER_GOVERNOR,
|
|
65
|
+
]);
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
68
|
* Build default discovery targets for tracker.discoverAll()
|
|
@@ -181,7 +183,17 @@ exports.TIMING = {
|
|
|
181
183
|
RETRYABLE_LIFETIME_SECONDS: 604800,
|
|
182
184
|
/** Voting extension period in days (for late quorum) */
|
|
183
185
|
VOTING_EXTENSION_DAYS: 2,
|
|
184
|
-
/**
|
|
186
|
+
/** Seconds per minute */
|
|
187
|
+
SEC_PER_MINUTE: 60,
|
|
188
|
+
/** Seconds per hour */
|
|
189
|
+
SEC_PER_HOUR: 3600,
|
|
190
|
+
/** Seconds per day */
|
|
191
|
+
SEC_PER_DAY: 86400,
|
|
192
|
+
/** Milliseconds per minute */
|
|
193
|
+
MS_PER_MINUTE: 60 * 1000,
|
|
194
|
+
/** Milliseconds per hour */
|
|
195
|
+
MS_PER_HOUR: 60 * 60 * 1000,
|
|
196
|
+
/** Milliseconds per day */
|
|
185
197
|
MS_PER_DAY: 24 * 60 * 60 * 1000,
|
|
186
198
|
/** Security Council target nominee count per cohort */
|
|
187
199
|
SECURITY_COUNCIL_TARGET_NOMINEES: 6,
|
|
@@ -227,28 +239,18 @@ exports.GOVERNANCE_STAGE_DURATION_DAYS = {
|
|
|
227
239
|
*
|
|
228
240
|
* @see https://docs.arbitrum.foundation/concepts/security-council
|
|
229
241
|
*/
|
|
242
|
+
const days = (n) => n * 24 * 60 * 60;
|
|
230
243
|
exports.ELECTION_TIMING = {
|
|
231
|
-
|
|
232
|
-
CONTENDER_SUBMISSION_SECONDS: 7 * 24 * 60 * 60,
|
|
233
|
-
/** Contender submission phase in days */
|
|
244
|
+
CONTENDER_SUBMISSION_SECONDS: days(7),
|
|
234
245
|
CONTENDER_SUBMISSION_DAYS: 7,
|
|
235
|
-
|
|
236
|
-
NOMINEE_SELECTION_SECONDS: 7 * 24 * 60 * 60,
|
|
237
|
-
/** Nominee selection phase in days */
|
|
246
|
+
NOMINEE_SELECTION_SECONDS: days(7),
|
|
238
247
|
NOMINEE_SELECTION_DAYS: 7,
|
|
239
|
-
|
|
240
|
-
VETTING_PERIOD_SECONDS: 14 * 24 * 60 * 60,
|
|
241
|
-
/** Vetting period in days */
|
|
248
|
+
VETTING_PERIOD_SECONDS: days(14),
|
|
242
249
|
VETTING_PERIOD_DAYS: 14,
|
|
243
|
-
|
|
244
|
-
MEMBER_ELECTION_SECONDS: 21 * 24 * 60 * 60,
|
|
245
|
-
/** Member election phase in days */
|
|
250
|
+
MEMBER_ELECTION_SECONDS: days(21),
|
|
246
251
|
MEMBER_ELECTION_DAYS: 21,
|
|
247
|
-
|
|
248
|
-
TOTAL_ELECTION_SECONDS: 49 * 24 * 60 * 60,
|
|
249
|
-
/** Total election duration in days */
|
|
252
|
+
TOTAL_ELECTION_SECONDS: days(49),
|
|
250
253
|
TOTAL_ELECTION_DAYS: 49,
|
|
251
|
-
/** Voting delay for elections: 7 days in L1 blocks (contender submission period) */
|
|
252
254
|
VOTING_DELAY_L1_BLOCKS: 7 * 24 * 60 * 5, // 50400 blocks at 12s/block
|
|
253
255
|
};
|
|
254
256
|
// Chunking Configuration
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deduplication.d.ts","sourceRoot":"","sources":["../src/deduplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deduplication.d.ts","sourceRoot":"","sources":["../src/deduplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoC3E;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAI1E;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQ3F;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,WAAW,EAAE;QACX,uCAAuC;QACvC,aAAa,EAAE,MAAM,CAAC;QACtB,gDAAgD;QAChD,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsB5F;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCxB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtF"}
|
package/dist/deduplication.js
CHANGED
|
@@ -55,6 +55,13 @@ async function getCacheKeysAsync(cache) {
|
|
|
55
55
|
}
|
|
56
56
|
return [];
|
|
57
57
|
}
|
|
58
|
+
/** Load all checkpoints matching an optional key filter */
|
|
59
|
+
async function loadCheckpoints(cache, keyFilter) {
|
|
60
|
+
const allKeys = await getCacheKeysAsync(cache);
|
|
61
|
+
const keys = keyFilter ? allKeys.filter(keyFilter) : allKeys;
|
|
62
|
+
const checkpoints = await Promise.all(keys.map((key) => cache.get(key)));
|
|
63
|
+
return keys.map((key, i) => ({ key, checkpoint: checkpoints[i] ?? null }));
|
|
64
|
+
}
|
|
58
65
|
/**
|
|
59
66
|
* Check if a timelock operation calldata involves Security Council management
|
|
60
67
|
*
|
|
@@ -130,13 +137,12 @@ function filterChildCheckpoints(results) {
|
|
|
130
137
|
* @returns Map of child key to parent key
|
|
131
138
|
*/
|
|
132
139
|
async function getChildToParentMap(cache) {
|
|
140
|
+
const entries = await loadCheckpoints(cache);
|
|
133
141
|
const result = new Map();
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
result.set(key, checkpoint.metadata.sourceCheckpoint);
|
|
139
|
-
}
|
|
142
|
+
for (const { key, checkpoint } of entries) {
|
|
143
|
+
const source = checkpoint?.metadata?.sourceCheckpoint;
|
|
144
|
+
if (source)
|
|
145
|
+
result.set(key, source);
|
|
140
146
|
}
|
|
141
147
|
return result;
|
|
142
148
|
}
|
|
@@ -148,15 +154,10 @@ async function getChildToParentMap(cache) {
|
|
|
148
154
|
* @returns Array of child checkpoint keys
|
|
149
155
|
*/
|
|
150
156
|
async function getChildCheckpoints(parentKey, cache) {
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (checkpoint?.metadata?.sourceCheckpoint === parentKey) {
|
|
156
|
-
children.push(key);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return children;
|
|
157
|
+
const entries = await loadCheckpoints(cache);
|
|
158
|
+
return entries
|
|
159
|
+
.filter(({ checkpoint }) => checkpoint?.metadata?.sourceCheckpoint === parentKey)
|
|
160
|
+
.map(({ key }) => key);
|
|
160
161
|
}
|
|
161
162
|
/**
|
|
162
163
|
* Get deduplication statistics for the cache
|
|
@@ -165,36 +166,25 @@ async function getChildCheckpoints(parentKey, cache) {
|
|
|
165
166
|
* @returns Statistics about checkpoint relationships
|
|
166
167
|
*/
|
|
167
168
|
async function getDeduplicationStats(cache) {
|
|
168
|
-
const
|
|
169
|
-
let totalCheckpoints = 0;
|
|
169
|
+
const entries = await loadCheckpoints(cache, (key) => key !== "discovery:watermarks");
|
|
170
170
|
let childCheckpoints = 0;
|
|
171
171
|
let fromElections = 0;
|
|
172
172
|
let fromProposals = 0;
|
|
173
|
-
for (const
|
|
174
|
-
// Skip watermarks
|
|
175
|
-
if (key === "discovery:watermarks")
|
|
176
|
-
continue;
|
|
177
|
-
totalCheckpoints++;
|
|
178
|
-
const checkpoint = await cache.get(key);
|
|
173
|
+
for (const { checkpoint } of entries) {
|
|
179
174
|
const source = checkpoint?.metadata?.sourceCheckpoint;
|
|
180
175
|
if (source) {
|
|
181
176
|
childCheckpoints++;
|
|
182
|
-
if (source.startsWith("election:"))
|
|
177
|
+
if (source.startsWith("election:"))
|
|
183
178
|
fromElections++;
|
|
184
|
-
|
|
185
|
-
else {
|
|
179
|
+
else
|
|
186
180
|
fromProposals++;
|
|
187
|
-
}
|
|
188
181
|
}
|
|
189
182
|
}
|
|
190
183
|
return {
|
|
191
|
-
totalCheckpoints,
|
|
192
|
-
rootCheckpoints:
|
|
184
|
+
totalCheckpoints: entries.length,
|
|
185
|
+
rootCheckpoints: entries.length - childCheckpoints,
|
|
193
186
|
childCheckpoints,
|
|
194
|
-
parentTypes: {
|
|
195
|
-
fromElections,
|
|
196
|
-
fromProposals,
|
|
197
|
-
},
|
|
187
|
+
parentTypes: { fromElections, fromProposals },
|
|
198
188
|
};
|
|
199
189
|
}
|
|
200
190
|
/**
|
|
@@ -215,17 +205,17 @@ async function findPotentialParent(timelockCheckpoint, cache) {
|
|
|
215
205
|
const isL2ConstitutionalTimelock = timelockAddr === constants_1.ADDRESSES.L2_CONSTITUTIONAL_TIMELOCK?.toLowerCase();
|
|
216
206
|
if (isL2ConstitutionalTimelock) {
|
|
217
207
|
// Search completed elections that might have created this
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const electionCheckpoint =
|
|
208
|
+
const electionKeys = keys.filter((key) => key.startsWith("election:"));
|
|
209
|
+
const electionCheckpoints = await Promise.all(electionKeys.map((key) => cache.get(key)));
|
|
210
|
+
for (let i = 0; i < electionKeys.length; i++) {
|
|
211
|
+
const electionCheckpoint = electionCheckpoints[i];
|
|
222
212
|
const status = electionCheckpoint?.cachedData?.electionStatus;
|
|
223
213
|
// Completed elections with executed member proposals create timelock ops
|
|
224
214
|
if (status?.phase === "COMPLETED" && status.memberProposalId) {
|
|
225
215
|
// This election completed and may have created this timelock op
|
|
226
216
|
// Without more detailed tracking of the execution tx, we can't be 100% sure
|
|
227
217
|
// but this is a reasonable heuristic
|
|
228
|
-
return
|
|
218
|
+
return electionKeys[i];
|
|
229
219
|
}
|
|
230
220
|
}
|
|
231
221
|
}
|
|
@@ -243,24 +233,14 @@ async function findPotentialParent(timelockCheckpoint, cache) {
|
|
|
243
233
|
* @returns Number of newly linked checkpoints
|
|
244
234
|
*/
|
|
245
235
|
async function autoLinkOrphanedCheckpoints(cache) {
|
|
246
|
-
const
|
|
236
|
+
const entries = await loadCheckpoints(cache, (key) => key.startsWith("tx:"));
|
|
237
|
+
const orphaned = entries.filter(({ checkpoint }) => checkpoint && !checkpoint.metadata?.sourceCheckpoint && checkpoint.input.type === "timelock");
|
|
238
|
+
const parentResults = await Promise.all(orphaned.map(({ checkpoint }) => findPotentialParent(checkpoint, cache)));
|
|
247
239
|
let linkedCount = 0;
|
|
248
|
-
for (
|
|
249
|
-
|
|
250
|
-
continue;
|
|
251
|
-
const checkpoint = await cache.get(key);
|
|
252
|
-
if (!checkpoint)
|
|
253
|
-
continue;
|
|
254
|
-
// Skip if already linked
|
|
255
|
-
if (checkpoint.metadata?.sourceCheckpoint)
|
|
256
|
-
continue;
|
|
257
|
-
// Skip if not a timelock checkpoint
|
|
258
|
-
if (checkpoint.input.type !== "timelock")
|
|
259
|
-
continue;
|
|
260
|
-
// Try to find a parent
|
|
261
|
-
const parentKey = await findPotentialParent(checkpoint, cache);
|
|
240
|
+
for (let i = 0; i < orphaned.length; i++) {
|
|
241
|
+
const parentKey = parentResults[i];
|
|
262
242
|
if (parentKey) {
|
|
263
|
-
await linkCheckpointToChild(key, parentKey, cache);
|
|
243
|
+
await linkCheckpointToChild(orphaned[i].key, parentKey, cache);
|
|
264
244
|
linkedCount++;
|
|
265
245
|
}
|
|
266
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deduplication.js","sourceRoot":"","sources":["../src/deduplication.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;
|
|
1
|
+
{"version":3,"file":"deduplication.js","sourceRoot":"","sources":["../src/deduplication.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;AA4CH,kEAIC;AAYD,sDAiBC;AASD,kDAMC;AASD,8CAGC;AAWD,wDAEC;AAQD,kDAQC;AASD,kDAQC;AA2BD,sDAsBC;AAWD,kDAuCC;AAUD,kEAuBC;AAvRD,2CAAwC;AACxC,2CAAyC;AAEzC,MAAM,GAAG,GAAG,gBAAO,CAAC,OAAO,CAAC;AAE5B,yEAAyE;AACzE,KAAK,UAAU,iBAAiB,CAAC,KAAmB;IAClD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE5B,2BAA2B;IAC3B,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8CAA8C;IAC9C,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAI,MAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2DAA2D;AAC3D,KAAK,UAAU,eAAe,CAC5B,KAAmB,EACnB,SAAoC;IAEpC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,aAAqB;IAC/D,MAAM,gBAAgB,GAAG,qBAAS,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC;IAC3E,IAAI,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,SAAiB,EACjB,KAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,GAAG,CAAqB,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,6CAA6C,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1F,UAAU,CAAC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAEjD,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,KAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,GAAG,CAAqB,QAAQ,CAAC,CAAC;IACjE,OAAO,UAAU,EAAE,QAAQ,EAAE,gBAAgB,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,KAAmB;IACtE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,MAAM,KAAK,IAAI,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,OAAyB;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,KAAmB;IAC3D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;QACtD,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,KAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,KAAK,SAAS,CAAC;SAChF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAqBD;;;;;GAKG;AACI,KAAK,UAAU,qBAAqB,CAAC,KAAmB;IAC7D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAC;IAEtF,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;QACtD,IAAI,MAAM,EAAE,CAAC;YACX,gBAAgB,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,aAAa,EAAE,CAAC;;gBAC/C,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO,CAAC,MAAM;QAChC,eAAe,EAAE,OAAO,CAAC,MAAM,GAAG,gBAAgB;QAClD,gBAAgB;QAChB,WAAW,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,mBAAmB,CACvC,kBAAsC,EACtC,KAAmB;IAEnB,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;IAE7E,0EAA0E;IAC1E,MAAM,0BAA0B,GAC9B,YAAY,KAAK,qBAAS,CAAC,0BAA0B,EAAE,WAAW,EAAE,CAAC;IAEvE,IAAI,0BAA0B,EAAE,CAAC;QAC/B,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC,CAC9D,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,kBAAkB,EAAE,UAAU,EAAE,cAAc,CAAC;YAE9D,yEAAyE;YACzE,IAAI,MAAM,EAAE,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,gEAAgE;gBAChE,4EAA4E;gBAC5E,qCAAqC;gBACrC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,iEAAiE;IACjE,gEAAgE;IAEhE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,2BAA2B,CAAC,KAAmB;IACnE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CACjB,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAC1C,CAAC;IAEvD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CACzE,CAAC;IAEF,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/D,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,qCAAqC,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EAEX,MAAM,UAAU,CAAC;AAwClB,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,CAExE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEtE;
|
|
1
|
+
{"version":3,"file":"governor-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,13 +58,11 @@ function detectProposalType(governorAddress) {
|
|
|
58
58
|
function isElectionProposal(proposalType) {
|
|
59
59
|
return proposalType === "ELECTION_NOMINEE" || proposalType === "ELECTION_MEMBER";
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* Governors with timelock route proposals through L2 timelock before execution.
|
|
65
|
-
*/
|
|
61
|
+
function getGovernorContract(address, provider) {
|
|
62
|
+
return new ethers_1.ethers.Contract(address, abis_1.GOVERNOR_ABI, provider);
|
|
63
|
+
}
|
|
66
64
|
async function hasTimelock(governorAddress, provider) {
|
|
67
|
-
const governor =
|
|
65
|
+
const governor = getGovernorContract(governorAddress, provider);
|
|
68
66
|
try {
|
|
69
67
|
await (0, rpc_utils_1.queryWithRetry)(() => governor.timelock());
|
|
70
68
|
return true;
|
|
@@ -102,14 +100,13 @@ async function detectGovernorCapabilities(governorAddress, provider) {
|
|
|
102
100
|
* Get the timelock address for a governor
|
|
103
101
|
*/
|
|
104
102
|
async function getTimelockAddress(governorAddress, provider) {
|
|
105
|
-
|
|
106
|
-
return (0, rpc_utils_1.queryWithRetry)(() => governor.timelock());
|
|
103
|
+
return (0, rpc_utils_1.queryWithRetry)(() => getGovernorContract(governorAddress, provider).timelock());
|
|
107
104
|
}
|
|
108
105
|
/**
|
|
109
106
|
* Get proposal state from governor contract
|
|
110
107
|
*/
|
|
111
108
|
async function getProposalState(governorAddress, proposalId, provider) {
|
|
112
|
-
const governor =
|
|
109
|
+
const governor = getGovernorContract(governorAddress, provider);
|
|
113
110
|
const stateNum = (await (0, rpc_utils_1.queryWithRetry)(() => governor.state(ethers_1.BigNumber.from(proposalId))));
|
|
114
111
|
const stateNumber = typeof stateNum === "number" ? stateNum : stateNum.toNumber();
|
|
115
112
|
const state = constants_1.PROPOSAL_STATE_MAP[stateNumber];
|
|
@@ -305,7 +302,7 @@ async function discoverProposalByTxHash(txHash, provider) {
|
|
|
305
302
|
const receipt = await (0, rpc_utils_1.queryWithRetry)(() => provider.getTransactionReceipt(txHash));
|
|
306
303
|
if (!receipt)
|
|
307
304
|
return null;
|
|
308
|
-
const log = receipt.logs.find((l) => l.topics[0] === constants_1.EVENT_TOPICS.PROPOSAL_CREATED);
|
|
305
|
+
const log = receipt.logs.find((l) => l.topics?.[0] === constants_1.EVENT_TOPICS.PROPOSAL_CREATED);
|
|
309
306
|
if (!log)
|
|
310
307
|
return null;
|
|
311
308
|
const parsed = parseProposalCreatedEvent(log);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor-discovery.js","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqEH,gDAEC;AAKD,gDAEC;
|
|
1
|
+
{"version":3,"file":"governor-discovery.js","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timelock-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/timelock-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,UAAU,EACX,MAAM,UAAU,CAAC;AAgBlB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAgCD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,qBAAqB,CAAC,CA8BhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAoB3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAiBzF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmBnC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAc1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAmBlC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC;CAClC,GACL,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"timelock-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/timelock-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,40 +210,35 @@ async function getTimelockState(timelockAddress, operationId, provider, options
|
|
|
210
210
|
state.isBatch = true;
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
|
+
// Validate fromBlock when log search is needed
|
|
214
|
+
const needsScheduledSearch = !options.skipLogSearch && !state.scheduledData && contractState.isOperation;
|
|
215
|
+
const needsExecutedSearch = !options.skipLogSearch && !options.skipExecutedSearch && contractState.isDone;
|
|
216
|
+
if ((needsScheduledSearch || needsExecutedSearch) && options.fromBlock === undefined) {
|
|
217
|
+
throw new Error("fromBlock is required when searching logs in getTimelockState");
|
|
218
|
+
}
|
|
213
219
|
// SLOW PATH: Only search for logs when needed and not already provided
|
|
214
|
-
if (
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
if (
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
state.
|
|
229
|
-
// Check if this is a batch operation by looking for multiple CallScheduled events
|
|
230
|
-
// with the SAME operationId (not just any events in the same tx)
|
|
231
|
-
const allScheduledData = await findAllCallScheduledInTx(scheduledData.txHash, provider, operationId);
|
|
232
|
-
if (allScheduledData.length > 1) {
|
|
233
|
-
state.allScheduledData = allScheduledData;
|
|
234
|
-
state.isBatch = true;
|
|
235
|
-
}
|
|
220
|
+
if (needsScheduledSearch) {
|
|
221
|
+
const fromBlock = options.fromBlock; // Validated above
|
|
222
|
+
const scheduledData = await findCallScheduledEvent(timelockAddress, operationId, provider, {
|
|
223
|
+
startBlock: fromBlock,
|
|
224
|
+
endBlock: options.toBlock,
|
|
225
|
+
chunkSize: options.chunkSize,
|
|
226
|
+
});
|
|
227
|
+
if (scheduledData) {
|
|
228
|
+
state.scheduledData = scheduledData;
|
|
229
|
+
// Check if this is a batch operation by looking for multiple CallScheduled events
|
|
230
|
+
// with the SAME operationId (not just any events in the same tx)
|
|
231
|
+
const allScheduledData = await findAllCallScheduledInTx(scheduledData.txHash, provider, operationId);
|
|
232
|
+
if (allScheduledData.length > 1) {
|
|
233
|
+
state.allScheduledData = allScheduledData;
|
|
234
|
+
state.isBatch = true;
|
|
236
235
|
}
|
|
237
236
|
}
|
|
238
237
|
}
|
|
239
238
|
// Only search for executed data if the operation is done and caller wants it
|
|
240
239
|
// Note: Caller may skip this to do an optimized search starting after the delay
|
|
241
|
-
if (
|
|
242
|
-
//
|
|
243
|
-
if (options.fromBlock === undefined) {
|
|
244
|
-
throw new Error("fromBlock is required when searching logs in getTimelockState");
|
|
245
|
-
}
|
|
246
|
-
// Use scheduledData blockNumber if available, otherwise use fromBlock
|
|
240
|
+
if (needsExecutedSearch) {
|
|
241
|
+
// Use scheduledData blockNumber if available, otherwise use fromBlock (validated above)
|
|
247
242
|
const executedSearchStart = state.scheduledData?.blockNumber ?? options.fromBlock;
|
|
248
243
|
const executedData = await findCallExecutedEvent(timelockAddress, operationId, provider, {
|
|
249
244
|
startBlock: executedSearchStart,
|
|
@@ -278,8 +273,7 @@ async function findAllCallScheduledInTx(txHash, provider, operationId) {
|
|
|
278
273
|
.filter((log) => log.topics[0] === constants_1.EVENT_TOPICS.CALL_SCHEDULED)
|
|
279
274
|
.map(parseCallScheduledEvent)
|
|
280
275
|
.filter((parsed) => parsed !== null && (!operationId || (0, chain_1.addressEquals)(parsed.operationId, operationId)));
|
|
281
|
-
|
|
282
|
-
return results.sort((a, b) => a.index.toNumber() - b.index.toNumber());
|
|
276
|
+
return results.sort((a, b) => (0, chain_1.compareBigNumbers)(a.index, b.index));
|
|
283
277
|
}
|
|
284
278
|
/** Lookup map: governor address → L2 timelock address */
|
|
285
279
|
const GOVERNOR_TO_TIMELOCK = new Map([
|
|
@@ -303,6 +297,9 @@ async function discoverTimelockOps(timelockAddress, fromBlock, toBlock, provider
|
|
|
303
297
|
const seen = new Set();
|
|
304
298
|
return logs
|
|
305
299
|
.filter((log) => {
|
|
300
|
+
// CallScheduled events always have operationId as indexed topic[1]
|
|
301
|
+
if (log.topics.length < 2)
|
|
302
|
+
return false;
|
|
306
303
|
const operationId = log.topics[1];
|
|
307
304
|
if (seen.has(operationId))
|
|
308
305
|
return false;
|