diff --git a/.github/workflows/flow-and-lint.yml b/.github/workflows/flow-and-lint.yml
index 85b6cdfab6..c53ccaf7c8 100644
--- a/.github/workflows/flow-and-lint.yml
+++ b/.github/workflows/flow-and-lint.yml
@@ -1,4 +1,4 @@
-name: Flow and lint
+name: Flow and Lint and TSC
on:
workflow_dispatch:
@@ -43,4 +43,7 @@ jobs:
npm run flow
- name: lint
run: |
- npm run eslint
\ No newline at end of file
+ npm run eslint
+ - name: tsc
+ run: |
+ npm run tsc
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 146d983e00..347135abdb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -116,9 +116,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.25.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz",
- "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==",
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
+ "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.14.0"
@@ -137,24 +137,27 @@
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
- "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -1570,16 +1573,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.0.tgz",
- "integrity": "sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz",
+ "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/type-utils": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/scope-manager": "8.16.0",
+ "@typescript-eslint/type-utils": "8.16.0",
+ "@typescript-eslint/utils": "8.16.0",
+ "@typescript-eslint/visitor-keys": "8.16.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -1603,15 +1606,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.0.tgz",
- "integrity": "sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz",
+ "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/typescript-estree": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/scope-manager": "8.16.0",
+ "@typescript-eslint/types": "8.16.0",
+ "@typescript-eslint/typescript-estree": "8.16.0",
+ "@typescript-eslint/visitor-keys": "8.16.0",
"debug": "^4.3.4"
},
"engines": {
@@ -1631,13 +1634,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.0.tgz",
- "integrity": "sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz",
+ "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0"
+ "@typescript-eslint/types": "8.16.0",
+ "@typescript-eslint/visitor-keys": "8.16.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1648,13 +1651,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.0.tgz",
- "integrity": "sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz",
+ "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
+ "@typescript-eslint/typescript-estree": "8.16.0",
+ "@typescript-eslint/utils": "8.16.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -1665,6 +1668,9 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0"
+ },
"peerDependenciesMeta": {
"typescript": {
"optional": true
@@ -1672,9 +1678,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.0.tgz",
- "integrity": "sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz",
+ "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1685,13 +1691,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.0.tgz",
- "integrity": "sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz",
+ "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/types": "8.16.0",
+ "@typescript-eslint/visitor-keys": "8.16.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -1737,15 +1743,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.0.tgz",
- "integrity": "sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz",
+ "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/typescript-estree": "8.8.0"
+ "@typescript-eslint/scope-manager": "8.16.0",
+ "@typescript-eslint/types": "8.16.0",
+ "@typescript-eslint/typescript-estree": "8.16.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1756,16 +1762,21 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.0.tgz",
- "integrity": "sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz",
+ "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "8.16.0",
+ "eslint-visitor-keys": "^4.2.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1775,6 +1786,18 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
@@ -3106,9 +3129,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
- "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+ "version": "5.17.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.4",
@@ -3285,9 +3308,9 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -6673,9 +6696,9 @@
"dev": true
},
"node_modules/picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true
},
"node_modules/picomatch": {
@@ -8125,9 +8148,9 @@
}
},
"node_modules/ts-api-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz",
+ "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==",
"dev": true,
"engines": {
"node": ">=16"
diff --git a/packages/e2e-tests/package-lock.json b/packages/e2e-tests/package-lock.json
index 284e8c0295..f7064c2d92 100644
--- a/packages/e2e-tests/package-lock.json
+++ b/packages/e2e-tests/package-lock.json
@@ -41,7 +41,7 @@
"@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.26",
"bignumber.js": "^9.1.2",
"chai": "^4.3.10",
- "chromedriver": "130.0.1",
+ "chromedriver": "131.0.0",
"cross-env": "^7.0.3",
"json-server": "^0.17.4",
"mocha": "^10.2.0",
@@ -450,9 +450,9 @@
}
},
"node_modules/chromedriver": {
- "version": "130.0.1",
- "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-130.0.1.tgz",
- "integrity": "sha512-JH+OxDZ7gVv02r9oXwj4mQ8JCtj62g0fCD1LMUUYdB/4mPxn/E2ys+1IzXItoE7vXM9fGVc9R1akvXLqwwuSww==",
+ "version": "131.0.0",
+ "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.0.tgz",
+ "integrity": "sha512-ukYmdCox2eRsjpCYUB4AOLV1fSfWQ1ZPfcUc0PIUWZKoyjyXKEl8i4DJ14bcNzNbEvaVx2Z2pnx/nLK2CM+ruQ==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json
index 7498dade11..7d9dfc8772 100644
--- a/packages/e2e-tests/package.json
+++ b/packages/e2e-tests/package.json
@@ -47,7 +47,7 @@
"@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.26",
"bignumber.js": "^9.1.2",
"chai": "^4.3.10",
- "chromedriver": "130.0.1",
+ "chromedriver": "131.0.0",
"cross-env": "^7.0.3",
"json-server": "^0.17.4",
"mocha": "^10.2.0",
diff --git a/packages/yoroi-extension/.gitignore b/packages/yoroi-extension/.gitignore
index e5f88b3bce..fad4529c33 100644
--- a/packages/yoroi-extension/.gitignore
+++ b/packages/yoroi-extension/.gitignore
@@ -45,4 +45,6 @@ Yoroi Shelley Testnet
.netlify
# SSL overrides for DEV
-scripts/sslOverrides.js
\ No newline at end of file
+scripts/sslOverrides.js
+
+app/UI/**/*.d.ts
diff --git a/packages/yoroi-extension/app/UI/components/BackButton.tsx b/packages/yoroi-extension/app/UI/components/BackButton.tsx
new file mode 100644
index 0000000000..7f50212dbb
--- /dev/null
+++ b/packages/yoroi-extension/app/UI/components/BackButton.tsx
@@ -0,0 +1,26 @@
+import { Button, Typography } from '@mui/material';
+import { styled } from '@mui/material/styles';
+import React from 'react';
+import { ReactComponent as BackIcon } from '../../assets/images/assets-page/back-arrow.inline.svg';
+
+const SButton = styled(Button)(({ theme }: any) => ({
+ color: theme.palette.ds.el_gray_medium,
+ '&.MuiButton-sizeMedium': {
+ padding: '13px 16px',
+ },
+ '& svg': {
+ '& path': {
+ fill: theme.palette.ds.el_gray_medium,
+ },
+ },
+}));
+
+export const BackButton = ({ label, onAction }: { label: string; onAction: () => void }) => {
+ return (
+ }>
+
+ {label}
+
+
+ );
+};
diff --git a/packages/yoroi-extension/app/UI/components/Collapsible/Collapsible.tsx b/packages/yoroi-extension/app/UI/components/Collapsible/Collapsible.tsx
index f587de6765..0d635d7d0c 100644
--- a/packages/yoroi-extension/app/UI/components/Collapsible/Collapsible.tsx
+++ b/packages/yoroi-extension/app/UI/components/Collapsible/Collapsible.tsx
@@ -38,17 +38,18 @@ const AccordionDetails = styled(MuiAccordionDetails)(({ theme }: any) => ({
type Props = {
title: string;
content: React.ReactNode;
+ expanded?: boolean,
};
-export const Collapsible = ({ title, content }: Props) => {
- const [expanded, setExpanded] = React.useState('none');
+export const Collapsible = ({ title, content, expanded: startExpanded }: Props) => {
+ const [expanded, setExpanded] = React.useState(startExpanded ?? false);
- const handleChange = (panel: string | false) => (_: React.SyntheticEvent, newExpanded: boolean) => {
- setExpanded(newExpanded ? panel : false);
+ const handleChange = (_: React.SyntheticEvent, newExpanded: boolean) => {
+ setExpanded(newExpanded);
};
return (
-
+