diff --git a/CHANGELOG.md b/CHANGELOG.md
index c924719a9..d57df4a30 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,17 @@ changes.
## [Unreleased]
+### Added
+
+### Fixed
+
+### Changed
+
+### Removed
+
+## [v2.0.13](https://github.com/IntersectMBO/govtool/releases/tag/v2.0.13) 2025-02-27
+
+
### Added
### Fixed
@@ -17,6 +28,7 @@ changes.
- Fix responsive error on menu [Issue 3055](https://github.com/IntersectMBO/govtool/issues/3055)
- Fix wrong placement of nav items in disconnected menu [Issue 3057](https://github.com/IntersectMBO/govtool/issues/3057)
- Fix missing subtraction withdrawals from ada holder balance [Issue 3061](https://github.com/IntersectMBO/govtool/issues/3061)
+- Fix displaying voting power on direct voter cards
### Changed
diff --git a/govtool/backend/Dockerfile b/govtool/backend/Dockerfile
index 1f82a32e1..ed83270f4 100644
--- a/govtool/backend/Dockerfile
+++ b/govtool/backend/Dockerfile
@@ -4,4 +4,4 @@ FROM $BASE_IMAGE_REPO:$BASE_IMAGE_TAG
WORKDIR /src
COPY . .
RUN cabal build
-RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.12/x/vva-be/build/vva-be/vva-be /usr/local/bin
+RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.13/x/vva-be/build/vva-be/vva-be /usr/local/bin
diff --git a/govtool/backend/Dockerfile.qovery b/govtool/backend/Dockerfile.qovery
index 43357eba7..ef1aa8c9d 100644
--- a/govtool/backend/Dockerfile.qovery
+++ b/govtool/backend/Dockerfile.qovery
@@ -4,7 +4,7 @@ FROM $BASE_IMAGE_REPO:$BASE_IMAGE_TAG
WORKDIR /src
COPY . .
RUN cabal build
-RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.12/x/vva-be/build/vva-be/vva-be /usr/local/bin
+RUN cp dist-newstyle/build/x86_64-linux/ghc-9.2.7/vva-be-2.0.13/x/vva-be/build/vva-be/vva-be /usr/local/bin
# Expose the necessary port
EXPOSE 9876
diff --git a/govtool/backend/vva-be.cabal b/govtool/backend/vva-be.cabal
index 96de6d4d8..424df400a 100644
--- a/govtool/backend/vva-be.cabal
+++ b/govtool/backend/vva-be.cabal
@@ -1,6 +1,6 @@
cabal-version: 3.6
name: vva-be
-version: 2.0.12
+version: 2.0.13
-- A short (one-line) description of the package.
-- synopsis:
diff --git a/govtool/frontend/package-lock.json b/govtool/frontend/package-lock.json
index 4052a8467..a7a080c3e 100644
--- a/govtool/frontend/package-lock.json
+++ b/govtool/frontend/package-lock.json
@@ -1,19 +1,19 @@
{
"name": "@govtool/frontend",
- "version": "2.0.12",
+ "version": "2.0.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@govtool/frontend",
- "version": "2.0.12",
+ "version": "2.0.13",
"hasInstallScript": true,
"dependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@emurgo/cardano-serialization-lib-asmjs": "^12.1.1",
"@hookform/resolvers": "^3.3.1",
- "@intersect.mbo/govtool-outcomes-pillar-ui": "1.2.3",
+ "@intersect.mbo/govtool-outcomes-pillar-ui": "1.2.4",
"@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8",
"@intersect.mbo/pdf-ui": "0.6.4",
"@mui/icons-material": "^5.14.3",
@@ -3389,9 +3389,9 @@
}
},
"node_modules/@intersect.mbo/govtool-outcomes-pillar-ui": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@intersect.mbo/govtool-outcomes-pillar-ui/-/govtool-outcomes-pillar-ui-1.2.3.tgz",
- "integrity": "sha512-QWJuFaSs7WsjZBtpQasvW86URPNZvaUPPe5kKIl5/UhSlm5fCRrnwZySHDlqsFDl+6dffrtWMLo3g6LGTp4/rw==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@intersect.mbo/govtool-outcomes-pillar-ui/-/govtool-outcomes-pillar-ui-1.2.4.tgz",
+ "integrity": "sha512-MQdbU2cQ4l5lUab+5WmugwzbgSrujnGoA6gZO297y2l/ZxAtX/PNjxm//F+G5CJuupl1lYEhRoo/WGE87oUOng==",
"license": "ISC",
"dependencies": {
"@fontsource/poppins": "^5.0.14",
diff --git a/govtool/frontend/package.json b/govtool/frontend/package.json
index 5c412d633..e4aef28b8 100644
--- a/govtool/frontend/package.json
+++ b/govtool/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "@govtool/frontend",
"private": true,
- "version": "2.0.12",
+ "version": "2.0.13",
"type": "module",
"scripts": {
"build": "vite build",
@@ -27,7 +27,7 @@
"@emotion/styled": "^11.11.0",
"@emurgo/cardano-serialization-lib-asmjs": "^12.1.1",
"@hookform/resolvers": "^3.3.1",
- "@intersect.mbo/govtool-outcomes-pillar-ui": "1.2.3",
+ "@intersect.mbo/govtool-outcomes-pillar-ui": "1.2.4",
"@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8",
"@intersect.mbo/pdf-ui": "0.6.4",
"@mui/icons-material": "^5.14.3",
diff --git a/govtool/frontend/src/components/organisms/DashboardCards.tsx b/govtool/frontend/src/components/organisms/DashboardCards.tsx
index c08ba5278..0f43562e6 100644
--- a/govtool/frontend/src/components/organisms/DashboardCards.tsx
+++ b/govtool/frontend/src/components/organisms/DashboardCards.tsx
@@ -71,7 +71,7 @@ export const DashboardCards = () => {
+ ) : (
+
),
state: "active",
transactionId: voter?.soleVoterRegisterTxHash,
diff --git a/govtool/frontend/src/i18n/locales/en.json b/govtool/frontend/src/i18n/locales/en.json
index d6b2aa5fb..aff44b6d0 100644
--- a/govtool/frontend/src/i18n/locales/en.json
+++ b/govtool/frontend/src/i18n/locales/en.json
@@ -89,6 +89,7 @@
},
"directVoter": {
"isRegisteredDescription": "Your Voting Power of ₳{{votingPower}} can be used to vote.",
+ "isRegisteredDescriptionWithoutVotingPower": "You can vote on Governance Actions.",
"register": "Register",
"registerDescription": "Register to Vote on Governance Actions.",
"registerTitle": "Become a Direct Voter",
diff --git a/govtool/frontend/src/pages/RegisterAsDirectVoter.tsx b/govtool/frontend/src/pages/RegisterAsDirectVoter.tsx
index 7255e9826..cc2e0f118 100644
--- a/govtool/frontend/src/pages/RegisterAsDirectVoter.tsx
+++ b/govtool/frontend/src/pages/RegisterAsDirectVoter.tsx
@@ -13,12 +13,12 @@ import {
useWalletErrorModal,
} from "@hooks";
import { CenteredBoxBottomButtons, CenteredBoxPageWrapper } from "@molecules";
-import { checkIsWalletConnected, openInNewTab } from "@utils";
+import { checkIsWalletConnected, correctAdaFormat, openInNewTab } from "@utils";
import { WrongRouteInfo } from "@organisms";
import { CertificatesBuilder } from "@emurgo/cardano-serialization-lib-asmjs";
export const RegisterAsDirectVoter = () => {
- const { cExplorerBaseUrl } = useAppContext();
+ const { cExplorerBaseUrl, epochParams } = useAppContext();
const navigate = useNavigate();
const [isLoading, setIsLoading] = useState(false);
const { t } = useTranslation();
@@ -148,6 +148,10 @@ export const RegisterAsDirectVoter = () => {
key="0"
/>,
]}
+ values={{
+ deposit:
+ correctAdaFormat(epochParams?.drep_deposit ?? undefined) ?? 500,
+ }}
/>
=0.12 <1":
- version "0.24.2"
- resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz"
- integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==
+"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", esbuild@^0.25.0, "esbuild@>=0.12 <1":
+ version "0.25.0"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz"
+ integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==
optionalDependencies:
- "@esbuild/aix-ppc64" "0.24.2"
- "@esbuild/android-arm" "0.24.2"
- "@esbuild/android-arm64" "0.24.2"
- "@esbuild/android-x64" "0.24.2"
- "@esbuild/darwin-arm64" "0.24.2"
- "@esbuild/darwin-x64" "0.24.2"
- "@esbuild/freebsd-arm64" "0.24.2"
- "@esbuild/freebsd-x64" "0.24.2"
- "@esbuild/linux-arm" "0.24.2"
- "@esbuild/linux-arm64" "0.24.2"
- "@esbuild/linux-ia32" "0.24.2"
- "@esbuild/linux-loong64" "0.24.2"
- "@esbuild/linux-mips64el" "0.24.2"
- "@esbuild/linux-ppc64" "0.24.2"
- "@esbuild/linux-riscv64" "0.24.2"
- "@esbuild/linux-s390x" "0.24.2"
- "@esbuild/linux-x64" "0.24.2"
- "@esbuild/netbsd-arm64" "0.24.2"
- "@esbuild/netbsd-x64" "0.24.2"
- "@esbuild/openbsd-arm64" "0.24.2"
- "@esbuild/openbsd-x64" "0.24.2"
- "@esbuild/sunos-x64" "0.24.2"
- "@esbuild/win32-arm64" "0.24.2"
- "@esbuild/win32-ia32" "0.24.2"
- "@esbuild/win32-x64" "0.24.2"
+ "@esbuild/aix-ppc64" "0.25.0"
+ "@esbuild/android-arm" "0.25.0"
+ "@esbuild/android-arm64" "0.25.0"
+ "@esbuild/android-x64" "0.25.0"
+ "@esbuild/darwin-arm64" "0.25.0"
+ "@esbuild/darwin-x64" "0.25.0"
+ "@esbuild/freebsd-arm64" "0.25.0"
+ "@esbuild/freebsd-x64" "0.25.0"
+ "@esbuild/linux-arm" "0.25.0"
+ "@esbuild/linux-arm64" "0.25.0"
+ "@esbuild/linux-ia32" "0.25.0"
+ "@esbuild/linux-loong64" "0.25.0"
+ "@esbuild/linux-mips64el" "0.25.0"
+ "@esbuild/linux-ppc64" "0.25.0"
+ "@esbuild/linux-riscv64" "0.25.0"
+ "@esbuild/linux-s390x" "0.25.0"
+ "@esbuild/linux-x64" "0.25.0"
+ "@esbuild/netbsd-arm64" "0.25.0"
+ "@esbuild/netbsd-x64" "0.25.0"
+ "@esbuild/openbsd-arm64" "0.25.0"
+ "@esbuild/openbsd-x64" "0.25.0"
+ "@esbuild/sunos-x64" "0.25.0"
+ "@esbuild/win32-arm64" "0.25.0"
+ "@esbuild/win32-ia32" "0.25.0"
+ "@esbuild/win32-x64" "0.25.0"
esbuild@^0.21.3:
version "0.21.5"
@@ -6352,6 +6361,37 @@ esbuild@^0.21.3:
"@esbuild/win32-ia32" "0.21.5"
"@esbuild/win32-x64" "0.21.5"
+esbuild@^0.24.2:
+ version "0.24.2"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz"
+ integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.24.2"
+ "@esbuild/android-arm" "0.24.2"
+ "@esbuild/android-arm64" "0.24.2"
+ "@esbuild/android-x64" "0.24.2"
+ "@esbuild/darwin-arm64" "0.24.2"
+ "@esbuild/darwin-x64" "0.24.2"
+ "@esbuild/freebsd-arm64" "0.24.2"
+ "@esbuild/freebsd-x64" "0.24.2"
+ "@esbuild/linux-arm" "0.24.2"
+ "@esbuild/linux-arm64" "0.24.2"
+ "@esbuild/linux-ia32" "0.24.2"
+ "@esbuild/linux-loong64" "0.24.2"
+ "@esbuild/linux-mips64el" "0.24.2"
+ "@esbuild/linux-ppc64" "0.24.2"
+ "@esbuild/linux-riscv64" "0.24.2"
+ "@esbuild/linux-s390x" "0.24.2"
+ "@esbuild/linux-x64" "0.24.2"
+ "@esbuild/netbsd-arm64" "0.24.2"
+ "@esbuild/netbsd-x64" "0.24.2"
+ "@esbuild/openbsd-arm64" "0.24.2"
+ "@esbuild/openbsd-x64" "0.24.2"
+ "@esbuild/sunos-x64" "0.24.2"
+ "@esbuild/win32-arm64" "0.24.2"
+ "@esbuild/win32-ia32" "0.24.2"
+ "@esbuild/win32-x64" "0.24.2"
+
escalade@^3.1.1, escalade@^3.2.0:
version "3.2.0"
resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
@@ -7408,9 +7448,9 @@ graphemer@^1.4.0:
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
graphql@^16.8.1:
- version "16.9.0"
- resolved "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz"
- integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==
+ version "16.10.0"
+ resolved "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz"
+ integrity sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==
gzip-size@^6.0.0:
version "6.0.0"
@@ -10669,9 +10709,9 @@ ms@2.0.0:
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
msw@^2.4.9, msw@^2.6.4:
- version "2.6.8"
- resolved "https://registry.npmjs.org/msw/-/msw-2.6.8.tgz"
- integrity sha512-nxXxnH6WALZ9a7rsQp4HU2AaD4iGAiouMmE/MY4al7pXTibgA6OZOuKhmN2WBIM6w9qMKwRtX8p2iOb45B2M/Q==
+ version "2.7.3"
+ resolved "https://registry.npmjs.org/msw/-/msw-2.7.3.tgz"
+ integrity sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==
dependencies:
"@bundled-es-modules/cookie" "^2.0.1"
"@bundled-es-modules/statuses" "^1.0.1"
@@ -10682,12 +10722,12 @@ msw@^2.4.9, msw@^2.6.4:
"@open-draft/until" "^2.1.0"
"@types/cookie" "^0.6.0"
"@types/statuses" "^2.0.4"
- chalk "^4.1.2"
graphql "^16.8.1"
headers-polyfill "^4.0.2"
is-node-process "^1.2.0"
outvariant "^1.4.3"
path-to-regexp "^6.3.0"
+ picocolors "^1.1.1"
strict-event-emitter "^0.5.1"
type-fest "^4.26.1"
yargs "^17.7.2"
@@ -13042,9 +13082,9 @@ semver@^7.6.0:
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
semver@^7.6.2:
- version "7.6.3"
- resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz"
- integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+ version "7.7.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
+ integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
send@0.19.0:
version "0.19.0"
@@ -13449,11 +13489,11 @@ storybook-addon-module-mock@^1.3.4:
react-json-tree "^0.19.0"
"storybook@^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0", storybook@^8.4.7:
- version "8.4.7"
- resolved "https://registry.npmjs.org/storybook/-/storybook-8.4.7.tgz"
- integrity sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==
+ version "8.6.0"
+ resolved "https://registry.npmjs.org/storybook/-/storybook-8.6.0.tgz"
+ integrity sha512-NEHCK2nXogw7WxAkJfMwPnc5Cmh/KqVNrdaFeXBAKhC2Zr1FTZIiCR5nSUT85run44Wkpmo7qvUoKvII9GOWbA==
dependencies:
- "@storybook/core" "8.4.7"
+ "@storybook/core" "8.6.0"
strict-event-emitter@^0.5.1:
version "0.5.1"
@@ -14151,9 +14191,9 @@ type-fest@^2.19.0, "type-fest@>=0.17.0 <5.0.0":
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
type-fest@^4.26.1:
- version "4.30.0"
- resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz"
- integrity sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==
+ version "4.35.0"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz"
+ integrity sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==
type-is@~1.6.18:
version "1.6.18"
@@ -14597,10 +14637,10 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
-vite-node@2.1.8:
- version "2.1.8"
- resolved "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz"
- integrity sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==
+vite-node@2.1.9:
+ version "2.1.9"
+ resolved "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz"
+ integrity sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==
dependencies:
cac "^6.7.14"
debug "^4.3.7"
@@ -14649,18 +14689,18 @@ vite@^5.0.0:
optionalDependencies:
fsevents "~2.3.3"
-vitest@^2.1.1, vitest@^2.1.8, vitest@2.1.8:
- version "2.1.8"
- resolved "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz"
- integrity sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==
- dependencies:
- "@vitest/expect" "2.1.8"
- "@vitest/mocker" "2.1.8"
- "@vitest/pretty-format" "^2.1.8"
- "@vitest/runner" "2.1.8"
- "@vitest/snapshot" "2.1.8"
- "@vitest/spy" "2.1.8"
- "@vitest/utils" "2.1.8"
+vitest@^2.1.1, vitest@^2.1.8, vitest@2.1.9:
+ version "2.1.9"
+ resolved "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz"
+ integrity sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==
+ dependencies:
+ "@vitest/expect" "2.1.9"
+ "@vitest/mocker" "2.1.9"
+ "@vitest/pretty-format" "^2.1.9"
+ "@vitest/runner" "2.1.9"
+ "@vitest/snapshot" "2.1.9"
+ "@vitest/spy" "2.1.9"
+ "@vitest/utils" "2.1.9"
chai "^5.1.2"
debug "^4.3.7"
expect-type "^1.1.0"
@@ -14672,7 +14712,7 @@ vitest@^2.1.1, vitest@^2.1.8, vitest@2.1.8:
tinypool "^1.0.1"
tinyrainbow "^1.2.0"
vite "^5.0.0"
- vite-node "2.1.8"
+ vite-node "2.1.9"
why-is-node-running "^2.3.0"
void-elements@3.1.0:
diff --git a/govtool/metadata-validation/package-lock.json b/govtool/metadata-validation/package-lock.json
index 27c9d4c2d..f73754499 100644
--- a/govtool/metadata-validation/package-lock.json
+++ b/govtool/metadata-validation/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@govtool/metadata-validation",
- "version": "2.0.12",
+ "version": "2.0.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@govtool/metadata-validation",
- "version": "2.0.12",
+ "version": "2.0.13",
"license": "UNLICENSED",
"dependencies": {
"@nestjs/axios": "^3.0.2",
diff --git a/govtool/metadata-validation/package.json b/govtool/metadata-validation/package.json
index 7747d1e2f..fbff957c3 100644
--- a/govtool/metadata-validation/package.json
+++ b/govtool/metadata-validation/package.json
@@ -1,6 +1,6 @@
{
"name": "@govtool/metadata-validation",
- "version": "2.0.12",
+ "version": "2.0.13",
"description": "",
"author": "",
"private": true,
diff --git a/govtool/metadata-validation/src/main.ts b/govtool/metadata-validation/src/main.ts
index f0d2192b5..fa8f907c4 100644
--- a/govtool/metadata-validation/src/main.ts
+++ b/govtool/metadata-validation/src/main.ts
@@ -13,7 +13,7 @@ async function bootstrap() {
const config = new DocumentBuilder()
.setTitle('Metadata Validation Tool')
.setDescription('The Metadata Validation Tool API description')
- .setVersion("2.0.12")
+ .setVersion("2.0.13")
.build();
const document = SwaggerModule.createDocument(app, config);
diff --git a/tests/govtool-frontend/playwright/lib/helpers/dRep.ts b/tests/govtool-frontend/playwright/lib/helpers/dRep.ts
index 99ba31215..bbe9f56ff 100644
--- a/tests/govtool-frontend/playwright/lib/helpers/dRep.ts
+++ b/tests/govtool-frontend/playwright/lib/helpers/dRep.ts
@@ -1,8 +1,9 @@
import DRepDirectoryPage from "@pages/dRepDirectoryPage";
-import { Page } from "@playwright/test";
+import { expect, Page } from "@playwright/test";
import { IDRep } from "@types";
import { bech32 } from "bech32";
import * as crypto from "crypto";
+import { functionWaitedAssert } from "./waitedLoop";
export async function fetchFirstActiveDRepDetails(page: Page) {
let dRepGivenName: string;
@@ -14,7 +15,10 @@ export async function fetchFirstActiveDRepDetails(page: Page) {
const response = await route.fetch();
const json = await response.json();
const elements = json["elements"].filter(
- (element: IDRep) => element.givenName != null && !element.isScriptBased
+ (element: IDRep) =>
+ element.givenName != null &&
+ !element.isScriptBased &&
+ element.status == "Active"
);
dRepGivenName =
elements[Math.floor(Math.random() * elements.length)]["givenName"];
@@ -31,11 +35,23 @@ export async function fetchFirstActiveDRepDetails(page: Page) {
"**/drep/list?page=0&pageSize=10&sort=Random&**"
);
- dRepDirectoryPage = new DRepDirectoryPage(page);
- await dRepDirectoryPage.goto();
- await responsePromise;
+ await functionWaitedAssert(
+ async () => {
+ dRepDirectoryPage = new DRepDirectoryPage(page);
+ await dRepDirectoryPage.goto();
+ await responsePromise;
- await dRepDirectoryPage.searchInput.click();
+ await dRepDirectoryPage.searchInput.click();
+ await dRepDirectoryPage.searchInput.fill(dRepId);
+ await expect(page.getByTestId(`${dRepId}-copy-id-button`)).toBeVisible({
+ timeout: 20_000,
+ });
+ },
+ {
+ name: "because the selected dRep ID has the 'doNotList' flag set to true",
+ message: "DRep not found",
+ }
+ );
return { dRepGivenName, dRepId, dRepDirectoryPage };
}
diff --git a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts
index 25739eb5c..9b991580a 100644
--- a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts
+++ b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts
@@ -140,7 +140,7 @@ export default class ProposalSubmissionPage {
const dRepMetadata = await this.downloadVoteMetadata();
const url = await metadataBucketService.uploadMetadata(
- dRepMetadata.name,
+ faker.lorem.word({ length: { min: 5, max: 10 } }),
dRepMetadata.data
);
await this.metadataUrlInput.fill(url);
diff --git a/tests/govtool-frontend/playwright/lib/walletManager.ts b/tests/govtool-frontend/playwright/lib/walletManager.ts
index af0d08854..ad6401b5c 100644
--- a/tests/govtool-frontend/playwright/lib/walletManager.ts
+++ b/tests/govtool-frontend/playwright/lib/walletManager.ts
@@ -32,7 +32,7 @@ class WalletManager {
}
async readWallets(purpose: Purpose): Promise {
- return await getFile(`${purpose}Wallets.json`);
+ return (await getFile(`${purpose}Wallets.json`)) ?? [];
}
async removeCopyWallet(walletToRemove: StaticWallet, purpose: Purpose) {