@gzeoneth/gov-tracker 0.2.1-beta.c266765 → 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.
Files changed (172) hide show
  1. package/README.md +40 -0
  2. package/dist/abis.d.ts +3 -0
  3. package/dist/abis.d.ts.map +1 -1
  4. package/dist/abis.js +8 -1
  5. package/dist/abis.js.map +1 -1
  6. package/dist/cli/cli.js +88 -44
  7. package/dist/cli/cli.js.map +1 -1
  8. package/dist/cli/lib/cli.d.ts +41 -3
  9. package/dist/cli/lib/cli.d.ts.map +1 -1
  10. package/dist/cli/lib/cli.js +333 -116
  11. package/dist/cli/lib/cli.js.map +1 -1
  12. package/dist/cli/lib/json-state.d.ts +23 -0
  13. package/dist/cli/lib/json-state.d.ts.map +1 -1
  14. package/dist/cli/lib/json-state.js +51 -4
  15. package/dist/cli/lib/json-state.js.map +1 -1
  16. package/dist/constants.d.ts +39 -1
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +47 -2
  19. package/dist/constants.js.map +1 -1
  20. package/dist/data/bundled-cache.json +10988 -1580
  21. package/dist/discovery/governor-discovery.d.ts.map +1 -1
  22. package/dist/discovery/governor-discovery.js +50 -35
  23. package/dist/discovery/governor-discovery.js.map +1 -1
  24. package/dist/discovery/timelock-discovery.d.ts +15 -6
  25. package/dist/discovery/timelock-discovery.d.ts.map +1 -1
  26. package/dist/discovery/timelock-discovery.js +27 -11
  27. package/dist/discovery/timelock-discovery.js.map +1 -1
  28. package/dist/election/contracts.d.ts +8 -0
  29. package/dist/election/contracts.d.ts.map +1 -0
  30. package/dist/election/contracts.js +28 -0
  31. package/dist/election/contracts.js.map +1 -0
  32. package/dist/election/details.d.ts +15 -0
  33. package/dist/election/details.d.ts.map +1 -0
  34. package/dist/election/details.js +157 -0
  35. package/dist/election/details.js.map +1 -0
  36. package/dist/election/index.d.ts +11 -0
  37. package/dist/election/index.d.ts.map +1 -0
  38. package/dist/election/index.js +48 -0
  39. package/dist/election/index.js.map +1 -0
  40. package/dist/election/params.d.ts +13 -0
  41. package/dist/election/params.d.ts.map +1 -0
  42. package/dist/election/params.js +93 -0
  43. package/dist/election/params.js.map +1 -0
  44. package/dist/election/participants.d.ts +6 -0
  45. package/dist/election/participants.d.ts.map +1 -0
  46. package/dist/election/participants.js +104 -0
  47. package/dist/election/participants.js.map +1 -0
  48. package/dist/election/prepare.d.ts +10 -0
  49. package/dist/election/prepare.d.ts.map +1 -0
  50. package/dist/election/prepare.js +52 -0
  51. package/dist/election/prepare.js.map +1 -0
  52. package/dist/election/proposal-ids.d.ts +18 -0
  53. package/dist/election/proposal-ids.d.ts.map +1 -0
  54. package/dist/election/proposal-ids.js +77 -0
  55. package/dist/election/proposal-ids.js.map +1 -0
  56. package/dist/election/status.d.ts +15 -0
  57. package/dist/election/status.d.ts.map +1 -0
  58. package/dist/election/status.js +102 -0
  59. package/dist/election/status.js.map +1 -0
  60. package/dist/election/tracking.d.ts +28 -0
  61. package/dist/election/tracking.d.ts.map +1 -0
  62. package/dist/election/tracking.js +412 -0
  63. package/dist/election/tracking.js.map +1 -0
  64. package/dist/index.d.ts +6 -4
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +51 -11
  67. package/dist/index.js.map +1 -1
  68. package/dist/stages/l2-to-l1-message.d.ts +3 -1
  69. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  70. package/dist/stages/l2-to-l1-message.js +6 -6
  71. package/dist/stages/l2-to-l1-message.js.map +1 -1
  72. package/dist/stages/proposal-created.d.ts +1 -0
  73. package/dist/stages/proposal-created.d.ts.map +1 -1
  74. package/dist/stages/proposal-created.js +1 -0
  75. package/dist/stages/proposal-created.js.map +1 -1
  76. package/dist/stages/proposal-queued.d.ts +1 -0
  77. package/dist/stages/proposal-queued.d.ts.map +1 -1
  78. package/dist/stages/proposal-queued.js +3 -1
  79. package/dist/stages/proposal-queued.js.map +1 -1
  80. package/dist/stages/retryables.js +2 -2
  81. package/dist/stages/retryables.js.map +1 -1
  82. package/dist/stages/timelock.d.ts +3 -1
  83. package/dist/stages/timelock.d.ts.map +1 -1
  84. package/dist/stages/timelock.js +12 -12
  85. package/dist/stages/timelock.js.map +1 -1
  86. package/dist/stages/utils.d.ts +5 -9
  87. package/dist/stages/utils.d.ts.map +1 -1
  88. package/dist/stages/utils.js +34 -29
  89. package/dist/stages/utils.js.map +1 -1
  90. package/dist/tracker/cache.d.ts +10 -6
  91. package/dist/tracker/cache.d.ts.map +1 -1
  92. package/dist/tracker/cache.js +36 -13
  93. package/dist/tracker/cache.js.map +1 -1
  94. package/dist/tracker/checkpoint-helpers.d.ts +81 -0
  95. package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
  96. package/dist/tracker/checkpoint-helpers.js +201 -0
  97. package/dist/tracker/checkpoint-helpers.js.map +1 -0
  98. package/dist/tracker/discovery.d.ts +1 -1
  99. package/dist/tracker/discovery.d.ts.map +1 -1
  100. package/dist/tracker/discovery.js +11 -3
  101. package/dist/tracker/discovery.js.map +1 -1
  102. package/dist/tracker/execute.d.ts.map +1 -1
  103. package/dist/tracker/execute.js +1 -25
  104. package/dist/tracker/execute.js.map +1 -1
  105. package/dist/tracker/pipeline.d.ts.map +1 -1
  106. package/dist/tracker/pipeline.js +26 -11
  107. package/dist/tracker/pipeline.js.map +1 -1
  108. package/dist/tracker/query.d.ts +1 -0
  109. package/dist/tracker/query.d.ts.map +1 -1
  110. package/dist/tracker/query.js +14 -61
  111. package/dist/tracker/query.js.map +1 -1
  112. package/dist/tracker/state.d.ts +0 -10
  113. package/dist/tracker/state.d.ts.map +1 -1
  114. package/dist/tracker/state.js +1 -28
  115. package/dist/tracker/state.js.map +1 -1
  116. package/dist/tracker.d.ts +79 -7
  117. package/dist/tracker.d.ts.map +1 -1
  118. package/dist/tracker.js +357 -43
  119. package/dist/tracker.js.map +1 -1
  120. package/dist/types/config.d.ts +49 -0
  121. package/dist/types/config.d.ts.map +1 -1
  122. package/dist/types/core.d.ts +3 -1
  123. package/dist/types/core.d.ts.map +1 -1
  124. package/dist/types/election.d.ts +66 -11
  125. package/dist/types/election.d.ts.map +1 -1
  126. package/dist/types/index.d.ts +4 -6
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +2 -3
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/types/stages.d.ts +66 -7
  131. package/dist/types/stages.d.ts.map +1 -1
  132. package/dist/types/stages.js.map +1 -1
  133. package/dist/types/tracking.d.ts +10 -10
  134. package/dist/types/tracking.d.ts.map +1 -1
  135. package/dist/utils/block-cache.d.ts +50 -0
  136. package/dist/utils/block-cache.d.ts.map +1 -0
  137. package/dist/utils/block-cache.js +80 -0
  138. package/dist/utils/block-cache.js.map +1 -0
  139. package/dist/utils/formatters.d.ts +91 -0
  140. package/dist/utils/formatters.d.ts.map +1 -0
  141. package/dist/utils/formatters.js +327 -0
  142. package/dist/utils/formatters.js.map +1 -0
  143. package/dist/utils/multicall.d.ts +52 -0
  144. package/dist/utils/multicall.d.ts.map +1 -0
  145. package/dist/utils/multicall.js +75 -0
  146. package/dist/utils/multicall.js.map +1 -0
  147. package/dist/utils/rpc-utils.d.ts +7 -1
  148. package/dist/utils/rpc-utils.d.ts.map +1 -1
  149. package/dist/utils/rpc-utils.js +42 -29
  150. package/dist/utils/rpc-utils.js.map +1 -1
  151. package/dist/utils/salt-computation.d.ts.map +1 -1
  152. package/dist/utils/salt-computation.js +33 -7
  153. package/dist/utils/salt-computation.js.map +1 -1
  154. package/dist/utils/sanitize.d.ts.map +1 -1
  155. package/dist/utils/sanitize.js +3 -0
  156. package/dist/utils/sanitize.js.map +1 -1
  157. package/dist/utils/stage-metadata.d.ts +0 -20
  158. package/dist/utils/stage-metadata.d.ts.map +1 -1
  159. package/dist/utils/stage-metadata.js +29 -44
  160. package/dist/utils/stage-metadata.js.map +1 -1
  161. package/dist/utils/timing.d.ts.map +1 -1
  162. package/dist/utils/timing.js +2 -1
  163. package/dist/utils/timing.js.map +1 -1
  164. package/package.json +3 -2
  165. package/dist/election.d.ts +0 -312
  166. package/dist/election.d.ts.map +0 -1
  167. package/dist/election.js +0 -884
  168. package/dist/election.js.map +0 -1
  169. package/dist/types/cross-chain.d.ts +0 -24
  170. package/dist/types/cross-chain.d.ts.map +0 -1
  171. package/dist/types/cross-chain.js +0 -6
  172. package/dist/types/cross-chain.js.map +0 -1
