@gzeoneth/gov-tracker 0.4.0-beta.18db0de → 0.4.0-beta.225fa70

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 (250) hide show
  1. package/README.md +18 -10
  2. package/dist/abis-json.d.ts +2290 -0
  3. package/dist/abis-json.d.ts.map +1 -0
  4. package/dist/abis-json.js +3174 -0
  5. package/dist/abis-json.js.map +1 -0
  6. package/dist/abis.d.ts +11 -7
  7. package/dist/abis.d.ts.map +1 -1
  8. package/dist/abis.js +29 -1
  9. package/dist/abis.js.map +1 -1
  10. package/dist/calldata/decoder.d.ts.map +1 -1
  11. package/dist/calldata/decoder.js +33 -28
  12. package/dist/calldata/decoder.js.map +1 -1
  13. package/dist/calldata/parameter-decoder.d.ts.map +1 -1
  14. package/dist/calldata/parameter-decoder.js +19 -25
  15. package/dist/calldata/parameter-decoder.js.map +1 -1
  16. package/dist/calldata/retryable-ticket.d.ts +2 -2
  17. package/dist/calldata/retryable-ticket.d.ts.map +1 -1
  18. package/dist/calldata/retryable-ticket.js +17 -12
  19. package/dist/calldata/retryable-ticket.js.map +1 -1
  20. package/dist/calldata/signature-lookup.js +5 -4
  21. package/dist/calldata/signature-lookup.js.map +1 -1
  22. package/dist/cli/cli.js +41 -20
  23. package/dist/cli/cli.js.map +1 -1
  24. package/dist/cli/lib/cli.d.ts +4 -2
  25. package/dist/cli/lib/cli.d.ts.map +1 -1
  26. package/dist/cli/lib/cli.js +34 -18
  27. package/dist/cli/lib/cli.js.map +1 -1
  28. package/dist/cli/lib/election-check.d.ts.map +1 -1
  29. package/dist/cli/lib/election-check.js +2 -1
  30. package/dist/cli/lib/election-check.js.map +1 -1
  31. package/dist/cli/lib/json-state.js +1 -1
  32. package/dist/cli/lib/json-state.js.map +1 -1
  33. package/dist/cli/tui/components/StageProgress.js +1 -1
  34. package/dist/cli/tui/components/StageProgress.js.map +1 -1
  35. package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
  36. package/dist/cli/tui/components/StageRow.js +15 -20
  37. package/dist/cli/tui/components/StageRow.js.map +1 -1
  38. package/dist/cli/tui/components/VotingStats.d.ts.map +1 -1
  39. package/dist/cli/tui/components/VotingStats.js +2 -1
  40. package/dist/cli/tui/components/VotingStats.js.map +1 -1
  41. package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
  42. package/dist/cli/tui/hooks/useCache.js +2 -1
  43. package/dist/cli/tui/hooks/useCache.js.map +1 -1
  44. package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -1
  45. package/dist/cli/tui/hooks/useElectionData.js +3 -2
  46. package/dist/cli/tui/hooks/useElectionData.js.map +1 -1
  47. package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
  48. package/dist/cli/tui/hooks/useNavigation.js +2 -3
  49. package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
  50. package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
  51. package/dist/cli/tui/hooks/useProposals.js +26 -36
  52. package/dist/cli/tui/hooks/useProposals.js.map +1 -1
  53. package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
  54. package/dist/cli/tui/hooks/useStageCalldata.js +2 -1
  55. package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
  56. package/dist/cli/tui/utils/index.d.ts +7 -7
  57. package/dist/cli/tui/utils/index.d.ts.map +1 -1
  58. package/dist/cli/tui/utils/index.js +18 -13
  59. package/dist/cli/tui/utils/index.js.map +1 -1
  60. package/dist/cli/tui/utils/markdown-parser.d.ts +5 -0
  61. package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -1
  62. package/dist/cli/tui/utils/markdown-parser.js +16 -0
  63. package/dist/cli/tui/utils/markdown-parser.js.map +1 -1
  64. package/dist/cli/tui/utils/navigation.d.ts +1 -0
  65. package/dist/cli/tui/utils/navigation.d.ts.map +1 -1
  66. package/dist/cli/tui/utils/navigation.js +9 -5
  67. package/dist/cli/tui/utils/navigation.js.map +1 -1
  68. package/dist/cli/tui/utils/proposal-detail-helpers.js +6 -6
  69. package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -1
  70. package/dist/cli/tui/utils/stage-status.d.ts +4 -0
  71. package/dist/cli/tui/utils/stage-status.d.ts.map +1 -1
  72. package/dist/cli/tui/utils/stage-status.js +47 -1
  73. package/dist/cli/tui/utils/stage-status.js.map +1 -1
  74. package/dist/cli/tui/utils/time.d.ts +4 -4
  75. package/dist/cli/tui/utils/time.d.ts.map +1 -1
  76. package/dist/cli/tui/utils/time.js +13 -11
  77. package/dist/cli/tui/utils/time.js.map +1 -1
  78. package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
  79. package/dist/cli/tui/views/CalldataView.js +3 -2
  80. package/dist/cli/tui/views/CalldataView.js.map +1 -1
  81. package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
  82. package/dist/cli/tui/views/DescriptionView.js +4 -2
  83. package/dist/cli/tui/views/DescriptionView.js.map +1 -1
  84. package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
  85. package/dist/cli/tui/views/ElectionView.js +4 -9
  86. package/dist/cli/tui/views/ElectionView.js.map +1 -1
  87. package/dist/constants.d.ts +47 -23
  88. package/dist/constants.d.ts.map +1 -1
  89. package/dist/constants.js +67 -21
  90. package/dist/constants.js.map +1 -1
  91. package/dist/data/bundled-cache.json +352 -20
  92. package/dist/deduplication.d.ts.map +1 -1
  93. package/dist/deduplication.js +34 -54
  94. package/dist/deduplication.js.map +1 -1
  95. package/dist/discovery/governor-discovery.d.ts +21 -1
  96. package/dist/discovery/governor-discovery.d.ts.map +1 -1
  97. package/dist/discovery/governor-discovery.js +47 -13
  98. package/dist/discovery/governor-discovery.js.map +1 -1
  99. package/dist/discovery/timelock-discovery.d.ts.map +1 -1
  100. package/dist/discovery/timelock-discovery.js +27 -30
  101. package/dist/discovery/timelock-discovery.js.map +1 -1
  102. package/dist/election/contracts.d.ts.map +1 -1
  103. package/dist/election/contracts.js +4 -1
  104. package/dist/election/contracts.js.map +1 -1
  105. package/dist/election/details.d.ts.map +1 -1
  106. package/dist/election/details.js +7 -3
  107. package/dist/election/details.js.map +1 -1
  108. package/dist/election/index.d.ts +3 -1
  109. package/dist/election/index.d.ts.map +1 -1
  110. package/dist/election/index.js +12 -1
  111. package/dist/election/index.js.map +1 -1
  112. package/dist/election/params.d.ts.map +1 -1
  113. package/dist/election/params.js +14 -28
  114. package/dist/election/params.js.map +1 -1
  115. package/dist/election/participants.d.ts.map +1 -1
  116. package/dist/election/participants.js +21 -26
  117. package/dist/election/participants.js.map +1 -1
  118. package/dist/election/proposal-ids.js +19 -22
  119. package/dist/election/proposal-ids.js.map +1 -1
  120. package/dist/election/status.d.ts +28 -1
  121. package/dist/election/status.d.ts.map +1 -1
  122. package/dist/election/status.js +113 -0
  123. package/dist/election/status.js.map +1 -1
  124. package/dist/election/write.d.ts +132 -0
  125. package/dist/election/write.d.ts.map +1 -0
  126. package/dist/election/write.js +184 -0
  127. package/dist/election/write.js.map +1 -0
  128. package/dist/governance/index.d.ts +5 -0
  129. package/dist/governance/index.d.ts.map +1 -0
  130. package/dist/governance/index.js +28 -0
  131. package/dist/governance/index.js.map +1 -0
  132. package/dist/governance/read.d.ts +50 -0
  133. package/dist/governance/read.d.ts.map +1 -0
  134. package/dist/governance/read.js +194 -0
  135. package/dist/governance/read.js.map +1 -0
  136. package/dist/governance/write.d.ts +54 -0
  137. package/dist/governance/write.d.ts.map +1 -0
  138. package/dist/governance/write.js +132 -0
  139. package/dist/governance/write.js.map +1 -0
  140. package/dist/index.d.ts +36 -21
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +122 -15
  143. package/dist/index.js.map +1 -1
  144. package/dist/simulation/index.d.ts +4 -1
  145. package/dist/simulation/index.d.ts.map +1 -1
  146. package/dist/simulation/index.js +5 -1
  147. package/dist/simulation/index.js.map +1 -1
  148. package/dist/simulation/simulation-data.d.ts +33 -2
  149. package/dist/simulation/simulation-data.d.ts.map +1 -1
  150. package/dist/simulation/simulation-data.js +68 -24
  151. package/dist/simulation/simulation-data.js.map +1 -1
  152. package/dist/simulation/tenderly-payloads.d.ts +107 -0
  153. package/dist/simulation/tenderly-payloads.d.ts.map +1 -0
  154. package/dist/simulation/tenderly-payloads.js +103 -0
  155. package/dist/simulation/tenderly-payloads.js.map +1 -0
  156. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  157. package/dist/stages/l2-to-l1-message.js +43 -63
  158. package/dist/stages/l2-to-l1-message.js.map +1 -1
  159. package/dist/stages/proposal-queued.js.map +1 -1
  160. package/dist/stages/retryables.d.ts.map +1 -1
  161. package/dist/stages/retryables.js +10 -9
  162. package/dist/stages/retryables.js.map +1 -1
  163. package/dist/stages/timelock.d.ts +43 -3
  164. package/dist/stages/timelock.d.ts.map +1 -1
  165. package/dist/stages/timelock.js +170 -53
  166. package/dist/stages/timelock.js.map +1 -1
  167. package/dist/stages/utils.d.ts +56 -1
  168. package/dist/stages/utils.d.ts.map +1 -1
  169. package/dist/stages/utils.js +146 -30
  170. package/dist/stages/utils.js.map +1 -1
  171. package/dist/tracker/bundled-cache.d.ts +136 -0
  172. package/dist/tracker/bundled-cache.d.ts.map +1 -0
  173. package/dist/tracker/bundled-cache.js +207 -0
  174. package/dist/tracker/bundled-cache.js.map +1 -0
  175. package/dist/tracker/checkpoint-helpers.d.ts +20 -1
  176. package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
  177. package/dist/tracker/checkpoint-helpers.js +41 -7
  178. package/dist/tracker/checkpoint-helpers.js.map +1 -1
  179. package/dist/tracker/discovery.d.ts +3 -0
  180. package/dist/tracker/discovery.d.ts.map +1 -1
  181. package/dist/tracker/discovery.js +59 -34
  182. package/dist/tracker/discovery.js.map +1 -1
  183. package/dist/tracker/pipeline.d.ts +3 -10
  184. package/dist/tracker/pipeline.d.ts.map +1 -1
  185. package/dist/tracker/pipeline.js +18 -32
  186. package/dist/tracker/pipeline.js.map +1 -1
  187. package/dist/tracker/query.d.ts +1 -0
  188. package/dist/tracker/query.d.ts.map +1 -1
  189. package/dist/tracker/query.js +28 -36
  190. package/dist/tracker/query.js.map +1 -1
  191. package/dist/tracker/state.d.ts +3 -2
  192. package/dist/tracker/state.d.ts.map +1 -1
  193. package/dist/tracker/state.js +5 -4
  194. package/dist/tracker/state.js.map +1 -1
  195. package/dist/tracker.d.ts +33 -11
  196. package/dist/tracker.d.ts.map +1 -1
  197. package/dist/tracker.js +76 -43
  198. package/dist/tracker.js.map +1 -1
  199. package/dist/types/config.d.ts +39 -3
  200. package/dist/types/config.d.ts.map +1 -1
  201. package/dist/types/election.d.ts +23 -0
  202. package/dist/types/election.d.ts.map +1 -1
  203. package/dist/types/index.d.ts +2 -2
  204. package/dist/types/index.d.ts.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/types/simulation.d.ts +2 -2
  207. package/dist/types/simulation.d.ts.map +1 -1
  208. package/dist/types/tracking.d.ts +2 -2
  209. package/dist/types/tracking.d.ts.map +1 -1
  210. package/dist/utils/chain.d.ts +5 -1
  211. package/dist/utils/chain.d.ts.map +1 -1
  212. package/dist/utils/chain.js +7 -0
  213. package/dist/utils/chain.js.map +1 -1
  214. package/dist/utils/formatters.d.ts +2 -6
  215. package/dist/utils/formatters.d.ts.map +1 -1
  216. package/dist/utils/formatters.js +9 -12
  217. package/dist/utils/formatters.js.map +1 -1
  218. package/dist/utils/log-filters.js +1 -1
  219. package/dist/utils/log-filters.js.map +1 -1
  220. package/dist/utils/logger.d.ts +1 -0
  221. package/dist/utils/logger.d.ts.map +1 -1
  222. package/dist/utils/logger.js +1 -0
  223. package/dist/utils/logger.js.map +1 -1
  224. package/dist/utils/multicall.d.ts +0 -1
  225. package/dist/utils/multicall.d.ts.map +1 -1
  226. package/dist/utils/rpc-utils.d.ts +5 -0
  227. package/dist/utils/rpc-utils.d.ts.map +1 -1
  228. package/dist/utils/rpc-utils.js +9 -1
  229. package/dist/utils/rpc-utils.js.map +1 -1
  230. package/dist/utils/stage-metadata.d.ts +19 -0
  231. package/dist/utils/stage-metadata.d.ts.map +1 -1
  232. package/dist/utils/stage-metadata.js +44 -0
  233. package/dist/utils/stage-metadata.js.map +1 -1
  234. package/dist/utils/timing.d.ts +3 -10
  235. package/dist/utils/timing.d.ts.map +1 -1
  236. package/dist/utils/timing.js +9 -22
  237. package/dist/utils/timing.js.map +1 -1
  238. package/package.json +3 -2
  239. package/dist/cli/tui/utils/calldata-formatter.d.ts +0 -7
  240. package/dist/cli/tui/utils/calldata-formatter.d.ts.map +0 -1
  241. package/dist/cli/tui/utils/calldata-formatter.js +0 -14
  242. package/dist/cli/tui/utils/calldata-formatter.js.map +0 -1
  243. package/dist/cli/tui/utils/stage-formatter.d.ts +0 -7
  244. package/dist/cli/tui/utils/stage-formatter.d.ts.map +0 -1
  245. package/dist/cli/tui/utils/stage-formatter.js +0 -13
  246. package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
  247. package/dist/cli/tui/utils/text.d.ts +0 -7
  248. package/dist/cli/tui/utils/text.d.ts.map +0 -1
  249. package/dist/cli/tui/utils/text.js +0 -12
  250. package/dist/cli/tui/utils/text.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /**
3
+ * Governance proposal vote preparation
4
+ *
5
+ * Prepares transactions for casting votes on Core Governor and Treasury
6
+ * Governor proposals. Following the SDK's prepare-only philosophy: builds
7
+ * transaction data but never executes.
8
+ *
9
+ * Supports all OpenZeppelin Governor voting methods:
10
+ * - castVote(proposalId, support)
11
+ * - castVoteWithReason(proposalId, support, reason)
12
+ * - castVoteWithReasonAndParams(proposalId, support, reason, params)
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.resolveGovernorAddress = resolveGovernorAddress;
16
+ exports.prepareCastVote = prepareCastVote;
17
+ exports.prepareCastVoteWithReason = prepareCastVoteWithReason;
18
+ exports.prepareCastVoteWithReasonAndParams = prepareCastVoteWithReasonAndParams;
19
+ const ethers_1 = require("ethers");
20
+ const constants_1 = require("../constants");
21
+ const abis_1 = require("../abis");
22
+ const types_1 = require("../types");
23
+ const logger_1 = require("../utils/logger");
24
+ const log = logger_1.loggers.governance;
25
+ // ============================================================================
26
+ // Internals
27
+ // ============================================================================
28
+ function resolveGovernorAddress(governorAddressOrTarget) {
29
+ if (!governorAddressOrTarget)
30
+ return constants_1.ADDRESSES.CONSTITUTIONAL_GOVERNOR;
31
+ if (governorAddressOrTarget === "constitutional")
32
+ return constants_1.ADDRESSES.CONSTITUTIONAL_GOVERNOR;
33
+ if (governorAddressOrTarget === "non-constitutional")
34
+ return constants_1.ADDRESSES.NON_CONSTITUTIONAL_GOVERNOR;
35
+ return ethers_1.ethers.utils.getAddress(governorAddressOrTarget);
36
+ }
37
+ function supportLabel(support) {
38
+ if (support === constants_1.VOTE_SUPPORT.FOR)
39
+ return "For";
40
+ if (support === constants_1.VOTE_SUPPORT.AGAINST)
41
+ return "Against";
42
+ return "Abstain";
43
+ }
44
+ // ============================================================================
45
+ // Vote Preparation
46
+ // ============================================================================
47
+ /**
48
+ * Prepare a castVote transaction.
49
+ *
50
+ * Simplest voting method — just proposal ID and support value.
51
+ *
52
+ * @param proposalId - The proposal ID to vote on
53
+ * @param support - Vote support: 0 (Against), 1 (For), 2 (Abstain) — use VOTE_SUPPORT constants
54
+ * @param governorAddress - Governor contract address, or "constitutional"/"non-constitutional" shorthand
55
+ * @param chainId - Chain ID (default: 42161 for Arbitrum One)
56
+ */
57
+ function prepareCastVote(proposalId, support, governorAddress, chainId = constants_1.CHAIN_IDS.ARB_ONE) {
58
+ const to = resolveGovernorAddress(governorAddress);
59
+ log("prepareCastVote for proposal %s, support %d, governor %s", proposalId, support, to);
60
+ const data = abis_1.governorInterface.encodeFunctionData("castVote", [
61
+ ethers_1.BigNumber.from(proposalId),
62
+ support,
63
+ ]);
64
+ return {
65
+ to,
66
+ data: data,
67
+ value: "0",
68
+ chain: (0, types_1.chainIdToChain)(chainId),
69
+ chainId,
70
+ description: `castVote(${supportLabel(support)}) on proposal ${proposalId}`,
71
+ };
72
+ }
73
+ /**
74
+ * Prepare a castVoteWithReason transaction.
75
+ *
76
+ * Same as castVote but includes an on-chain reason string.
77
+ *
78
+ * @param proposalId - The proposal ID to vote on
79
+ * @param support - Vote support: 0 (Against), 1 (For), 2 (Abstain)
80
+ * @param reason - On-chain reason for the vote
81
+ * @param governorAddress - Governor contract address or shorthand
82
+ * @param chainId - Chain ID (default: 42161)
83
+ */
84
+ function prepareCastVoteWithReason(proposalId, support, reason, governorAddress, chainId = constants_1.CHAIN_IDS.ARB_ONE) {
85
+ const to = resolveGovernorAddress(governorAddress);
86
+ log("prepareCastVoteWithReason for proposal %s, support %d", proposalId, support);
87
+ const data = abis_1.governorInterface.encodeFunctionData("castVoteWithReason", [
88
+ ethers_1.BigNumber.from(proposalId),
89
+ support,
90
+ reason,
91
+ ]);
92
+ return {
93
+ to,
94
+ data: data,
95
+ value: "0",
96
+ chain: (0, types_1.chainIdToChain)(chainId),
97
+ chainId,
98
+ description: `castVoteWithReason(${supportLabel(support)}) on proposal ${proposalId}`,
99
+ };
100
+ }
101
+ /**
102
+ * Prepare a castVoteWithReasonAndParams transaction.
103
+ *
104
+ * Most flexible voting method — includes reason and arbitrary params bytes.
105
+ * Used by governors with custom counting modules.
106
+ *
107
+ * @param proposalId - The proposal ID to vote on
108
+ * @param support - Vote support: 0 (Against), 1 (For), 2 (Abstain)
109
+ * @param reason - On-chain reason for the vote
110
+ * @param params - ABI-encoded params bytes (interpretation depends on counting module)
111
+ * @param governorAddress - Governor contract address or shorthand
112
+ * @param chainId - Chain ID (default: 42161)
113
+ */
114
+ function prepareCastVoteWithReasonAndParams(proposalId, support, reason, params, governorAddress, chainId = constants_1.CHAIN_IDS.ARB_ONE) {
115
+ const to = resolveGovernorAddress(governorAddress);
116
+ log("prepareCastVoteWithReasonAndParams for proposal %s, support %d", proposalId, support);
117
+ const data = abis_1.governorInterface.encodeFunctionData("castVoteWithReasonAndParams", [
118
+ ethers_1.BigNumber.from(proposalId),
119
+ support,
120
+ reason,
121
+ params,
122
+ ]);
123
+ return {
124
+ to,
125
+ data: data,
126
+ value: "0",
127
+ chain: (0, types_1.chainIdToChain)(chainId),
128
+ chainId,
129
+ description: `castVoteWithReasonAndParams(${supportLabel(support)}) on proposal ${proposalId}`,
130
+ };
131
+ }
132
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/governance/write.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,13 +4,14 @@
4
4
  * A lightweight, high-performance library for tracking Arbitrum DAO
