@gzeoneth/gov-tracker 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -11
- package/dist/abis-json.d.ts +2315 -0
- package/dist/abis-json.d.ts.map +1 -0
- package/dist/abis-json.js +3207 -0
- package/dist/abis-json.js.map +1 -0
- package/dist/abis.d.ts +12 -7
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +32 -1
- package/dist/abis.js.map +1 -1
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +33 -28
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +19 -25
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/retryable-ticket.d.ts +2 -2
- package/dist/calldata/retryable-ticket.d.ts.map +1 -1
- package/dist/calldata/retryable-ticket.js +17 -12
- package/dist/calldata/retryable-ticket.js.map +1 -1
- package/dist/calldata/signature-lookup.js +5 -4
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.js +112 -20
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +4 -2
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +34 -18
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/election-check.d.ts.map +1 -1
- package/dist/cli/lib/election-check.js +2 -1
- package/dist/cli/lib/election-check.js.map +1 -1
- package/dist/cli/lib/json-state.js +1 -1
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/tui/components/StageProgress.js +1 -1
- package/dist/cli/tui/components/StageProgress.js.map +1 -1
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +15 -20
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -1
- package/dist/cli/tui/components/VotingStats.js +2 -1
- package/dist/cli/tui/components/VotingStats.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +2 -1
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.js +3 -2
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +2 -3
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +26 -36
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.js +2 -1
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
- package/dist/cli/tui/utils/index.d.ts +7 -7
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +18 -13
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.d.ts +5 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.js +16 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -1
- package/dist/cli/tui/utils/navigation.d.ts +1 -0
- package/dist/cli/tui/utils/navigation.d.ts.map +1 -1
- package/dist/cli/tui/utils/navigation.js +9 -5
- package/dist/cli/tui/utils/navigation.js.map +1 -1
- package/dist/cli/tui/utils/proposal-detail-helpers.js +6 -6
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -1
- package/dist/cli/tui/utils/stage-status.d.ts +4 -0
- package/dist/cli/tui/utils/stage-status.d.ts.map +1 -1
- package/dist/cli/tui/utils/stage-status.js +47 -1
- package/dist/cli/tui/utils/stage-status.js.map +1 -1
- package/dist/cli/tui/utils/time.d.ts +4 -4
- package/dist/cli/tui/utils/time.d.ts.map +1 -1
- package/dist/cli/tui/utils/time.js +13 -11
- package/dist/cli/tui/utils/time.js.map +1 -1
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +3 -2
- package/dist/cli/tui/views/CalldataView.js.map +1 -1
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
- package/dist/cli/tui/views/DescriptionView.js +4 -2
- package/dist/cli/tui/views/DescriptionView.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +4 -9
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/constants.d.ts +54 -23
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +78 -21
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +393 -20
- package/dist/data/delegate-cache.json +118014 -0
- package/dist/deduplication.d.ts.map +1 -1
- package/dist/deduplication.js +34 -54
- package/dist/deduplication.js.map +1 -1
- package/dist/delegates/cache.d.ts +44 -0
- package/dist/delegates/cache.d.ts.map +1 -0
- package/dist/delegates/cache.js +202 -0
- package/dist/delegates/cache.js.map +1 -0
- package/dist/delegates/index.d.ts +13 -0
- package/dist/delegates/index.d.ts.map +1 -0
- package/dist/delegates/index.js +32 -0
- package/dist/delegates/index.js.map +1 -0
- package/dist/delegates/indexer.d.ts +32 -0
- package/dist/delegates/indexer.d.ts.map +1 -0
- package/dist/delegates/indexer.js +191 -0
- package/dist/delegates/indexer.js.map +1 -0
- package/dist/delegates/queries.d.ts +30 -0
- package/dist/delegates/queries.d.ts.map +1 -0
- package/dist/delegates/queries.js +79 -0
- package/dist/delegates/queries.js.map +1 -0
- package/dist/discovery/governor-discovery.d.ts +21 -1
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +47 -13
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -30
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts.map +1 -1
- package/dist/election/contracts.js +4 -1
- package/dist/election/contracts.js.map +1 -1
- package/dist/election/details.d.ts.map +1 -1
- package/dist/election/details.js +7 -3
- package/dist/election/details.js.map +1 -1
- package/dist/election/index.d.ts +3 -1
- package/dist/election/index.d.ts.map +1 -1
- package/dist/election/index.js +12 -1
- package/dist/election/index.js.map +1 -1
- package/dist/election/params.d.ts.map +1 -1
- package/dist/election/params.js +14 -28
- package/dist/election/params.js.map +1 -1
- package/dist/election/participants.d.ts.map +1 -1
- package/dist/election/participants.js +21 -26
- package/dist/election/participants.js.map +1 -1
- package/dist/election/proposal-ids.js +19 -22
- package/dist/election/proposal-ids.js.map +1 -1
- package/dist/election/status.d.ts +28 -1
- package/dist/election/status.d.ts.map +1 -1
- package/dist/election/status.js +116 -3
- package/dist/election/status.js.map +1 -1
- package/dist/election/write.d.ts +132 -0
- package/dist/election/write.d.ts.map +1 -0
- package/dist/election/write.js +184 -0
- package/dist/election/write.js.map +1 -0
- package/dist/governance/index.d.ts +5 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +28 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/read.d.ts +50 -0
- package/dist/governance/read.d.ts.map +1 -0
- package/dist/governance/read.js +194 -0
- package/dist/governance/read.js.map +1 -0
- package/dist/governance/write.d.ts +54 -0
- package/dist/governance/write.d.ts.map +1 -0
- package/dist/governance/write.js +132 -0
- package/dist/governance/write.js.map +1 -0
- package/dist/index.d.ts +40 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +149 -15
- package/dist/index.js.map +1 -1
- package/dist/simulation/index.d.ts +4 -1
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +5 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +33 -2
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +68 -24
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/simulation/tenderly-payloads.d.ts +107 -0
- package/dist/simulation/tenderly-payloads.d.ts.map +1 -0
- package/dist/simulation/tenderly-payloads.js +103 -0
- package/dist/simulation/tenderly-payloads.js.map +1 -0
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +43 -63
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +10 -9
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +43 -3
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +170 -53
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +56 -1
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +146 -30
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/bundled-cache.d.ts +136 -0
- package/dist/tracker/bundled-cache.d.ts.map +1 -0
- package/dist/tracker/bundled-cache.js +207 -0
- package/dist/tracker/bundled-cache.js.map +1 -0
- package/dist/tracker/checkpoint-helpers.d.ts +20 -1
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
- package/dist/tracker/checkpoint-helpers.js +41 -7
- package/dist/tracker/checkpoint-helpers.js.map +1 -1
- package/dist/tracker/discovery.d.ts +3 -0
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +59 -34
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts +3 -10
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +18 -32
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +1 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +28 -36
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +3 -2
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +5 -4
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +33 -11
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +76 -43
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +39 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/delegates.d.ts +55 -0
- package/dist/types/delegates.d.ts.map +1 -0
- package/dist/types/delegates.js +9 -0
- package/dist/types/delegates.js.map +1 -0
- package/dist/types/election.d.ts +23 -0
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/simulation.d.ts +2 -2
- package/dist/types/simulation.d.ts.map +1 -1
- package/dist/types/tracking.d.ts +2 -2
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/chain.d.ts +5 -1
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/chain.js +7 -0
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/formatters.d.ts +2 -6
- package/dist/utils/formatters.d.ts.map +1 -1
- package/dist/utils/formatters.js +9 -12
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/log-filters.js +1 -1
- package/dist/utils/log-filters.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +2 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/multicall.d.ts +0 -1
- package/dist/utils/multicall.d.ts.map +1 -1
- package/dist/utils/rpc-utils.d.ts +5 -0
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +9 -1
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/stage-metadata.d.ts +19 -0
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +44 -0
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +3 -10
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +9 -22
- package/dist/utils/timing.js.map +1 -1
- package/package.json +7 -3
- package/dist/cli/tui/utils/calldata-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/calldata-formatter.js +0 -14
- package/dist/cli/tui/utils/calldata-formatter.js.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.js +0 -13
- package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
- package/dist/cli/tui/utils/text.d.ts +0 -7
- package/dist/cli/tui/utils/text.d.ts.map +0 -1
- package/dist/cli/tui/utils/text.js +0 -12
- package/dist/cli/tui/utils/text.js.map +0 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Delegate cache indexer
|
|
4
|
+
*
|
|
5
|
+
* Scans DelegateVotesChanged events from the ARB token contract
|
|
6
|
+
* and produces a DelegateCache snapshot.
|
|
7
|
+
*
|
|
8
|
+
* Uses adaptive chunking to handle event-dense periods (e.g., ARB airdrop)
|
|
9
|
+
* where even moderate block ranges exceed RPC log limits.
|
|
10
|
+
*
|
|
11
|
+
* Processes events into a Map per-chunk to avoid OOM on full genesis builds
|
|
12
|
+
* (~millions of events over 370M+ blocks).
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.buildDelegateCache = buildDelegateCache;
|
|
16
|
+
const ethers_1 = require("ethers");
|
|
17
|
+
const rpc_utils_1 = require("../utils/rpc-utils");
|
|
18
|
+
const chain_1 = require("../utils/chain");
|
|
19
|
+
const logger_1 = require("../utils/logger");
|
|
20
|
+
const abis_1 = require("../abis");
|
|
21
|
+
const constants_1 = require("../constants");
|
|
22
|
+
const cache_1 = require("./cache");
|
|
23
|
+
const log = logger_1.loggers.delegates;
|
|
24
|
+
const DEFAULT_CHUNK_SIZE = 1000000;
|
|
25
|
+
const MIN_CHUNK_SIZE = 1000;
|
|
26
|
+
const DELAY_BETWEEN_CHUNKS = 100;
|
|
27
|
+
const SUCCESSES_BEFORE_GROW = 3;
|
|
28
|
+
function isLogLimitError(error) {
|
|
29
|
+
const msg = (0, rpc_utils_1.getErrorMessage)(error).toLowerCase();
|
|
30
|
+
return (msg.includes("exceeds limit") ||
|
|
31
|
+
msg.includes("too many") ||
|
|
32
|
+
msg.includes("response size exceeded"));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Process a batch of DelegateVotesChanged logs into the delegate map.
|
|
36
|
+
* Later events overwrite earlier ones (Map dedup). Zero-balance removes entry.
|
|
37
|
+
*/
|
|
38
|
+
function processLogs(logs, delegateMap) {
|
|
39
|
+
for (const eventLog of logs) {
|
|
40
|
+
const parsed = abis_1.erc20VotesInterface.parseLog(eventLog);
|
|
41
|
+
const delegate = parsed.args[0];
|
|
42
|
+
const newBalance = parsed.args[2].toString();
|
|
43
|
+
const key = delegate.toLowerCase();
|
|
44
|
+
if (ethers_1.ethers.BigNumber.from(newBalance).isZero()) {
|
|
45
|
+
delegateMap.delete(key);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
delegateMap.set(key, {
|
|
49
|
+
address: delegate.toLowerCase(),
|
|
50
|
+
votingPower: newBalance,
|
|
51
|
+
lastChangeBlock: eventLog.blockNumber,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Scan logs with adaptive chunk sizing, processing each chunk into the map
|
|
58
|
+
* immediately to avoid accumulating millions of raw logs in memory.
|
|
59
|
+
*/
|
|
60
|
+
async function scanAndProcessAdaptive(provider, address, topic, fromBlock, toBlock, delegateMap, onProgress) {
|
|
61
|
+
let chunkSize = DEFAULT_CHUNK_SIZE;
|
|
62
|
+
let consecutiveSuccesses = 0;
|
|
63
|
+
let cursor = fromBlock;
|
|
64
|
+
let totalEvents = 0;
|
|
65
|
+
const totalBlocks = toBlock - fromBlock + 1;
|
|
66
|
+
while (cursor <= toBlock) {
|
|
67
|
+
const end = Math.min(cursor + chunkSize - 1, toBlock);
|
|
68
|
+
try {
|
|
69
|
+
const logs = await (0, rpc_utils_1.queryWithRetry)(() => provider.getLogs({
|
|
70
|
+
address,
|
|
71
|
+
topics: [topic],
|
|
72
|
+
fromBlock: cursor,
|
|
73
|
+
toBlock: end,
|
|
74
|
+
}));
|
|
75
|
+
processLogs(logs, delegateMap);
|
|
76
|
+
totalEvents += logs.length;
|
|
77
|
+
log(" chunk %d-%d: %d logs (chunkSize=%d)", cursor, end, logs.length, chunkSize);
|
|
78
|
+
cursor = end + 1;
|
|
79
|
+
consecutiveSuccesses++;
|
|
80
|
+
if (consecutiveSuccesses >= SUCCESSES_BEFORE_GROW && chunkSize < DEFAULT_CHUNK_SIZE) {
|
|
81
|
+
chunkSize = Math.min(chunkSize * 2, DEFAULT_CHUNK_SIZE);
|
|
82
|
+
consecutiveSuccesses = 0;
|
|
83
|
+
log(" growing chunk size to %d", chunkSize);
|
|
84
|
+
}
|
|
85
|
+
if (onProgress) {
|
|
86
|
+
const pct = Math.min(99, Math.round(((cursor - fromBlock) / totalBlocks) * 100));
|
|
87
|
+
onProgress(pct, cursor);
|
|
88
|
+
}
|
|
89
|
+
if (cursor <= toBlock) {
|
|
90
|
+
await (0, rpc_utils_1.delay)(DELAY_BETWEEN_CHUNKS);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
if (isLogLimitError(err) && chunkSize > MIN_CHUNK_SIZE) {
|
|
95
|
+
chunkSize = Math.max(Math.floor(chunkSize / 2), MIN_CHUNK_SIZE);
|
|
96
|
+
consecutiveSuccesses = 0;
|
|
97
|
+
log(" log limit exceeded, reducing chunk size to %d", chunkSize);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
throw err;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return totalEvents;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Build or incrementally update a delegate voting power cache.
|
|
107
|
+
*
|
|
108
|
+
* Scans DelegateVotesChanged events and aggregates the latest
|
|
109
|
+
* voting power per delegate address.
|
|
110
|
+
*/
|
|
111
|
+
async function buildDelegateCache(provider, options = {}) {
|
|
112
|
+
const { existingCache, force = false, minVotingPower = constants_1.DEFAULT_MIN_VOTING_POWER, tokenAddress = constants_1.ADDRESSES.ARB_TOKEN, onProgress, } = options;
|
|
113
|
+
const currentBlock = await (0, rpc_utils_1.queryWithRetry)(() => provider.getBlockNumber());
|
|
114
|
+
let startBlock;
|
|
115
|
+
if (options.startBlock !== undefined) {
|
|
116
|
+
startBlock = options.startBlock;
|
|
117
|
+
}
|
|
118
|
+
else if (!force && existingCache) {
|
|
119
|
+
startBlock = existingCache.snapshotBlock + 1;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
startBlock = constants_1.DELEGATE_START_BLOCK;
|
|
123
|
+
}
|
|
124
|
+
if (startBlock > currentBlock) {
|
|
125
|
+
log("cache is already up to date (start=%d > current=%d)", startBlock, currentBlock);
|
|
126
|
+
if (existingCache)
|
|
127
|
+
return existingCache;
|
|
128
|
+
return emptyCache(startBlock, currentBlock);
|
|
129
|
+
}
|
|
130
|
+
log("scanning DelegateVotesChanged from block %d to %d (%d blocks)", startBlock, currentBlock, currentBlock - startBlock + 1);
|
|
131
|
+
const delegateMap = new Map();
|
|
132
|
+
// Seed from existing cache if incremental (not when startBlock is explicitly overridden)
|
|
133
|
+
const isIncremental = !force && existingCache && options.startBlock === undefined;
|
|
134
|
+
if (isIncremental) {
|
|
135
|
+
for (const d of existingCache.delegates) {
|
|
136
|
+
delegateMap.set(d.address.toLowerCase(), { ...d });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const totalEvents = await scanAndProcessAdaptive(provider, tokenAddress, constants_1.EVENT_TOPICS.DELEGATE_VOTES_CHANGED, startBlock, currentBlock, delegateMap, onProgress);
|
|
140
|
+
log("processed %d events, %d unique delegates in map", totalEvents, delegateMap.size);
|
|
141
|
+
// Filter excluded addresses
|
|
142
|
+
for (const addr of constants_1.EXCLUDED_DELEGATE_ADDRESSES) {
|
|
143
|
+
delegateMap.delete(addr.toLowerCase());
|
|
144
|
+
}
|
|
145
|
+
// Filter by minimum voting power
|
|
146
|
+
const minPowerBn = ethers_1.ethers.BigNumber.from(minVotingPower);
|
|
147
|
+
for (const [key, info] of delegateMap) {
|
|
148
|
+
if (ethers_1.ethers.BigNumber.from(info.votingPower).lt(minPowerBn)) {
|
|
149
|
+
delegateMap.delete(key);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Sort descending by voting power
|
|
153
|
+
const delegates = Array.from(delegateMap.values()).sort((a, b) => (0, chain_1.compareBigNumbers)(ethers_1.ethers.BigNumber.from(b.votingPower), ethers_1.ethers.BigNumber.from(a.votingPower)));
|
|
154
|
+
// Fetch totalSupply
|
|
155
|
+
const tokenContract = new ethers_1.ethers.Contract(tokenAddress, abis_1.erc20VotesInterface, provider);
|
|
156
|
+
const totalSupply = await (0, rpc_utils_1.queryWithRetry)(() => tokenContract.totalSupply());
|
|
157
|
+
// Sum voting power
|
|
158
|
+
let totalVotingPower = ethers_1.ethers.BigNumber.from(0);
|
|
159
|
+
for (const d of delegates) {
|
|
160
|
+
totalVotingPower = totalVotingPower.add(d.votingPower);
|
|
161
|
+
}
|
|
162
|
+
if (onProgress) {
|
|
163
|
+
onProgress(100, currentBlock);
|
|
164
|
+
}
|
|
165
|
+
log("built cache: %d delegates at block %d", delegates.length, currentBlock);
|
|
166
|
+
return {
|
|
167
|
+
version: cache_1.DELEGATE_CACHE_VERSION,
|
|
168
|
+
generatedAt: new Date().toISOString(),
|
|
169
|
+
snapshotBlock: currentBlock,
|
|
170
|
+
startBlock: force ? startBlock : (existingCache?.startBlock ?? startBlock),
|
|
171
|
+
chainId: constants_1.CHAIN_IDS.ARB_ONE,
|
|
172
|
+
totalVotingPower: totalVotingPower.toString(),
|
|
173
|
+
totalSupply: totalSupply.toString(),
|
|
174
|
+
delegates,
|
|
175
|
+
stats: { totalDelegates: delegates.length },
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function emptyCache(startBlock, snapshotBlock) {
|
|
179
|
+
return {
|
|
180
|
+
version: cache_1.DELEGATE_CACHE_VERSION,
|
|
181
|
+
generatedAt: new Date().toISOString(),
|
|
182
|
+
snapshotBlock,
|
|
183
|
+
startBlock,
|
|
184
|
+
chainId: constants_1.CHAIN_IDS.ARB_ONE,
|
|
185
|
+
totalVotingPower: "0",
|
|
186
|
+
totalSupply: "0",
|
|
187
|
+
delegates: [],
|
|
188
|
+
stats: { totalDelegates: 0 },
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/delegates/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live delegate queries (requires provider, makes RPC calls)
|
|
3
|
+
*
|
|
4
|
+
* Uses the existing multicall utility for batch efficiency.
|
|
5
|
+
*/
|
|
6
|
+
import { ethers } from "ethers";
|
|
7
|
+
import type { DelegateCache, DelegateNotVoted } from "../types/delegates";
|
|
8
|
+
export interface QueryDelegatesNotVotedOptions {
|
|
9
|
+
cache?: DelegateCache;
|
|
10
|
+
/** Max non-voters to return (default: 5) */
|
|
11
|
+
limit?: number;
|
|
12
|
+
/** Max delegates to check from top of cache (default: 100) */
|
|
13
|
+
maxDelegatesToCheck?: number;
|
|
14
|
+
/** Calls per multicall batch (default: 20) */
|
|
15
|
+
batchSize?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Batch-check which of the top delegates haven't voted on a proposal.
|
|
19
|
+
*
|
|
20
|
+
* Loads top delegates from cache, batches hasVoted() multicalls,
|
|
21
|
+
* returns non-voters with rank info. Stops early once limit is reached.
|
|
22
|
+
*/
|
|
23
|
+
export declare function queryDelegatesNotVoted(provider: ethers.providers.Provider, proposalId: string, governorAddress: `0x${string}` | string, options?: QueryDelegatesNotVotedOptions): Promise<DelegateNotVoted[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Batch-fetch current voting power for a list of addresses.
|
|
26
|
+
*
|
|
27
|
+
* Uses multicall for efficiency. Returns Map<lowercase_address, votingPower_wei>.
|
|
28
|
+
*/
|
|
29
|
+
export declare function queryDelegateVotingPowers(provider: ethers.providers.Provider, addresses: (`0x${string}` | string)[], tokenAddress?: `0x${string}` | string): Promise<Map<string, string>>;
|
|
30
|
+
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/delegates/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAa1E,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,EACvC,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8C7B;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,SAAS,EAAE,CAAC,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,EACrC,YAAY,GAAE,KAAK,MAAM,EAAE,GAAG,MAA4B,GACzD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsB9B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Live delegate queries (requires provider, makes RPC calls)
|
|
4
|
+
*
|
|
5
|
+
* Uses the existing multicall utility for batch efficiency.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.queryDelegatesNotVoted = queryDelegatesNotVoted;
|
|
9
|
+
exports.queryDelegateVotingPowers = queryDelegateVotingPowers;
|
|
10
|
+
const multicall_1 = require("../utils/multicall");
|
|
11
|
+
const abis_1 = require("../abis");
|
|
12
|
+
const constants_1 = require("../constants");
|
|
13
|
+
const logger_1 = require("../utils/logger");
|
|
14
|
+
const cache_1 = require("./cache");
|
|
15
|
+
const log = logger_1.loggers.delegates;
|
|
16
|
+
const DEFAULT_LIMIT = 5;
|
|
17
|
+
const DEFAULT_MAX_DELEGATES_TO_CHECK = 100;
|
|
18
|
+
const DEFAULT_BATCH_SIZE = 20;
|
|
19
|
+
/**
|
|
20
|
+
* Batch-check which of the top delegates haven't voted on a proposal.
|
|
21
|
+
*
|
|
22
|
+
* Loads top delegates from cache, batches hasVoted() multicalls,
|
|
23
|
+
* returns non-voters with rank info. Stops early once limit is reached.
|
|
24
|
+
*/
|
|
25
|
+
async function queryDelegatesNotVoted(provider, proposalId, governorAddress, options = {}) {
|
|
26
|
+
const { limit = DEFAULT_LIMIT, maxDelegatesToCheck = DEFAULT_MAX_DELEGATES_TO_CHECK, batchSize = DEFAULT_BATCH_SIZE, } = options;
|
|
27
|
+
if (batchSize < 1 || maxDelegatesToCheck < 1 || limit < 1) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
const cache = options.cache ?? (0, cache_1.loadBundledDelegateCache)();
|
|
31
|
+
const topDelegates = (0, cache_1.getTopDelegates)(cache, maxDelegatesToCheck);
|
|
32
|
+
if (topDelegates.length === 0)
|
|
33
|
+
return [];
|
|
34
|
+
log("checking hasVoted for top %d delegates on proposal %s", topDelegates.length, proposalId);
|
|
35
|
+
const result = [];
|
|
36
|
+
for (let i = 0; i < topDelegates.length && result.length < limit; i += batchSize) {
|
|
37
|
+
const batch = topDelegates.slice(i, Math.min(i + batchSize, topDelegates.length));
|
|
38
|
+
const calls = batch.map((d) => (0, multicall_1.buildCallInput)(governorAddress, abis_1.governorInterface, "hasVoted", [
|
|
39
|
+
proposalId,
|
|
40
|
+
d.address,
|
|
41
|
+
]));
|
|
42
|
+
const results = await (0, multicall_1.multicall)(provider, calls, false);
|
|
43
|
+
for (let j = 0; j < batch.length && result.length < limit; j++) {
|
|
44
|
+
const hasVoted = results[j];
|
|
45
|
+
if (hasVoted === false) {
|
|
46
|
+
result.push({
|
|
47
|
+
address: batch[j].address,
|
|
48
|
+
votingPower: batch[j].votingPower,
|
|
49
|
+
rank: i + j + 1,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
log("found %d non-voters", result.length);
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Batch-fetch current voting power for a list of addresses.
|
|
59
|
+
*
|
|
60
|
+
* Uses multicall for efficiency. Returns Map<lowercase_address, votingPower_wei>.
|
|
61
|
+
*/
|
|
62
|
+
async function queryDelegateVotingPowers(provider, addresses, tokenAddress = constants_1.ADDRESSES.ARB_TOKEN) {
|
|
63
|
+
if (addresses.length === 0)
|
|
64
|
+
return new Map();
|
|
65
|
+
log("fetching voting power for %d addresses", addresses.length);
|
|
66
|
+
const calls = addresses.map((addr) => (0, multicall_1.buildCallInput)(tokenAddress, abis_1.erc20VotesInterface, "getVotes", [
|
|
67
|
+
addr,
|
|
68
|
+
]));
|
|
69
|
+
const results = await (0, multicall_1.multicall)(provider, calls, false);
|
|
70
|
+
const powerMap = new Map();
|
|
71
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
72
|
+
const power = results[i];
|
|
73
|
+
if (power !== undefined) {
|
|
74
|
+
powerMap.set(addresses[i].toLowerCase(), power.toString());
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return powerMap;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/delegates/queries.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgCH,wDAmDC;AAOD,8DA0BC;AAhHD,kDAA+D;AAC/D,kCAAiE;AACjE,4CAAyC;AACzC,4CAA0C;AAC1C,mCAAoE;AAEpE,MAAM,GAAG,GAAG,gBAAO,CAAC,SAAS,CAAC;AAE9B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAC3C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAY9B;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAmC,EACnC,UAAkB,EAClB,eAAuC,EACvC,UAAyC,EAAE;IAE3C,MAAM,EACJ,KAAK,GAAG,aAAa,EACrB,mBAAmB,GAAG,8BAA8B,EACpD,SAAS,GAAG,kBAAkB,GAC/B,GAAG,OAAO,CAAC;IAEZ,IAAI,SAAS,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,gCAAwB,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,GAAG,CAAC,uDAAuD,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE9F,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACjF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5B,IAAA,0BAAc,EAAU,eAAyB,EAAE,wBAAiB,EAAE,UAAU,EAAE;YAChF,UAAU;YACV,CAAC,CAAC,OAAO;SACV,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAS,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO;oBACzB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW;oBACjC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAmC,EACnC,SAAqC,EACrC,eAAuC,qBAAS,CAAC,SAAS;IAE1D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE7C,GAAG,CAAC,wCAAwC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,IAAA,0BAAc,EAAmB,YAAsB,EAAE,0BAAmB,EAAE,UAAU,EAAE;QACxF,IAAI;KACL,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAS,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -44,7 +44,15 @@ export declare function getTimelockAddress(governorAddress: string, provider: et
|
|
|
44
44
|
*/
|
|
45
45
|
export declare function getProposalState(governorAddress: string, proposalId: string, provider: ethers.providers.Provider): Promise<ProposalState>;
|
|
46
46
|
/**
|
|
47
|
-
* Parse ProposalCreated event
|
|
47
|
+
* Parse raw ProposalCreated event args from a log entry.
|
|
48
|
+
*
|
|
49
|
+
* Returns the unmodified event data (no description truncation).
|
|
50
|
+
* Used internally by parseProposalCreatedEvent and election/params
|
|
51
|
+
* to avoid duplicating the ethers parseLog + args[3] workaround.
|
|
52
|
+
*/
|
|
53
|
+
export declare function parseProposalCreatedRaw(log: ethers.providers.Log): ProposalData | null;
|
|
54
|
+
/**
|
|
55
|
+
* Parse ProposalCreated event data (with description truncation for display safety)
|
|
48
56
|
*/
|
|
49
57
|
export declare function parseProposalCreatedEvent(log: ethers.providers.Log): ProposalData | null;
|
|
50
58
|
/**
|
|
@@ -81,4 +89,16 @@ export declare function discoverProposals(governorAddress: string, fromBlock: nu
|
|
|
81
89
|
}): Promise<DiscoveredProposal[]>;
|
|
82
90
|
/** Discover a proposal by transaction hash */
|
|
83
91
|
export declare function discoverProposalByTxHash(txHash: string, provider: ethers.providers.Provider): Promise<DiscoveredProposal | null>;
|
|
92
|
+
/**
|
|
93
|
+
* Query all ProposalCreated events from a governor in a block range.
|
|
94
|
+
*
|
|
95
|
+
* Simpler alternative to the full tracking pipeline for consumers
|
|
96
|
+
* that just need raw proposal data.
|
|
97
|
+
*
|
|
98
|
+
* @param provider - L2 provider
|
|
99
|
+
* @param governorAddress - Governor contract address
|
|
100
|
+
* @param fromBlock - Start block (default: governance deployment block)
|
|
101
|
+
* @param toBlock - End block (default: latest)
|
|
102
|
+
*/
|
|
103
|
+
export declare function queryProposalCreatedEvents(provider: ethers.providers.Provider, governorAddress: string, fromBlock?: number, toBlock?: number): Promise<ProposalData[]>;
|
|
84
104
|
//# sourceMappingURL=governor-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EAEX,MAAM,UAAU,CAAC;AAwClB,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,CAExE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEtE;
|
|
1
|
+
{"version":3,"file":"governor-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ exports.isElectionProposal = isElectionProposal;
|
|
|
11
11
|
exports.detectGovernorCapabilities = detectGovernorCapabilities;
|
|
12
12
|
exports.getTimelockAddress = getTimelockAddress;
|
|
13
13
|
exports.getProposalState = getProposalState;
|
|
14
|
+
exports.parseProposalCreatedRaw = parseProposalCreatedRaw;
|
|
14
15
|
exports.parseProposalCreatedEvent = parseProposalCreatedEvent;
|
|
15
16
|
exports.findProposalCreatedEvent = findProposalCreatedEvent;
|
|
16
17
|
exports.findProposalByTxHash = findProposalByTxHash;
|
|
@@ -18,6 +19,7 @@ exports.getVotingData = getVotingData;
|
|
|
18
19
|
exports.findProposalQueuedEvent = findProposalQueuedEvent;
|
|
19
20
|
exports.discoverProposals = discoverProposals;
|
|
20
21
|
exports.discoverProposalByTxHash = discoverProposalByTxHash;
|
|
22
|
+
exports.queryProposalCreatedEvents = queryProposalCreatedEvents;
|
|
21
23
|
const ethers_1 = require("ethers");
|
|
22
24
|
const constants_1 = require("../constants");
|
|
23
25
|
const log_search_1 = require("../utils/log-search");
|
|
@@ -58,13 +60,11 @@ function detectProposalType(governorAddress) {
|
|
|
58
60
|
function isElectionProposal(proposalType) {
|
|
59
61
|
return proposalType === "ELECTION_NOMINEE" || proposalType === "ELECTION_MEMBER";
|
|
60
62
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* Governors with timelock route proposals through L2 timelock before execution.
|
|
65
|
-
*/
|
|
63
|
+
function getGovernorContract(address, provider) {
|
|
64
|
+
return new ethers_1.ethers.Contract(address, abis_1.GOVERNOR_ABI, provider);
|
|
65
|
+
}
|
|
66
66
|
async function hasTimelock(governorAddress, provider) {
|
|
67
|
-
const governor =
|
|
67
|
+
const governor = getGovernorContract(governorAddress, provider);
|
|
68
68
|
try {
|
|
69
69
|
await (0, rpc_utils_1.queryWithRetry)(() => governor.timelock());
|
|
70
70
|
return true;
|
|
@@ -102,14 +102,13 @@ async function detectGovernorCapabilities(governorAddress, provider) {
|
|
|
102
102
|
* Get the timelock address for a governor
|
|
103
103
|
*/
|
|
104
104
|
async function getTimelockAddress(governorAddress, provider) {
|
|
105
|
-
|
|
106
|
-
return (0, rpc_utils_1.queryWithRetry)(() => governor.timelock());
|
|
105
|
+
return (0, rpc_utils_1.queryWithRetry)(() => getGovernorContract(governorAddress, provider).timelock());
|
|
107
106
|
}
|
|
108
107
|
/**
|
|
109
108
|
* Get proposal state from governor contract
|
|
110
109
|
*/
|
|
111
110
|
async function getProposalState(governorAddress, proposalId, provider) {
|
|
112
|
-
const governor =
|
|
111
|
+
const governor = getGovernorContract(governorAddress, provider);
|
|
113
112
|
const stateNum = (await (0, rpc_utils_1.queryWithRetry)(() => governor.state(ethers_1.BigNumber.from(proposalId))));
|
|
114
113
|
const stateNumber = typeof stateNum === "number" ? stateNum : stateNum.toNumber();
|
|
115
114
|
const state = constants_1.PROPOSAL_STATE_MAP[stateNumber];
|
|
@@ -119,9 +118,13 @@ async function getProposalState(governorAddress, proposalId, provider) {
|
|
|
119
118
|
return state;
|
|
120
119
|
}
|
|
121
120
|
/**
|
|
122
|
-
* Parse ProposalCreated event
|
|
121
|
+
* Parse raw ProposalCreated event args from a log entry.
|
|
122
|
+
*
|
|
123
|
+
* Returns the unmodified event data (no description truncation).
|
|
124
|
+
* Used internally by parseProposalCreatedEvent and election/params
|
|
125
|
+
* to avoid duplicating the ethers parseLog + args[3] workaround.
|
|
123
126
|
*/
|
|
124
|
-
function
|
|
127
|
+
function parseProposalCreatedRaw(log) {
|
|
125
128
|
try {
|
|
126
129
|
const parsed = abis_1.proposalCreatedInterface.parseLog(log);
|
|
127
130
|
// Cast through unknown required due to ethers' Result type structure
|
|
@@ -135,7 +138,7 @@ function parseProposalCreatedEvent(log) {
|
|
|
135
138
|
calldatas: args.calldatas,
|
|
136
139
|
startBlock: args.startBlock,
|
|
137
140
|
endBlock: args.endBlock,
|
|
138
|
-
description:
|
|
141
|
+
description: args.description,
|
|
139
142
|
creationBlock: log.blockNumber,
|
|
140
143
|
creationTxHash: log.transactionHash,
|
|
141
144
|
};
|
|
@@ -144,6 +147,16 @@ function parseProposalCreatedEvent(log) {
|
|
|
144
147
|
return null;
|
|
145
148
|
}
|
|
146
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Parse ProposalCreated event data (with description truncation for display safety)
|
|
152
|
+
*/
|
|
153
|
+
function parseProposalCreatedEvent(log) {
|
|
154
|
+
const result = parseProposalCreatedRaw(log);
|
|
155
|
+
if (result) {
|
|
156
|
+
result.description = (0, sanitize_1.truncateDescription)(result.description);
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
147
160
|
/**
|
|
148
161
|
* Find ProposalCreated event by proposal ID
|
|
149
162
|
*
|
|
@@ -305,7 +318,7 @@ async function discoverProposalByTxHash(txHash, provider) {
|
|
|
305
318
|
const receipt = await (0, rpc_utils_1.queryWithRetry)(() => provider.getTransactionReceipt(txHash));
|
|
306
319
|
if (!receipt)
|
|
307
320
|
return null;
|
|
308
|
-
const log = receipt.logs.find((l) => l.topics[0] === constants_1.EVENT_TOPICS.PROPOSAL_CREATED);
|
|
321
|
+
const log = receipt.logs.find((l) => l.topics?.[0] === constants_1.EVENT_TOPICS.PROPOSAL_CREATED);
|
|
309
322
|
if (!log)
|
|
310
323
|
return null;
|
|
311
324
|
const parsed = parseProposalCreatedEvent(log);
|
|
@@ -318,4 +331,25 @@ async function discoverProposalByTxHash(txHash, provider) {
|
|
|
318
331
|
}
|
|
319
332
|
: null;
|
|
320
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Query all ProposalCreated events from a governor in a block range.
|
|
336
|
+
*
|
|
337
|
+
* Simpler alternative to the full tracking pipeline for consumers
|
|
338
|
+
* that just need raw proposal data.
|
|
339
|
+
*
|
|
340
|
+
* @param provider - L2 provider
|
|
341
|
+
* @param governorAddress - Governor contract address
|
|
342
|
+
* @param fromBlock - Start block (default: governance deployment block)
|
|
343
|
+
* @param toBlock - End block (default: latest)
|
|
344
|
+
*/
|
|
345
|
+
async function queryProposalCreatedEvents(provider, governorAddress, fromBlock = constants_1.GOVERNANCE_START_BLOCKS.L2, toBlock) {
|
|
346
|
+
const resolvedTo = toBlock ?? (await (0, timing_1.getCurrentBlockInfo)(provider)).blockNumber;
|
|
347
|
+
const result = await (0, log_search_1.searchLogsInChunks)(provider, {
|
|
348
|
+
address: governorAddress,
|
|
349
|
+
topics: [constants_1.EVENT_TOPICS.PROPOSAL_CREATED],
|
|
350
|
+
fromBlock,
|
|
351
|
+
toBlock: resolvedTo,
|
|
352
|
+
});
|
|
353
|
+
return result.logs.map(parseProposalCreatedEvent).filter((d) => d !== null);
|
|
354
|
+
}
|
|
321
355
|
//# sourceMappingURL=governor-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor-discovery.js","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqEH,gDAEC;AAKD,gDAEC;
|
|
1
|
+
{"version":3,"file":"governor-discovery.js","sourceRoot":"","sources":["../../src/discovery/governor-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timelock-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/timelock-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,UAAU,EACX,MAAM,UAAU,CAAC;AAgBlB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAgCD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,qBAAqB,CAAC,CA8BhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAoB3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAiBzF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmBnC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAc1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAmBlC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC;CAClC,GACL,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"timelock-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/timelock-discovery.ts"],"names":[],"mappings":"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"}
|