@gzeoneth/gov-tracker 0.3.0 → 0.4.0-alpha.addr-feedback.e1dac80
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 +1 -5
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +35 -76
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts +21 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +30 -0
- 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 +39 -19
- 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 +61 -58
- package/dist/cli/lib/cli.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/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/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +24 -34
- 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 +6 -6
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +14 -14
- 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.map +1 -1
- package/dist/cli/tui/utils/navigation.js +5 -1
- 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/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/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 +3 -3
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/cli/tui/views/StageView.d.ts.map +1 -1
- package/dist/cli/tui/views/StageView.js +1 -1
- package/dist/cli/tui/views/StageView.js.map +1 -1
- package/dist/constants.d.ts +11 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +16 -4
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +21513 -22619
- package/dist/deduplication.d.ts.map +1 -1
- package/dist/deduplication.js +36 -33
- package/dist/deduplication.js.map +1 -1
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +44 -49
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/security-council.d.ts +15 -0
- package/dist/discovery/security-council.d.ts.map +1 -1
- package/dist/discovery/security-council.js +42 -19
- package/dist/discovery/security-council.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +62 -84
- 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 +35 -33
- package/dist/election/details.js.map +1 -1
- package/dist/election/index.d.ts +3 -6
- package/dist/election/index.d.ts.map +1 -1
- package/dist/election/index.js +7 -14
- package/dist/election/index.js.map +1 -1
- package/dist/election/params.d.ts +8 -1
- package/dist/election/params.d.ts.map +1 -1
- package/dist/election/params.js +48 -13
- package/dist/election/params.js.map +1 -1
- package/dist/election/participants.d.ts.map +1 -1
- package/dist/election/participants.js +19 -27
- package/dist/election/participants.js.map +1 -1
- package/dist/election/proposal-ids.d.ts +10 -0
- package/dist/election/proposal-ids.d.ts.map +1 -1
- package/dist/election/proposal-ids.js +42 -5
- package/dist/election/proposal-ids.js.map +1 -1
- package/dist/election/status.d.ts.map +1 -1
- package/dist/election/status.js +6 -0
- package/dist/election/status.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +2 -2
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +36 -26
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/stages/builder.js +1 -1
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +5 -11
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +4 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.d.ts +4 -3
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +35 -57
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +4 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +59 -67
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +67 -5
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +183 -42
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +2 -1
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
- package/dist/tracker/checkpoint-helpers.js +4 -7
- package/dist/tracker/checkpoint-helpers.js.map +1 -1
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +60 -43
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts +25 -6
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +428 -211
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +21 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +86 -9
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/stage-runner.d.ts +62 -0
- package/dist/tracker/stage-runner.d.ts.map +1 -0
- package/dist/tracker/stage-runner.js +80 -0
- package/dist/tracker/stage-runner.js.map +1 -0
- package/dist/tracker/state.d.ts +65 -0
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +194 -14
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +36 -8
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +246 -193
- package/dist/tracker.js.map +1 -1
- package/dist/types/core.d.ts +3 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +3 -2
- package/dist/types/core.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 +11 -0
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/log-filters.d.ts.map +1 -1
- package/dist/utils/log-filters.js +5 -9
- package/dist/utils/log-filters.js.map +1 -1
- package/dist/utils/multicall.d.ts +0 -1
- package/dist/utils/multicall.d.ts.map +1 -1
- package/dist/utils/rpc-utils.d.ts +11 -0
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +18 -1
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/timing.d.ts +11 -4
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +45 -15
- package/dist/utils/timing.js.map +1 -1
- package/package.json +7 -6
- 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 -14
- package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
- package/dist/cli/tui/utils/text.d.ts +0 -7
- package/dist/cli/tui/utils/text.d.ts.map +0 -1
- package/dist/cli/tui/utils/text.js +0 -12
- package/dist/cli/tui/utils/text.js.map +0 -1
- package/dist/election/prepare.d.ts +0 -10
- package/dist/election/prepare.d.ts.map +0 -1
- package/dist/election/prepare.js +0 -52
- package/dist/election/prepare.js.map +0 -1
- package/dist/election/tracking.d.ts +0 -28
- package/dist/election/tracking.d.ts.map +0 -1
- package/dist/election/tracking.js +0 -412
- package/dist/election/tracking.js.map +0 -1
package/README.md
CHANGED
|
@@ -26,15 +26,12 @@ const tracker = createTracker({
|
|
|
26
26
|
cachePath: "./gov-tracker-cache.json",
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
// Track from transaction hash
|
|
29
|
+
// Track from transaction hash (auto-detects proposal type)
|
|
30
30
|
const results = await tracker.trackByTxHash("0x...");
|
|
31
31
|
for (const stage of results[0].stages) {
|
|
32
32
|
console.log(`${stage.type}: ${stage.status}`);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
// Or track from governor
|
|
36
|
-
const result = await tracker.trackFromGovernor(ADDRESSES.CONSTITUTIONAL_GOVERNOR, proposalId);
|
|
37
|
-
|
|
38
35
|
// Execute ready stages
|
|
39
36
|
const readyStage = findExecutableStage(results[0].stages);
|
|
40
37
|
if (readyStage) {
|
|
@@ -201,7 +198,6 @@ const result = await lookupSignature("0x12345678", { disableApiLookup: true });
|
|
|
201
198
|
```bash
|
|
202
199
|
yarn build # Compile TypeScript
|
|
203
200
|
yarn test # Run fast tests (no RPC)
|
|
204
|
-
yarn test:coverage # Run tests with coverage
|
|
205
201
|
yarn lint # Run ESLint
|
|
206
202
|
```
|
|
207
203
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAsBlE;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,SAAI,EACT,YAAY,GAAE,KAAc,GAC3B,OAAO,CAAC,eAAe,CAAC,CAsE1B;AAiHD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,GAAE,KAAc,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CAI5B;AAiBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA8C/E"}
|
package/dist/calldata/decoder.js
CHANGED
|
@@ -128,71 +128,40 @@ async function processNestedParams(params, rawDecoded, chainContext, depth) {
|
|
|
128
128
|
// Check for retryable ticket magic
|
|
129
129
|
if (target && (0, retryable_ticket_1.isRetryableTicketMagic)(target)) {
|
|
130
130
|
const retryable = (0, retryable_ticket_1.decodeRetryableTicket)(bytesItem);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
if (retryable) {
|
|
132
|
+
// Determine L2 chain context for address labeling and nested decoding
|
|
133
|
+
const l2ChainContext = retryable.chain === "nova" || retryable.chain === "arb1"
|
|
134
|
+
? retryable.chain
|
|
135
|
+
: undefined;
|
|
136
|
+
// Decode l2Calldata with L2 chain context only if chain is known
|
|
137
|
+
let nestedL2Call;
|
|
138
|
+
if (l2ChainContext && (0, parameter_decoder_1.isLikelyCalldata)(retryable.l2Calldata)) {
|
|
139
|
+
nestedL2Call = await decodeCalldata(retryable.l2Calldata, retryable.l2Target, depth + 1, l2ChainContext);
|
|
140
|
+
}
|
|
141
|
+
// Create retryable structure with decoded L2 call
|
|
142
|
+
const retryableDecoded = {
|
|
143
|
+
selector: "",
|
|
144
|
+
signature: null,
|
|
145
|
+
isRetryable: true,
|
|
146
|
+
parameters: [
|
|
147
|
+
(0, parameter_decoder_1.createParam)("inbox", "address", retryable.targetInbox, { chain: "ethereum" }),
|
|
148
|
+
(0, parameter_decoder_1.createParam)("l2Target", "address", retryable.l2Target, { chain: l2ChainContext }),
|
|
149
|
+
(0, parameter_decoder_1.createParam)("l2Value", "uint256", retryable.l2Value),
|
|
150
|
+
(0, parameter_decoder_1.createParam)("gasLimit", "uint256", retryable.gasLimit),
|
|
151
|
+
(0, parameter_decoder_1.createParam)("maxFeePerGas", "uint256", retryable.maxFeePerGas),
|
|
152
|
+
(0, parameter_decoder_1.createParam)("l2Calldata", "bytes", retryable.l2Calldata, {
|
|
153
|
+
isNested: !!nestedL2Call,
|
|
154
|
+
nested: nestedL2Call,
|
|
155
|
+
}),
|
|
156
|
+
],
|
|
157
|
+
raw: bytesItem,
|
|
158
|
+
decodingSource: "local",
|
|
159
|
+
targetChain: retryable.chain,
|
|
160
|
+
};
|
|
161
|
+
nestedArray.push(retryableDecoded);
|
|
162
|
+
continue;
|
|
137
163
|
}
|
|
138
|
-
//
|
|
139
|
-
const retryableDecoded = {
|
|
140
|
-
selector: "",
|
|
141
|
-
signature: null,
|
|
142
|
-
isRetryable: true,
|
|
143
|
-
parameters: [
|
|
144
|
-
{
|
|
145
|
-
name: "inbox",
|
|
146
|
-
type: "address",
|
|
147
|
-
displayValue: retryable.targetInbox,
|
|
148
|
-
rawValue: retryable.targetInbox,
|
|
149
|
-
isNested: false,
|
|
150
|
-
addressLabel: (0, parameter_decoder_1.getAddressLabel)(retryable.targetInbox, "ethereum"),
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
name: "l2Target",
|
|
154
|
-
type: "address",
|
|
155
|
-
displayValue: retryable.l2Target,
|
|
156
|
-
rawValue: retryable.l2Target,
|
|
157
|
-
isNested: false,
|
|
158
|
-
addressLabel: (0, parameter_decoder_1.getAddressLabel)(retryable.l2Target, l2ChainContext),
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
name: "l2Value",
|
|
162
|
-
type: "uint256",
|
|
163
|
-
displayValue: retryable.l2Value,
|
|
164
|
-
rawValue: retryable.l2Value,
|
|
165
|
-
isNested: false,
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
name: "gasLimit",
|
|
169
|
-
type: "uint256",
|
|
170
|
-
displayValue: retryable.gasLimit,
|
|
171
|
-
rawValue: retryable.gasLimit,
|
|
172
|
-
isNested: false,
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
name: "maxFeePerGas",
|
|
176
|
-
type: "uint256",
|
|
177
|
-
displayValue: retryable.maxFeePerGas,
|
|
178
|
-
rawValue: retryable.maxFeePerGas,
|
|
179
|
-
isNested: false,
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
name: "l2Calldata",
|
|
183
|
-
type: "bytes",
|
|
184
|
-
displayValue: retryable.l2Calldata,
|
|
185
|
-
rawValue: retryable.l2Calldata,
|
|
186
|
-
isNested: !!nestedL2Call,
|
|
187
|
-
nested: nestedL2Call,
|
|
188
|
-
},
|
|
189
|
-
],
|
|
190
|
-
raw: bytesItem,
|
|
191
|
-
decodingSource: "local",
|
|
192
|
-
targetChain: retryable.chain, // Explicit target L2 chain field
|
|
193
|
-
};
|
|
194
|
-
nestedArray.push(retryableDecoded);
|
|
195
|
-
continue;
|
|
164
|
+
// Fall through to normal calldata decoding if retryable decode fails
|
|
196
165
|
}
|
|
197
166
|
// Normal calldata decoding
|
|
198
167
|
if ((0, parameter_decoder_1.isLikelyCalldata)(bytesItem)) {
|
|
@@ -223,12 +192,7 @@ async function processNestedParams(params, rawDecoded, chainContext, depth) {
|
|
|
223
192
|
* @returns Array of decoded calldata results
|
|
224
193
|
*/
|
|
225
194
|
async function decodeCalldataArray(calldatas, targets, chainContext = "arb1") {
|
|
226
|
-
|
|
227
|
-
for (let i = 0; i < calldatas.length; i++) {
|
|
228
|
-
const decoded = await decodeCalldata(calldatas[i], targets[i], 0, chainContext);
|
|
229
|
-
results.push(decoded);
|
|
230
|
-
}
|
|
231
|
-
return results;
|
|
195
|
+
return Promise.all(calldatas.map((calldata, i) => decodeCalldata(calldata, targets[i], 0, chainContext)));
|
|
232
196
|
}
|
|
233
197
|
/**
|
|
234
198
|
* Extract calldata, targets, and values from a tracked stage.
|
|
@@ -255,12 +219,7 @@ function extractCalldataFromStage(stage) {
|
|
|
255
219
|
if (values.length !== count) {
|
|
256
220
|
throw new Error(`Mismatch in values length: expected ${count}, got ${values.length}`);
|
|
257
221
|
}
|
|
258
|
-
|
|
259
|
-
result.calldatas.push(data.calldatas[i]);
|
|
260
|
-
result.targets.push(targets[i]);
|
|
261
|
-
result.values.push(values[i]);
|
|
262
|
-
}
|
|
263
|
-
return result;
|
|
222
|
+
return { calldatas: [...data.calldatas], targets: [...targets], values: [...values] };
|
|
264
223
|
}
|
|
265
224
|
// 2. Check for Timelock scheduled data (L1/L2 Timelock)
|
|
266
225
|
// Timelock stages usually have `callScheduledData` array containing the operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Also includes chain-aware address labeling for known governance contracts.
|
|
7
7
|
*/
|
|
8
8
|
import { ethers } from "ethers";
|
|
9
|
-
import type { DecodedParameter } from "../types/calldata";
|
|
9
|
+
import type { DecodedParameter, DecodedCalldata } from "../types/calldata";
|
|
10
10
|
import type { Chain } from "../types";
|
|
11
11
|
/**
|
|
12
12
|
* Get known address label
|
|
@@ -16,6 +16,25 @@ import type { Chain } from "../types";
|
|
|
16
16
|
* @returns Label if known, undefined otherwise
|
|
17
17
|
*/
|
|
18
18
|
export declare function getAddressLabel(address: string, chain: Chain | undefined): string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Options for createParam helper
|
|
21
|
+
*/
|
|
22
|
+
interface CreateParamOptions {
|
|
23
|
+
isNested?: boolean;
|
|
24
|
+
nested?: DecodedCalldata;
|
|
25
|
+
chain?: Chain;
|
|
26
|
+
rawBytesArray?: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a DecodedParameter with sensible defaults
|
|
30
|
+
*
|
|
31
|
+
* @param name - Parameter name
|
|
32
|
+
* @param type - Solidity type
|
|
33
|
+
* @param value - Raw value (used for both rawValue and displayValue)
|
|
34
|
+
* @param options - Optional nested, chain context, etc.
|
|
35
|
+
* @returns DecodedParameter
|
|
36
|
+
*/
|
|
37
|
+
export declare function createParam(name: string, type: string, value: unknown, options?: CreateParamOptions): DecodedParameter;
|
|
19
38
|
/**
|
|
20
39
|
* Parse parameter types from function signature
|
|
21
40
|
* Handles nested types like tuples and arrays
|
|
@@ -51,4 +70,5 @@ export declare function decodeParameters(calldata: string, signature: string, ch
|
|
|
51
70
|
params: DecodedParameter[];
|
|
52
71
|
decoded: ethers.utils.Result;
|
|
53
72
|
} | null;
|
|
73
|
+
export {};
|
|
54
74
|
//# sourceMappingURL=parameter-decoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter-decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAgEtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7F;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,CAgBlB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,GAClB;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,CAuDrE"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.getAddressLabel = getAddressLabel;
|
|
11
|
+
exports.createParam = createParam;
|
|
11
12
|
exports.parseParamTypes = parseParamTypes;
|
|
12
13
|
exports.isLikelyCalldata = isLikelyCalldata;
|
|
13
14
|
exports.formatDecodedValue = formatDecodedValue;
|
|
@@ -71,6 +72,35 @@ function getAddressLabel(address, chain) {
|
|
|
71
72
|
return undefined;
|
|
72
73
|
return KNOWN_ADDRESSES_INDEXED[chain][address.toLowerCase()];
|
|
73
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a DecodedParameter with sensible defaults
|
|
77
|
+
*
|
|
78
|
+
* @param name - Parameter name
|
|
79
|
+
* @param type - Solidity type
|
|
80
|
+
* @param value - Raw value (used for both rawValue and displayValue)
|
|
81
|
+
* @param options - Optional nested, chain context, etc.
|
|
82
|
+
* @returns DecodedParameter
|
|
83
|
+
*/
|
|
84
|
+
function createParam(name, type, value, options = {}) {
|
|
85
|
+
const { isNested = false, nested, chain, rawBytesArray } = options;
|
|
86
|
+
const param = {
|
|
87
|
+
name,
|
|
88
|
+
type,
|
|
89
|
+
displayValue: typeof value === "string" ? value : formatDecodedValue(value, type),
|
|
90
|
+
rawValue: value,
|
|
91
|
+
isNested,
|
|
92
|
+
};
|
|
93
|
+
if (type === "address" && typeof value === "string") {
|
|
94
|
+
const label = getAddressLabel(value, chain);
|
|
95
|
+
if (label)
|
|
96
|
+
param.addressLabel = label;
|
|
97
|
+
}
|
|
98
|
+
if (nested)
|
|
99
|
+
param.nested = nested;
|
|
100
|
+
if (rawBytesArray)
|
|
101
|
+
param._rawBytesArray = rawBytesArray;
|
|
102
|
+
return param;
|
|
103
|
+
}
|
|
74
104
|
/**
|
|
75
105
|
* Parse parameter types from function signature
|
|
76
106
|
* Handles nested types like tuples and arrays
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA2EH,0CAGC;AASD,0CAIC;AAQD,4CAUC;AASD,gDAmCC;AAUD,4CA2DC;
|
|
1
|
+
{"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export declare function getRetryableChainName(chain: "arb1" | "nova" | "unknown"
|
|
|
26
26
|
* (address inbox, address l2Target, uint256 l2Value, uint256 gasLimit, uint256 maxFeePerGas, bytes l2Calldata)
|
|
27
27
|
*
|
|
28
28
|
* @param bytes - ABI-encoded retryable ticket bytes
|
|
29
|
-
* @returns Decoded retryable ticket data
|
|
29
|
+
* @returns Decoded retryable ticket data, or null if decoding fails
|
|
30
30
|
*/
|
|
31
|
-
export declare function decodeRetryableTicket(bytes: string): RetryableTicketData;
|
|
31
|
+
export declare function decodeRetryableTicket(bytes: string): RetryableTicketData | null;
|
|
32
32
|
//# sourceMappingURL=retryable-ticket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryable-ticket.d.ts","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,QAAiD,CAAC;AAIrF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAShF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"retryable-ticket.d.ts","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,QAAiD,CAAC;AAIrF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAShF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAqB/E"}
|
|
@@ -61,19 +61,24 @@ function getRetryableChainName(chain) {
|
|
|
61
61
|
* (address inbox, address l2Target, uint256 l2Value, uint256 gasLimit, uint256 maxFeePerGas, bytes l2Calldata)
|
|
62
62
|
*
|
|
63
63
|
* @param bytes - ABI-encoded retryable ticket bytes
|
|
64
|
-
* @returns Decoded retryable ticket data
|
|
64
|
+
* @returns Decoded retryable ticket data, or null if decoding fails
|
|
65
65
|
*/
|
|
66
66
|
function decodeRetryableTicket(bytes) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
67
|
+
try {
|
|
68
|
+
const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address", "address", "uint256", "uint256", "uint256", "bytes"], bytes);
|
|
69
|
+
const chain = detectChainFromInbox(decoded[0]);
|
|
70
|
+
return {
|
|
71
|
+
targetInbox: decoded[0],
|
|
72
|
+
l2Target: decoded[1],
|
|
73
|
+
l2Value: decoded[2].toString(),
|
|
74
|
+
gasLimit: decoded[3].toString(),
|
|
75
|
+
maxFeePerGas: decoded[4].toString(),
|
|
76
|
+
l2Calldata: decoded[5],
|
|
77
|
+
chain,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
78
83
|
}
|
|
79
84
|
//# sourceMappingURL=retryable-ticket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryable-ticket.js","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAiBH,wDAEC;AAsBD,sDASC;AAWD,
|
|
1
|
+
{"version":3,"file":"retryable-ticket.js","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAiBH,wDAEC;AAsBD,sDASC;AAWD,sDAqBC;AAhFD,mCAAgC;AAEhC,4CAAyC;AAEzC,qCAAqC;AACxB,QAAA,sBAAsB,GAAG,qBAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AACrF,MAAM,kBAAkB,GAAG,qBAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACtE,MAAM,kBAAkB,GAAG,qBAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAEtE;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,MAAc;IACnD,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,8BAAsB,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,YAAoB;IAChD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAE9C,IAAI,UAAU,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACrD,IAAI,UAAU,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,KAAkC;IACtE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,YAAY,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjD,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAChE,KAAK,CACN,CAAC;QAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAW,CAAC,CAAC;QAEzD,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACvB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/B,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACtB,KAAK;SACN,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -97,12 +97,11 @@ async function lookup4byteDirectory(selector) {
|
|
|
97
97
|
if (signatureCache.has(normalizedSelector)) {
|
|
98
98
|
return signatureCache.get(normalizedSelector) ?? null;
|
|
99
99
|
}
|
|
100
|
+
const controller = new AbortController();
|
|
101
|
+
const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
|
|
100
102
|
try {
|
|
101
|
-
const controller = new AbortController();
|
|
102
|
-
const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
|
|
103
103
|
const url = `https://www.4byte.directory/api/v1/signatures/?hex_signature=${normalizedSelector}`;
|
|
104
104
|
const response = await fetch(url, { signal: controller.signal });
|
|
105
|
-
clearTimeout(timeoutId);
|
|
106
105
|
if (!response.ok) {
|
|
107
106
|
debug("4byte.directory API error: %d", response.status);
|
|
108
107
|
signatureCache.set(normalizedSelector, null);
|
|
@@ -110,7 +109,6 @@ async function lookup4byteDirectory(selector) {
|
|
|
110
109
|
}
|
|
111
110
|
const data = (await response.json());
|
|
112
111
|
if (data.results && data.results.length > 0) {
|
|
113
|
-
// Return the first (most common) signature
|
|
114
112
|
const signature = data.results[0].text_signature;
|
|
115
113
|
signatureCache.set(normalizedSelector, signature);
|
|
116
114
|
debug("4byte.directory found: %s -> %s", normalizedSelector, signature);
|
|
@@ -124,6 +122,9 @@ async function lookup4byteDirectory(selector) {
|
|
|
124
122
|
signatureCache.set(normalizedSelector, null);
|
|
125
123
|
return null;
|
|
126
124
|
}
|
|
125
|
+
finally {
|
|
126
|
+
clearTimeout(timeoutId);
|
|
127
|
+
}
|
|
127
128
|
}
|
|
128
129
|
/**
|
|
129
130
|
* Look up function signature from all sources
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-lookup.js","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AAkFH,oDAGC;AA0ED,0CAyBC;AAtLD,kDAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAE5C;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,sBAAsB;IACtB,YAAY,EAAE,yDAAyD;IACvE,YAAY,EAAE,oEAAoE;IAClF,YAAY,EAAE,gDAAgD;IAC9D,YAAY,EAAE,2DAA2D;IACzE,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,sDAAsD;IACpE,YAAY,EAAE,iEAAiE;IAE/E,wBAAwB;IACxB,YAAY,EAAE,2BAA2B;IAEzC,kBAAkB;IAClB,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,4BAA4B;IAE1C,QAAQ;IACR,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,uCAAuC;IACrD,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,4BAA4B;IAE1C,iBAAiB;IACjB,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,iCAAiC;IAC/C,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,0BAA0B;IAExC,YAAY;IACZ,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,4BAA4B;IAC1C,YAAY,EAAE,qBAAqB;IACnC,YAAY,EAAE,SAAS;IAEvB,WAAW;IACX,YAAY,EAAE,6CAA6C;IAC3D,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,yBAAyB;IACvC,YAAY,EAAE,0CAA0C;IAExD,mBAAmB;IACnB,YAAY,EAAE,oCAAoC;IAClD,YAAY,EAAE,WAAW;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;AAExD;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAClD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElD,sBAAsB;IACtB,IAAI,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,OAAO,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;IACxD,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"signature-lookup.js","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cli.js
CHANGED
|
@@ -94,13 +94,20 @@ function getPackageVersion() {
|
|
|
94
94
|
];
|
|
95
95
|
for (const candidate of candidates) {
|
|
96
96
|
if (fs.existsSync(candidate)) {
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
try {
|
|
98
|
+
const pkg = JSON.parse(fs.readFileSync(candidate, "utf8"));
|
|
99
|
+
return pkg.version || "unknown";
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error(`Failed to parse package.json at ${candidate}: ${(0, rpc_utils_1.getErrorMessage)(error)}`);
|
|
103
|
+
return "unknown";
|
|
104
|
+
}
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
return "unknown";
|
|
102
108
|
}
|
|
103
109
|
const index_1 = require("../index");
|
|
110
|
+
const rpc_utils_1 = require("../utils/rpc-utils");
|
|
104
111
|
const json_state_1 = require("./lib/json-state");
|
|
105
112
|
const election_check_1 = require("./lib/election-check");
|
|
106
113
|
const cli_1 = require("./lib/cli");
|
|
@@ -227,7 +234,7 @@ function getDefaultCachePath() {
|
|
|
227
234
|
}
|
|
228
235
|
catch (err) {
|
|
229
236
|
// Non-fatal: just start with empty cache
|
|
230
|
-
console.warn(`Warning: Could not copy bundled cache: ${err}`);
|
|
237
|
+
console.warn(`Warning: Could not copy bundled cache: ${(0, rpc_utils_1.getErrorMessage)(err)}`);
|
|
231
238
|
}
|
|
232
239
|
}
|
|
233
240
|
}
|
|
@@ -285,6 +292,12 @@ runCmd
|
|
|
285
292
|
// --no-cache disables cache entirely; use autoFlush: false for batch writes
|
|
286
293
|
const cachePath = opts.noCache ? undefined : opts.cache;
|
|
287
294
|
const cache = cachePath ? new index_1.FileCache(cachePath, { autoFlush: false }) : undefined;
|
|
295
|
+
// If --force is specified, clear cache at start to ensure fresh tracking
|
|
296
|
+
// This is cleaner than passing force flags through - all tracking methods
|
|
297
|
+
// work normally with the cache, which starts empty
|
|
298
|
+
if (opts.force && cache) {
|
|
299
|
+
await cache.clear();
|
|
300
|
+
}
|
|
288
301
|
const tracker = (0, index_1.createTracker)({
|
|
289
302
|
...providers,
|
|
290
303
|
cache,
|
|
@@ -292,16 +305,16 @@ runCmd
|
|
|
292
305
|
onProgress: createProgressCallback(),
|
|
293
306
|
});
|
|
294
307
|
const signer = opts.write ? (0, cli_1.createSigner)(opts.privateKey) : null;
|
|
295
|
-
// If --force is specified,
|
|
308
|
+
// If --force is specified, start from block 0; otherwise use provided startBlock
|
|
296
309
|
const startBlock = opts.force
|
|
297
310
|
? 0 // Force re-discovery from the beginning
|
|
298
311
|
: opts.startBlock
|
|
299
|
-
?
|
|
312
|
+
? (0, cli_1.safeParseInt)(opts.startBlock, 0) || undefined // 0 becomes undefined
|
|
300
313
|
: undefined;
|
|
301
|
-
const blockLag =
|
|
302
|
-
const maxAgeDays =
|
|
303
|
-
const intervalMs =
|
|
304
|
-
const concurrency =
|
|
314
|
+
const blockLag = (0, cli_1.safeParseInt)(opts.blockLag, cli_1.DEFAULT_BLOCK_LAG);
|
|
315
|
+
const maxAgeDays = (0, cli_1.safeParseInt)(opts.maxAgeDays, 60);
|
|
316
|
+
const intervalMs = (0, cli_1.safeParseInt)(opts.interval, 60) * 1000;
|
|
317
|
+
const concurrency = (0, cli_1.safeParseInt)(opts.concurrency, 1);
|
|
305
318
|
const gasSettings = (0, cli_1.parseGasSettings)(opts);
|
|
306
319
|
// Build discovery targets from --track-* flags
|
|
307
320
|
// If any --track-* flag is specified, only track those; otherwise track all
|
|
@@ -363,7 +376,6 @@ runCmd
|
|
|
363
376
|
concurrency,
|
|
364
377
|
targets: discoveryTargets,
|
|
365
378
|
electionsOnly,
|
|
366
|
-
forceElections: opts.force,
|
|
367
379
|
onTrack: async (r) => {
|
|
368
380
|
// Skip showing complete elections
|
|
369
381
|
if (r.result?.isElection && r.result?.isComplete) {
|
|
@@ -448,7 +460,7 @@ runCmd
|
|
|
448
460
|
}
|
|
449
461
|
}
|
|
450
462
|
catch (error) {
|
|
451
|
-
console.error(`[ELECTION] Check failed: ${error
|
|
463
|
+
console.error(`[ELECTION] Check failed: ${(0, rpc_utils_1.getErrorMessage)(error)}`);
|
|
452
464
|
}
|
|
453
465
|
}
|
|
454
466
|
}
|
|
@@ -650,7 +662,7 @@ trackCmd
|
|
|
650
662
|
}
|
|
651
663
|
}
|
|
652
664
|
catch (e) {
|
|
653
|
-
console.error(
|
|
665
|
+
console.error((0, rpc_utils_1.getErrorMessage)(e));
|
|
654
666
|
process.exit(1);
|
|
655
667
|
}
|
|
656
668
|
});
|
|
@@ -703,17 +715,21 @@ electionCmd
|
|
|
703
715
|
const signer = opts.write ? (0, cli_1.createSigner)(opts.privateKey) : null;
|
|
704
716
|
// Create tracker with cache (unless --no-cache)
|
|
705
717
|
const cachePath = opts.noCache ? undefined : opts.cache;
|
|
718
|
+
const cache = cachePath ? new index_1.FileCache(cachePath) : undefined;
|
|
719
|
+
// If --force is specified, clear cache at start to ensure fresh tracking
|
|
720
|
+
if (opts.force && cache) {
|
|
721
|
+
await cache.clear();
|
|
722
|
+
}
|
|
706
723
|
const tracker = (0, index_1.createTracker)({
|
|
707
724
|
...providers,
|
|
708
|
-
|
|
725
|
+
cache,
|
|
709
726
|
});
|
|
710
727
|
// Import election tracking functions for detailed queries
|
|
711
728
|
const { getNomineeElectionDetails, getMemberElectionDetails, prepareMemberElectionTrigger, prepareMemberElectionExecution, } = await Promise.resolve().then(() => __importStar(require("../index")));
|
|
712
729
|
// --list: Show all elections (uses cached data for completed elections)
|
|
713
730
|
if (opts.list) {
|
|
714
731
|
console.log("Fetching all elections...\n");
|
|
715
|
-
|
|
716
|
-
const elections = await tracker.trackAllElections({ force: opts.force });
|
|
732
|
+
const elections = await tracker.trackAllElections();
|
|
717
733
|
if (elections.length === 0) {
|
|
718
734
|
console.log("No elections found.");
|
|
719
735
|
return;
|
|
@@ -741,11 +757,15 @@ electionCmd
|
|
|
741
757
|
}
|
|
742
758
|
return;
|
|
743
759
|
}
|
|
744
|
-
// --track <index>: Track specific election (uses cache unless --force)
|
|
760
|
+
// --track <index>: Track specific election (uses cache unless --force cleared it)
|
|
745
761
|
if (opts.track !== undefined) {
|
|
746
762
|
const electionIndex = parseInt(opts.track, 10);
|
|
763
|
+
if (isNaN(electionIndex) || electionIndex < 0) {
|
|
764
|
+
console.error(`Invalid election index: ${opts.track}`);
|
|
765
|
+
process.exit(1);
|
|
766
|
+
}
|
|
747
767
|
console.log(`Tracking election #${electionIndex}...\n`);
|
|
748
|
-
const election = await tracker.trackElection(electionIndex
|
|
768
|
+
const election = await tracker.trackElection(electionIndex);
|
|
749
769
|
// Use shared formatter for consistent output with stages
|
|
750
770
|
console.log((0, cli_1.formatElectionResult)(election));
|
|
751
771
|
// Show detailed info if requested
|
|
@@ -870,10 +890,10 @@ electionCmd
|
|
|
870
890
|
}
|
|
871
891
|
}
|
|
872
892
|
catch (error) {
|
|
873
|
-
console.error("Election check failed:",
|
|
893
|
+
console.error("Election check failed:", (0, rpc_utils_1.getErrorMessage)(error));
|
|
874
894
|
}
|
|
875
895
|
}
|
|
876
|
-
const intervalMs =
|
|
896
|
+
const intervalMs = (0, cli_1.safeParseInt)(opts.interval, 60) * 1000;
|
|
877
897
|
if (opts.loop) {
|
|
878
898
|
console.log(`Running in loop mode, checking every ${opts.interval} seconds...`);
|
|
879
899
|
if (opts.healthCheckUrl)
|