5
5
  * governance proposal lifecycle stages.
6
6
  *
7
- * @example Basic usage (Node.js)
7
+ * @example Basic usage with RPC URLs
8
8
  * ```typescript
9
9
  * import { createTracker, findExecutableStage } from "@gzeoneth/gov-tracker";
10
10
  *
11
+ * // Accepts RPC URLs directly (creates providers internally)
11
12
  * const tracker = createTracker({
12
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
13
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
13
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
14
+ * l1Provider: "https://eth.llamarpc.com",
14
15
  * });
15
16
  *
16
17
  * const results = await tracker.trackByTxHash(proposalCreationTxHash);
@@ -25,9 +26,13 @@
25
26
  *
26
27
  * @example Browser usage with LocalStorageCache
27
28
  * ```typescript
28
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
29
+ * import { createTracker, LocalStorageCache, extractProposals } from "@gzeoneth/gov-tracker";
29
30
  * import bundledCache from "@gzeoneth/gov-tracker/bundled-cache.json";
30
31
  *
32
+ * // Extract typed data from bundled cache
33
+ * const proposals = extractProposals(bundledCache);
34
+ * console.log(`Loaded ${proposals.length} proposals from cache`);
35
+ *
31
36
  * // Initialize cache with bundled data for faster first load
32
37
  * const cache = new LocalStorageCache("arb-gov:");