@@ -1,312 +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, ElectionContender, ElectionNominee, NomineeElectionDetails, MemberElectionDetails } 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
- * Verifies the proposal exists by checking state() - returns null if proposal doesn't exist.
125
- *
126
- * @param electionIndex - Election index
127
- * @param provider - L2 provider
128
- * @param nomineeGovernorAddress - Optional governor address override
129
- * @returns Proposal ID or null if election not yet created
130
- */
131
- export declare function getElectionProposalId(electionIndex: number, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<string | null>;
132
- /**
133
- * Get the member election proposal ID for a given election index
134
- *
135
- * @param electionIndex - Election index
136
- * @param provider - L2 provider
137
- * @param memberGovernorAddress - Optional governor address override
138
- * @returns Member proposal ID as string
139
- */
140
- export declare function getMemberElectionProposalId(electionIndex: number, provider: ethers.providers.Provider, memberGovernorAddress?: string): Promise<string>;
141
- /**
142
- * Get the proposal parameters for an election proposal
143
- *
144
- * Searches for the ProposalCreated event to extract targets, values, calldatas,
145
- * and description needed for execute() call.
146
- *
147
- * @param electionIndex - Election index
148
- * @param provider - L2 provider
149
- * @param nomineeGovernorAddress - Optional governor address override
150
- * @returns Election proposal params or null if not found
151
- */
152
- export declare function getElectionProposalParams(electionIndex: number, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionProposalParams | null>;
153
- /**
154
- * Prepare a transaction to trigger member election creation
155
- *
156
- * After the vetting period ends with 6+ compliant nominees, calling execute()
157
- * on the NomineeElectionGovernor creates the member election proposal.
158
- *
159
- * @param electionStatus - Status from trackElectionProposal (must have canProceedToMemberPhase=true)
160
- * @param provider - L2 provider
161
- * @param nomineeGovernorAddress - Optional governor address override
162
- * @returns Prepared transaction or null if not ready
163
- *
164
- * @example
165
- * ```typescript
166
- * const status = await trackElectionProposal(5, l2Provider, l1Provider);
167
- *
168
- * if (status.canProceedToMemberPhase) {
169
- * const prepared = await prepareMemberElectionTrigger(status, l2Provider);
170
- * if (prepared) {
171
- * const tx = await signer.sendTransaction({
172
- * to: prepared.to,
173
- * data: prepared.data,
174
- * });
175
- * await tx.wait();
176
- * console.log("Member election created!");
177
- * }
178
- * }
179
- * ```
180
- */
181
- export declare function prepareMemberElectionTrigger(electionStatus: Pick<ElectionProposalStatus, "electionIndex" | "canProceedToMemberPhase">, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<PreparedTransaction | null>;
182
- /**
183
- * Get proposal parameters for a member election
184
- *
185
- * Retrieves the targets, values, calldatas, and description hash needed to
186
- * execute a member election proposal.
187
- *
188
- * @param electionIndex - Election index
189
- * @param provider - L2 provider
190
- * @param memberGovernorAddress - Optional governor address override
191
- * @returns Proposal parameters or null if not found
192
- */
193
- export declare function getMemberElectionProposalParams(electionIndex: number, provider: ethers.providers.Provider, memberGovernorAddress?: string): Promise<ElectionProposalParams | null>;
194
- /**
195
- * Prepare a transaction to execute member election result
196
- *
197
- * After member voting succeeds, calling execute() on the MemberElectionGovernor
198
- * installs the new Security Council members.
199
- *
200
- * @param electionStatus - Status from trackElectionProposal (must have canExecuteMember=true)
201
- * @param provider - L2 provider
202
- * @param memberGovernorAddress - Optional governor address override
203
- * @returns Prepared transaction or null if not ready
204
- *
205
- * @example
206
- * ```typescript
207
- * const status = await trackElectionProposal(5, l2Provider, l1Provider);
208
- *
209
- * if (status.canExecuteMember) {
210
- * const prepared = await prepareMemberElectionExecution(status, l2Provider);
211
- * if (prepared) {
212
- * const tx = await signer.sendTransaction({
213
- * to: prepared.to,
214
- * data: prepared.data,
215
- * });
216
- * await tx.wait();
217
- * console.log("New Security Council members installed!");
218
- * }
219
- * }
220
- * ```
221
- */
222
- export declare function prepareMemberElectionExecution(electionStatus: Pick<ElectionProposalStatus, "electionIndex" | "canExecuteMember">, provider: ethers.providers.Provider, memberGovernorAddress?: string): Promise<PreparedTransaction | null>;
223
- /**
224
- * Find the election index for a given proposal ID
225
- *
226
- * Searches through elections to find which one contains the given proposal ID
227
- * (either as nominee or member proposal).
228
- *
229
- * @param proposalId - The proposal ID to find
230
- * @param l2Provider - L2 provider
231
- * @param l1Provider - L1 provider (needed for trackElectionProposal)
232
- * @returns Election index or null if not found
233
- */
234
- export declare function getElectionIndexForProposalId(proposalId: string, l2Provider: ethers.providers.Provider, l1Provider: ethers.providers.Provider): Promise<number | null>;
235
- /**
236
- * Track all active elections (not yet completed)
237
- *
238
- * Returns election statuses for all elections that are still in progress.
239
- *
240
- * @param l2Provider - L2 provider
241
- * @param l1Provider - L1 provider
242
- * @returns Array of election statuses for active elections
243
- */
244
- export declare function trackAllElections(l2Provider: ethers.providers.Provider, l1Provider: ethers.providers.Provider): Promise<ElectionProposalStatus[]>;
245
- /**
246
- * Track only incomplete elections (not yet completed)
247
- *
248
- * Returns election statuses for elections that are still in progress.
249
- * Completed elections are excluded.
250
- *
251
- * @param l2Provider - L2 provider
252
- * @param l1Provider - L1 provider
253
- * @returns Array of election statuses for incomplete elections
254
- */
255
- export declare function trackIncompleteElections(l2Provider: ethers.providers.Provider, l1Provider: ethers.providers.Provider): Promise<ElectionProposalStatus[]>;
256
- /**
257
- * Get all contenders who registered for a nominee election
258
- *
259
- * Fetches ContenderAdded events to build the list of registered contenders.
260
- *
261
- * @param proposalId - Nominee election proposal ID
262
- * @param provider - L2 provider
263
- * @param nomineeGovernorAddress - Optional governor address override
264
- * @returns Array of contenders with registration info
265
- */
266
- export declare function getContenders(proposalId: string, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionContender[]>;
267
- /**
268
- * Get all nominees for a nominee election with their vote counts
269
- *
270
- * Fetches nominee list from contract and enriches with vote data.
271
- *
272
- * @param proposalId - Nominee election proposal ID
273
- * @param provider - L2 provider
274
- * @param nomineeGovernorAddress - Optional governor address override
275
- * @returns Array of nominees with vote and exclusion data
276
- */
277
- export declare function getNomineesWithVotes(proposalId: string, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionNominee[]>;
278
- /**
279
- * Get excluded nominees with exclusion details
280
- *
281
- * Fetches NomineeExcluded events to get exclusion information.
282
- *
283
- * @param proposalId - Nominee election proposal ID
284
- * @param provider - L2 provider
285
- * @param nomineeGovernorAddress - Optional governor address override
286
- * @returns Array of excluded nominees with exclusion tx info
287
- */
288
- export declare function getExcludedNominees(proposalId: string, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<ElectionNominee[]>;
289
- /**
290
- * Get detailed nominee election information
291
- *
292
- * Aggregates contenders, nominees, excluded nominees, and voting data.
293
- *
294
- * @param electionIndex - Election index
295
- * @param provider - L2 provider
296
- * @param nomineeGovernorAddress - Optional governor address override
297
- * @returns Detailed nominee election data or null if not found
298
- */
299
- export declare function getNomineeElectionDetails(electionIndex: number, provider: ethers.providers.Provider, nomineeGovernorAddress?: string): Promise<NomineeElectionDetails | null>;
300
- /**
301
- * Get member election results with weighted votes
302
- *
303
- * Fetches top nominees (winners) and their weighted vote totals.
304
- *
305
- * @param electionIndex - Election index
306
- * @param provider - L2 provider
307
- * @param memberGovernorAddress - Optional governor address override
308
- * @param nomineeGovernorAddress - Optional nominee governor address override
309
- * @returns Detailed member election data or null if not found
310
- */
311
- export declare function getMemberElectionDetails(electionIndex: number, provider: ethers.providers.Provider, memberGovernorAddress?: string, nomineeGovernorAddress?: string): Promise<MemberElectionDetails | null>;
312
- //# sourceMappingURL=election.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../src/election.ts"],"names":[],"mappings":"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"}