@gzeoneth/gov-tracker 0.2.1-beta.b2eeb41 → 0.2.1-beta.d575294
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 +81 -2
- 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/cli/cli.js +265 -27
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +48 -2
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +356 -63
- package/dist/cli/lib/cli.js.map +1 -1
- 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 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +47 -2
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +11061 -1460
- 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 +50 -35
- 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 +104 -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 +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -8
- 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 +3 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +6 -6
- 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 +12 -12
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +5 -9
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +34 -29
- 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 +36 -13
- package/dist/tracker/cache.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +81 -0
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
- package/dist/tracker/checkpoint-helpers.js +201 -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/execute.d.ts.map +1 -1
- package/dist/tracker/execute.js +1 -25
- package/dist/tracker/execute.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 +100 -8
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +405 -42
- 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 +72 -7
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +34 -8
- 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/rpc-utils.d.ts +7 -1
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +42 -29
- package/dist/utils/rpc-utils.js.map +1 -1
- 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.map +1 -1
- package/dist/utils/sanitize.js +3 -0
- package/dist/utils/sanitize.js.map +1 -1
- 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 +3 -2
- 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
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gzeoneth/gov-tracker",
|
|
3
|
-
"version": "0.2.1-beta.
|
|
3
|
+
"version": "0.2.1-beta.d575294",
|
|
4
4
|
"description": "Lightweight, high-performance library for tracking Arbitrum DAO governance proposal lifecycle stages",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "gzeoneth",
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
"cli:run": "ts-node src/cli/cli.ts run",
|
|
48
48
|
"cli:status": "ts-node src/cli/cli.ts status",
|
|
49
49
|
"cli:track": "ts-node src/cli/cli.ts track",
|
|
50
|
-
"cli:election": "ts-node src/cli/cli.ts election"
|
|
50
|
+
"cli:election": "ts-node src/cli/cli.ts election",
|
|
51
|
+
"cache:generate": "ts-node src/cli/cli.ts --cache ./data/bundled-cache.json --concurrency 3 --force"
|
|
51
52
|
},
|
|
52
53
|
"lint-staged": {
|
|
53
54
|
"*.ts": [
|
package/dist/election.d.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Security Council Election Tracking
|
|
3
|
-
*
|
|
4
|
-
* Provides functions to check election status and prepare election creation transactions.
|
|
5
|
-
* Based on SecurityCouncilElectionTracker from governance repo.
|
|
6
|
-
*
|
|
7
|
-
* @module election
|
|
8
|
-
*/
|
|
9
|
-
import { ethers, BigNumber } from "ethers";
|
|
10
|
-
import { PreparedTransaction, ElectionProposalStatus, ElectionStatus } from "./types";
|
|
11
|
-
/**
|
|
12
|
-
* Prepared election creation transaction
|
|
13
|
-
*/
|
|
14
|
-
export interface PreparedElectionCreation {
|
|
15
|
-
/** Transaction to send */
|
|
16
|
-
transaction: PreparedTransaction;
|
|
17
|
-
/** Election index being created */
|
|
18
|
-
electionIndex: number;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Election proposal parameters needed for execute() call
|
|
22
|
-
*/
|
|
23
|
-
export interface ElectionProposalParams {
|
|
24
|
-
/** Target addresses */
|
|
25
|
-
targets: string[];
|
|
26
|
-
/** ETH values */
|
|
27
|
-
values: BigNumber[];
|
|
28
|
-
/** Call data for each target */
|
|
29
|
-
calldatas: string[];
|
|
30
|
-
/** Proposal description */
|
|
31
|
-
description: string;
|
|
32
|
-
/** Keccak256 hash of description */
|
|
33
|
-
descriptionHash: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Check the status of the Security Council election
|
|
37
|
-
*
|
|
38
|
-
* Determines if a new election can be created and when the next one is scheduled.
|
|
39
|
-
*
|
|
40
|
-
* @param l2Provider - Arbitrum One provider
|
|
41
|
-
* @param l1Provider - Ethereum mainnet provider (for L1 timestamp)
|
|
42
|
-
* @param nomineeGovernorAddress - Optional override for nominee election governor address
|
|
43
|
-
* @returns Election status information
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```typescript
|
|
47
|
-
* const status = await checkElectionStatus(l2Provider, l1Provider);
|
|
48
|
-
*
|
|
49
|
-
* if (status.canCreateElection) {
|
|
50
|
-
* console.log("Election ready to create!");
|
|
51
|
-
* } else {
|
|
52
|
-
* console.log(`Next election in ${status.timeUntilElection}`);
|
|
53
|
-
* }
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
export declare function checkElectionStatus(l2Provider: ethers.providers.Provider, l1Provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionStatus>;
|
|
57
|
-
/**
|
|
58
|
-
* Prepare a transaction to create a new Security Council election
|
|
59
|
-
*
|
|
60
|
-
* Only call this if checkElectionStatus indicates canCreateElection is true.
|
|
61
|
-
*
|
|
62
|
-
* @param electionStatus - Status from checkElectionStatus (provides current election count)
|
|
63
|
-
* @param nomineeGovernorAddress - Optional override for nominee election governor address
|
|
64
|
-
* @returns Prepared transaction for creating the election
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* const status = await checkElectionStatus(l2Provider, l1Provider);
|
|
69
|
-
*
|
|
70
|
-
* if (status.canCreateElection) {
|
|
71
|
-
* const { transaction, electionIndex } = prepareElectionCreation(status);
|
|
72
|
-
* console.log(`Creating election #${electionIndex}`);
|
|
73
|
-
* // Execute with your signer
|
|
74
|
-
* const tx = await signer.sendTransaction({
|
|
75
|
-
* to: transaction.to,
|
|
76
|
-
* data: transaction.data,
|
|
77
|
-
* });
|
|
78
|
-
* await tx.wait();
|
|
79
|
-
* }
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
export declare function prepareElectionCreation(electionStatus: Pick<ElectionStatus, "electionCount">, nomineeGovernorAddress?: string): PreparedElectionCreation;
|
|
83
|
-
/**
|
|
84
|
-
* Check if a governor has a vetting period (is a nominee election governor)
|
|
85
|
-
*
|
|
86
|
-
* @param governorAddress - Address of the governor to check
|
|
87
|
-
* @param provider - Provider for the chain the governor is on
|
|
88
|
-
* @returns True if the governor has a vetting period
|
|
89
|
-
*/
|
|
90
|
-
export declare function hasVettingPeriod(governorAddress: string, provider: ethers.providers.Provider): Promise<boolean>;
|
|
91
|
-
/**
|
|
92
|
-
* Track the status of a Security Council election by its index
|
|
93
|
-
*
|
|
94
|
-
* This function provides detailed tracking of an election's progress through
|
|
95
|
-
* the nominee selection, vetting, and member election phases.
|
|
96
|
-
*
|
|
97
|
-
* @param electionIndex - The election index to track
|
|
98
|
-
* @param l2Provider - Arbitrum One provider
|
|
99
|
-
* @param l1Provider - Ethereum mainnet provider (for L1 block number)
|
|
100
|
-
* @param options - Optional address overrides
|
|
101
|
-
* @returns Detailed election proposal status
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* ```typescript
|
|
105
|
-
* const status = await trackElectionProposal(
|
|
106
|
-
* 5, // election index
|
|
107
|
-
* l2Provider,
|
|
108
|
-
* l1Provider
|
|
109
|
-
* );
|
|
110
|
-
*
|
|
111
|
-
* if (status.phase === "VETTING_PERIOD") {
|
|
112
|
-
* console.log(`${status.compliantNomineeCount}/6 nominees compliant`);
|
|
113
|
-
* }
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
export declare function trackElectionProposal(electionIndex: number, l2Provider: ethers.providers.Provider, _l1Provider: ethers.providers.Provider, options?: {
|
|
117
|
-
nomineeGovernorAddress?: string;
|
|
118
|
-
memberGovernorAddress?: string;
|
|
119
|
-
}): Promise<ElectionProposalStatus>;
|
|
120
|
-
/**
|
|
121
|
-
* Get the proposal ID for a given election index
|
|
122
|
-
*
|
|
123
|
-
* Uses getProposeArgs to get proposal parameters and hashProposal to calculate the proposal ID.
|
|
124
|
-
*
|
|
125
|
-
* @param electionIndex - Election index
|
|
126
|
-
* @param provider - L2 provider
|
|
127
|
-
* @param nomineeGovernorAddress - Optional governor address override
|
|
128
|
-
* @returns Proposal ID or null if election not yet created
|
|
129
|
-
*/
|
|
130
|
-
export declare function getElectionProposalId(electionIndex: number, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<string | null>;
|
|
131
|
-
/**
|
|
132
|
-
* Get the proposal parameters for an election proposal
|
|
133
|
-
*
|
|
134
|
-
* Searches for the ProposalCreated event to extract targets, values, calldatas,
|
|
135
|
-
* and description needed for execute() call.
|
|
136
|
-
*
|
|
137
|
-
* @param electionIndex - Election index
|
|
138
|
-
* @param provider - L2 provider
|
|
139
|
-
* @param nomineeGovernorAddress - Optional governor address override
|
|
140
|
-
* @returns Election proposal params or null if not found
|
|
141
|
-
*/
|
|
142
|
-
export declare function getElectionProposalParams(electionIndex: number, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionProposalParams | null>;
|
|
143
|
-
/**
|
|
144
|
-
* Prepare a transaction to trigger member election creation
|
|
145
|
-
*
|
|
146
|
-
* After the vetting period ends with 6+ compliant nominees, calling execute()
|
|
147
|
-
* on the NomineeElectionGovernor creates the member election proposal.
|
|
148
|
-
*
|
|
149
|
-
* @param electionStatus - Status from trackElectionProposal (must have canProceedToMemberPhase=true)
|
|
150
|
-
* @param provider - L2 provider
|
|
151
|
-
* @param nomineeGovernorAddress - Optional governor address override
|
|
152
|
-
* @returns Prepared transaction or null if not ready
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* ```typescript
|
|
156
|
-
* const status = await trackElectionProposal(5, l2Provider, l1Provider);
|
|
157
|
-
*
|
|
158
|
-
* if (status.canProceedToMemberPhase) {
|
|
159
|
-
* const prepared = await prepareMemberElectionTrigger(status, l2Provider);
|
|
160
|
-
* if (prepared) {
|
|
161
|
-
* const tx = await signer.sendTransaction({
|
|
162
|
-
* to: prepared.to,
|
|
163
|
-
* data: prepared.data,
|
|
164
|
-
* });
|
|
165
|
-
* await tx.wait();
|
|
166
|
-
* console.log("Member election created!");
|
|
167
|
-
* }
|
|
168
|
-
* }
|
|
169
|
-
* ```
|
|
170
|
-
*/
|
|
171
|
-
export declare function prepareMemberElectionTrigger(electionStatus: Pick<ElectionProposalStatus, "electionIndex" | "canProceedToMemberPhase">, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<PreparedTransaction | null>;
|
|
172
|
-
//# sourceMappingURL=election.d.ts.map
|
package/dist/election.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../src/election.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,EACL,mBAAmB,EAKnB,sBAAsB,EACtB,cAAc,EACf,MAAM,SAAS,CAAC;AAajB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,WAAW,EAAE,mBAAmB,CAAC;IACjC,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB;AAsBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,sBAAsB,GAAE,MAA4C,GACnE,OAAO,CAAC,cAAc,CAAC,CA6CzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EACrD,sBAAsB,GAAE,MAA4C,GACnE,wBAAwB,CAgB1B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,OAAO,CAAC,CASlB;AAiDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACrC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACtC,OAAO,GAAE;IACP,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACL,OAAO,CAAC,sBAAsB,CAAC,CAiIjC;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,sBAAsB,GAAE,MAA4C,GACnE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,sBAAsB,GAAE,MAA4C,GACnE,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA4DxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,yBAAyB,CAAC,EACzF,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,sBAAsB,GAAE,MAA4C,GACnE,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAoCrC"}
|