33
38
  * for (const [key, checkpoint] of Object.entries(bundledCache)) {
@@ -35,19 +40,23 @@
35
40
  * }
36
41
  *
37
42
  * const tracker = createTracker({
38
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
39
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
43
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
44
+ * l1Provider: "https://eth.llamarpc.com",
40
45
  * cache, // Updates persist to localStorage
41
46
  * });
42
47
  * ```
43
48
  * @packageDocumentation
44
49
  */
45
50
  export { ProposalStageTracker, createTracker, extractTimelockLink } from "./tracker";
46
- export type { StageType, StageStatus, Chain, KnownChain, L2Chain, ChainId, TrackedStage, StageTransaction, StageTiming, StageDataMap, TypedTrackedStage, NextStageHints, StageTrackResult, TrackingResult, TrackingInput, GovernorTrackingInput, TimelockTrackingInput, TrackingCheckpoint, TrackerStats, TrackingProgress, OnProgressCallback, DiscoveryWatermarks, DiscoveryTargets, PreparedTransaction, PrepareResult, PrepareOptions, TrackerOptions, CacheAdapter, ChunkingConfig, ProposalType, GovernorCapability, ProposalState, ProposalData, TimelockState, TimelockParams, TimelockBatchParams, CallScheduledData, TimelockLink, ProposalCreatedData, VotingActiveData, ProposalQueuedData, TimelockStageData, L2ToL1MessageStageData, RetryableStageData, CohortType, ElectionPhase, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, ElectionContender, ElectionNominee, MemberElectionNominee, NomineeElectionDetails, MemberElectionDetails, SerializableContender, SerializableNominee, SerializableMemberNominee, SerializableNomineeDetails, SerializableMemberDetails, DecodingSource, DecodedCalldata, DecodedParameter, RetryableTicketData, KnownAddress, SignatureEntry, SimulationType, BaseSimulationData, RetryableSimulationData, TimelockSimulationData, CallSimulationData, SimulationData, ExtractedSimulation, } from "./types";
51
+ export type { StageType, StageStatus, Chain, KnownChain, L2Chain, ChainId, TrackedStage, StageTransaction, StageTiming, StageDataMap, TypedTrackedStage, NextStageHints, StageTrackResult, TrackingResult, TrackingInput, GovernorTrackingInput, TimelockTrackingInput, TrackingCheckpoint, TrackerStats, TrackingProgress, OnProgressCallback, DiscoveryWatermarks, DiscoveryTargets, PreparedTransaction, PrepareResult, PrepareOptions, TrackerOptions, ProviderOrUrl, CacheAdapter, ChunkingConfig, ProposalType, GovernorCapability, ProposalState, ProposalData, TimelockState, TimelockParams, TimelockBatchParams, CallScheduledData, TimelockLink, ProposalCreatedData, VotingActiveData, ProposalQueuedData, TimelockStageData, L2ToL1MessageStageData, RetryableStageData, CohortType, ElectionPhase, ElectionProposalStatus, ElectionStatus, ElectionConfig, ElectionCheckResult, ElectionContender, ElectionNominee, MemberElectionNominee, NomineeElectionDetails, MemberElectionDetails, SerializableContender, SerializableNominee, SerializableMemberNominee, SerializableNomineeDetails, SerializableMemberDetails, DecodingSource, DecodedCalldata, DecodedParameter, RetryableTicketData, KnownAddress, SignatureEntry, SimulationType, BaseSimulationData, RetryableSimulationData, TimelockSimulationData, CallSimulationData, SimulationData, ExtractedSimulation, } from "./types";
47
52
  export { isStageType, getStageData, isKnownChain, isL2Chain, isRetryable } from "./types";
48
- export { ADDRESSES, CHAIN_IDS, DEFAULT_RPC_URLS, CHUNK_SIZES, NETWORK_IDS, TIMELOCK_SELECTORS, isElectionGovernor, buildDefaultTargets, } from "./constants";
49
- export { findExecutableStage, findAllExecutableStages, needsAction, getTrackingStatusSummary, getCurrentStage, areAllStagesComplete, extractOperationId, isTimelockStage, isConstitutional, findStage, } from "./stages/utils";
50
- export { detectProposalType, isElectionProposal, detectGovernorCapabilities, getTimelockAddress, getProposalState, discoverProposalByTxHash, } from "./discovery/governor-discovery";
53
+ export { ADDRESSES, CHAIN_IDS, DEFAULT_RPC_URLS, CHUNK_SIZES, NETWORK_IDS, TIMELOCK_SELECTORS, isElectionGovernor, buildDefaultTargets, VOTE_SUPPORT, PROPOSAL_STATE, PROPOSAL_STATE_MAP, PROPOSAL_STATE_LABEL, isProposalState, MAINNET_ELECTION_CONFIG, } from "./constants";
54
+ export type { VoteSupport, ProposalStateValue } from "./constants";
55
+ export { GOVERNOR_ABI, GOVERNOR_WITH_VETTER_ABI, TIMELOCK_ABI, NOMINEE_ELECTION_GOVERNOR_ABI, MEMBER_ELECTION_GOVERNOR_ABI, SECURITY_COUNCIL_MANAGER_ABI, ERC20_VOTES_ABI, } from "./abis";
56
+ export { governorAbi, governorWithVetterAbi, timelockAbi, securityCouncilManagerAbi, inboxAbi, nomineeElectionGovernorAbi, memberElectionGovernorAbi, erc20VotesAbi, governorReadAbi, governorWriteAbi, nomineeElectionGovernorReadAbi, nomineeElectionGovernorWriteAbi, memberElectionGovernorReadAbi, memberElectionGovernorWriteAbi, timelockReadAbi, timelockWriteAbi, } from "./abis-json";
57
+ export { findExecutableStage, findAllExecutableStages, needsAction, getTrackingStatusSummary, getLifecyclePhase, getCurrentStage, areAllStagesComplete, extractOperationId, isTimelockStage, isConstitutional, findStage, mergeStages, normalizeTimeline, splitStages, } from "./stages/utils";
58
+ export type { LifecyclePhase } from "./stages/utils";
59
+ export { detectProposalType, isElectionProposal, detectGovernorCapabilities, getTimelockAddress, getProposalState, discoverProposalByTxHash, queryProposalCreatedEvents, } from "./discovery/governor-discovery";
51
60
  export type { DiscoveredProposal } from "./discovery/governor-discovery";
52
61
  export { isKnownL2Timelock, isL1Timelock, getTimelockOperationState, getTimelockState, findCallScheduledByTxHash, } from "./discovery/timelock-discovery";
53
62
  export type { DiscoveredTimelockOp } from "./discovery/timelock-discovery";
@@ -56,8 +65,8 @@ export type { SecurityCouncilOperationParams, SecurityCouncilBatchParams, } from
56
65
  export { calculateEta, calculateExpectedEta, calculateRemainingSeconds, estimateTimestampFromBlock, getL1BlockNumberFromL2, invalidateBlockInfoCache, isStageStale, } from "./utils/timing";
57
66
  export { saltFromDescription, generateSecurityCouncilSalt, decodeL1TimelockSchedule, } from "./utils/salt-computation";
58
67
  export type { DecodedTimelockSchedule } from "./utils/salt-computation";
59
- export { validateSalt, validateSaltBatch, computeAndValidateOperationHash, tryFindSalt, } from "./utils/operation-id";
60
- export { prepareTimelockOperation, prepareTimelockBatch, prepareTimelockStage, calculateRetryableExecutionValue, calculateBatchRetryableValues, } from "./stages/timelock";
68
+ export { hashOperation, hashOperationBatch, validateSalt, validateSaltBatch, computeAndValidateOperationHash, tryFindSalt, } from "./utils/operation-id";
69
+ export { prepareTimelockOperation, prepareTimelockBatch, prepareTimelockStage, prepareExecuteTimelock, prepareTimelockExecuteCalldata, prepareTimelockBatchCalldata, calculateRetryableExecutionValue, calculateBatchRetryableValues, } from "./stages/timelock";
61
70
  export { prepareL2ToL1Message, prepareL2ToL1MessageStage, getL2ToL1Messages, } from "./stages/l2-to-l1-message";
62
71
  export type { OutboxPrepareOptions } from "./stages/l2-to-l1-message";
63
72
  export { prepareRetryableRedemption, prepareAllRetryables, prepareRetryableStage, } from "./stages/retryables";
@@ -65,22 +74,28 @@ export type { RetryablePrepareOptions } from "./stages/retryables";
65
74
  export { prepareGovernorQueue } from "./stages/proposal-queued";
66
75
  export type { GovernorProposalParams } from "./stages/proposal-queued";
67
76
  export { getTxUrl, getStageTransactionUrl, GOVERNANCE_START_BLOCKS, ELECTION_TIMING, } from "./constants";
68
- export { getStageMetadata, formatStageTitle } from "./utils/stage-metadata";
77
+ export { getStageMetadata, formatStageTitle, getAllStageMetadata, ALL_STAGE_TYPES, } from "./utils/stage-metadata";
69
78
  export type { StageMetadata } from "./utils/stage-metadata";
70
- export { addressEquals, isAddressIn, getChain } from "./utils/chain";
79
+ export { addressEquals, isAddressIn, getChain, compareBigNumbers } from "./utils/chain";
71
80
  export { chainIdToChain, chainToChainId, getChainDisplayName } from "./types";
72
- export { isGasEstimationError } from "./utils/rpc-utils";
81
+ export { isGasEstimationError, isPermanentError, isRetryableError, getErrorMessage, queryWithRetry, } from "./utils/rpc-utils";
73
82
  export { truncateDescription, sanitizeForDisplay, safeJsonParse, MAX_DESCRIPTION_LENGTH, } from "./utils/sanitize";
74
- export { wrapText, truncate, safeStringify, formatValue, formatDate, CHAIN_TO_CHAIN_ID, type StageDataItem, formatStageData, getTxHash, getProposalIdDisplay, type FormattedLine, formatDecodedCalldata, filterVisibleLines, getAllFoldableKeys, toggleFoldKey, } from "./utils/formatters";
75
- export { getElectionCount, checkElectionStatus, hasVettingPeriod, getElectionIndexForProposalId, getElectionProposalId, getElectionProposalParams, getMemberElectionProposalParams, prepareElectionCreation, prepareMemberElectionTrigger, prepareMemberElectionExecution, getContenders, getNomineesWithVotes, getExcludedNominees, getNomineeElectionDetails, getMemberElectionDetails, serializeNomineeDetails, serializeMemberDetails, } from "./election";
76
- export type { PreparedElectionCreation, ElectionProposalParams } from "./election";
83
+ export { wrapText, truncate, safeStringify, formatValue, formatDate, type StageDataItem, formatStageData, getTxHash, getProposalIdDisplay, type FormattedLine, formatDecodedCalldata, filterVisibleLines, } from "./utils/formatters";
84
+ export { getElectionCount, checkElectionStatus, hasVettingPeriod, determineElectionPhase, getElectionStatus, getAllElectionStatuses, getElectionIndexForProposalId, getElectionProposalId, getElectionProposalParams, getMemberElectionProposalParams, prepareElectionCreation, prepareMemberElectionTrigger, prepareMemberElectionExecution, getContenders, getNomineesWithVotes, getExcludedNominees, getNomineeElectionDetails, getMemberElectionDetails, serializeNomineeDetails, serializeMemberDetails, encodeElectionVoteParams, decodeElectionVoteParams, getAddContenderTypedData, prepareAddContender, prepareContenderRegistration, prepareNomineeElectionVote, prepareMemberElectionVote, } from "./election";
85
+ export type { PreparedElectionCreation, ElectionProposalParams, AddContenderTypedData, PreparedContenderRegistration, } from "./election";
86
+ export { prepareCastVote, prepareCastVoteWithReason, prepareCastVoteWithReasonAndParams, readProposalState, readProposalVotes, readProposalSnapshot, readProposalDeadline, readQuorum, readVotingPower, readGetVotes, readHasVoted, readCurrentVotingPower, readDelegate, readNomineeElectionState, readMemberElectionState, readElectionCount, readVotesUsed, readIsContender, readGovernorName, } from "./governance";
87
+ export type { GovernorTarget, ReadContractParameters } from "./governance";
77
88
  export { isSecurityCouncilTimelockOp, linkCheckpointToChild, getParentCheckpoint, isChildCheckpoint, filterChildCheckpoints, getChildToParentMap, getChildCheckpoints, getDeduplicationStats, findPotentialParent, autoLinkOrphanedCheckpoints, } from "./deduplication";
78
89
  export type { DeduplicationStats } from "./deduplication";
79
90
  export { decodeCalldata, decodeCalldataArray, lookupSignature, lookupLocalSignature, LookupSignatureOptions, parseParamTypes, isLikelyCalldata, formatDecodedValue, getAddressLabel, isRetryableTicketMagic, decodeRetryableTicket, getRetryableChainName, RETRYABLE_TICKET_MAGIC, } from "./calldata";
80
- export { prepareRetryableSimulation, prepareTimelockSimulation, prepareCallSimulation, extractAllSimulationsFromDecoded, } from "./simulation";
91
+ export { prepareRetryableSimulation, prepareTimelockSimulation, prepareCallSimulation, extractAllSimulationsFromDecoded, extractSimulationsByActionIndex, buildTenderlySimRequest, buildTenderlyEncodeStatesRequest, } from "./simulation";
92
+ export type { IndexedSimulation, TenderlySimRequest, TenderlyEncodeStatesRequest, } from "./simulation";
81
93
  export { FileCache, LocalStorageCache, MemoryCache, getBundledCachePath } from "./tracker/cache";
94
+ export { extractProposals, extractTimelockOps, extractElections, extractOperationIds, extractTimelockLinkFromStages, getWatermarksFromCache, getVotingDataFromStages, } from "./tracker/bundled-cache";
95
+ export type { BundledCache, ExtractedProposal, ExtractedTimelockOp, ExtractedElection, } from "./tracker/bundled-cache";
82
96
  export { createCheckpoint, createTrackingState } from "./tracker/state";
83
97
  export { getElectionContext, proposalStateToStageStatus } from "./tracker/pipeline";
84
- export { createCheckpointMetadata, isCheckpointComplete, isCheckpointErrored, getCheckpointErrorCount, computeCacheStats, electionCacheKey, txHashCacheKey, timelockOpCacheKey, isElectionKey, isTxKey, isTimelockOpKey, isDiscoveryKey, parseElectionKey, parseTimelockOpKey, DEFAULT_ERROR_THRESHOLD, ELECTION_KEY_PREFIX, TX_KEY_PREFIX, } from "./tracker/checkpoint-helpers";
85
- export { WATERMARKS_KEY } from "./tracker/discovery";
98
+ export { createCheckpointMetadata, isCheckpointComplete, isCheckpointErrored, getCheckpointErrorCount, computeCacheStats, electionCacheKey, txHashCacheKey, timelockOpCacheKey, isElectionKey, isTxKey, isTimelockOpKey, isDiscoveryKey, parseElectionKey, parseTimelockOpKey, trimFromStage, DEFAULT_ERROR_THRESHOLD, ELECTION_KEY_PREFIX, TX_KEY_PREFIX, } from "./tracker/checkpoint-helpers";
99
+ export { WATERMARKS_KEY, loadWatermarks } from "./tracker/discovery";
100
+ export type { LoadedWatermarks } from "./tracker/discovery";
86
101
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,13 +5,14 @@
5
5
  * A lightweight, high-performance library for tracking Arbitrum DAO
6
6
  * governance proposal lifecycle stages.
7
7
  *
8
- * @example Basic usage (Node.js)
8
+ * @example Basic usage with RPC URLs
9
9
  * ```typescript
