From 7cb25575485ebee9148ecb89aac6c28991c0d6f1 Mon Sep 17 00:00:00 2001 From: Adam Tomaszczyk Date: Thu, 18 Sep 2025 15:35:22 +0200 Subject: [PATCH 1/8] Fix SQL counting the number of active CC members --- govtool/backend/sql/get-network-metrics.sql | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/govtool/backend/sql/get-network-metrics.sql b/govtool/backend/sql/get-network-metrics.sql index 73ddabc95..b3f3764a2 100644 --- a/govtool/backend/sql/get-network-metrics.sql +++ b/govtool/backend/sql/get-network-metrics.sql @@ -23,20 +23,12 @@ CurrentEpoch AS ( ), CommitteeMembers AS ( SELECT DISTINCT ON (cm.committee_hash_id) - cr.id, - block.time, - encode(cold_key_hash.raw, 'hex') cold_key, - encode(hot_key_hash.raw, 'hex') hot_key - FROM committee_registration cr - JOIN tx ON tx.id = cr.tx_id - JOIN block ON block.id = tx.block_id - JOIN committee_hash cold_key_hash ON cr.cold_key_id = cold_key_hash.id - JOIN committee_hash hot_key_hash ON cr.hot_key_id = hot_key_hash.id - JOIN committee_member cm ON cm.committee_hash_id = cold_key_hash.id OR cm.committee_hash_id = hot_key_hash.id - LEFT JOIN committee_de_registration cdr ON cdr.cold_key_id = cold_key_hash.id + cm.id, + cm.expiration_epoch + FROM committee_member cm CROSS JOIN CurrentEpoch WHERE - cdr.id IS NULL AND cm.expiration_epoch > CurrentEpoch.no + cm.expiration_epoch >= CurrentEpoch.no ), NoOfCommitteeMembers AS ( SELECT COUNT(*) total FROM CommitteeMembers From 3e820a6348603fbfe9975afaf99d3063f855e50e Mon Sep 17 00:00:00 2001 From: Adam Tomaszczyk Date: Fri, 19 Sep 2025 12:04:01 +0200 Subject: [PATCH 2/8] Fix SQL counting the number of active CC members - additional fix for preview --- govtool/backend/sql/get-network-metrics.sql | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/govtool/backend/sql/get-network-metrics.sql b/govtool/backend/sql/get-network-metrics.sql index b3f3764a2..651f28a6d 100644 --- a/govtool/backend/sql/get-network-metrics.sql +++ b/govtool/backend/sql/get-network-metrics.sql @@ -22,13 +22,18 @@ CurrentEpoch AS ( SELECT MAX(no) AS no FROM epoch ), CommitteeMembers AS ( - SELECT DISTINCT ON (cm.committee_hash_id) - cm.id, - cm.expiration_epoch + SELECT + DISTINCT cm.committee_hash_id AS committee_members FROM committee_member cm - CROSS JOIN CurrentEpoch - WHERE - cm.expiration_epoch >= CurrentEpoch.no + JOIN committee c ON c.id = cm.committee_id + LEFT JOIN gov_action_proposal gap ON gap.id = c.gov_action_proposal_id + CROSS JOIN CurrentEpoch ce + WHERE ( + (c.gov_action_proposal_id IS NULL) + OR + (gap.enacted_epoch IS NOT NULL AND gap.enacted_epoch <= ce.no) + ) + AND cm.expiration_epoch >= ce.no ), NoOfCommitteeMembers AS ( SELECT COUNT(*) total FROM CommitteeMembers From ffbd69916067b5001c9599f13cd7dbd2bc85a4bf Mon Sep 17 00:00:00 2001 From: Miro Date: Fri, 19 Sep 2025 14:58:29 +0200 Subject: [PATCH 3/8] Fix/Issue 4062 Filter ans Sorting Icons goes to new line --- .../components/molecules/DataActionsBar.tsx | 17 ++- .../src/pages/DRepDirectoryContent.tsx | 140 +++++++++++------- 2 files changed, 95 insertions(+), 62 deletions(-) diff --git a/govtool/frontend/src/components/molecules/DataActionsBar.tsx b/govtool/frontend/src/components/molecules/DataActionsBar.tsx index b6672a968..88790149d 100644 --- a/govtool/frontend/src/components/molecules/DataActionsBar.tsx +++ b/govtool/frontend/src/components/molecules/DataActionsBar.tsx @@ -74,14 +74,16 @@ export const DataActionsBar: FC = ({ setChosenFilters?.((prev) => (prev ?? []).filter((k) => k !== key)); return ( - + = ({ borderColor: "#6E87D9", borderRadius: 50, boxShadow: "2px 2px 20px 0 rgba(0,0,0,0.05)", - fontSize: 11, + fontSize: { xs: 16, sm: 11 }, fontWeight: 500, height: 48, padding: "16px 24px", @@ -133,6 +135,7 @@ export const DataActionsBar: FC = ({ flex: "0 0 auto", flexShrink: 0, mt: { xs: 1, sm: 0 }, + mr: { xs: 2, sm: 0 }, }} > = ({ const [inProgressDelegationDRepData, setInProgressDelegationDRepData] = useState(undefined); - // Set initial filters and sort useEffect(() => { if (!lastPath.includes("drep_directory")) { setChosenFilters([DRepStatus.Active]); @@ -104,7 +103,7 @@ export const DRepDirectoryContent: FC = ({ baselineTotalForStatus, } = useGetDRepListPaginatedQuery( { - page: page - 1, // convert 1-based UI -> 0-based API + page: page - 1, pageSize, searchPhrase: debouncedSearchText, sorting: chosenSorting as DRepListSort, @@ -152,8 +151,13 @@ export const DRepDirectoryContent: FC = ({ AutomatedVotingOptionCurrentDelegation.drep_always_no_confidence); return ( - - {/* My delegation */} + {myDrep && !inProgressDelegation && currentDelegation && @@ -162,61 +166,65 @@ export const DRepDirectoryContent: FC = ({ - + + + )} {inProgressDelegation && inProgressDelegation !== myDRepId && inProgressDelegationDRepData && ( - + + + )} - {/* Automated voting options */} {isConnected && (
{t("dRepDirectory.delegationOptions")} - + + +
)} - {/* DRep list */} <> {t("dRepDirectory.listTitle")} @@ -266,11 +274,31 @@ export const DRepDirectoryContent: FC = ({ opacity: isPrev ? 0.5 : 1, transition: "opacity 0.2s", flex: 1, + width: "100%", + maxWidth: "100%", + overflowX: "hidden", }} > {filteredDoNotListDReps?.length === 0 && } {filteredDoNotListDReps?.map((dRep) => ( - + = ({ ))} - { - setPageSize(n); - setPage(1); - }} - /> + + { + setPageSize(n); + setPage(1); + }} + /> + ); From c1fe9a9cbcaf5d46bf51ebb69d515d19fc273048 Mon Sep 17 00:00:00 2001 From: Adam Tomaszczyk Date: Mon, 22 Sep 2025 11:17:09 +0200 Subject: [PATCH 4/8] Fix invalid signature display on GA details authors --- govtool/frontend/src/utils/validateSignature.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/govtool/frontend/src/utils/validateSignature.ts b/govtool/frontend/src/utils/validateSignature.ts index b39d274ea..cd6e7d2a8 100644 --- a/govtool/frontend/src/utils/validateSignature.ts +++ b/govtool/frontend/src/utils/validateSignature.ts @@ -24,11 +24,11 @@ export const validateSignature = async ({ switch (algorithm) { case "ed25519": case "Ed25519": { - return verifyEd25519Signature(signature, messageHash, publicKey); + return await verifyEd25519Signature(signature, messageHash, publicKey); } case "CIP-8": case "CIP-0008": { - return verifyCIP8Signature(signature, messageHash, publicKey); + return await verifyCIP8Signature(signature, messageHash, publicKey); } default: console.error("Unsupported algorithm:", algorithm); From 475fc4440fdbcbe124a8b5d7e8f71fce848f8b6f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:11:10 +0000 Subject: [PATCH 5/8] chore: update @intersect.mbo/pdf-ui to 1.0.15-beta --- govtool/frontend/package-lock.json | 8 ++++---- govtool/frontend/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/govtool/frontend/package-lock.json b/govtool/frontend/package-lock.json index aa7470bca..4b6e6afcc 100644 --- a/govtool/frontend/package-lock.json +++ b/govtool/frontend/package-lock.json @@ -15,7 +15,7 @@ "@hookform/resolvers": "^3.3.1", "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.9", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", - "@intersect.mbo/pdf-ui": "1.0.14-beta", + "@intersect.mbo/pdf-ui": "1.0.15-beta", "@mui/icons-material": "^5.14.3", "@mui/material": "^5.14.4", "@noble/ed25519": "^2.3.0", @@ -3426,9 +3426,9 @@ "license": "ISC" }, "node_modules/@intersect.mbo/pdf-ui": { - "version": "1.0.14-beta", - "resolved": "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-1.0.14-beta.tgz", - "integrity": "sha512-d+soKsSE6xbNAmjqjZfs1HEsYLJeE9UTlM91kpMtujEeTTZDyg+EwbyjZ5a1ZpRZCD0D7j6tg69muSHxrz6BLg==", + "version": "1.0.15-beta", + "resolved": "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-1.0.15-beta.tgz", + "integrity": "sha512-Yzve799kMvCA5/9k3yyUmOyOAkpQuro9wo7PiF3Ham9QYjTuygb9QXEbeyCM0d5ofTePmnMKEqiFZ4x9AmTuIg==", "dependencies": { "@emurgo/cardano-serialization-lib-asmjs": "^12.0.0-beta.2", "@fontsource/poppins": "^5.0.14", diff --git a/govtool/frontend/package.json b/govtool/frontend/package.json index 578e6c801..a23ab3685 100644 --- a/govtool/frontend/package.json +++ b/govtool/frontend/package.json @@ -29,7 +29,7 @@ "@hookform/resolvers": "^3.3.1", "@intersect.mbo/govtool-outcomes-pillar-ui": "v1.5.9", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", - "@intersect.mbo/pdf-ui": "1.0.14-beta", + "@intersect.mbo/pdf-ui": "1.0.15-beta", "@mui/icons-material": "^5.14.3", "@mui/material": "^5.14.4", "@noble/ed25519": "^2.3.0", From 8281505d921b57cd11ca1a03ae24b98c9fa04ea4 Mon Sep 17 00:00:00 2001 From: Miro Date: Mon, 22 Sep 2025 19:09:19 +0200 Subject: [PATCH 6/8] Fix/Issue 4094 - Problem with cuting of DrepCard --- .../src/pages/DRepDirectoryContent.tsx | 160 +++++++++--------- 1 file changed, 82 insertions(+), 78 deletions(-) diff --git a/govtool/frontend/src/pages/DRepDirectoryContent.tsx b/govtool/frontend/src/pages/DRepDirectoryContent.tsx index 4ba2aa9be..97ea2ae88 100644 --- a/govtool/frontend/src/pages/DRepDirectoryContent.tsx +++ b/govtool/frontend/src/pages/DRepDirectoryContent.tsx @@ -150,13 +150,20 @@ export const DRepDirectoryContent: FC = ({ currentDelegation?.dRepView === AutomatedVotingOptionCurrentDelegation.drep_always_no_confidence); + const scaleWrapSx = { + width: "100%", + transform: { xs: "scale(0.90)", sm: "scale(0.90)", md: "none" }, + transformOrigin: { xs: "top left", sm: "top left", md: "initial" }, + ml: { xs: 0.25, sm: 0.25, md: 0 }, + } as const; + return ( {myDrep && !inProgressDelegation && @@ -166,26 +173,31 @@ export const DRepDirectoryContent: FC = ({ - - + + + + )} + {inProgressDelegation && inProgressDelegation !== myDRepId && inProgressDelegationDRepData && ( - - + + + + )} @@ -194,34 +206,32 @@ export const DRepDirectoryContent: FC = ({ {t("dRepDirectory.delegationOptions")} - - - + )} @@ -271,52 +281,46 @@ export const DRepDirectoryContent: FC = ({ mt={showSearchSummary ? 0 : 4} p={0} sx={{ - opacity: isPrev ? 0.5 : 1, - transition: "opacity 0.2s", flex: 1, width: "100%", maxWidth: "100%", - overflowX: "hidden", }} > {filteredDoNotListDReps?.length === 0 && } {filteredDoNotListDReps?.map((dRep) => ( - - { - setInProgressDelegationDRepData(dRep); - delegate(dRep.drepId); - }} - /> + + + + { + setInProgressDelegationDRepData(dRep); + delegate(dRep.drepId); + }} + /> + + ))} - + Date: Mon, 22 Sep 2025 22:58:35 +0200 Subject: [PATCH 7/8] Fix/Issue 4094 - Problem with cuting of DrepCard --- .../src/pages/DRepDirectoryContent.tsx | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/govtool/frontend/src/pages/DRepDirectoryContent.tsx b/govtool/frontend/src/pages/DRepDirectoryContent.tsx index 97ea2ae88..e7559d247 100644 --- a/govtool/frontend/src/pages/DRepDirectoryContent.tsx +++ b/govtool/frontend/src/pages/DRepDirectoryContent.tsx @@ -150,12 +150,19 @@ export const DRepDirectoryContent: FC = ({ currentDelegation?.dRepView === AutomatedVotingOptionCurrentDelegation.drep_always_no_confidence); - const scaleWrapSx = { - width: "100%", - transform: { xs: "scale(0.90)", sm: "scale(0.90)", md: "none" }, - transformOrigin: { xs: "top left", sm: "top left", md: "initial" }, - ml: { xs: 0.25, sm: 0.25, md: 0 }, - } as const; + const scaleWrapSx = isConnected + ? ({ + width: "100%", + transform: { xs: "scale(0.9)", sm: "scale(0.9)", md: "none" }, + transformOrigin: { xs: "top center", sm: "top center", md: "initial" }, + ml: { xs: 0.25, sm: 0.25, md: 0 }, + } as const) + : ({ + width: "100%", + transform: { xs: "scale(0.9)", sm: "scale(0.9)", md: "none" }, + transformOrigin: { xs: "top left", sm: "top left", md: "initial" }, + ml: { xs: 0.25, sm: 0.25, md: 0 }, + } as const); return ( = ({ Date: Thu, 25 Sep 2025 07:04:11 +0200 Subject: [PATCH 8/8] update the banner text for Treasury Withdrawal --- .../MaintenanceEndingBanner.tsx | 15 ++++++++++++++- govtool/frontend/src/i18n/locales/en.json | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/govtool/frontend/src/components/organisms/MaintenanceEndingBanner/MaintenanceEndingBanner.tsx b/govtool/frontend/src/components/organisms/MaintenanceEndingBanner/MaintenanceEndingBanner.tsx index 87ff9935c..6339a738e 100644 --- a/govtool/frontend/src/components/organisms/MaintenanceEndingBanner/MaintenanceEndingBanner.tsx +++ b/govtool/frontend/src/components/organisms/MaintenanceEndingBanner/MaintenanceEndingBanner.tsx @@ -102,7 +102,20 @@ export const MaintenanceEndingBanner = () => { color="common.white" mb={0.5} > - {t("system.maintenanceEnding.description2")} + , + ]} + />
diff --git a/govtool/frontend/src/i18n/locales/en.json b/govtool/frontend/src/i18n/locales/en.json index b5240664c..4a5b42401 100644 --- a/govtool/frontend/src/i18n/locales/en.json +++ b/govtool/frontend/src/i18n/locales/en.json @@ -796,9 +796,9 @@ "title": "This tool is connected to {{networkName}}", "bootstrappingWarning": "Govtool is in the Bootstrapping phase. Some features are not available. Learn more", "maintenanceEnding": { - "title": "\uD83D\uDCA1 Next Step: Treasury Withdrawal based on your feedback is coming soon", + "title": "\uD83D\uDCA1 Next Step: Treasury Withdrawal based on your feedback has been submitted", "description1": "<0>The Info Action has passed — thank you for your support!", - "description2": "We’re now preparing a Treasury Withdrawal proposal that reflects the feedback gathered during the voting phase to ensure continued development and maintenance of GovTool as a community-owned governance interface on Cardano." + "description2": "We have now submitted a <0>Treasury Withdrawal that reflects the feedback gathered during the voting phase to ensure continued development and maintenance of GovTool as a community-owned governance interface on Cardano." } }, "tooltips": {