@gzeoneth/gov-tracker 0.2.1-alpha.cli-preview.a5817b4 → 0.2.1-alpha.cli-preview.552bbdb
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 +37 -3
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +22 -1
- package/dist/abis.js.map +1 -1
- package/dist/cli/cli.js +206 -12
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +9 -1
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +80 -4
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/tui/App.d.ts.map +1 -1
- package/dist/cli/tui/App.js +29 -23
- package/dist/cli/tui/App.js.map +1 -1
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +31 -36
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/hooks/index.d.ts +4 -0
- package/dist/cli/tui/hooks/index.d.ts.map +1 -1
- package/dist/cli/tui/hooks/index.js +5 -1
- package/dist/cli/tui/hooks/index.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +30 -33
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.d.ts +14 -0
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useElectionData.js +86 -0
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -0
- package/dist/cli/tui/hooks/useElectionDetails.d.ts +18 -0
- package/dist/cli/tui/hooks/useElectionDetails.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useElectionDetails.js +47 -0
- package/dist/cli/tui/hooks/useElectionDetails.js.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +65 -119
- 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 +56 -73
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useTracker.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useTracker.js +36 -41
- package/dist/cli/tui/hooks/useTracker.js.map +1 -1
- package/dist/cli/tui/utils/calldata-formatter.d.ts +17 -0
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/calldata-formatter.js +91 -0
- package/dist/cli/tui/utils/calldata-formatter.js.map +1 -0
- package/dist/cli/tui/utils/help-data.d.ts +15 -0
- package/dist/cli/tui/utils/help-data.d.ts.map +1 -0
- package/dist/cli/tui/utils/help-data.js +88 -0
- package/dist/cli/tui/utils/help-data.js.map +1 -0
- package/dist/cli/tui/utils/index.d.ts +11 -0
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +24 -1
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.d.ts +11 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -0
- package/dist/cli/tui/utils/markdown-parser.js +100 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts +17 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js +46 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -0
- package/dist/cli/tui/utils/settings-data.d.ts +36 -0
- package/dist/cli/tui/utils/settings-data.d.ts.map +1 -0
- package/dist/cli/tui/utils/settings-data.js +220 -0
- package/dist/cli/tui/utils/settings-data.js.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts +13 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.js +100 -0
- package/dist/cli/tui/utils/stage-formatter.js.map +1 -0
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +14 -85
- 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 +1 -85
- 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 +269 -169
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/cli/tui/views/HelpView.d.ts.map +1 -1
- package/dist/cli/tui/views/HelpView.js +53 -122
- package/dist/cli/tui/views/HelpView.js.map +1 -1
- package/dist/cli/tui/views/ProposalDetail.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalDetail.js +35 -80
- package/dist/cli/tui/views/ProposalDetail.js.map +1 -1
- package/dist/cli/tui/views/ProposalList.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalList.js +92 -75
- package/dist/cli/tui/views/ProposalList.js.map +1 -1
- package/dist/cli/tui/views/SettingsView.d.ts.map +1 -1
- package/dist/cli/tui/views/SettingsView.js +37 -107
- package/dist/cli/tui/views/SettingsView.js.map +1 -1
- package/dist/cli/tui/views/SimulationView.d.ts.map +1 -1
- package/dist/cli/tui/views/SimulationView.js +3 -2
- package/dist/cli/tui/views/SimulationView.js.map +1 -1
- package/dist/cli/tui/views/StageView.d.ts.map +1 -1
- package/dist/cli/tui/views/StageView.js +7 -95
- package/dist/cli/tui/views/StageView.js.map +1 -1
- package/dist/deduplication.d.ts +132 -0
- package/dist/deduplication.d.ts.map +1 -0
- package/dist/deduplication.js +270 -0
- package/dist/deduplication.js.map +1 -0
- package/dist/election.d.ts +141 -1
- package/dist/election.d.ts.map +1 -1
- package/dist/election.js +505 -88
- package/dist/election.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -3
- package/dist/index.js.map +1 -1
- package/dist/stages/builder.d.ts +4 -0
- package/dist/stages/builder.d.ts.map +1 -1
- package/dist/stages/builder.js +7 -0
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/voting.d.ts.map +1 -1
- package/dist/stages/voting.js +5 -4
- package/dist/stages/voting.js.map +1 -1
- package/dist/tracker/discovery.d.ts +39 -8
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +141 -12
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker.d.ts +24 -4
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +57 -8
- package/dist/tracker.js.map +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/election.d.ts +88 -0
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/stages.d.ts +6 -0
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +27 -1
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/timing.d.ts +13 -0
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +35 -0
- package/dist/utils/timing.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,14 +6,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.useProposals = useProposals;
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const constants_js_1 = require("../../../constants.js");
|
|
9
|
-
function
|
|
9
|
+
function getAllStages(checkpoint) {
|
|
10
10
|
return checkpoint.cachedData.completedStages ?? [];
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
return stages.find((s) => s.type ===
|
|
12
|
+
function findStageByType(stages, type) {
|
|
13
|
+
return stages.find((s) => s.type === type);
|
|
14
14
|
}
|
|
15
15
|
function getCreatedData(stages) {
|
|
16
|
-
return
|
|
16
|
+
return findStageByType(stages, "PROPOSAL_CREATED")?.data;
|
|
17
|
+
}
|
|
18
|
+
function getCreationTimestamp(stages) {
|
|
19
|
+
const createdStage = findStageByType(stages, "PROPOSAL_CREATED");
|
|
20
|
+
if (createdStage?.timing?.startedAt) {
|
|
21
|
+
return createdStage.timing.startedAt * 1000;
|
|
22
|
+
}
|
|
23
|
+
const l2TimelockStage = findStageByType(stages, "L2_TIMELOCK");
|
|
24
|
+
if (l2TimelockStage?.timing?.startedAt) {
|
|
25
|
+
return l2TimelockStage.timing.startedAt * 1000;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function hasExecutableStage(stages) {
|
|
30
|
+
return stages.some((s) => s.status === "READY" || s.executable === true);
|
|
31
|
+
}
|
|
32
|
+
function isElectionProposal(stages) {
|
|
33
|
+
const proposalType = getCreatedData(stages)?.proposalType;
|
|
34
|
+
return proposalType === "ELECTION_NOMINEE" || proposalType === "ELECTION_MEMBER";
|
|
35
|
+
}
|
|
36
|
+
function countCompletedStages(stages) {
|
|
37
|
+
return stages.filter((s) => s.status === "COMPLETED" || s.status === "SKIPPED").length;
|
|
17
38
|
}
|
|
18
39
|
function extractMarkdownTitle(description) {
|
|
19
40
|
if (!description)
|
|
@@ -23,26 +44,23 @@ function extractMarkdownTitle(description) {
|
|
|
23
44
|
const trimmed = line.trim();
|
|
24
45
|
if (trimmed.startsWith("#")) {
|
|
25
46
|
const title = trimmed.replace(/^#+\s*/, "").trim();
|
|
26
|
-
// Return null if empty so fallback logic continues
|
|
27
47
|
return title || null;
|
|
28
48
|
}
|
|
29
49
|
}
|
|
30
50
|
return null;
|
|
31
51
|
}
|
|
32
52
|
function getProposalTitle(checkpoint) {
|
|
33
|
-
const data = getCreatedData(
|
|
53
|
+
const data = getCreatedData(getAllStages(checkpoint));
|
|
34
54
|
if (data?.description) {
|
|
35
55
|
const mdTitle = extractMarkdownTitle(data.description);
|
|
36
|
-
if (mdTitle)
|
|
56
|
+
if (mdTitle)
|
|
37
57
|
return mdTitle;
|
|
38
|
-
}
|
|
39
58
|
const firstLine = data.description
|
|
40
59
|
.split("\n")
|
|
41
60
|
.find((l) => l.trim())
|
|
42
61
|
?.trim();
|
|
43
|
-
if (firstLine)
|
|
62
|
+
if (firstLine)
|
|
44
63
|
return firstLine;
|
|
45
|
-
}
|
|
46
64
|
}
|
|
47
65
|
if (checkpoint.input.type === "governor") {
|
|
48
66
|
return `Proposal ${checkpoint.input.proposalId}`;
|
|
@@ -53,8 +71,8 @@ function getProposalTitle(checkpoint) {
|
|
|
53
71
|
return "Unknown";
|
|
54
72
|
}
|
|
55
73
|
function getProposalStatus(checkpoint) {
|
|
56
|
-
const stages =
|
|
57
|
-
const votingStage = stages
|
|
74
|
+
const stages = getAllStages(checkpoint);
|
|
75
|
+
const votingStage = findStageByType(stages, "VOTING_ACTIVE");
|
|
58
76
|
const votingData = votingStage?.data;
|
|
59
77
|
if (votingData?.proposalState === "Defeated" || votingData?.proposalState === "Canceled") {
|
|
60
78
|
return "failed";
|
|
@@ -70,7 +88,7 @@ function getProposalStatus(checkpoint) {
|
|
|
70
88
|
return "active";
|
|
71
89
|
}
|
|
72
90
|
function getCurrentStageType(checkpoint) {
|
|
73
|
-
const stages =
|
|
91
|
+
const stages = getAllStages(checkpoint);
|
|
74
92
|
for (let i = stages.length - 1; i >= 0; i--) {
|
|
75
93
|
if (stages[i].status !== "COMPLETED" && stages[i].status !== "SKIPPED") {
|
|
76
94
|
return stages[i].type;
|
|
@@ -78,24 +96,6 @@ function getCurrentStageType(checkpoint) {
|
|
|
78
96
|
}
|
|
79
97
|
return checkpoint.lastProcessedStage;
|
|
80
98
|
}
|
|
81
|
-
function hasExecutableStage(stages) {
|
|
82
|
-
return stages.some((s) => s.status === "READY" || s.executable === true);
|
|
83
|
-
}
|
|
84
|
-
function isElectionProposal(stages) {
|
|
85
|
-
const proposalType = getCreatedData(stages)?.proposalType;
|
|
86
|
-
return proposalType === "ELECTION_NOMINEE" || proposalType === "ELECTION_MEMBER";
|
|
87
|
-
}
|
|
88
|
-
function getCreationTimestamp(stages) {
|
|
89
|
-
const createdStage = getCreatedStage(stages);
|
|
90
|
-
if (createdStage?.timing?.startedAt) {
|
|
91
|
-
return createdStage.timing.startedAt * 1000;
|
|
92
|
-
}
|
|
93
|
-
const l2TimelockStage = stages.find((s) => s.type === "L2_TIMELOCK");
|
|
94
|
-
if (l2TimelockStage?.timing?.startedAt) {
|
|
95
|
-
return l2TimelockStage.timing.startedAt * 1000;
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
99
|
function getItemType(checkpoint, stages) {
|
|
100
100
|
if (isElectionProposal(stages))
|
|
101
101
|
return "election";
|
|
@@ -103,53 +103,39 @@ function getItemType(checkpoint, stages) {
|
|
|
103
103
|
return "timelock";
|
|
104
104
|
return "governor";
|
|
105
105
|
}
|
|
106
|
+
const filterPredicates = {
|
|
107
|
+
all: () => true,
|
|
108
|
+
active: (item) => item.status === "active",
|
|
109
|
+
complete: (item) => item.status === "complete",
|
|
110
|
+
timelocks: (item) => item.type === "timelock",
|
|
111
|
+
};
|
|
106
112
|
function matchesFilter(item, filter) {
|
|
107
|
-
// Elections have their own view (press 'e'), exclude from main list
|
|
108
113
|
if (item.type === "election")
|
|
109
114
|
return false;
|
|
110
|
-
|
|
111
|
-
case "all":
|
|
112
|
-
return true;
|
|
113
|
-
case "active":
|
|
114
|
-
return item.status === "active";
|
|
115
|
-
case "complete":
|
|
116
|
-
return item.status === "complete";
|
|
117
|
-
case "timelocks":
|
|
118
|
-
return item.type === "timelock";
|
|
119
|
-
default:
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
115
|
+
return filterPredicates[filter](item);
|
|
122
116
|
}
|
|
123
|
-
|
|
117
|
+
const STATUS_ORDER = { active: 0, complete: 1, failed: 2 };
|
|
118
|
+
function parseProgressNumber(progress) {
|
|
124
119
|
const match = progress.match(/^(\d+)/);
|
|
125
120
|
return match ? parseInt(match[1], 10) : 0;
|
|
126
121
|
}
|
|
127
|
-
function
|
|
128
|
-
if (
|
|
122
|
+
function nullSafeCompare(aVal, bVal, ascending) {
|
|
123
|
+
if (aVal === null && bVal === null)
|
|
129
124
|
return 0;
|
|
130
|
-
if (
|
|
125
|
+
if (aVal === null)
|
|
131
126
|
return 1;
|
|
132
|
-
if (
|
|
127
|
+
if (bVal === null)
|
|
133
128
|
return -1;
|
|
134
|
-
return ascending ?
|
|
135
|
-
}
|
|
129
|
+
return ascending ? aVal - bVal : bVal - aVal;
|
|
130
|
+
}
|
|
131
|
+
const sortComparators = {
|
|
132
|
+
newest: (a, b) => nullSafeCompare(a.createdAt, b.createdAt, false),
|
|
133
|
+
oldest: (a, b) => nullSafeCompare(a.createdAt, b.createdAt, true),
|
|
134
|
+
progress: (a, b) => parseProgressNumber(b.stageProgress) - parseProgressNumber(a.stageProgress),
|
|
135
|
+
status: (a, b) => (STATUS_ORDER[a.status] ?? 3) - (STATUS_ORDER[b.status] ?? 3),
|
|
136
|
+
};
|
|
136
137
|
function sortItems(items, sort) {
|
|
137
|
-
return [...items].sort(
|
|
138
|
-
switch (sort) {
|
|
139
|
-
case "newest":
|
|
140
|
-
return compareByDate(a.createdAt, b.createdAt, false);
|
|
141
|
-
case "oldest":
|
|
142
|
-
return compareByDate(a.createdAt, b.createdAt, true);
|
|
143
|
-
case "progress":
|
|
144
|
-
return getProgressNumber(b.stageProgress) - getProgressNumber(a.stageProgress);
|
|
145
|
-
case "status": {
|
|
146
|
-
const statusOrder = { active: 0, complete: 1, failed: 2 };
|
|
147
|
-
return (statusOrder[a.status] ?? 3) - (statusOrder[b.status] ?? 3);
|
|
148
|
-
}
|
|
149
|
-
default:
|
|
150
|
-
return 0;
|
|
151
|
-
}
|
|
152
|
-
});
|
|
138
|
+
return [...items].sort(sortComparators[sort]);
|
|
153
139
|
}
|
|
154
140
|
function useProposals(data, filter, searchQuery = "", sort = "newest") {
|
|
155
141
|
return (0, react_1.useMemo)(() => {
|
|
@@ -159,10 +145,8 @@ function useProposals(data, filter, searchQuery = "", sort = "newest") {
|
|
|
159
145
|
for (const [key, checkpoint] of data.checkpoints) {
|
|
160
146
|
if (checkpoint.input.type === "discovery")
|
|
161
147
|
continue;
|
|
162
|
-
const stages =
|
|
163
|
-
// Handle proposals with no stages yet (discovered but not tracked)
|
|
148
|
+
const stages = getAllStages(checkpoint);
|
|
164
149
|
if (stages.length === 0) {
|
|
165
|
-
// Skip untracked election proposals - they belong in the Elections view
|
|
166
150
|
if (checkpoint.input.type === "governor" &&
|
|
167
151
|
(0, constants_js_1.isElectionGovernor)(checkpoint.input.governorAddress)) {
|
|
168
152
|
continue;
|
|
@@ -182,7 +166,7 @@ function useProposals(data, filter, searchQuery = "", sort = "newest") {
|
|
|
182
166
|
title,
|
|
183
167
|
type: checkpoint.input.type === "timelock" ? "timelock" : "governor",
|
|
184
168
|
proposalType: undefined,
|
|
185
|
-
status: "active",
|
|
169
|
+
status: "active",
|
|
186
170
|
stageProgress: "0/7",
|
|
187
171
|
currentStage: null,
|
|
188
172
|
hasExecutable: false,
|
|
@@ -191,14 +175,13 @@ function useProposals(data, filter, searchQuery = "", sort = "newest") {
|
|
|
191
175
|
});
|
|
192
176
|
continue;
|
|
193
177
|
}
|
|
194
|
-
const completedCount = stages.filter((s) => s.status === "COMPLETED" || s.status === "SKIPPED").length;
|
|
195
178
|
items.push({
|
|
196
179
|
key,
|
|
197
180
|
title: getProposalTitle(checkpoint),
|
|
198
181
|
type: getItemType(checkpoint, stages),
|
|
199
182
|
proposalType: getCreatedData(stages)?.proposalType,
|
|
200
183
|
status: getProposalStatus(checkpoint),
|
|
201
|
-
stageProgress: `${
|
|
184
|
+
stageProgress: `${countCompletedStages(stages)}/7`,
|
|
202
185
|
currentStage: getCurrentStageType(checkpoint),
|
|
203
186
|
hasExecutable: hasExecutableStage(stages),
|
|
204
187
|
createdAt: getCreationTimestamp(stages),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProposals.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useProposals.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"useProposals.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useProposals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTracker.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,cAAc,EAEd,mBAAmB,EAGpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useTracker.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,cAAc,EAEd,mBAAmB,EAGpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyCvD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClE,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAuBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAkKvE"}
|
|
@@ -20,29 +20,40 @@ function getTxHashFromCheckpoint(checkpoint) {
|
|
|
20
20
|
}
|
|
21
21
|
throw new Error("Cannot track discovery checkpoint");
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
args.push("--start-block", config.discovery.startBlock.toString());
|
|
38
|
-
}
|
|
39
|
-
if (config.discovery.chunkSize) {
|
|
40
|
-
args.push("--l2-chunk-size", config.discovery.chunkSize.toString());
|
|
41
|
-
}
|
|
42
|
-
if (config.discovery.concurrency > 1) {
|
|
43
|
-
args.push("--concurrency", config.discovery.concurrency.toString());
|
|
23
|
+
async function prepareExecutableTransactions(tracker, result) {
|
|
24
|
+
const executableStages = result.stages.filter((s) => s.status === "READY" || s.executable);
|
|
25
|
+
const prepared = [];
|
|
26
|
+
let errorCount = 0;
|
|
27
|
+
for (const stage of executableStages) {
|
|
28
|
+
try {
|
|
29
|
+
const prep = await tracker.prepareTransaction(stage, { stages: result.stages });
|
|
30
|
+
if (prep.success) {
|
|
31
|
+
prepared.push(prep.prepared);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
errorCount++;
|
|
36
|
+
}
|
|
44
37
|
}
|
|
45
|
-
return
|
|
38
|
+
return { prepared, errorCount };
|
|
39
|
+
}
|
|
40
|
+
function buildCliArgs(config, cachePath) {
|
|
41
|
+
const { rpc, discovery } = config;
|
|
42
|
+
const optionalArgs = [
|
|
43
|
+
[!!rpc.l1Url, "--l1-rpc", rpc.l1Url ?? ""],
|
|
44
|
+
[!!rpc.l2Url, "--l2-rpc", rpc.l2Url ?? ""],
|
|
45
|
+
[!!rpc.novaUrl, "--nova-rpc", rpc.novaUrl ?? ""],
|
|
46
|
+
[!!discovery.defaultDays, "--max-age-days", String(discovery.defaultDays ?? "")],
|
|
47
|
+
[!!discovery.startBlock, "--start-block", String(discovery.startBlock ?? "")],
|
|
48
|
+
[!!discovery.chunkSize, "--l2-chunk-size", String(discovery.chunkSize ?? "")],
|
|
49
|
+
[discovery.concurrency > 1, "--concurrency", String(discovery.concurrency)],
|
|
50
|
+
];
|
|
51
|
+
return [
|
|
52
|
+
"run",
|
|
53
|
+
"--cache",
|
|
54
|
+
cachePath,
|
|
55
|
+
...optionalArgs.filter(([cond]) => cond).flatMap(([, flag, val]) => [flag, val]),
|
|
56
|
+
];
|
|
46
57
|
}
|
|
47
58
|
function useTracker(options) {
|
|
48
59
|
const [isTracking, setIsTracking] = (0, react_1.useState)(false);
|
|
@@ -114,26 +125,10 @@ function useTracker(options) {
|
|
|
114
125
|
return null;
|
|
115
126
|
setLastResult(result);
|
|
116
127
|
if (result) {
|
|
117
|
-
const prepared =
|
|
118
|
-
let prepErrors = 0;
|
|
119
|
-
for (const stage of result.stages) {
|
|
120
|
-
if (stage.status === "READY" || stage.executable) {
|
|
121
|
-
try {
|
|
122
|
-
const prep = await tracker.prepareTransaction(stage, {
|
|
123
|
-
stages: result.stages,
|
|
124
|
-
});
|
|
125
|
-
if (prep.success) {
|
|
126
|
-
prepared.push(prep.prepared);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
prepErrors++;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
128
|
+
const { prepared, errorCount } = await prepareExecutableTransactions(tracker, result);
|
|
134
129
|
setPreparedTxs(prepared);
|
|
135
|
-
if (
|
|
136
|
-
setError(`Failed to prepare ${
|
|
130
|
+
if (errorCount > 0 && prepared.length === 0) {
|
|
131
|
+
setError(`Failed to prepare ${errorCount} transaction(s)`);
|
|
137
132
|
}
|
|
138
133
|
}
|
|
139
134
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTracker.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"useTracker.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calldata formatting utilities for TUI display
|
|
3
|
+
*/
|
|
4
|
+
import type { DecodedCalldata } from "../../../types/calldata.js";
|
|
5
|
+
export interface FormattedLine {
|
|
6
|
+
text: string;
|
|
7
|
+
indent: number;
|
|
8
|
+
foldable: boolean;
|
|
9
|
+
foldKey?: string;
|
|
10
|
+
foldedLineCount?: number;
|
|
11
|
+
isFoldedContent?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function formatDecodedCalldata(decoded: DecodedCalldata, indent?: number, keyPrefix?: string): FormattedLine[];
|
|
14
|
+
export declare function filterVisibleLines(allLines: FormattedLine[], expandedKeys: Set<string>): FormattedLine[];
|
|
15
|
+
export declare function getAllFoldableKeys(lines: FormattedLine[]): string[];
|
|
16
|
+
export declare function toggleFoldKey(expandedKeys: Set<string>, foldKey: string): Set<string>;
|
|
17
|
+
//# sourceMappingURL=calldata-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata-formatter.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/calldata-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,4BAA4B,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAuDD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,MAAM,SAAI,EACV,SAAS,SAAS,GACjB,aAAa,EAAE,CAoBjB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,aAAa,EAAE,CAKjB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEnE;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQrF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Calldata formatting utilities for TUI display
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.formatDecodedCalldata = formatDecodedCalldata;
|
|
7
|
+
exports.filterVisibleLines = filterVisibleLines;
|
|
8
|
+
exports.getAllFoldableKeys = getAllFoldableKeys;
|
|
9
|
+
exports.toggleFoldKey = toggleFoldKey;
|
|
10
|
+
const text_js_1 = require("./text.js");
|
|
11
|
+
const FOLD_THRESHOLD = 100;
|
|
12
|
+
function formatParameter(param, indent, keyPrefix) {
|
|
13
|
+
const lines = [];
|
|
14
|
+
const foldKey = `${keyPrefix}-${param.name}`;
|
|
15
|
+
let value = param.displayValue;
|
|
16
|
+
if (param.addressLabel) {
|
|
17
|
+
value = `${param.displayValue} [${param.addressLabel}]`;
|
|
18
|
+
}
|
|
19
|
+
const isFoldable = value.length > FOLD_THRESHOLD;
|
|
20
|
+
const wrappedLines = isFoldable ? (0, text_js_1.wrapText)(value, 80) : [value];
|
|
21
|
+
lines.push({
|
|
22
|
+
text: `${param.name} (${param.type}): ${wrappedLines[0]}`,
|
|
23
|
+
indent,
|
|
24
|
+
foldable: isFoldable,
|
|
25
|
+
foldKey: isFoldable ? foldKey : undefined,
|
|
26
|
+
foldedLineCount: isFoldable ? wrappedLines.length - 1 : undefined,
|
|
27
|
+
});
|
|
28
|
+
if (isFoldable && wrappedLines.length > 1) {
|
|
29
|
+
for (let i = 1; i < wrappedLines.length; i++) {
|
|
30
|
+
lines.push({
|
|
31
|
+
text: wrappedLines[i],
|
|
32
|
+
indent: indent + 1,
|
|
33
|
+
foldable: false,
|
|
34
|
+
isFoldedContent: true,
|
|
35
|
+
foldKey,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (param.nested) {
|
|
40
|
+
lines.push({ text: "└─ [NESTED]", indent: indent + 1, foldable: false });
|
|
41
|
+
lines.push(...formatDecodedCalldata(param.nested, indent + 2, `${foldKey}-nested`));
|
|
42
|
+
}
|
|
43
|
+
if (param.nestedArray && param.nestedArray.length > 0) {
|
|
44
|
+
param.nestedArray.forEach((nested, i) => {
|
|
45
|
+
lines.push({ text: `[${i}]:`, indent: indent + 1, foldable: false });
|
|
46
|
+
lines.push(...formatDecodedCalldata(nested, indent + 2, `${foldKey}-arr-${i}`));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return lines;
|
|
50
|
+
}
|
|
51
|
+
function formatDecodedCalldata(decoded, indent = 0, keyPrefix = "root") {
|
|
52
|
+
const lines = [];
|
|
53
|
+
let header;
|
|
54
|
+
if (decoded.isRetryable) {
|
|
55
|
+
header = `Retryable Ticket → ${decoded.targetChain}`;
|
|
56
|
+
}
|
|
57
|
+
else if (decoded.signature) {
|
|
58
|
+
header = decoded.signature;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
header = `Unknown function (${decoded.selector})`;
|
|
62
|
+
}
|
|
63
|
+
lines.push({ text: header, indent, foldable: false });
|
|
64
|
+
if (decoded.parameters) {
|
|
65
|
+
decoded.parameters.forEach((param, i) => {
|
|
66
|
+
lines.push(...formatParameter(param, indent + 1, `${keyPrefix}-p${i}`));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return lines;
|
|
70
|
+
}
|
|
71
|
+
function filterVisibleLines(allLines, expandedKeys) {
|
|
72
|
+
return allLines.filter((line) => {
|
|
73
|
+
if (!line.isFoldedContent)
|
|
74
|
+
return true;
|
|
75
|
+
return line.foldKey && expandedKeys.has(line.foldKey);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function getAllFoldableKeys(lines) {
|
|
79
|
+
return lines.filter((l) => l.foldable && l.foldKey).map((l) => l.foldKey);
|
|
80
|
+
}
|
|
81
|
+
function toggleFoldKey(expandedKeys, foldKey) {
|
|
82
|
+
const next = new Set(expandedKeys);
|
|
83
|
+
if (next.has(foldKey)) {
|
|
84
|
+
next.delete(foldKey);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
next.add(foldKey);
|
|
88
|
+
}
|
|
89
|
+
return next;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=calldata-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata-formatter.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/calldata-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help view section data - keyboard shortcuts reference
|
|
3
|
+
*/
|
|
4
|
+
export interface HelpShortcut {
|
|
5
|
+
key: string;
|
|
6
|
+
description: string;
|
|
7
|
+
note?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface HelpSection {
|
|
10
|
+
title: string;
|
|
11
|
+
icon?: string;
|
|
12
|
+
shortcuts: HelpShortcut[];
|
|
13
|
+
}
|
|
14
|
+
export declare const HELP_SECTIONS: HelpSection[];
|
|
15
|
+
//# sourceMappingURL=help-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-data.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/help-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,EAgFtC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Help view section data - keyboard shortcuts reference
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HELP_SECTIONS = void 0;
|
|
7
|
+
exports.HELP_SECTIONS = [
|
|
8
|
+
{
|
|
9
|
+
title: "Navigation (Vim-style)",
|
|
10
|
+
icon: "⌨",
|
|
11
|
+
shortcuts: [
|
|
12
|
+
{ key: "j/↓", description: "Move down" },
|
|
13
|
+
{ key: "k/↑", description: "Move up" },
|
|
14
|
+
{ key: "Ctrl+d/PgDn", description: "Page down (10 items)" },
|
|
15
|
+
{ key: "Ctrl+u/PgUp", description: "Page up (10 items)" },
|
|
16
|
+
{ key: "g", description: "Jump to top" },
|
|
17
|
+
{ key: "G", description: "Jump to bottom" },
|
|
18
|
+
{ key: "Enter", description: "Select / Enter view" },
|
|
19
|
+
{ key: "b/Esc", description: "Go back" },
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
title: "List View",
|
|
24
|
+
icon: "📋",
|
|
25
|
+
shortcuts: [
|
|
26
|
+
{ key: "/", description: "Start search", note: "Enter to finish, Esc to clear" },
|
|
27
|
+
{ key: "Tab", description: "Cycle filter", note: "all → active → complete → timelocks" },
|
|
28
|
+
{ key: "o", description: "Cycle sort", note: "newest → oldest → progress → status" },
|
|
29
|
+
{ key: "R", description: "Reload cache from disk" },
|
|
30
|
+
{ key: "d", description: "Discover proposals", note: "requires RPC" },
|
|
31
|
+
{ key: "e", description: "Election status", note: "requires RPC" },
|
|
32
|
+
{ key: "S", description: "Settings" },
|
|
33
|
+
{ key: "q", description: "Quit" },
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
title: "Detail View",
|
|
38
|
+
icon: "📄",
|
|
39
|
+
shortcuts: [
|
|
40
|
+
{ key: "1-7", description: "Jump to stage number" },
|
|
41
|
+
{ key: "y", description: "Copy proposal/operation ID" },
|
|
42
|
+
{ key: "Y", description: "Copy transaction hash" },
|
|
43
|
+
{ key: "d", description: "View description" },
|
|
44
|
+
{ key: "c", description: "View calldata" },
|
|
45
|
+
{ key: "s", description: "View simulation data" },
|
|
46
|
+
{ key: "r", description: "Re-track proposal", note: "requires RPC" },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: "Calldata View",
|
|
51
|
+
icon: "🔍",
|
|
52
|
+
shortcuts: [
|
|
53
|
+
{ key: "←/→", description: "Navigate between actions" },
|
|
54
|
+
{ key: "Enter", description: "Toggle fold/unfold" },
|
|
55
|
+
{ key: "e", description: "Expand all" },
|
|
56
|
+
{ key: "c", description: "Collapse all" },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: "Election View",
|
|
61
|
+
icon: "🗳",
|
|
62
|
+
shortcuts: [
|
|
63
|
+
{ key: "j/k", description: "Navigate elections" },
|
|
64
|
+
{ key: "Enter/l", description: "View detailed info", note: "contenders, nominees, members" },
|
|
65
|
+
{ key: "b/Esc", description: "Go back / Close details" },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: "Settings View",
|
|
70
|
+
icon: "⚙",
|
|
71
|
+
shortcuts: [
|
|
72
|
+
{ key: "j/k", description: "Navigate settings" },
|
|
73
|
+
{ key: "Enter/Space", description: "Edit or toggle setting" },
|
|
74
|
+
{ key: "r", description: "Reset all to defaults" },
|
|
75
|
+
{ key: "b/Esc", description: "Save and close" },
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
title: "Tips",
|
|
80
|
+
icon: "💡",
|
|
81
|
+
shortcuts: [
|
|
82
|
+
{ key: "?", description: "Show/hide this help (works in any view)" },
|
|
83
|
+
{ key: "Search", description: "Matches title and proposal ID" },
|
|
84
|
+
{ key: "RPC", description: "Use --l2-rpc for tracking features" },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
//# sourceMappingURL=help-data.js.map
|