10
10
  * import { createTracker, findExecutableStage } from "@gzeoneth/gov-tracker";
11
11
  *
12
+ * // Accepts RPC URLs directly (creates providers internally)
12
13
  * const tracker = createTracker({
13
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
14
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
14
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
15
+ * l1Provider: "https://eth.llamarpc.com",
15
16
  * });
16
17
  *
17
18
  * const results = await tracker.trackByTxHash(proposalCreationTxHash);
@@ -26,9 +27,13 @@
26
27
  *
27
28
  * @example Browser usage with LocalStorageCache
28
29
  * ```typescript
29
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
30
+ * import { createTracker, LocalStorageCache, extractProposals } from "@gzeoneth/gov-tracker";
30
31
  * import bundledCache from "@gzeoneth/gov-tracker/bundled-cache.json";
31
32
  *
33
+ * // Extract typed data from bundled cache
34
+ * const proposals = extractProposals(bundledCache);
35
+ * console.log(`Loaded ${proposals.length} proposals from cache`);
36
+ *
32
37
  * // Initialize cache with bundled data for faster first load
33
38
  * const cache = new LocalStorageCache("arb-gov:");
34
39
  * for (const [key, checkpoint] of Object.entries(bundledCache)) {
@@ -36,18 +41,20 @@
36
41
  * }
37
42
  *
38
43
  * const tracker = createTracker({
39
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
40
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
44
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
45
+ * l1Provider: "https://eth.llamarpc.com",
41
46
  * cache, // Updates persist to localStorage
42
47
  * });
43
48
  * ```
44
49
  * @packageDocumentation
45
50
  */
46
51
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.getL1BlockNumberFromL2 = exports.estimateTimestampFromBlock = exports.calculateRemainingSeconds = exports.calculateExpectedEta = exports.calculateEta = exports.isScOperationSuperseded = exports.getHighestScNonce = exports.checkVettingPeriod = exports.extractAllSecurityCouncilParams = exports.extractSecurityCouncilParamsForOperation = exports.extractSecurityCouncilParams = exports.isSecurityCouncilElectionProposal = exports.isSecurityCouncilOperation = exports.findCallScheduledByTxHash = exports.getTimelockState = exports.getTimelockOperationState = exports.isL1Timelock = exports.isKnownL2Timelock = exports.discoverProposalByTxHash = exports.getProposalState = exports.getTimelockAddress = exports.detectGovernorCapabilities = exports.isElectionProposal = exports.detectProposalType = exports.findStage = exports.isConstitutional = exports.isTimelockStage = exports.extractOperationId = exports.areAllStagesComplete = exports.getCurrentStage = exports.getTrackingStatusSummary = exports.needsAction = exports.findAllExecutableStages = exports.findExecutableStage = exports.buildDefaultTargets = exports.isElectionGovernor = exports.TIMELOCK_SELECTORS = exports.NETWORK_IDS = exports.CHUNK_SIZES = exports.DEFAULT_RPC_URLS = exports.CHAIN_IDS = exports.ADDRESSES = exports.isRetryable = exports.isL2Chain = exports.isKnownChain = exports.getStageData = exports.isStageType = exports.extractTimelockLink = exports.createTracker = exports.ProposalStageTracker = void 0;
48
- exports.getAllFoldableKeys = exports.filterVisibleLines = exports.formatDecodedCalldata = exports.getProposalIdDisplay = exports.getTxHash = exports.formatStageData = exports.CHAIN_TO_CHAIN_ID = exports.formatDate = exports.formatValue = exports.safeStringify = exports.truncate = exports.wrapText = exports.MAX_DESCRIPTION_LENGTH = exports.safeJsonParse = exports.sanitizeForDisplay = exports.truncateDescription = exports.isGasEstimationError = exports.getChainDisplayName = exports.chainToChainId = exports.chainIdToChain = exports.getChain = exports.isAddressIn = exports.addressEquals = exports.formatStageTitle = exports.getStageMetadata = exports.ELECTION_TIMING = exports.GOVERNANCE_START_BLOCKS = exports.getStageTransactionUrl = exports.getTxUrl = exports.prepareGovernorQueue = exports.prepareRetryableStage = exports.prepareAllRetryables = exports.prepareRetryableRedemption = exports.getL2ToL1Messages = exports.prepareL2ToL1MessageStage = exports.prepareL2ToL1Message = exports.calculateBatchRetryableValues = exports.calculateRetryableExecutionValue = exports.prepareTimelockStage = exports.prepareTimelockBatch = exports.prepareTimelockOperation = exports.tryFindSalt = exports.computeAndValidateOperationHash = exports.validateSaltBatch = exports.validateSalt = exports.decodeL1TimelockSchedule = exports.generateSecurityCouncilSalt = exports.saltFromDescription = exports.isStageStale = exports.invalidateBlockInfoCache = void 0;
49
- exports.createTrackingState = exports.createCheckpoint = exports.getBundledCachePath = exports.MemoryCache = exports.LocalStorageCache = exports.FileCache = exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = exports.RETRYABLE_TICKET_MAGIC = exports.getRetryableChainName = exports.decodeRetryableTicket = exports.isRetryableTicketMagic = exports.getAddressLabel = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.lookupLocalSignature = exports.lookupSignature = exports.decodeCalldataArray = exports.decodeCalldata = exports.autoLinkOrphanedCheckpoints = exports.findPotentialParent = exports.getDeduplicationStats = exports.getChildCheckpoints = exports.getChildToParentMap = exports.filterChildCheckpoints = exports.isChildCheckpoint = exports.getParentCheckpoint = exports.linkCheckpointToChild = exports.isSecurityCouncilTimelockOp = exports.serializeMemberDetails = exports.serializeNomineeDetails = exports.getMemberElectionDetails = exports.getNomineeElectionDetails = exports.getExcludedNominees = exports.getNomineesWithVotes = exports.getContenders = exports.prepareMemberElectionExecution = exports.prepareMemberElectionTrigger = exports.prepareElectionCreation = exports.getMemberElectionProposalParams = exports.getElectionProposalParams = exports.getElectionProposalId = exports.getElectionIndexForProposalId = exports.hasVettingPeriod = exports.checkElectionStatus = exports.getElectionCount = exports.toggleFoldKey = void 0;
50
- exports.WATERMARKS_KEY = exports.TX_KEY_PREFIX = exports.ELECTION_KEY_PREFIX = exports.DEFAULT_ERROR_THRESHOLD = exports.parseTimelockOpKey = exports.parseElectionKey = exports.isDiscoveryKey = exports.isTimelockOpKey = exports.isTxKey = exports.isElectionKey = exports.timelockOpCacheKey = exports.txHashCacheKey = exports.electionCacheKey = exports.computeCacheStats = exports.getCheckpointErrorCount = exports.isCheckpointErrored = exports.isCheckpointComplete = exports.createCheckpointMetadata = exports.proposalStateToStageStatus = exports.getElectionContext = void 0;
52
+ exports.getLifecyclePhase = exports.getTrackingStatusSummary = exports.needsAction = exports.findAllExecutableStages = exports.findExecutableStage = exports.timelockWriteAbi = exports.timelockReadAbi = exports.memberElectionGovernorWriteAbi = exports.memberElectionGovernorReadAbi = exports.nomineeElectionGovernorWriteAbi = exports.nomineeElectionGovernorReadAbi = exports.governorWriteAbi = exports.governorReadAbi = exports.erc20VotesAbi = exports.memberElectionGovernorAbi = exports.nomineeElectionGovernorAbi = exports.inboxAbi = exports.securityCouncilManagerAbi = exports.timelockAbi = exports.governorWithVetterAbi = exports.governorAbi = exports.ERC20_VOTES_ABI = exports.SECURITY_COUNCIL_MANAGER_ABI = exports.MEMBER_ELECTION_GOVERNOR_ABI = exports.NOMINEE_ELECTION_GOVERNOR_ABI = exports.TIMELOCK_ABI = exports.GOVERNOR_WITH_VETTER_ABI = exports.GOVERNOR_ABI = exports.MAINNET_ELECTION_CONFIG = exports.isProposalState = exports.PROPOSAL_STATE_LABEL = exports.PROPOSAL_STATE_MAP = exports.PROPOSAL_STATE = exports.VOTE_SUPPORT = exports.buildDefaultTargets = exports.isElectionGovernor = exports.TIMELOCK_SELECTORS = exports.NETWORK_IDS = exports.CHUNK_SIZES = exports.DEFAULT_RPC_URLS = exports.CHAIN_IDS = exports.ADDRESSES = exports.isRetryable = exports.isL2Chain = exports.isKnownChain = exports.getStageData = exports.isStageType = exports.extractTimelockLink = exports.createTracker = exports.ProposalStageTracker = void 0;
53
+ exports.prepareTimelockExecuteCalldata = exports.prepareExecuteTimelock = exports.prepareTimelockStage = exports.prepareTimelockBatch = exports.prepareTimelockOperation = exports.tryFindSalt = exports.computeAndValidateOperationHash = exports.validateSaltBatch = exports.validateSalt = exports.hashOperationBatch = exports.hashOperation = exports.decodeL1TimelockSchedule = exports.generateSecurityCouncilSalt = exports.saltFromDescription = exports.isStageStale = exports.invalidateBlockInfoCache = exports.getL1BlockNumberFromL2 = exports.estimateTimestampFromBlock = exports.calculateRemainingSeconds = exports.calculateExpectedEta = exports.calculateEta = exports.isScOperationSuperseded = exports.getHighestScNonce = exports.checkVettingPeriod = exports.extractAllSecurityCouncilParams = exports.extractSecurityCouncilParamsForOperation = exports.extractSecurityCouncilParams = exports.isSecurityCouncilElectionProposal = exports.isSecurityCouncilOperation = exports.findCallScheduledByTxHash = exports.getTimelockState = exports.getTimelockOperationState = exports.isL1Timelock = exports.isKnownL2Timelock = exports.queryProposalCreatedEvents = exports.discoverProposalByTxHash = exports.getProposalState = exports.getTimelockAddress = exports.detectGovernorCapabilities = exports.isElectionProposal = exports.detectProposalType = exports.splitStages = exports.normalizeTimeline = exports.mergeStages = exports.findStage = exports.isConstitutional = exports.isTimelockStage = exports.extractOperationId = exports.areAllStagesComplete = exports.getCurrentStage = void 0;
54
+ exports.getAllElectionStatuses = exports.getElectionStatus = exports.determineElectionPhase = exports.hasVettingPeriod = exports.checkElectionStatus = exports.getElectionCount = exports.filterVisibleLines = exports.formatDecodedCalldata = exports.getProposalIdDisplay = exports.getTxHash = exports.formatStageData = exports.formatDate = exports.formatValue = exports.safeStringify = exports.truncate = exports.wrapText = exports.MAX_DESCRIPTION_LENGTH = exports.safeJsonParse = exports.sanitizeForDisplay = exports.truncateDescription = exports.queryWithRetry = exports.getErrorMessage = exports.isRetryableError = exports.isPermanentError = exports.isGasEstimationError = exports.getChainDisplayName = exports.chainToChainId = exports.chainIdToChain = exports.compareBigNumbers = exports.getChain = exports.isAddressIn = exports.addressEquals = exports.ALL_STAGE_TYPES = exports.getAllStageMetadata = exports.formatStageTitle = exports.getStageMetadata = exports.ELECTION_TIMING = exports.GOVERNANCE_START_BLOCKS = exports.getStageTransactionUrl = exports.getTxUrl = exports.prepareGovernorQueue = exports.prepareRetryableStage = exports.prepareAllRetryables = exports.prepareRetryableRedemption = exports.getL2ToL1Messages = exports.prepareL2ToL1MessageStage = exports.prepareL2ToL1Message = exports.calculateBatchRetryableValues = exports.calculateRetryableExecutionValue = exports.prepareTimelockBatchCalldata = void 0;
55
+ exports.autoLinkOrphanedCheckpoints = exports.findPotentialParent = exports.getDeduplicationStats = exports.getChildCheckpoints = exports.getChildToParentMap = exports.filterChildCheckpoints = exports.isChildCheckpoint = exports.getParentCheckpoint = exports.linkCheckpointToChild = exports.isSecurityCouncilTimelockOp = exports.readGovernorName = exports.readIsContender = exports.readVotesUsed = exports.readElectionCount = exports.readMemberElectionState = exports.readNomineeElectionState = exports.readDelegate = exports.readCurrentVotingPower = exports.readHasVoted = exports.readGetVotes = exports.readVotingPower = exports.readQuorum = exports.readProposalDeadline = exports.readProposalSnapshot = exports.readProposalVotes = exports.readProposalState = exports.prepareCastVoteWithReasonAndParams = exports.prepareCastVoteWithReason = exports.prepareCastVote = exports.prepareMemberElectionVote = exports.prepareNomineeElectionVote = exports.prepareContenderRegistration = exports.prepareAddContender = exports.getAddContenderTypedData = exports.decodeElectionVoteParams = exports.encodeElectionVoteParams = exports.serializeMemberDetails = exports.serializeNomineeDetails = exports.getMemberElectionDetails = exports.getNomineeElectionDetails = exports.getExcludedNominees = exports.getNomineesWithVotes = exports.getContenders = exports.prepareMemberElectionExecution = exports.prepareMemberElectionTrigger = exports.prepareElectionCreation = exports.getMemberElectionProposalParams = exports.getElectionProposalParams = exports.getElectionProposalId = exports.getElectionIndexForProposalId = void 0;
56
+ exports.DEFAULT_ERROR_THRESHOLD = exports.trimFromStage = exports.parseTimelockOpKey = exports.parseElectionKey = exports.isDiscoveryKey = exports.isTimelockOpKey = exports.isTxKey = exports.isElectionKey = exports.timelockOpCacheKey = exports.txHashCacheKey = exports.electionCacheKey = exports.computeCacheStats = exports.getCheckpointErrorCount = exports.isCheckpointErrored = exports.isCheckpointComplete = exports.createCheckpointMetadata = exports.proposalStateToStageStatus = exports.getElectionContext = exports.createTrackingState = exports.createCheckpoint = exports.getVotingDataFromStages = exports.getWatermarksFromCache = exports.extractTimelockLinkFromStages = exports.extractOperationIds = exports.extractElections = exports.extractTimelockOps = exports.extractProposals = exports.getBundledCachePath = exports.MemoryCache = exports.LocalStorageCache = exports.FileCache = exports.buildTenderlyEncodeStatesRequest = exports.buildTenderlySimRequest = exports.extractSimulationsByActionIndex = exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = exports.RETRYABLE_TICKET_MAGIC = exports.getRetryableChainName = exports.decodeRetryableTicket = exports.isRetryableTicketMagic = exports.getAddressLabel = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.lookupLocalSignature = exports.lookupSignature = exports.decodeCalldataArray = exports.decodeCalldata = void 0;
57
+ exports.loadWatermarks = exports.WATERMARKS_KEY = exports.TX_KEY_PREFIX = exports.ELECTION_KEY_PREFIX = void 0;
51
58
  // ============================================================================
52
59
  // TIER 1: Core Public API
53
60
  // ============================================================================
@@ -73,18 +80,58 @@ Object.defineProperty(exports, "NETWORK_IDS", { enumerable: true, get: function
73
80
  Object.defineProperty(exports, "TIMELOCK_SELECTORS", { enumerable: true, get: function () { return constants_1.TIMELOCK_SELECTORS; } });
74
81
  Object.defineProperty(exports, "isElectionGovernor", { enumerable: true, get: function () { return constants_1.isElectionGovernor; } });
75
82
  Object.defineProperty(exports, "buildDefaultTargets", { enumerable: true, get: function () { return constants_1.buildDefaultTargets; } });
83
+ Object.defineProperty(exports, "VOTE_SUPPORT", { enumerable: true, get: function () { return constants_1.VOTE_SUPPORT; } });
84
+ Object.defineProperty(exports, "PROPOSAL_STATE", { enumerable: true, get: function () { return constants_1.PROPOSAL_STATE; } });
85
+ Object.defineProperty(exports, "PROPOSAL_STATE_MAP", { enumerable: true, get: function () { return constants_1.PROPOSAL_STATE_MAP; } });
86
+ Object.defineProperty(exports, "PROPOSAL_STATE_LABEL", { enumerable: true, get: function () { return constants_1.PROPOSAL_STATE_LABEL; } });
87
+ Object.defineProperty(exports, "isProposalState", { enumerable: true, get: function () { return constants_1.isProposalState; } });
88
+ Object.defineProperty(exports, "MAINNET_ELECTION_CONFIG", { enumerable: true, get: function () { return constants_1.MAINNET_ELECTION_CONFIG; } });
89
+ // ABIs — human-readable format (ethers v5 compatible, `as const` for abitype)
90
+ var abis_1 = require("./abis");
91
+ Object.defineProperty(exports, "GOVERNOR_ABI", { enumerable: true, get: function () { return abis_1.GOVERNOR_ABI; } });
92
+ Object.defineProperty(exports, "GOVERNOR_WITH_VETTER_ABI", { enumerable: true, get: function () { return abis_1.GOVERNOR_WITH_VETTER_ABI; } });
93
+ Object.defineProperty(exports, "TIMELOCK_ABI", { enumerable: true, get: function () { return abis_1.TIMELOCK_ABI; } });
94
+ Object.defineProperty(exports, "NOMINEE_ELECTION_GOVERNOR_ABI", { enumerable: true, get: function () { return abis_1.NOMINEE_ELECTION_GOVERNOR_ABI; } });
95
+ Object.defineProperty(exports, "MEMBER_ELECTION_GOVERNOR_ABI", { enumerable: true, get: function () { return abis_1.MEMBER_ELECTION_GOVERNOR_ABI; } });
96
+ Object.defineProperty(exports, "SECURITY_COUNCIL_MANAGER_ABI", { enumerable: true, get: function () { return abis_1.SECURITY_COUNCIL_MANAGER_ABI; } });
97
+ Object.defineProperty(exports, "ERC20_VOTES_ABI", { enumerable: true, get: function () { return abis_1.ERC20_VOTES_ABI; } });
98
+ // ABIs — JSON format for wagmi/viem (full useReadContract/useWriteContract type inference)
99
+ var abis_json_1 = require("./abis-json");
100
+ // Full ABIs
101
+ Object.defineProperty(exports, "governorAbi", { enumerable: true, get: function () { return abis_json_1.governorAbi; } });
102
+ Object.defineProperty(exports, "governorWithVetterAbi", { enumerable: true, get: function () { return abis_json_1.governorWithVetterAbi; } });
103
+ Object.defineProperty(exports, "timelockAbi", { enumerable: true, get: function () { return abis_json_1.timelockAbi; } });
104
+ Object.defineProperty(exports, "securityCouncilManagerAbi", { enumerable: true, get: function () { return abis_json_1.securityCouncilManagerAbi; } });
105
+ Object.defineProperty(exports, "inboxAbi", { enumerable: true, get: function () { return abis_json_1.inboxAbi; } });
106
+ Object.defineProperty(exports, "nomineeElectionGovernorAbi", { enumerable: true, get: function () { return abis_json_1.nomineeElectionGovernorAbi; } });
107
+ Object.defineProperty(exports, "memberElectionGovernorAbi", { enumerable: true, get: function () { return abis_json_1.memberElectionGovernorAbi; } });
108
+ Object.defineProperty(exports, "erc20VotesAbi", { enumerable: true, get: function () { return abis_json_1.erc20VotesAbi; } });
109
+ // Curated read/write subsets (use when full ABI exceeds viem type inference limits)
110
+ Object.defineProperty(exports, "governorReadAbi", { enumerable: true, get: function () { return abis_json_1.governorReadAbi; } });
111
+ Object.defineProperty(exports, "governorWriteAbi", { enumerable: true, get: function () { return abis_json_1.governorWriteAbi; } });
112
+ Object.defineProperty(exports, "nomineeElectionGovernorReadAbi", { enumerable: true, get: function () { return abis_json_1.nomineeElectionGovernorReadAbi; } });
113
+ Object.defineProperty(exports, "nomineeElectionGovernorWriteAbi", { enumerable: true, get: function () { return abis_json_1.nomineeElectionGovernorWriteAbi; } });
114
+ Object.defineProperty(exports, "memberElectionGovernorReadAbi", { enumerable: true, get: function () { return abis_json_1.memberElectionGovernorReadAbi; } });
115
+ Object.defineProperty(exports, "memberElectionGovernorWriteAbi", { enumerable: true, get: function () { return abis_json_1.memberElectionGovernorWriteAbi; } });
116
+ Object.defineProperty(exports, "timelockReadAbi", { enumerable: true, get: function () { return abis_json_1.timelockReadAbi; } });
117
+ Object.defineProperty(exports, "timelockWriteAbi", { enumerable: true, get: function () { return abis_json_1.timelockWriteAbi; } });
76
118
  // Stage utilities
77
119
  var utils_1 = require("./stages/utils");
78
120
  Object.defineProperty(exports, "findExecutableStage", { enumerable: true, get: function () { return utils_1.findExecutableStage; } });
79
121
  Object.defineProperty(exports, "findAllExecutableStages", { enumerable: true, get: function () { return utils_1.findAllExecutableStages; } });
80
122
  Object.defineProperty(exports, "needsAction", { enumerable: true, get: function () { return utils_1.needsAction; } });
81
123
  Object.defineProperty(exports, "getTrackingStatusSummary", { enumerable: true, get: function () { return utils_1.getTrackingStatusSummary; } });
124
+ Object.defineProperty(exports, "getLifecyclePhase", { enumerable: true, get: function () { return utils_1.getLifecyclePhase; } });
82
125
  Object.defineProperty(exports, "getCurrentStage", { enumerable: true, get: function () { return utils_1.getCurrentStage; } });
83
126
  Object.defineProperty(exports, "areAllStagesComplete", { enumerable: true, get: function () { return utils_1.areAllStagesComplete; } });
84
127
  Object.defineProperty(exports, "extractOperationId", { enumerable: true, get: function () { return utils_1.extractOperationId; } });
85
128
  Object.defineProperty(exports, "isTimelockStage", { enumerable: true, get: function () { return utils_1.isTimelockStage; } });
86
129
  Object.defineProperty(exports, "isConstitutional", { enumerable: true, get: function () { return utils_1.isConstitutional; } });
87
130
  Object.defineProperty(exports, "findStage", { enumerable: true, get: function () { return utils_1.findStage; } });
131
+ // Stage merging utilities
132
+ Object.defineProperty(exports, "mergeStages", { enumerable: true, get: function () { return utils_1.mergeStages; } });
133
+ Object.defineProperty(exports, "normalizeTimeline", { enumerable: true, get: function () { return utils_1.normalizeTimeline; } });
134
+ Object.defineProperty(exports, "splitStages", { enumerable: true, get: function () { return utils_1.splitStages; } });
88
135
  // ============================================================================
89
136
  // TIER 2: Advanced API - Power user functions
90
137
  // ============================================================================
@@ -96,6 +143,7 @@ Object.defineProperty(exports, "detectGovernorCapabilities", { enumerable: true,
96
143
  Object.defineProperty(exports, "getTimelockAddress", { enumerable: true, get: function () { return governor_discovery_1.getTimelockAddress; } });
97
144
  Object.defineProperty(exports, "getProposalState", { enumerable: true, get: function () { return governor_discovery_1.getProposalState; } });
98
145
  Object.defineProperty(exports, "discoverProposalByTxHash", { enumerable: true, get: function () { return governor_discovery_1.discoverProposalByTxHash; } });
146
+ Object.defineProperty(exports, "queryProposalCreatedEvents", { enumerable: true, get: function () { return governor_discovery_1.queryProposalCreatedEvents; } });
99
147
  // Timelock introspection
100
148
  var timelock_discovery_1 = require("./discovery/timelock-discovery");
101
149
  Object.defineProperty(exports, "isKnownL2Timelock", { enumerable: true, get: function () { return timelock_discovery_1.isKnownL2Timelock; } });
@@ -130,6 +178,8 @@ Object.defineProperty(exports, "generateSecurityCouncilSalt", { enumerable: true
130
178
  Object.defineProperty(exports, "decodeL1TimelockSchedule", { enumerable: true, get: function () { return salt_computation_1.decodeL1TimelockSchedule; } });
131
179
  // Operation ID utilities
132
180
  var operation_id_1 = require("./utils/operation-id");
181
+ Object.defineProperty(exports, "hashOperation", { enumerable: true, get: function () { return operation_id_1.hashOperation; } });
182
+ Object.defineProperty(exports, "hashOperationBatch", { enumerable: true, get: function () { return operation_id_1.hashOperationBatch; } });
133
183
  Object.defineProperty(exports, "validateSalt", { enumerable: true, get: function () { return operation_id_1.validateSalt; } });
134
184
  Object.defineProperty(exports, "validateSaltBatch", { enumerable: true, get: function () { return operation_id_1.validateSaltBatch; } });
135
185
  Object.defineProperty(exports, "computeAndValidateOperationHash", { enumerable: true, get: function () { return operation_id_1.computeAndValidateOperationHash; } });
@@ -142,6 +192,9 @@ var timelock_1 = require("./stages/timelock");
142
192
  Object.defineProperty(exports, "prepareTimelockOperation", { enumerable: true, get: function () { return timelock_1.prepareTimelockOperation; } });
143
193
  Object.defineProperty(exports, "prepareTimelockBatch", { enumerable: true, get: function () { return timelock_1.prepareTimelockBatch; } });
144
194
  Object.defineProperty(exports, "prepareTimelockStage", { enumerable: true, get: function () { return timelock_1.prepareTimelockStage; } });
195
+ Object.defineProperty(exports, "prepareExecuteTimelock", { enumerable: true, get: function () { return timelock_1.prepareExecuteTimelock; } });
196
+ Object.defineProperty(exports, "prepareTimelockExecuteCalldata", { enumerable: true, get: function () { return timelock_1.prepareTimelockExecuteCalldata; } });
197
+ Object.defineProperty(exports, "prepareTimelockBatchCalldata", { enumerable: true, get: function () { return timelock_1.prepareTimelockBatchCalldata; } });
145
198
  Object.defineProperty(exports, "calculateRetryableExecutionValue", { enumerable: true, get: function () { return timelock_1.calculateRetryableExecutionValue; } });
146
199
  Object.defineProperty(exports, "calculateBatchRetryableValues", { enumerable: true, get: function () { return timelock_1.calculateBatchRetryableValues; } });
147
200
  // L2→L1 message preparation
@@ -170,18 +223,25 @@ Object.defineProperty(exports, "ELECTION_TIMING", { enumerable: true, get: funct
170
223
  var stage_metadata_1 = require("./utils/stage-metadata");
171
224
  Object.defineProperty(exports, "getStageMetadata", { enumerable: true, get: function () { return stage_metadata_1.getStageMetadata; } });
172
225
  Object.defineProperty(exports, "formatStageTitle", { enumerable: true, get: function () { return stage_metadata_1.formatStageTitle; } });
173
- // Address utilities
226
+ Object.defineProperty(exports, "getAllStageMetadata", { enumerable: true, get: function () { return stage_metadata_1.getAllStageMetadata; } });
227
+ Object.defineProperty(exports, "ALL_STAGE_TYPES", { enumerable: true, get: function () { return stage_metadata_1.ALL_STAGE_TYPES; } });
228
+ // Chain and address utilities
174
229
  var chain_1 = require("./utils/chain");
175
230
  Object.defineProperty(exports, "addressEquals", { enumerable: true, get: function () { return chain_1.addressEquals; } });
176
231
  Object.defineProperty(exports, "isAddressIn", { enumerable: true, get: function () { return chain_1.isAddressIn; } });
177
232
  Object.defineProperty(exports, "getChain", { enumerable: true, get: function () { return chain_1.getChain; } });
233
+ Object.defineProperty(exports, "compareBigNumbers", { enumerable: true, get: function () { return chain_1.compareBigNumbers; } });
178
234
  var types_2 = require("./types");
179
235
  Object.defineProperty(exports, "chainIdToChain", { enumerable: true, get: function () { return types_2.chainIdToChain; } });
180
236
  Object.defineProperty(exports, "chainToChainId", { enumerable: true, get: function () { return types_2.chainToChainId; } });
181
237
  Object.defineProperty(exports, "getChainDisplayName", { enumerable: true, get: function () { return types_2.getChainDisplayName; } });
182
- // Error classification
238
+ // Error classification and RPC utilities
183
239
  var rpc_utils_1 = require("./utils/rpc-utils");
184
240
  Object.defineProperty(exports, "isGasEstimationError", { enumerable: true, get: function () { return rpc_utils_1.isGasEstimationError; } });
241
+ Object.defineProperty(exports, "isPermanentError", { enumerable: true, get: function () { return rpc_utils_1.isPermanentError; } });
242
+ Object.defineProperty(exports, "isRetryableError", { enumerable: true, get: function () { return rpc_utils_1.isRetryableError; } });
243
+ Object.defineProperty(exports, "getErrorMessage", { enumerable: true, get: function () { return rpc_utils_1.getErrorMessage; } });
244
+ Object.defineProperty(exports, "queryWithRetry", { enumerable: true, get: function () { return rpc_utils_1.queryWithRetry; } });
185
245
  // Security utilities
186
246
  var sanitize_1 = require("./utils/sanitize");
187
247
  Object.defineProperty(exports, "truncateDescription", { enumerable: true, get: function () { return sanitize_1.truncateDescription; } });
@@ -195,14 +255,11 @@ Object.defineProperty(exports, "truncate", { enumerable: true, get: function ()
195
255
  Object.defineProperty(exports, "safeStringify", { enumerable: true, get: function () { return formatters_1.safeStringify; } });
196
256
  Object.defineProperty(exports, "formatValue", { enumerable: true, get: function () { return formatters_1.formatValue; } });
197
257
  Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return formatters_1.formatDate; } });
198
- Object.defineProperty(exports, "CHAIN_TO_CHAIN_ID", { enumerable: true, get: function () { return formatters_1.CHAIN_TO_CHAIN_ID; } });
199
258
  Object.defineProperty(exports, "formatStageData", { enumerable: true, get: function () { return formatters_1.formatStageData; } });
200
259
  Object.defineProperty(exports, "getTxHash", { enumerable: true, get: function () { return formatters_1.getTxHash; } });
201
260
  Object.defineProperty(exports, "getProposalIdDisplay", { enumerable: true, get: function () { return formatters_1.getProposalIdDisplay; } });
202
261
  Object.defineProperty(exports, "formatDecodedCalldata", { enumerable: true, get: function () { return formatters_1.formatDecodedCalldata; } });
203
262
  Object.defineProperty(exports, "filterVisibleLines", { enumerable: true, get: function () { return formatters_1.filterVisibleLines; } });
204
- Object.defineProperty(exports, "getAllFoldableKeys", { enumerable: true, get: function () { return formatters_1.getAllFoldableKeys; } });
205
- Object.defineProperty(exports, "toggleFoldKey", { enumerable: true, get: function () { return formatters_1.toggleFoldKey; } });
206
263
  // ============================================================================
207
264
  // TIER 5: Election Tracking
208
265
  // ============================================================================
@@ -211,6 +268,9 @@ var election_1 = require("./election");
211
268
  Object.defineProperty(exports, "getElectionCount", { enumerable: true, get: function () { return election_1.getElectionCount; } });
212
269
  Object.defineProperty(exports, "checkElectionStatus", { enumerable: true, get: function () { return election_1.checkElectionStatus; } });
213
270
  Object.defineProperty(exports, "hasVettingPeriod", { enumerable: true, get: function () { return election_1.hasVettingPeriod; } });
271
+ Object.defineProperty(exports, "determineElectionPhase", { enumerable: true, get: function () { return election_1.determineElectionPhase; } });
272
+ Object.defineProperty(exports, "getElectionStatus", { enumerable: true, get: function () { return election_1.getElectionStatus; } });
273
+ Object.defineProperty(exports, "getAllElectionStatuses", { enumerable: true, get: function () { return election_1.getAllElectionStatuses; } });
214
274
  // Election tracking utilities
215
275
  Object.defineProperty(exports, "getElectionIndexForProposalId", { enumerable: true, get: function () { return election_1.getElectionIndexForProposalId; } });
216
276
  // Election proposal IDs
@@ -230,6 +290,38 @@ Object.defineProperty(exports, "getMemberElectionDetails", { enumerable: true, g
230
290
  // Election details serialization
231
291
  Object.defineProperty(exports, "serializeNomineeDetails", { enumerable: true, get: function () { return election_1.serializeNomineeDetails; } });
232
292
  Object.defineProperty(exports, "serializeMemberDetails", { enumerable: true, get: function () { return election_1.serializeMemberDetails; } });
293
+ // Election write actions (prepare-only)
294
+ Object.defineProperty(exports, "encodeElectionVoteParams", { enumerable: true, get: function () { return election_1.encodeElectionVoteParams; } });
295
+ Object.defineProperty(exports, "decodeElectionVoteParams", { enumerable: true, get: function () { return election_1.decodeElectionVoteParams; } });
296
+ Object.defineProperty(exports, "getAddContenderTypedData", { enumerable: true, get: function () { return election_1.getAddContenderTypedData; } });
297
+ Object.defineProperty(exports, "prepareAddContender", { enumerable: true, get: function () { return election_1.prepareAddContender; } });
298
+ Object.defineProperty(exports, "prepareContenderRegistration", { enumerable: true, get: function () { return election_1.prepareContenderRegistration; } });
299
+ Object.defineProperty(exports, "prepareNomineeElectionVote", { enumerable: true, get: function () { return election_1.prepareNomineeElectionVote; } });
300
+ Object.defineProperty(exports, "prepareMemberElectionVote", { enumerable: true, get: function () { return election_1.prepareMemberElectionVote; } });
301
+ // ============================================================================
302
+ // TIER 5b: Governance Write Actions
303
+ // ============================================================================
304
+ var governance_1 = require("./governance");
305
+ Object.defineProperty(exports, "prepareCastVote", { enumerable: true, get: function () { return governance_1.prepareCastVote; } });
306
+ Object.defineProperty(exports, "prepareCastVoteWithReason", { enumerable: true, get: function () { return governance_1.prepareCastVoteWithReason; } });
307
+ Object.defineProperty(exports, "prepareCastVoteWithReasonAndParams", { enumerable: true, get: function () { return governance_1.prepareCastVoteWithReasonAndParams; } });
308
+ // Read helpers (wagmi useReadContract / useReadContracts compatible)
309
+ Object.defineProperty(exports, "readProposalState", { enumerable: true, get: function () { return governance_1.readProposalState; } });
310
+ Object.defineProperty(exports, "readProposalVotes", { enumerable: true, get: function () { return governance_1.readProposalVotes; } });
311
+ Object.defineProperty(exports, "readProposalSnapshot", { enumerable: true, get: function () { return governance_1.readProposalSnapshot; } });
312
+ Object.defineProperty(exports, "readProposalDeadline", { enumerable: true, get: function () { return governance_1.readProposalDeadline; } });
313
+ Object.defineProperty(exports, "readQuorum", { enumerable: true, get: function () { return governance_1.readQuorum; } });
314
+ Object.defineProperty(exports, "readVotingPower", { enumerable: true, get: function () { return governance_1.readVotingPower; } });
315
+ Object.defineProperty(exports, "readGetVotes", { enumerable: true, get: function () { return governance_1.readGetVotes; } });
316
+ Object.defineProperty(exports, "readHasVoted", { enumerable: true, get: function () { return governance_1.readHasVoted; } });
317
+ Object.defineProperty(exports, "readCurrentVotingPower", { enumerable: true, get: function () { return governance_1.readCurrentVotingPower; } });
318
+ Object.defineProperty(exports, "readDelegate", { enumerable: true, get: function () { return governance_1.readDelegate; } });
319
+ Object.defineProperty(exports, "readNomineeElectionState", { enumerable: true, get: function () { return governance_1.readNomineeElectionState; } });
320
+ Object.defineProperty(exports, "readMemberElectionState", { enumerable: true, get: function () { return governance_1.readMemberElectionState; } });
321
+ Object.defineProperty(exports, "readElectionCount", { enumerable: true, get: function () { return governance_1.readElectionCount; } });
322
+ Object.defineProperty(exports, "readVotesUsed", { enumerable: true, get: function () { return governance_1.readVotesUsed; } });
323
+ Object.defineProperty(exports, "readIsContender", { enumerable: true, get: function () { return governance_1.readIsContender; } });
324
+ Object.defineProperty(exports, "readGovernorName", { enumerable: true, get: function () { return governance_1.readGovernorName; } });
233
325
  // Checkpoint deduplication helpers
234
326
  var deduplication_1 = require("./deduplication");
235
327
  Object.defineProperty(exports, "isSecurityCouncilTimelockOp", { enumerable: true, get: function () { return deduplication_1.isSecurityCouncilTimelockOp; } });
@@ -271,6 +363,10 @@ Object.defineProperty(exports, "prepareRetryableSimulation", { enumerable: true,
271
363
  Object.defineProperty(exports, "prepareTimelockSimulation", { enumerable: true, get: function () { return simulation_1.prepareTimelockSimulation; } });
272
364
  Object.defineProperty(exports, "prepareCallSimulation", { enumerable: true, get: function () { return simulation_1.prepareCallSimulation; } });
273
365
  Object.defineProperty(exports, "extractAllSimulationsFromDecoded", { enumerable: true, get: function () { return simulation_1.extractAllSimulationsFromDecoded; } });
366
+ Object.defineProperty(exports, "extractSimulationsByActionIndex", { enumerable: true, get: function () { return simulation_1.extractSimulationsByActionIndex; } });
367
+ // Tenderly payload builders (dependency-free)
368
+ Object.defineProperty(exports, "buildTenderlySimRequest", { enumerable: true, get: function () { return simulation_1.buildTenderlySimRequest; } });
369
+ Object.defineProperty(exports, "buildTenderlyEncodeStatesRequest", { enumerable: true, get: function () { return simulation_1.buildTenderlyEncodeStatesRequest; } });
274
370
  // ============================================================================
275
371
  // TIER 8: Cache Implementations
276
372
  // ============================================================================
@@ -279,6 +375,15 @@ Object.defineProperty(exports, "FileCache", { enumerable: true, get: function ()
279
375
  Object.defineProperty(exports, "LocalStorageCache", { enumerable: true, get: function () { return cache_1.LocalStorageCache; } });
280
376
  Object.defineProperty(exports, "MemoryCache", { enumerable: true, get: function () { return cache_1.MemoryCache; } });
281
377
  Object.defineProperty(exports, "getBundledCachePath", { enumerable: true, get: function () { return cache_1.getBundledCachePath; } });
378
+ // Bundled cache extraction utilities
379
+ var bundled_cache_1 = require("./tracker/bundled-cache");
380
+ Object.defineProperty(exports, "extractProposals", { enumerable: true, get: function () { return bundled_cache_1.extractProposals; } });
381
+ Object.defineProperty(exports, "extractTimelockOps", { enumerable: true, get: function () { return bundled_cache_1.extractTimelockOps; } });
382
+ Object.defineProperty(exports, "extractElections", { enumerable: true, get: function () { return bundled_cache_1.extractElections; } });
383
+ Object.defineProperty(exports, "extractOperationIds", { enumerable: true, get: function () { return bundled_cache_1.extractOperationIds; } });
384
+ Object.defineProperty(exports, "extractTimelockLinkFromStages", { enumerable: true, get: function () { return bundled_cache_1.extractTimelockLinkFromStages; } });
385
+ Object.defineProperty(exports, "getWatermarksFromCache", { enumerable: true, get: function () { return bundled_cache_1.getWatermarksFromCache; } });
386
+ Object.defineProperty(exports, "getVotingDataFromStages", { enumerable: true, get: function () { return bundled_cache_1.getVotingDataFromStages; } });
282
387
  // ============================================================================
283
388
  // TIER 9: Internal Utilities (for testing)
284
389
  // ============================================================================
@@ -303,9 +408,11 @@ Object.defineProperty(exports, "isTimelockOpKey", { enumerable: true, get: funct
303
408
  Object.defineProperty(exports, "isDiscoveryKey", { enumerable: true, get: function () { return checkpoint_helpers_1.isDiscoveryKey; } });
304
409
  Object.defineProperty(exports, "parseElectionKey", { enumerable: true, get: function () { return checkpoint_helpers_1.parseElectionKey; } });
305
410
  Object.defineProperty(exports, "parseTimelockOpKey", { enumerable: true, get: function () { return checkpoint_helpers_1.parseTimelockOpKey; } });
411
+ Object.defineProperty(exports, "trimFromStage", { enumerable: true, get: function () { return checkpoint_helpers_1.trimFromStage; } });
306
412
  Object.defineProperty(exports, "DEFAULT_ERROR_THRESHOLD", { enumerable: true, get: function () { return checkpoint_helpers_1.DEFAULT_ERROR_THRESHOLD; } });
307
413
  Object.defineProperty(exports, "ELECTION_KEY_PREFIX", { enumerable: true, get: function () { return checkpoint_helpers_1.ELECTION_KEY_PREFIX; } });
308
414
  Object.defineProperty(exports, "TX_KEY_PREFIX", { enumerable: true, get: function () { return checkpoint_helpers_1.TX_KEY_PREFIX; } });
309
415
  var discovery_1 = require("./tracker/discovery");
310
416
  Object.defineProperty(exports, "WATERMARKS_KEY", { enumerable: true, get: function () { return discovery_1.WATERMARKS_KEY; } });
417
+ Object.defineProperty(exports, "loadWatermarks", { enumerable: true, get: function () { return discovery_1.loadWatermarks; } });
311
418
  //# sourceMappingURL=index.js.map