diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000..b098521432 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @Chia-Network/required-reviewers +/.github/* @Chia-Network/actions-reviewers diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index e77720256c..b11ed561c4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -1,7 +1,7 @@ name: Bug Report description: File a bug report -title: '[Bug] ' -labels: ['bug'] +title: "[Bug] " +labels: ["bug"] #assignees: body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 1604e76f6d..b2657ba525 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -9,4 +9,4 @@ contact_links: https://github.com/Chia-Network/chia-blockchain/discussions/new?category=ideas - about: Get support on the Chia Discord chat channels. name: Join the Discord support chat - url: 'https://discord.gg/chia' + url: "https://discord.gg/chia" diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c4121192d9..1545707285 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,28 +4,28 @@ version: 2 updates: # Enable version updates for npm - - package-ecosystem: 'npm' + - package-ecosystem: "npm" # Look for `package.json` and `lock` files in the `root` directory - directory: 'electron-react ' + directory: "electron-react " # Check the npm registry for updates every day (weekdays) schedule: - interval: 'weekly' - day: 'monday' - target-branch: 'dev' + interval: "weekly" + day: "monday" + target-branch: "dev" pull-request-branch-name: # Separate sections of the branch name with a hyphen # for example, `dependabot-npm_and_yarn-next_js-acorn-6.4.1` - separator: '-' + separator: "-" # Maintain dependencies for GitHub Actions - - package-ecosystem: 'github-actions' - directory: '/' + - package-ecosystem: "github-actions" + directory: "/" # Check for updates once a week schedule: - interval: 'weekly' - day: 'monday' - target-branch: 'dev' + interval: "weekly" + day: "monday" + target-branch: "dev" pull-request-branch-name: # Separate sections of the branch name with a hyphen # for example, `dependabot-npm_and_yarn-next_js-acorn-6.4.1` - separator: '-' + separator: "-" diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index 3e3a01f9a9..f699aed8c1 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -3,10 +3,10 @@ name: Check npm audit and locales on: push: branches-ignore: - - 'main' + - "main" pull_request: branches-ignore: - - 'main' + - "main" concurrency: group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}--${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }} @@ -46,7 +46,7 @@ jobs: - name: Setup Node 18.x uses: actions/setup-node@v3 with: - node-version: '18.x' + node-version: "18.x" - name: Check npm audit on ${{ matrix.os }} shell: bash diff --git a/.github/workflows/code-check.yml b/.github/workflows/code-check.yml index 869510362f..9526936693 100644 --- a/.github/workflows/code-check.yml +++ b/.github/workflows/code-check.yml @@ -3,10 +3,10 @@ on: # We never push directly to 'main', so do not run on it push: branches-ignore: - - 'main' + - "main" pull_request: branches-ignore: - - 'main' + - "main" # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-node@v3 with: # Use node version from '.nvmrc' instead of hardcoding here - node-version-file: '.nvmrc' + node-version-file: ".nvmrc" - name: npm ci run: npm ci - name: npm run build:ci diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index e1b6c5210f..a8c18bfaa7 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -4,11 +4,11 @@ on: workflow_dispatch: inputs: pr_target: - description: 'PR Target Branch for Updated Translations' + description: "PR Target Branch for Updated Translations" type: string - default: 'main' + default: "main" schedule: - - cron: '0 0 * * 0' + - cron: "0 0 * * 0" permissions: id-token: write @@ -32,7 +32,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - ref: '${{ inputs.pr_target || github.ref_name }}' + ref: "${{ inputs.pr_target || github.ref_name }}" - name: Vault Login uses: Chia-Network/actions/vault/login@main @@ -64,14 +64,14 @@ jobs: crowdin_branch_name: main localization_branch_name: ${{ env.localization_branch_name }} create_pull_request: true - pull_request_title: 'New Crowdin Translations' - pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)' + pull_request_title: "New Crowdin Translations" + pull_request_body: "New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)" pull_request_base_branch_name: "${{ inputs.pr_target || 'main' }}" - github_user_name: 'Chia Automation' - github_user_email: 'automation@chia.net' + github_user_name: "Chia Automation" + github_user_email: "automation@chia.net" gpg_private_key: ${{ secrets.CHIA_AUTOMATION_PRIVATE_GPG_KEY_RSA }} gpg_passphrase: ${{ secrets.CHIA_AUTOMATION_PRIVATE_GPG_PASSPHRASE }} - skip_ref_checkout: 'true' + skip_ref_checkout: "true" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/extract-strings.yml b/.github/workflows/extract-strings.yml index 446dee5065..6b6bd98772 100644 --- a/.github/workflows/extract-strings.yml +++ b/.github/workflows/extract-strings.yml @@ -3,7 +3,7 @@ name: Extract Strings for Translation on: push: branches: - - 'main' + - "main" workflow_dispatch: permissions: @@ -24,11 +24,12 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + token: ${{ secrets.REPO_COMMIT }} - name: Setup Node 18.x uses: actions/setup-node@v3 with: - node-version: '18.x' + node-version: "18.x" - name: Set up commit signing uses: Chia-Network/actions/commit-sign/gpg@main @@ -41,17 +42,9 @@ jobs: npm install npm run locale:extract - - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 - with: - base: main - body: 'Extracted latest strings from source' - branch: string-updates - commit-message: 'Extracted latest strings from source' - delete-branch: true - reviewers: 'emlowe' - assignees: 'emlowe' - title: 'Latest Strings' - token: '${{ secrets.GITHUB_TOKEN }}' - committer: 'ChiaAutomation ' - author: 'ChiaAutomation ' + - name: Commit changes back to the repo + continue-on-error: true + run: | + git add '**/messages.po' + git commit -m "Extract latest strings for translation" + git push origin main diff --git a/.github/workflows/stale-issue.yml b/.github/workflows/stale-issue.yml index 9979be87ea..8e6149246c 100755 --- a/.github/workflows/stale-issue.yml +++ b/.github/workflows/stale-issue.yml @@ -1,8 +1,8 @@ --- -name: 'Close stale issues' +name: "Close stale issues" on: schedule: - - cron: '0 11 * * *' + - cron: "0 11 * * *" jobs: stale: diff --git a/.prettierrc.json b/.prettierrc.json index 3f584f6079..77ade18563 100755 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,4 +1,15 @@ { "printWidth": 120, - "singleQuote": true + "singleQuote": true, + "overrides": [ + { + "files": ["*.yaml", "*.yml", "*.toml", "*.json", "*.ini"], + "options": { + "tabWidth": 2, + "singleQuote": false, + "experimentalTernaries": true, + "useTabs": false + } + } + ] } diff --git a/crowdin.yml b/crowdin.yml index 19745c9f5b..58b35fe991 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,7 +1,7 @@ project_id: 1 api_token_env: CROWDIN_PERSONAL_TOKEN -base_path: '.' -base_url: 'https://chia.crowdin.com' +base_path: "." +base_url: "https://chia.crowdin.com" preserve_hierarchy: true files: - source: /packages/core/src/locales/en-US/*.po diff --git a/package-lock.json b/package-lock.json index 8e43c3dae5..f33ee7f83d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "lerna-audit": "^1.3.3", "lint-staged": "14.0.1", "nyc": "15.1.0", - "prettier": "2.8.8", + "prettier": "3.1.0", "typescript": "^5.1.6" } }, @@ -2407,13 +2407,33 @@ } }, "node_modules/@electron/remote": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.10.tgz", - "integrity": "sha512-3SFKKaQXcyWgwmibud+UqJl/XlHOgLcI3fwtB9pNelPSJAcTxocOJrF6FaxBIQaj1+R05Di6xuAswZpXAW7xhA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", + "integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==", "peerDependencies": { "electron": ">= 13.0.0" } }, + "node_modules/@electron/windows-sign": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.1.2.tgz", + "integrity": "sha512-eXEiZjDtxW3QORCWfRUarANPRTlH9B6At4jqBZJ0NzokSGutXQUVLPA6WmGpIhDW6w2yCMdHW1EJd1HrXtU5sg==", + "dev": true, + "optional": true, + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/@emoji-mart/data": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.1.2.tgz", @@ -7935,11 +7955,11 @@ } }, "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.4.tgz", + "integrity": "sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -8462,13 +8482,13 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -8476,7 +8496,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -10144,6 +10164,13 @@ "sha.js": "^2.4.8" } }, + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", + "dev": true, + "optional": true + }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -10995,14 +11022,14 @@ } }, "node_modules/electron": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-27.0.0.tgz", - "integrity": "sha512-mr3Zoy82l8XKK/TgguE5FeNeHZ9KHXIGIpUMjbjZWIREfAv+X2Q3vdX6RG0Pmi1K23AFAxANXQezIHBA2Eypwg==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-30.0.1.tgz", + "integrity": "sha512-iwxkI/n2wBd29NH7TH0ZY8aWGzCoKpzJz+D10u7aGSJi1TV6d4MSM3rWyKvT/UkAHkTKOEgYfUyCa2vWQm8L0g==", "dev": true, "hasInstallScript": true, "dependencies": { "@electron/get": "^2.0.0", - "@types/node": "^18.11.18", + "@types/node": "^20.9.0", "extract-zip": "^2.0.1" }, "bin": { @@ -11059,20 +11086,23 @@ } }, "node_modules/electron-winstaller": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.1.0.tgz", - "integrity": "sha512-4wlZzkUm5cJNiOtp5wL804+QpygdKTKkrZJXA3sSDEI2XnCVPv0kxmxUvVw4KHBwbNS+Yox89agEr+VkR7kxww==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.3.1.tgz", + "integrity": "sha512-oM8BW3a8NEqG0XW+Vx3xywhk0DyDV4T0jT0zZfWt0IczNT3jHAAvQWBorF8osQDplSsCyXXyxrsrQ8cY0Slb/A==", "dev": true, "hasInstallScript": true, "dependencies": { "@electron/asar": "^3.2.1", "debug": "^4.1.1", "fs-extra": "^7.0.1", - "lodash.template": "^4.2.2", + "lodash": "^4.17.21", "temp": "^0.9.0" }, "engines": { "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" } }, "node_modules/electron-winstaller/node_modules/fs-extra": { @@ -11108,10 +11138,13 @@ } }, "node_modules/electron/node_modules/@types/node": { - "version": "18.17.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.7.tgz", - "integrity": "sha512-WJj/p/cIg6zUsxv1n2leZHpvn8hr9TYuLQxAZxZcK/7+5t5ukmJGelOLGOy3L1MLhAO/sapTJGd1V7kvoIuzUg==", - "dev": true + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/elliptic": { "version": "6.5.4", @@ -12076,17 +12109,17 @@ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -12123,6 +12156,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -12515,9 +12557,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -16441,12 +16483,6 @@ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.1.0" } }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -16485,25 +16521,6 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -19226,6 +19243,32 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "optional": true, + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -19236,15 +19279,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -19584,9 +19627,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -22742,6 +22785,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -23593,9 +23642,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -24328,7 +24377,7 @@ "typescript": "5.1.6" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" } }, "packages/api-react": { @@ -24368,7 +24417,7 @@ "typescript": "5.1.6" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "peerDependencies": { "@chia-network/api": "^1.0.0", @@ -24422,7 +24471,7 @@ "@chia-network/api": "1.0.0", "@chia-network/api-react": "1.0.0", "@chia-network/icons": "1.0.0", - "@electron/remote": "2.0.10", + "@electron/remote": "2.1.2", "@emotion/react": "11.11.1", "@emotion/styled": "11.11.0", "@lingui/cli": "4.4.0", @@ -24452,7 +24501,7 @@ "babel-plugin-macros": "3.1.0", "babel-plugin-styled-components": "2.1.4", "babel-plugin-transform-imports": "2.0.0", - "electron": "27.0.0", + "electron": "30.0.1", "jest": "29.6.3", "react": "18.2.0", "react-dom": "18.2.0", @@ -24465,13 +24514,13 @@ "typescript": "5.1.6" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "peerDependencies": { "@chia-network/api": "1.0.0", "@chia-network/api-react": "1.0.0", "@chia-network/icons": "1.0.0", - "@electron/remote": "^2.0.10", + "@electron/remote": "^2.1.2", "@lingui/core": "^4.4.0", "@lingui/react": "^4.4.0", "@mui/icons-material": "^5.14.3", @@ -24479,7 +24528,7 @@ "@mui/material": "^5.14.5", "@mui/styled-engine-sc": "^5.12.0", "@mui/styles": "^5.14.5", - "electron": "^27.0.0", + "electron": "^30.0.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.45.4", @@ -24498,7 +24547,7 @@ "@chia-network/core": "1.0.0", "@chia-network/icons": "1.0.0", "@chia-network/wallets": "1.0.0", - "@electron/remote": "2.0.10", + "@electron/remote": "2.1.2", "@lingui/core": "4.4.0", "@lingui/macro": "4.4.0", "@lingui/react": "4.4.0", @@ -24510,7 +24559,7 @@ "@rehooks/local-storage": "2.4.4", "@walletconnect/sign-client": "2.10.0", "@walletconnect/utils": "2.10.0", - "axios": "1.6.0", + "axios": "1.6.4", "bech32": "2.0.0", "bignumber.js": "9.1.1", "byte-size": "8.1.1", @@ -24593,10 +24642,10 @@ "cross-env": "7.0.3", "css-loader": "6.8.1", "date-and-time": "2.4.3", - "electron": "27.0.0", + "electron": "30.0.1", "electron-devtools-assembler": "1.2.0", "electron-playwright-helpers": "^1.6.0", - "electron-winstaller": "5.1.0", + "electron-winstaller": "5.3.1", "html-webpack-plugin": "5.5.3", "jest": "29.6.3", "lodash-webpack-plugin": "0.11.6", @@ -24611,7 +24660,7 @@ "webpack-dev-server": "4.15.1" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "optionalDependencies": { "playwright": "1.37.1" @@ -24682,7 +24731,7 @@ "typescript": "5.1.6" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "peerDependencies": { "@mui/icons-material": "^5.14.3", @@ -24766,7 +24815,7 @@ "typescript": "5.1.6" }, "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "peerDependencies": { "@chia-network/api": "^1.0.0", diff --git a/package.json b/package.json index 1153013284..30749f77b8 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "lerna-audit": "^1.3.3", "lint-staged": "14.0.1", "nyc": "15.1.0", - "prettier": "2.8.8", + "prettier": "3.1.0", "typescript": "^5.1.6" }, "version": "1.2.10-dev132" diff --git a/packages/api-react/package.json b/packages/api-react/package.json index 609e7b81a9..2c5ee55d4d 100644 --- a/packages/api-react/package.json +++ b/packages/api-react/package.json @@ -5,7 +5,7 @@ "productName": "Chia Blockchain", "version": "1.0.0", "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "main": "dist/index.js", "module": "dist/esm.js", diff --git a/packages/api-react/src/@types/MethodFirstParameter.ts b/packages/api-react/src/@types/MethodFirstParameter.ts index 099d2b1ac7..a322186d0b 100644 --- a/packages/api-react/src/@types/MethodFirstParameter.ts +++ b/packages/api-react/src/@types/MethodFirstParameter.ts @@ -1,6 +1,6 @@ type MethodFirstParameter< TClass extends new (...args: any) => any, - Method extends keyof InstanceType & string + Method extends keyof InstanceType & string, > = Parameters[Method]>[0]; export default MethodFirstParameter; diff --git a/packages/api-react/src/@types/MethodReturnType.ts b/packages/api-react/src/@types/MethodReturnType.ts index b07709f1cf..31be523b06 100644 --- a/packages/api-react/src/@types/MethodReturnType.ts +++ b/packages/api-react/src/@types/MethodReturnType.ts @@ -1,6 +1,6 @@ type MethodReturnType< TClass extends new (...args: any) => any, - Method extends keyof InstanceType & string + Method extends keyof InstanceType & string, > = Awaited[Method]>>; export default MethodReturnType; diff --git a/packages/api-react/src/chiaLazyBaseQuery.ts b/packages/api-react/src/chiaLazyBaseQuery.ts index 96c8e7435d..fe5a5335bc 100644 --- a/packages/api-react/src/chiaLazyBaseQuery.ts +++ b/packages/api-react/src/chiaLazyBaseQuery.ts @@ -7,7 +7,7 @@ const instances = new Map>( async function getInstance( service: TService, - api: any + api: any, ): Promise> { if (!instances.has(service)) { if (service.isClient) { @@ -40,7 +40,7 @@ const chiaLazyBaseQuery = async < TService extends ServiceConstructor, TMethod extends keyof InstanceType & string, // TParameter extends Parameters[TMethod]>[0], - TResult extends ReturnType[TMethod]> + TResult extends ReturnType[TMethod]>, >( options: { service: TService; @@ -49,7 +49,7 @@ const chiaLazyBaseQuery = async < args?: any; mockResponse?: any; }, - api: any + api: any, ) => { const { service, command, args = [], mockResponse } = options; diff --git a/packages/api-react/src/hooks/useCurrentFingerprintSettings.ts b/packages/api-react/src/hooks/useCurrentFingerprintSettings.ts index 9542c3b556..2833df386f 100644 --- a/packages/api-react/src/hooks/useCurrentFingerprintSettings.ts +++ b/packages/api-react/src/hooks/useCurrentFingerprintSettings.ts @@ -5,7 +5,7 @@ import { type Serializable } from './usePrefs'; export default function useCurrentFingerprintSettings( key: string, - defaultValue?: Type + defaultValue?: Type, ): [ Type | undefined, (value: Type | ((prevValue: Type) => Type)) => void, @@ -13,7 +13,7 @@ export default function useCurrentFingerprintSettings fingerprint: number | undefined; isLoading: boolean; error?: Error; - } + }, ] { const { data: fingerprint, isLoading, error } = useGetLoggedInFingerprintQuery(); const [data, setData] = useFingerprintSettings(fingerprint, key, defaultValue); diff --git a/packages/api-react/src/hooks/useFingerprintSettings.ts b/packages/api-react/src/hooks/useFingerprintSettings.ts index f3bf2deb77..b5de18f26b 100644 --- a/packages/api-react/src/hooks/useFingerprintSettings.ts +++ b/packages/api-react/src/hooks/useFingerprintSettings.ts @@ -5,7 +5,7 @@ import usePrefs, { type Serializable } from './usePrefs'; export default function useFingerprintSettings( fingerprint: number | undefined, key: string, - defaultValue?: Type + defaultValue?: Type, ): [Type | undefined, (value: Type | ((preValue: Type) => Type)) => void] { type LocalStorageType = Record>; const [settings, setSettings] = usePrefs('fingerprintSettings', {}); @@ -40,7 +40,7 @@ export default function useFingerprintSettings( }; }); }, - [key, setSettings, fingerprint] + [key, setSettings, fingerprint], ); if (!fingerprint) { diff --git a/packages/api-react/src/hooks/useGetHarvesterQuery.ts b/packages/api-react/src/hooks/useGetHarvesterQuery.ts index 06bc37404f..0694a928e7 100644 --- a/packages/api-react/src/hooks/useGetHarvesterQuery.ts +++ b/packages/api-react/src/hooks/useGetHarvesterQuery.ts @@ -7,7 +7,7 @@ export default function useGetHarvesterQuery({ nodeId }: { nodeId: string }) { const harvester = useMemo( () => data?.find((harvesterItem) => harvesterItem.connection.nodeId === nodeId), - [data, nodeId] + [data, nodeId], ); const isLoading = isLoadingHarvesterSummary; diff --git a/packages/api-react/src/hooks/useGetHarvesterStats.ts b/packages/api-react/src/hooks/useGetHarvesterStats.ts index a4c064b95d..235f8114e0 100644 --- a/packages/api-react/src/hooks/useGetHarvesterStats.ts +++ b/packages/api-react/src/hooks/useGetHarvesterStats.ts @@ -7,7 +7,7 @@ export default function useGetHarvesterStats(nodeId: string) { const harvester = useMemo( () => data?.find((harvesterItem) => harvesterItem.connection.nodeId === nodeId), - [data, nodeId] + [data, nodeId], ); return { diff --git a/packages/api-react/src/hooks/useGetLatestBlocksQuery.ts b/packages/api-react/src/hooks/useGetLatestBlocksQuery.ts index f2489c12f2..8c636cbc30 100644 --- a/packages/api-react/src/hooks/useGetLatestBlocksQuery.ts +++ b/packages/api-react/src/hooks/useGetLatestBlocksQuery.ts @@ -14,7 +14,7 @@ export default function useGetLatestBlocksQuery(count = 10) { }, { skip: !peakHeight, - } + }, ); const isLoading = isLoadingBlockchainState || isLoadingBlocks; diff --git a/packages/api-react/src/hooks/useGetLatestPeakTimestampQuery.ts b/packages/api-react/src/hooks/useGetLatestPeakTimestampQuery.ts index 030513370e..c47fe3b1f6 100644 --- a/packages/api-react/src/hooks/useGetLatestPeakTimestampQuery.ts +++ b/packages/api-react/src/hooks/useGetLatestPeakTimestampQuery.ts @@ -34,7 +34,7 @@ export default function useGetLatestPeakTimestampQuery() { const newPeakTimestamp = useMemo( () => getLatestTimestamp(blocks, latestPeakTimestamp.current), - [blocks, latestPeakTimestamp] + [blocks, latestPeakTimestamp], ); latestPeakTimestamp.current = newPeakTimestamp; diff --git a/packages/api-react/src/hooks/useLocalStorage.ts b/packages/api-react/src/hooks/useLocalStorage.ts index 794890b089..2fae6787c8 100644 --- a/packages/api-react/src/hooks/useLocalStorage.ts +++ b/packages/api-react/src/hooks/useLocalStorage.ts @@ -24,7 +24,7 @@ function getValueFromLocalStorage(key: string): T | undefined { export default function useLocalStorage( key: string, - defaultValue?: T + defaultValue?: T, ): [T | undefined, (value: T | ((value: T | undefined) => T)) => void] { const [storedValue, setStoredValue] = useState(getValueFromLocalStorage(key)); const defaultValueRef = useRef(defaultValue); @@ -57,7 +57,7 @@ export default function useLocalStorage( return newValue; }); }, - [key] + [key], ); const changeHandler = useCallback( @@ -67,7 +67,7 @@ export default function useLocalStorage( setStoredValue(newValue); } }, - [key] + [key], ); // Listen changes diff --git a/packages/api-react/src/hooks/usePrefs.ts b/packages/api-react/src/hooks/usePrefs.ts index 13785788b7..2ffd99a919 100644 --- a/packages/api-react/src/hooks/usePrefs.ts +++ b/packages/api-react/src/hooks/usePrefs.ts @@ -34,7 +34,7 @@ export function isEqual(a: Serializable, b: Serializable) { export default function usePrefs( key: string, - defaultValue: T + defaultValue: T, ): [T, (value: T | ((value: T) => T)) => void] { const [value, setValue] = useState(getPreferences(key)); const valueRef = useRef(value); @@ -65,7 +65,7 @@ export default function usePrefs( // notify other hooks eventEmitter.emit('prefs', { key, newValue }); }, - [key] + [key], ); const handleOnChange = useCallback( @@ -74,7 +74,7 @@ export default function usePrefs( setValue(e.newValue); } }, - [key] + [key], ); // The reason to use EventEmitter for updating prefs state: diff --git a/packages/api-react/src/hooks/useService.ts b/packages/api-react/src/hooks/useService.ts index cb10e83378..8353a9c784 100644 --- a/packages/api-react/src/hooks/useService.ts +++ b/packages/api-react/src/hooks/useService.ts @@ -18,7 +18,7 @@ type Options = { export default function useService( service: ServiceNameValue, - options: Options = {} + options: Options = {}, ): { isLoading: boolean; isRunning: boolean; diff --git a/packages/api-react/src/hooks/useServices.ts b/packages/api-react/src/hooks/useServices.ts index 5b3ed0ff00..96e0ddb01b 100644 --- a/packages/api-react/src/hooks/useServices.ts +++ b/packages/api-react/src/hooks/useServices.ts @@ -43,7 +43,7 @@ function getServiceOptions(service: ServiceNameValue, services: ServiceNameValue export default function useMonitorServices( services: ServiceNameValue[], - options: Options = {} + options: Options = {}, ): { isLoading: boolean; error?: Error | unknown; @@ -67,7 +67,7 @@ export default function useMonitorServices( const introducerState = useService( ServiceName.INTRODUCER, - getServiceOptions(ServiceName.INTRODUCER, services, options) + getServiceOptions(ServiceName.INTRODUCER, services, options), ); const datalayerState = useService(ServiceName.DATALAYER, getServiceOptions(ServiceName.DATALAYER, services, options)); diff --git a/packages/api-react/src/hooks/useSubscribeToEvent.ts b/packages/api-react/src/hooks/useSubscribeToEvent.ts index a9ff5b539f..5692b98d2d 100644 --- a/packages/api-react/src/hooks/useSubscribeToEvent.ts +++ b/packages/api-react/src/hooks/useSubscribeToEvent.ts @@ -11,7 +11,7 @@ function subscribe(event: string, service: ServiceConstructor, cb: Function) { service, args: [cb], }, - api + api, ); return unsubscribe; diff --git a/packages/api-react/src/hooks/useThrottleQuery.ts b/packages/api-react/src/hooks/useThrottleQuery.ts index 7a2e481b67..c07392aa13 100644 --- a/packages/api-react/src/hooks/useThrottleQuery.ts +++ b/packages/api-react/src/hooks/useThrottleQuery.ts @@ -13,7 +13,7 @@ export default function useThrottleQuery( wait?: number; leading?: boolean; trailing?: boolean; - } = {} + } = {}, ) { const { leading = true, trailing = true, wait = 0 } = throttleOptions; @@ -30,7 +30,7 @@ export default function useThrottleQuery( leading, trailing, }), - [wait, leading, trailing, forceUpdate] + [wait, leading, trailing, forceUpdate], ); queryHook(variables, { diff --git a/packages/api-react/src/services/client.ts b/packages/api-react/src/services/client.ts index e3ec033fc1..3ccc03c102 100644 --- a/packages/api-react/src/services/client.ts +++ b/packages/api-react/src/services/client.ts @@ -30,7 +30,7 @@ export const clientApi = apiWithTag.injectEndpoints({ }, ], }, - apiLocal + apiLocal, ); unsubscribe = response.data; diff --git a/packages/api-react/src/services/daemon.ts b/packages/api-react/src/services/daemon.ts index 32c0073f9a..68b97d1ba7 100644 --- a/packages/api-react/src/services/daemon.ts +++ b/packages/api-react/src/services/daemon.ts @@ -29,7 +29,7 @@ export const daemonApi = apiWithTag.injectEndpoints({ providesTags: (keys) => keys ? [ - ...keys.map((key) => ({ type: 'DaemonKey', id: key.fingerprint } as const)), + ...keys.map((key) => ({ type: 'DaemonKey', id: key.fingerprint }) as const), { type: 'DaemonKey', id: 'LIST' }, ] : [{ type: 'DaemonKey', id: 'LIST' }], @@ -44,7 +44,7 @@ export const daemonApi = apiWithTag.injectEndpoints({ walletAddresses[fingerprint].map((address) => ({ type: 'WalletAddress', id: `${fingerprint}:${address.hdPath}`, - })) + })), ), { type: 'WalletAddress', id: 'LIST' }, ] diff --git a/packages/api-react/src/services/farmer.ts b/packages/api-react/src/services/farmer.ts index d0cb60ade2..c182121974 100644 --- a/packages/api-react/src/services/farmer.ts +++ b/packages/api-react/src/services/farmer.ts @@ -87,7 +87,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (plots) => plots ? [ - ...plots.map(({ plotId }) => ({ type: 'HarvesterPlots', plotId } as const)), + ...plots.map(({ plotId }) => ({ type: 'HarvesterPlots', plotId }) as const), { type: 'HarvesterPlots', id: 'LIST' }, ] : [{ type: 'HarvesterPlots', id: 'LIST' }], @@ -106,7 +106,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (plots) => plots ? [ - ...plots.map((filename) => ({ type: 'HarvesterPlotsInvalid', filename } as const)), + ...plots.map((filename) => ({ type: 'HarvesterPlotsInvalid', filename }) as const), { type: 'HarvesterPlotsInvalid', id: 'LIST' }, ] : [{ type: 'HarvesterPlotsInvalid', id: 'LIST' }], @@ -125,7 +125,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (plots) => plots ? [ - ...plots.map((filename) => ({ type: 'HarvesterPlotsKeysMissing', filename } as const)), + ...plots.map((filename) => ({ type: 'HarvesterPlotsKeysMissing', filename }) as const), { type: 'HarvesterPlotsKeysMissing', id: 'LIST' }, ] : [{ type: 'HarvesterPlotsKeysMissing', id: 'LIST' }], @@ -144,7 +144,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (plots) => plots ? [ - ...plots.map((filename) => ({ type: 'HarvesterPlotsDuplicates', filename } as const)), + ...plots.map((filename) => ({ type: 'HarvesterPlotsDuplicates', filename }) as const), { type: 'HarvesterPlotsDuplicates', id: 'LIST' }, ] : [{ type: 'HarvesterPlotsDuplicates', id: 'LIST' }], @@ -171,7 +171,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (connections) => connections ? [ - ...connections.map(({ nodeId }) => ({ type: 'FarmerConnections', id: nodeId } as const)), + ...connections.map(({ nodeId }) => ({ type: 'FarmerConnections', id: nodeId }) as const), { type: 'FarmerConnections', id: 'LIST' }, ] : [{ type: 'FarmerConnections', id: 'LIST' }], @@ -212,7 +212,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (signagePoints) => signagePoints ? [ - ...signagePoints.map(({ challengeHash }) => ({ type: 'SignagePoints', id: challengeHash } as const)), + ...signagePoints.map(({ challengeHash }) => ({ type: 'SignagePoints', id: challengeHash }) as const), { type: 'SignagePoints', id: 'LIST' }, ] : [{ type: 'SignagePoints', id: 'LIST' }], @@ -235,7 +235,7 @@ export const farmerApi = apiWithTag.injectEndpoints({ providesTags: (poolsList) => poolsList ? [ - ...poolsList.map(({ p2SingletonPuzzleHash }) => ({ type: 'Pools', id: p2SingletonPuzzleHash } as const)), + ...poolsList.map(({ p2SingletonPuzzleHash }) => ({ type: 'Pools', id: p2SingletonPuzzleHash }) as const), { type: 'Pools', id: 'LIST' }, ] : [{ type: 'Pools', id: 'LIST' }], diff --git a/packages/api-react/src/services/fullNode.ts b/packages/api-react/src/services/fullNode.ts index f9d0c21ab4..be30bef5f4 100644 --- a/packages/api-react/src/services/fullNode.ts +++ b/packages/api-react/src/services/fullNode.ts @@ -101,7 +101,7 @@ export const fullNodeApi = apiWithTag.injectEndpoints({ providesTags: (connections) => connections ? [ - ...connections.map(({ nodeId }) => ({ type: 'FullNodeConnections', id: nodeId } as const)), + ...connections.map(({ nodeId }) => ({ type: 'FullNodeConnections', id: nodeId }) as const), { type: 'FullNodeConnections', id: 'LIST' }, ] : [{ type: 'FullNodeConnections', id: 'LIST' }], diff --git a/packages/api-react/src/services/harvester.ts b/packages/api-react/src/services/harvester.ts index 5b4a700f99..8f7ee0d01f 100644 --- a/packages/api-react/src/services/harvester.ts +++ b/packages/api-react/src/services/harvester.ts @@ -55,7 +55,7 @@ export const harvesterApi = apiWithTag2.injectEndpoints({ providesTags: (directories) => directories ? [ - ...directories.map((directory) => ({ type: 'PlotDirectories', id: directory } as const)), + ...directories.map((directory) => ({ type: 'PlotDirectories', id: directory }) as const), { type: 'PlotDirectories', id: 'LIST' }, ] : [{ type: 'PlotDirectories', id: 'LIST' }], diff --git a/packages/api-react/src/services/wallet.ts b/packages/api-react/src/services/wallet.ts index 68fba3c730..696b0214ff 100644 --- a/packages/api-react/src/services/wallet.ts +++ b/packages/api-react/src/services/wallet.ts @@ -124,7 +124,7 @@ export const walletApi = apiWithTag.injectEndpoints({ ...wallet, meta, }; - }) + }), ), }; } catch (error) { @@ -136,7 +136,7 @@ export const walletApi = apiWithTag.injectEndpoints({ // transformResponse: (response) => response.wallets, providesTags(result) { return result - ? [...result.map(({ id }) => ({ type: 'Wallets', id } as const)), { type: 'Wallets', id: 'LIST' }] + ? [...result.map(({ id }) => ({ type: 'Wallets', id }) as const), { type: 'Wallets', id: 'LIST' }] : [{ type: 'Wallets', id: 'LIST' }]; }, onCacheEntryAdded: onCacheEntryAddedInvalidate(baseQuery, api, [ @@ -367,7 +367,7 @@ export const walletApi = apiWithTag.injectEndpoints({ }, ], }, - queryApi + queryApi, ); } @@ -419,7 +419,7 @@ export const walletApi = apiWithTag.injectEndpoints({ transformResponse: (response) => response.publicKeyFingerprints, providesTags: (keys) => keys - ? [...keys.map((key) => ({ type: 'Keys', id: key } as const)), { type: 'Keys', id: 'LIST' }] + ? [...keys.map((key) => ({ type: 'Keys', id: key }) as const), { type: 'Keys', id: 'LIST' }] : [{ type: 'Keys', id: 'LIST' }], }), @@ -456,7 +456,7 @@ export const walletApi = apiWithTag.injectEndpoints({ providesTags(result) { return result ? [ - ...result.map(({ name }) => ({ type: 'Transactions', id: name } as const)), + ...result.map(({ name }) => ({ type: 'Transactions', id: name }) as const), { type: 'Transactions', id: 'LIST' }, ] : [{ type: 'Transactions', id: 'LIST' }]; @@ -581,7 +581,7 @@ export const walletApi = apiWithTag.injectEndpoints({ providesTags: (connections) => connections ? [ - ...connections.map(({ nodeId }) => ({ type: 'WalletConnections', id: nodeId } as const)), + ...connections.map(({ nodeId }) => ({ type: 'WalletConnections', id: nodeId }) as const), { type: 'WalletConnections', id: 'LIST' }, ] : [{ type: 'WalletConnections', id: 'LIST' }], @@ -615,7 +615,7 @@ export const walletApi = apiWithTag.injectEndpoints({ providesTags(result) { return result ? [ - ...result.map(({ tradeId }) => ({ type: 'OfferTradeRecord', id: tradeId } as const)), + ...result.map(({ tradeId }) => ({ type: 'OfferTradeRecord', id: tradeId }) as const), { type: 'OfferTradeRecord', id: 'LIST' }, ] : [{ type: 'OfferTradeRecord', id: 'LIST' }]; @@ -698,7 +698,7 @@ export const walletApi = apiWithTag.injectEndpoints({ transformResponse: (response) => response.catList, providesTags(result) { return result - ? [...result.map(({ assetId }) => ({ type: 'CATs', id: assetId } as const)), { type: 'CATs', id: 'LIST' }] + ? [...result.map(({ assetId }) => ({ type: 'CATs', id: assetId }) as const), { type: 'CATs', id: 'LIST' }] : [{ type: 'CATs', id: 'LIST' }]; }, }), @@ -756,7 +756,7 @@ export const walletApi = apiWithTag.injectEndpoints({ } const transaction = updatedTransactions.find( - (trx) => trx.name === transactionName && !!trx?.sentTo?.length + (trx) => trx.name === transactionName && !!trx?.sentTo?.length, ); if (transaction) { @@ -785,7 +785,7 @@ export const walletApi = apiWithTag.injectEndpoints({ }, ], }, - queryApi + queryApi, ); } @@ -947,7 +947,7 @@ export const walletApi = apiWithTag.injectEndpoints({ ...data?.state, walletId: wallet.id, }; - }) + }), ), await Promise.all( poolWallets.map(async (wallet: any) => { @@ -962,7 +962,7 @@ export const walletApi = apiWithTag.injectEndpoints({ } return data?.walletBalance; - }) + }), ), ]); @@ -976,7 +976,7 @@ export const walletApi = apiWithTag.injectEndpoints({ poolStates.forEach((poolStateItem: any) => { const poolWalletStatus = poolWalletStates.find( - (item) => item.launcherId === poolStateItem.poolConfig.launcherId + (item) => item.launcherId === poolStateItem.poolConfig.launcherId, ); if (!poolWalletStatus) { external.push({ @@ -1092,7 +1092,7 @@ export const walletApi = apiWithTag.injectEndpoints({ ...wallet, myDid, }; - }) + }), ), }; } catch (error) { @@ -1103,7 +1103,7 @@ export const walletApi = apiWithTag.injectEndpoints({ }, providesTags(result) { return result - ? [...result.map(({ id }) => ({ type: 'DIDWallet', id } as const)), { type: 'DIDWallet', id: 'LIST' }] + ? [...result.map(({ id }) => ({ type: 'DIDWallet', id }) as const), { type: 'DIDWallet', id: 'LIST' }] : [{ type: 'DIDWallet', id: 'LIST' }]; }, onCacheEntryAdded: onCacheEntryAddedInvalidate(baseQuery, api, [ @@ -1171,7 +1171,7 @@ export const walletApi = apiWithTag.injectEndpoints({ }; return updatedNFT; - }) + }), ); return { @@ -1202,7 +1202,7 @@ export const walletApi = apiWithTag.injectEndpoints({ } countByWalletId[walletId] = nftCountData.count; - }) + }), ); const total = Object.values(countByWalletId).reduce((a, b) => a + b, 0); @@ -1221,7 +1221,7 @@ export const walletApi = apiWithTag.injectEndpoints({ }, providesTags: (countByWalletId) => countByWalletId - ? [...Object.entries(countByWalletId).map(([walletId]) => ({ type: 'NFTCount', id: walletId } as const))] + ? [...Object.entries(countByWalletId).map(([walletId]) => ({ type: 'NFTCount', id: walletId }) as const)] : [], }), @@ -1250,7 +1250,7 @@ export const walletApi = apiWithTag.injectEndpoints({ return { [walletId]: updatedNFTs, }; - }) + }), ); const nftsByWalletId: { [walletId: string]: NFTInfo[] } = {}; nftData.forEach((entry) => { @@ -1271,7 +1271,7 @@ export const walletApi = apiWithTag.injectEndpoints({ nftsByWalletId ? [ ...Object.entries(nftsByWalletId).flatMap(([_walletId, nfts]) => - nfts.map((nft) => ({ type: 'NFTInfo', id: nft.launcherId } as const)) + nfts.map((nft) => ({ type: 'NFTInfo', id: nft.launcherId }) as const), ), { type: 'NFTInfo', id: 'LIST' }, ] diff --git a/packages/api-react/src/utils/onCacheEntryAddedInvalidate.ts b/packages/api-react/src/utils/onCacheEntryAddedInvalidate.ts index 37e5a15e1e..371fddfd0b 100644 --- a/packages/api-react/src/utils/onCacheEntryAddedInvalidate.ts +++ b/packages/api-react/src/utils/onCacheEntryAddedInvalidate.ts @@ -52,7 +52,7 @@ export default function onCacheEntryAddedInvalidate(rtkQuery: BaseQuery, api: an api.endpoints[endpoint].initiate(args, { subscribe: false, forceRefetch: true, - }) + }), ); } else { const currentEndpoint = endpoint(); @@ -61,7 +61,7 @@ export default function onCacheEntryAddedInvalidate(rtkQuery: BaseQuery, api: an currentEndpoint.initiate(args, { subscribe: false, forceRefetch: true, - }) + }), ); } } @@ -69,13 +69,13 @@ export default function onCacheEntryAddedInvalidate(rtkQuery: BaseQuery, api: an }, ], }, - mutationApi + mutationApi, ); if (response.data) { unsubscribes.push(response.data); } - }) + }), ); } finally { await cacheEntryRemoved; diff --git a/packages/api-react/src/utils/reduxToolkitEndpointAbstractions.ts b/packages/api-react/src/utils/reduxToolkitEndpointAbstractions.ts index 7c00ab581b..8f8d928dd7 100644 --- a/packages/api-react/src/utils/reduxToolkitEndpointAbstractions.ts +++ b/packages/api-react/src/utils/reduxToolkitEndpointAbstractions.ts @@ -14,8 +14,8 @@ export function query< TClass extends ServiceConstructor, Method extends keyof InstanceType & string, Transform extends (response: MethodReturnType) => any = ( - response: MethodReturnType - ) => MethodReturnType + response: MethodReturnType, + ) => MethodReturnType, >( build: Builder, service: TClass, @@ -31,7 +31,7 @@ export function query< invalidatesTags?: Parameters< typeof build.query, MethodFirstParameter> >[0]['invalidatesTags']; - } = {} + } = {}, ) { const { transformResponse = (data) => data, ...rest } = options; @@ -56,8 +56,8 @@ export function mutation< TClass extends ServiceConstructor, Method extends keyof InstanceType & string, Transform extends (response: MethodReturnType) => any = ( - response: MethodReturnType - ) => MethodReturnType + response: MethodReturnType, + ) => MethodReturnType, >( build: Builder, service: TClass, @@ -73,7 +73,7 @@ export function mutation< invalidatesTags?: Parameters< typeof build.mutation, MethodFirstParameter> >[0]['invalidatesTags']; - } = {} // Omit, MethodFirstParameter>>[0], 'query'> = {} + } = {}, // Omit, MethodFirstParameter>>[0], 'query'> = {} ) { const { transformResponse = (data) => data, ...rest } = options; diff --git a/packages/api/package.json b/packages/api/package.json index a639c24c18..232aced46d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -5,7 +5,7 @@ "productName": "Chia Blockchain", "version": "1.0.0", "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "main": "dist/index.js", "module": "dist/esm.js", diff --git a/packages/api/src/@types/PoolState.ts b/packages/api/src/@types/PoolState.ts index 4185a68b18..8079738769 100644 --- a/packages/api/src/@types/PoolState.ts +++ b/packages/api/src/@types/PoolState.ts @@ -26,7 +26,7 @@ type PoolState = { { errorCode: number; errorMessage: string; - } + }, ] >; validPartialsSinceStart: number; diff --git a/packages/api/src/Client.ts b/packages/api/src/Client.ts index 69cd2ccbaa..c48e4abcc2 100644 --- a/packages/api/src/Client.ts +++ b/packages/api/src/Client.ts @@ -303,7 +303,7 @@ export default class Client extends EventEmitter { this.requests.delete(requestId); reject( - new ErrorData(`The request ${requestId} has timed out ${currentTimeout / 1000} seconds.`, undefined) + new ErrorData(`The request ${requestId} has timed out ${currentTimeout / 1000} seconds.`, undefined), ); } }, currentTimeout); diff --git a/packages/api/src/Message.test.ts b/packages/api/src/Message.test.ts index a84acca242..89b3566641 100644 --- a/packages/api/src/Message.test.ts +++ b/packages/api/src/Message.test.ts @@ -59,7 +59,7 @@ describe('Message', () => { const message = new Message(options); const json = message.toJSON(false); expect(json).toEqual( - '{"command":"test","data":{"testKey":"test","test_key":"test","TestKey":"test"},"origin":"test","destination":"test","ack":true,"request_id":"test"}' + '{"command":"test","data":{"testKey":"test","test_key":"test","TestKey":"test"},"origin":"test","destination":"test","ack":true,"request_id":"test"}', ); }); @@ -75,7 +75,7 @@ describe('Message', () => { const message = new Message(options); const json = message.toJSON(true); expect(json).toEqual( - '{"command":"test","data":{"test_key":"test","test_key_1":"test","test_key_2":"test"},"origin":"test","destination":"test","ack":true,"request_id":"test"}' + '{"command":"test","data":{"test_key":"test","test_key_1":"test","test_key_2":"test"},"origin":"test","destination":"test","ack":true,"request_id":"test"}', ); }); @@ -90,7 +90,7 @@ describe('Message', () => { const message = new Message(options); const json = message.toJSON(true); expect(json).toEqual( - '{"command":"test","data":{},"origin":"test","destination":"test","ack":true,"request_id":"test"}' + '{"command":"test","data":{},"origin":"test","destination":"test","ack":true,"request_id":"test"}', ); }); @@ -105,7 +105,7 @@ describe('Message', () => { const message = new Message(options); const json = message.toJSON(true); expect(json).toEqual( - '{"command":"test","data":{"test_key":"test"},"origin":"test","destination":"test","ack":false,"request_id":"test"}' + '{"command":"test","data":{"test_key":"test"},"origin":"test","destination":"test","ack":false,"request_id":"test"}', ); }); }); diff --git a/packages/api/src/services/Daemon.ts b/packages/api/src/services/Daemon.ts index 8b6bb2c63b..44791225c1 100644 --- a/packages/api/src/services/Daemon.ts +++ b/packages/api/src/services/Daemon.ts @@ -151,7 +151,7 @@ export default class Daemon extends Service { origin: client.origin, destination: service, }), - 1000 + 1000, ); if (data.success) { @@ -370,7 +370,7 @@ export default class Daemon extends Service { } return undefined; - }) + }), ); } @@ -427,7 +427,7 @@ export default class Daemon extends Service { getKeysForPlotting(args?: { fingerprints?: number[] }) { return this.command<{ keys: { [fingerprint: number]: { farmerPublicKey: string; poolPublicKey: string } } }>( 'get_keys_for_plotting', - args + args, ); } diff --git a/packages/api/src/services/Farmer.ts b/packages/api/src/services/Farmer.ts index 4fd18a16af..4c0dfcf94c 100644 --- a/packages/api/src/services/Farmer.ts +++ b/packages/api/src/services/Farmer.ts @@ -131,7 +131,7 @@ export default class Farmer extends Service { newFarmingInfo: this.newFarmingInfo, latencyData: this.latencyData, }, - null + null, ); } }); diff --git a/packages/api/src/services/PlotterService.ts b/packages/api/src/services/PlotterService.ts index ba361ec6d1..7c6368b2a3 100644 --- a/packages/api/src/services/PlotterService.ts +++ b/packages/api/src/services/PlotterService.ts @@ -51,7 +51,7 @@ function mergeQueue( // partialQueue does not contain `log` property. currentQueue and the result contains it currentQueue: PlotQueueItem[], partialQueue: PlotQueueItem[], - isLogChange: boolean + isLogChange: boolean, ): PlotQueueItem[] { let result = [...currentQueue]; diff --git a/packages/api/src/services/Service.ts b/packages/api/src/services/Service.ts index 50aa6e00d4..b1b68dda93 100644 --- a/packages/api/src/services/Service.ts +++ b/packages/api/src/services/Service.ts @@ -77,7 +77,7 @@ export default abstract class Service extends EventEmitter { data: Object = {}, ack = false, timeout?: number, - disableFormat?: boolean + disableFormat?: boolean, ): Promise { const { client, origin, name } = this; @@ -97,7 +97,7 @@ export default abstract class Service extends EventEmitter { ack, }), timeout, - disableFormat + disableFormat, ); return response?.data as Data; @@ -110,7 +110,7 @@ export default abstract class Service extends EventEmitter { onCommand( command: string, callback: (data: any, message: Message) => void, - processData?: (data: any, message: Message) => any + processData?: (data: any, message: Message) => any, ): () => void { function handleCommand(data: any, message: Message) { const updatedData = processData ? processData(data, message) : data; @@ -132,7 +132,7 @@ export default abstract class Service extends EventEmitter { callback(data, message); } }, - processData + processData, ); } } diff --git a/packages/api/src/services/WalletService.ts b/packages/api/src/services/WalletService.ts index 8f51f6b750..c20cdf7636 100644 --- a/packages/api/src/services/WalletService.ts +++ b/packages/api/src/services/WalletService.ts @@ -252,7 +252,7 @@ export default class Wallet extends Service { { driver_dict: driverDict, ...restArgs }, false, undefined, - disableJSONFormatting + disableJSONFormatting, ); } @@ -384,8 +384,8 @@ export default class Wallet extends Service { state: 'coin_added'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('coin_added', callback); } @@ -397,8 +397,8 @@ export default class Wallet extends Service { state: 'coin_removed'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('coin_removed', callback); } @@ -438,8 +438,8 @@ export default class Wallet extends Service { state: 'nft_coin_added'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('nft_coin_added', callback); } @@ -451,8 +451,8 @@ export default class Wallet extends Service { state: 'nft_coin_removed'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('nft_coin_removed', callback); } @@ -464,8 +464,8 @@ export default class Wallet extends Service { state: 'nft_coin_updated'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('nft_coin_updated', callback); } @@ -477,8 +477,8 @@ export default class Wallet extends Service { state: 'vc_coin_added'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('vc_coin_added', callback); } @@ -490,8 +490,8 @@ export default class Wallet extends Service { state: 'vc_coin_removed'; walletId: number; }, - message: Message - ) => void + message: Message, + ) => void, ) { return this.onStateChanged('vc_coin_removed', callback); } @@ -503,9 +503,9 @@ export default class Wallet extends Service { index: number; }; }, - message: Message + message: Message, ) => void, - processData?: (data: any) => any + processData?: (data: any) => any, ) { return this.onStateChanged('new_derivation_index', callback, processData); } @@ -517,9 +517,9 @@ export default class Wallet extends Service { index: number; }; }, - message: Message + message: Message, ) => void, - processData?: (data: any) => any + processData?: (data: any) => any, ) { return this.onStateChanged('nft_coin_did_set', callback, processData); } diff --git a/packages/api/src/tests/utils/calculateRoyalties.test.ts b/packages/api/src/tests/utils/calculateRoyalties.test.ts index 1a62dfba1e..b424486a5f 100644 --- a/packages/api/src/tests/utils/calculateRoyalties.test.ts +++ b/packages/api/src/tests/utils/calculateRoyalties.test.ts @@ -66,7 +66,7 @@ describe('calculateRoyalties', () => { it('converts an numeric wallet id and amount to a fungible asset', () => { const fungibleAsset: RoyaltyCalculationFungibleAsset = fungibleAssetFromWalletIdAndAmount( 1, - new BigNumber(100_000_000_000_000) + new BigNumber(100_000_000_000_000), ); expect(fungibleAsset.asset).toBe('1'); expect(fungibleAsset.amount).toEqual(new BigNumber(100_000_000_000_000)); @@ -74,7 +74,7 @@ describe('calculateRoyalties', () => { it('converts a string wallet id and amount to a fungible asset', () => { const fungibleAsset: RoyaltyCalculationFungibleAsset = fungibleAssetFromWalletIdAndAmount( '2', - new BigNumber(100_000) + new BigNumber(100_000), ); expect(fungibleAsset.asset).toBe('2'); expect(fungibleAsset.amount).toEqual(new BigNumber(100_000)); @@ -84,7 +84,7 @@ describe('calculateRoyalties', () => { it('converts an asset id and amount to a fungible asset', () => { const fungibleAsset: RoyaltyCalculationFungibleAsset = fungibleAssetFromAssetIdAndAmount( 'a628c1c2c6fcb74d53746157e438e108eab5c0bb3e5c80ff9b1910b3e4832913', - new BigNumber(100_000_000_000_000) + new BigNumber(100_000_000_000_000), ); expect(fungibleAsset.asset).toBe('a628c1c2c6fcb74d53746157e438e108eab5c0bb3e5c80ff9b1910b3e4832913'); expect(fungibleAsset.amount).toEqual(new BigNumber(100_000_000_000_000)); diff --git a/packages/api/src/utils/calculateRoyalties.ts b/packages/api/src/utils/calculateRoyalties.ts index bc719acc45..3ef442101d 100644 --- a/packages/api/src/utils/calculateRoyalties.ts +++ b/packages/api/src/utils/calculateRoyalties.ts @@ -12,7 +12,7 @@ type NFTInfoWithFrontEndData = NFTInfo & { export default function royaltyAssetFromNFTInfo( nftInfo: NFTInfoWithFrontEndData, - testnet = false + testnet = false, ): RoyaltyCalculationRoyaltyAsset { return { asset: nftInfo.$nftId, @@ -23,7 +23,7 @@ export default function royaltyAssetFromNFTInfo( export function fungibleAssetFromWalletIdAndAmount( walletId: number | string, - amount: BigNumber + amount: BigNumber, ): RoyaltyCalculationFungibleAsset { return { asset: walletId.toString(), diff --git a/packages/api/src/utils/toBech32m.ts b/packages/api/src/utils/toBech32m.ts index 1da9a72d63..47e0d04448 100644 --- a/packages/api/src/utils/toBech32m.ts +++ b/packages/api/src/utils/toBech32m.ts @@ -32,7 +32,7 @@ export function fromBech32m(value: string): string { export function decodeBech32m( value: string, - outputEncoding: BufferEncoding = 'utf8' + outputEncoding: BufferEncoding = 'utf8', ): { prefix: string; data: string } { const { words, prefix } = bech32m.decode(value); const data = Buffer.from(bech32m.fromWords(words)).toString(outputEncoding); diff --git a/packages/api/src/wallets/NFT.ts b/packages/api/src/wallets/NFT.ts index 98ecd82686..cce76583eb 100644 --- a/packages/api/src/wallets/NFT.ts +++ b/packages/api/src/wallets/NFT.ts @@ -150,7 +150,7 @@ export default class NFTWallet extends Wallet { async calculateRoyalties(args: CalculateRoyaltiesRequest) { return this.command>>( 'nft_calculate_royalties', - args + args, ); } } diff --git a/packages/core/package.json b/packages/core/package.json index 5c322982e4..0e663a63ae 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,7 +5,7 @@ "productName": "Chia Blockchain", "version": "1.0.0", "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "main": "dist/index.js", "module": "dist/esm.js", @@ -63,7 +63,7 @@ "@chia-network/api": "1.0.0", "@chia-network/api-react": "1.0.0", "@chia-network/icons": "1.0.0", - "@electron/remote": "2.0.10", + "@electron/remote": "2.1.2", "@emotion/react": "11.11.1", "@emotion/styled": "11.11.0", "@lingui/cli": "4.4.0", @@ -93,7 +93,7 @@ "babel-plugin-macros": "3.1.0", "babel-plugin-styled-components": "2.1.4", "babel-plugin-transform-imports": "2.0.0", - "electron": "27.0.0", + "electron": "30.0.1", "jest": "29.6.3", "react": "18.2.0", "react-dom": "18.2.0", @@ -109,7 +109,7 @@ "@chia-network/api": "1.0.0", "@chia-network/api-react": "1.0.0", "@chia-network/icons": "1.0.0", - "@electron/remote": "^2.0.10", + "@electron/remote": "^2.1.2", "@lingui/core": "^4.4.0", "@lingui/react": "^4.4.0", "@mui/icons-material": "^5.14.3", @@ -117,7 +117,7 @@ "@mui/material": "^5.14.5", "@mui/styled-engine-sc": "^5.12.0", "@mui/styles": "^5.14.5", - "electron": "^27.0.0", + "electron": "^30.0.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.45.4", diff --git a/packages/core/src/components/AddressBookProvider/AddressBookProvider.tsx b/packages/core/src/components/AddressBookProvider/AddressBookProvider.tsx index 5560d33ca5..3b583326b9 100644 --- a/packages/core/src/components/AddressBookProvider/AddressBookProvider.tsx +++ b/packages/core/src/components/AddressBookProvider/AddressBookProvider.tsx @@ -14,7 +14,7 @@ export default function AddressBookProvider({ children }) { const value = useMemo( () => [addressBook, addContact, removeContact, getContactByContactId, editContact, getContactByAddress], - [addressBook, addContact, removeContact, getContactByContactId, editContact, getContactByAddress] + [addressBook, addContact, removeContact, getContactByContactId, editContact, getContactByAddress], ); return {children}; diff --git a/packages/core/src/components/Auth/AuthProvider.tsx b/packages/core/src/components/Auth/AuthProvider.tsx index 7c3c4b02ec..ba95fea22f 100644 --- a/packages/core/src/components/Auth/AuthProvider.tsx +++ b/packages/core/src/components/Auth/AuthProvider.tsx @@ -38,7 +38,7 @@ export default function AuthProvider(props: AuthProviderProps) { } } }, - [clearCache] + [clearCache], ); // automatically log in if we have a fingerprint already and logIn is not in progress @@ -79,7 +79,7 @@ export default function AuthProvider(props: AuthProviderProps) { setIsLoading(false); } }, - [handleLogOut, logIn, clearCache] + [handleLogOut, logIn, clearCache], ); const context = useMemo( @@ -89,7 +89,7 @@ export default function AuthProvider(props: AuthProviderProps) { fingerprint, isLoading, }), - [handleLogIn, handleLogOut, fingerprint, isLoading] + [handleLogIn, handleLogOut, fingerprint, isLoading], ); return {children}; diff --git a/packages/core/src/components/Back/Back.tsx b/packages/core/src/components/Back/Back.tsx index a489f9caf7..6f96112c2d 100644 --- a/packages/core/src/components/Back/Back.tsx +++ b/packages/core/src/components/Back/Back.tsx @@ -38,7 +38,7 @@ export default function Back(props: BackProps) { confirmColor="danger" > You have made changes. Do you want to discard them? - + , )); if (!canGoBack) { diff --git a/packages/core/src/components/CardListItem/CardListItem.tsx b/packages/core/src/components/CardListItem/CardListItem.tsx index 7cb35361fb..0db27ead9b 100644 --- a/packages/core/src/components/CardListItem/CardListItem.tsx +++ b/packages/core/src/components/CardListItem/CardListItem.tsx @@ -36,8 +36,8 @@ export default function CardListItem(props: CardListItemProps) { selected ? theme.palette.highlight.main : borderTransparency - ? theme.palette.background.default - : getColorModeValue(theme, 'border') + ? theme.palette.background.default + : getColorModeValue(theme, 'border') }`, backgroundColor: (theme) => `${selected ? getColorModeValue(theme, 'sidebarBackground') : theme.palette.background.paper}`, diff --git a/packages/core/src/components/Dropdown/DropdownActions.tsx b/packages/core/src/components/Dropdown/DropdownActions.tsx index 5b21ab9ab8..fd045c8c96 100644 --- a/packages/core/src/components/Dropdown/DropdownActions.tsx +++ b/packages/core/src/components/Dropdown/DropdownActions.tsx @@ -26,10 +26,10 @@ const StyledMenu = styled((props: MenuProps) => ( color: theme.palette.mode === 'light' ? Color.Comet[700] : theme.palette.grey[300], boxShadow: `${Color.Neutral[50]} 0px 0px 0px 0px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.15 : 0.05 + theme.palette.mode === 'dark' ? 0.15 : 0.05, )} 0px 0px 0px 1px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.01 : 0.1 + theme.palette.mode === 'dark' ? 0.01 : 0.1, )} 0px 10px 15px -3px, ${alpha(Color.Neutral[900], theme.palette.mode === 'dark' ? 0.15 : 0.05)} 0px 4px 6px -2px`, '& .MuiMenu-list': { padding: '4px 0', diff --git a/packages/core/src/components/Dropdown/DropdownBase.tsx b/packages/core/src/components/Dropdown/DropdownBase.tsx index c64cbe541f..a7134bd381 100644 --- a/packages/core/src/components/Dropdown/DropdownBase.tsx +++ b/packages/core/src/components/Dropdown/DropdownBase.tsx @@ -26,10 +26,10 @@ const StyledMenu = styled((props: MenuProps) => ( color: theme.palette.mode === 'light' ? Color.Comet[700] : theme.palette.grey[300], boxShadow: `${Color.Neutral[50]} 0px 0px 0px 0px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.15 : 0.05 + theme.palette.mode === 'dark' ? 0.15 : 0.05, )} 0px 0px 0px 1px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.01 : 0.1 + theme.palette.mode === 'dark' ? 0.01 : 0.1, )} 0px 10px 15px -3px, ${alpha(Color.Neutral[900], theme.palette.mode === 'dark' ? 0.15 : 0.05)} 0px 4px 6px -2px`, '& .MuiMenu-list': { padding: '4px 0', diff --git a/packages/core/src/components/ErrorBoundary/ErrorBoundary.tsx b/packages/core/src/components/ErrorBoundary/ErrorBoundary.tsx index 86f5e9d8c3..0baa27119f 100644 --- a/packages/core/src/components/ErrorBoundary/ErrorBoundary.tsx +++ b/packages/core/src/components/ErrorBoundary/ErrorBoundary.tsx @@ -17,7 +17,7 @@ const StyledPre = styled(Typography)(() => ({ function formatStackTrace(stack: []) { const stackTrace = stack.map( ({ fileName, columnNumber, lineNumber, functionName }) => - `at ${fileName}:${lineNumber}:${columnNumber} ${functionName}` + `at ${fileName}:${lineNumber}:${columnNumber} ${functionName}`, ); return stackTrace.join('\n'); } diff --git a/packages/core/src/components/EstimatedFee/EstimatedFee.tsx b/packages/core/src/components/EstimatedFee/EstimatedFee.tsx index 54b032a7b6..8a8b24cc43 100644 --- a/packages/core/src/components/EstimatedFee/EstimatedFee.tsx +++ b/packages/core/src/components/EstimatedFee/EstimatedFee.tsx @@ -81,7 +81,7 @@ function Select(props: SelectProps) { onTypeChange('dropdown'); onTimeChange( formattedEstimates.find((estimate) => estimate.formattedEstimate === (event.target.value as string)) - ?.minutes ?? 0 + ?.minutes ?? 0, ); onValueChange(event.target.value as string); } @@ -186,7 +186,7 @@ export default function EstimatedFee(props: FeeProps) { { pollingInterval: REFRESH_SECONDS * 1000, // in milliseconds skip: mode === Mode.WALLET, - } + }, ); const { data: ests, isLoading, isSuccess, requestId: feeEstimateRequestId, startedTimeStamp } = result; @@ -210,8 +210,8 @@ export default function EstimatedFee(props: FeeProps) { ? defaultValues : defaultValues.concat([0]) : estimateList.some((val) => val === 0) - ? estimateList - : estimateList.concat([0]); + ? estimateList + : estimateList.concat([0]); return estList.map((estimate: number, i: number) => { const formattedEstimate = mojoToChiaLocaleString(estimate, locale); @@ -223,8 +223,8 @@ export default function EstimatedFee(props: FeeProps) { minutes > 1 ? t`Likely in ${minutes} minutes` : minutes === -1 - ? t`Likely in >5 minutes` - : t`Likely in ${TARGET_TIMES[i]} seconds`, + ? t`Likely in >5 minutes` + : t`Likely in ${TARGET_TIMES[i]} seconds`, estimate, formattedEstimate, }; diff --git a/packages/core/src/components/Form/Form.tsx b/packages/core/src/components/Form/Form.tsx index 7aa5a14f26..37d854a024 100644 --- a/packages/core/src/components/Form/Form.tsx +++ b/packages/core/src/components/Form/Form.tsx @@ -12,7 +12,7 @@ function Form( onSubmit: SubmitHandler; children: ReactNode; }, - ref: any + ref: any, ) { const { methods, onSubmit, ...rest } = props; const { handleSubmit } = methods; diff --git a/packages/core/src/components/FormBackButton/FormBackButton.tsx b/packages/core/src/components/FormBackButton/FormBackButton.tsx index 6b1fd0f4ae..fe02d6ecbc 100644 --- a/packages/core/src/components/FormBackButton/FormBackButton.tsx +++ b/packages/core/src/components/FormBackButton/FormBackButton.tsx @@ -29,7 +29,7 @@ export default function FormBackButton(props: Props) { confirmColor="danger" > You have made changes. Do you want to discard them? - + , )); if (canGoBack) { diff --git a/packages/core/src/components/FormatBytes/FormatBytes.tsx b/packages/core/src/components/FormatBytes/FormatBytes.tsx index 20f94f5929..4abe46095b 100644 --- a/packages/core/src/components/FormatBytes/FormatBytes.tsx +++ b/packages/core/src/components/FormatBytes/FormatBytes.tsx @@ -49,7 +49,7 @@ export default function FormatBytes(props: Props) { // convert value to nearest bytes representation const unitIndex = Math.min( CovertReversed.length - 1, - CovertReversed.findIndex((item) => absValue.isGreaterThanOrEqualTo(item[0])) + CovertReversed.findIndex((item) => absValue.isGreaterThanOrEqualTo(item[0])), ); const [unitValue, unitName] = CovertReversed[unitIndex]; diff --git a/packages/core/src/components/LayoutDashboard/LayoutDashboard.tsx b/packages/core/src/components/LayoutDashboard/LayoutDashboard.tsx index 59bf82f70f..43d6f7ddb6 100644 --- a/packages/core/src/components/LayoutDashboard/LayoutDashboard.tsx +++ b/packages/core/src/components/LayoutDashboard/LayoutDashboard.tsx @@ -69,7 +69,7 @@ export default function LayoutDashboard(props: LayoutDashboardProps) { }, { skip: !fingerprint, - } + }, ); type WalletKeyTheme = { emoji: string | null; diff --git a/packages/core/src/components/LocaleProvider/LocaleProvider.tsx b/packages/core/src/components/LocaleProvider/LocaleProvider.tsx index 5491438cd4..21d0b72065 100644 --- a/packages/core/src/components/LocaleProvider/LocaleProvider.tsx +++ b/packages/core/src/components/LocaleProvider/LocaleProvider.tsx @@ -44,7 +44,7 @@ export default function LocaleProvider(props: LocaleProviderProps) { } setLocale(localeLocal); }, - [locales, setLocale] + [locales, setLocale], ); const context = useMemo( @@ -54,7 +54,7 @@ export default function LocaleProvider(props: LocaleProviderProps) { locale, setLocale: handleSetLocale, }), - [locales, defaultLocale, locale, handleSetLocale] + [locales, defaultLocale, locale, handleSetLocale], ); // prepare default locale diff --git a/packages/core/src/components/Menu/Menu.tsx b/packages/core/src/components/Menu/Menu.tsx index 39dc18502a..1971524db4 100644 --- a/packages/core/src/components/Menu/Menu.tsx +++ b/packages/core/src/components/Menu/Menu.tsx @@ -16,19 +16,19 @@ function Menu(props: MenuProps, ref: any) { const handleClose = useCallback( ( event: SyntheticEvent, - reason: 'escapeKeyDown' | 'backdropClick' | 'tabKeyDown' | 'menuItemClick' + reason: 'escapeKeyDown' | 'backdropClick' | 'tabKeyDown' | 'menuItemClick', ) => { event.stopPropagation(); onClose?.(event, reason as any); }, - [onClose] + [onClose], ); const context = useMemo( () => ({ close: handleClose, }), - [handleClose] + [handleClose], ); return ( diff --git a/packages/core/src/components/ModalDialogs/ModalDialogsProvider.tsx b/packages/core/src/components/ModalDialogs/ModalDialogsProvider.tsx index b603d11e18..0dfa0738fe 100644 --- a/packages/core/src/components/ModalDialogs/ModalDialogsProvider.tsx +++ b/packages/core/src/components/ModalDialogs/ModalDialogsProvider.tsx @@ -41,7 +41,7 @@ export default function ModalDialogsProvider(props: Props) { ]); }); }, - [hide] + [hide], ); const modalDialogsContextValue = useMemo( @@ -50,7 +50,7 @@ export default function ModalDialogsProvider(props: Props) { hide, dialogs, }), - [dialogs, hide, show] + [dialogs, hide, show], ); return {children}; diff --git a/packages/core/src/components/Mode/ModeProvider.tsx b/packages/core/src/components/Mode/ModeProvider.tsx index bbe7b302d3..4abb461db7 100644 --- a/packages/core/src/components/Mode/ModeProvider.tsx +++ b/packages/core/src/components/Mode/ModeProvider.tsx @@ -32,7 +32,7 @@ export default function ModeProvider(props: ModeProviderProps) { setModeState(newMode); } }, - [persist, setModePref, setModeState] + [persist, setModePref, setModeState], ); const mode = persist ? modePref : modeState; @@ -42,7 +42,7 @@ export default function ModeProvider(props: ModeProviderProps) { mode, setMode: handleSetMode, }), - [mode, handleSetMode] + [mode, handleSetMode], ); return {children}; diff --git a/packages/core/src/components/Persist/Persist.tsx b/packages/core/src/components/Persist/Persist.tsx index 8c1b32b106..5933f0e3d6 100755 --- a/packages/core/src/components/Persist/Persist.tsx +++ b/packages/core/src/components/Persist/Persist.tsx @@ -51,7 +51,7 @@ function Persist(props: PersistProps, ref: any) { return state[currentNamespace] ?? defaultValueLocal; }, - [state, persistNamespace, parentPersistContext] + [state, persistNamespace, parentPersistContext], ); const setValue = useCallback( @@ -68,7 +68,7 @@ function Persist(props: PersistProps, ref: any) { onChange(value); } }, - [state, persistNamespace, parentPersistContext, onChange] + [state, persistNamespace, parentPersistContext, onChange], ); const context = useMemo( @@ -76,7 +76,7 @@ function Persist(props: PersistProps, ref: any) { getValue, setValue, }), - [getValue, setValue] + [getValue, setValue], ); return ( diff --git a/packages/core/src/components/Scrollbar/ScrollbarVirtuoso.tsx b/packages/core/src/components/Scrollbar/ScrollbarVirtuoso.tsx index fc11164941..eaeaee47e4 100644 --- a/packages/core/src/components/Scrollbar/ScrollbarVirtuoso.tsx +++ b/packages/core/src/components/Scrollbar/ScrollbarVirtuoso.tsx @@ -16,7 +16,7 @@ function ScrollbarVirtuoso(props: ScrollbarProps, ref: any) { ref.current = scrollbarsRef.osInstance().getElements().viewport; } }, - [ref] + [ref], ); return ( diff --git a/packages/core/src/components/SideBarItem/SideBarItem.tsx b/packages/core/src/components/SideBarItem/SideBarItem.tsx index 34e6cce2fe..0624eaa200 100644 --- a/packages/core/src/components/SideBarItem/SideBarItem.tsx +++ b/packages/core/src/components/SideBarItem/SideBarItem.tsx @@ -31,7 +31,9 @@ const StyledListItemIcon = styled(ListItemIcon)` left: 0; width: 100%; height: 100%; - box-shadow: 0px -2px 4px ${alpha(Color.Green[300], 0.41)}, 0px 1px 8px ${alpha(Color.Lime[400], 0.45)}; + box-shadow: + 0px -2px 4px ${alpha(Color.Green[300], 0.41)}, + 0px 1px 8px ${alpha(Color.Lime[400], 0.45)}; opacity: 0; transition: opacity 0.3s ease-in-out; } diff --git a/packages/core/src/components/Table/TableControlled.tsx b/packages/core/src/components/Table/TableControlled.tsx index 3ec2c7f808..ccc57a4809 100644 --- a/packages/core/src/components/Table/TableControlled.tsx +++ b/packages/core/src/components/Table/TableControlled.tsx @@ -182,7 +182,7 @@ export default function TableControlled(props: TableControlledProps) { key: index, ...col, })), - [cols] + [cols], ); const preparedRows = useMemo( @@ -191,7 +191,7 @@ export default function TableControlled(props: TableControlledProps) { $uniqueId: uniqueField ? get(row, uniqueField) : rowIndex, ...row, })), - [rows, uniqueField] + [rows, uniqueField], ); function handleRowClick(e: SyntheticEvent, row: Row) { @@ -270,7 +270,7 @@ export function TableControlledRow({ for (let i = 0; i < expandedCellShift; i += 1) { expandableCells.push( - + , ); } return ( diff --git a/packages/core/src/components/TextField/TextField.tsx b/packages/core/src/components/TextField/TextField.tsx index bdd681210a..7850c3abbc 100644 --- a/packages/core/src/components/TextField/TextField.tsx +++ b/packages/core/src/components/TextField/TextField.tsx @@ -132,7 +132,7 @@ export default function TextField(props: TextFieldProps): JSX.Element { /> ); }, - [baseOnChange, name, dataTestid, inputProps, rest, rules, errors, helperText] + [baseOnChange, name, dataTestid, inputProps, rest, rules, errors, helperText], ); return ; diff --git a/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx b/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx index e9eb44739c..d415ccf923 100644 --- a/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx +++ b/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx @@ -4,7 +4,7 @@ import React from 'react'; const useStyles = makeStyles((theme: Theme) => createStyles({ toolbar: theme.mixins.toolbar, - }) + }), ); export default function ToolbarSpacing() { diff --git a/packages/core/src/components/Truncate/Truncate.tsx b/packages/core/src/components/Truncate/Truncate.tsx index 30930c97ee..739cda9586 100644 --- a/packages/core/src/components/Truncate/Truncate.tsx +++ b/packages/core/src/components/Truncate/Truncate.tsx @@ -57,7 +57,7 @@ export function truncateValue(children: string, opts: TruncateValueOptions): str } const truncatedSubValue = `${subValue.substring(0, leftLength)}${separator}${subValue.substring( - subValue.length - rightLength + subValue.length - rightLength, )}`; return rest diff --git a/packages/core/src/hooks/useAddressBook.tsx b/packages/core/src/hooks/useAddressBook.tsx index 3e58d517ab..835d393df9 100644 --- a/packages/core/src/hooks/useAddressBook.tsx +++ b/packages/core/src/hooks/useAddressBook.tsx @@ -9,7 +9,7 @@ export default function useAddressBook(): [ notes: string, nftId: string, domainNames: ContactDomainName[], - emoji: string + emoji: string, ) => void, // addContact (contactId: number) => void, // removeContact (contactId: number) => AddressContact | undefined, // getContactContactId @@ -21,9 +21,9 @@ export default function useAddressBook(): [ notes: string, nftId: string, domainNames: ContactDomainName[], - emoji: string + emoji: string, ) => void, // editContact - (address: string) => AddressContact | undefined // getContactByAddress + (address: string) => AddressContact | undefined, // getContactByAddress ] { // editContact const [addressBook, setAddressBook] = useState([]); @@ -54,7 +54,7 @@ export default function useAddressBook(): [ notes: string, nftId: string, domainNames: ContactDomainName[], - emoji: string + emoji: string, ) { const contactId = getNewContactId(); const newAddress: AddressContact = { @@ -89,7 +89,7 @@ export default function useAddressBook(): [ notes: string, nftId: string, domainNames: ContactDomainName[], - emoji: string + emoji: string, ) { const filteredContacts = addressBook.filter((contact) => contact.contactId !== contactId); @@ -109,7 +109,7 @@ export default function useAddressBook(): [ function getContactByAddress(address: string) { const result = addressBook.find( - (ab) => ab.addresses !== undefined && ab.addresses.some((c) => c.address === address) + (ab) => ab.addresses !== undefined && ab.addresses.some((c) => c.address === address), ); return result; } diff --git a/packages/core/src/hooks/useGetLatestVersionFromWebsite.ts b/packages/core/src/hooks/useGetLatestVersionFromWebsite.ts index 3e752899c8..b2e0171101 100644 --- a/packages/core/src/hooks/useGetLatestVersionFromWebsite.ts +++ b/packages/core/src/hooks/useGetLatestVersionFromWebsite.ts @@ -26,7 +26,7 @@ export default function useGetLatestVersionFromWebsite(): UseGetLatestVersionFro const [isLoading, setIsLoading] = useState(true); const [latestVersionURL] = useLocalStorage( 'latestVersionURL', - 'https://download.chia.net/latest/latest.json' + 'https://download.chia.net/latest/latest.json', ); const [skipVersions, setSkipVersions] = useLocalStorage('skipVersions', []); const { version: appVersion } = useAppVersion(); @@ -38,7 +38,7 @@ export default function useGetLatestVersionFromWebsite(): UseGetLatestVersionFro (version: string) => { setSkipVersions((prev) => [...(prev ?? []), version]); }, - [setSkipVersions] + [setSkipVersions], ); useEffect(() => { diff --git a/packages/core/src/hooks/useHiddenList.ts b/packages/core/src/hooks/useHiddenList.ts index de02cb8e27..49d7afbf4e 100644 --- a/packages/core/src/hooks/useHiddenList.ts +++ b/packages/core/src/hooks/useHiddenList.ts @@ -6,12 +6,12 @@ type List = { }; export default function useHiddenList( - listName: string + listName: string, ): [ isHidden: (key: Type) => boolean, setIsHidden: (key: Type, newValue: (isHidden: boolean) => boolean | boolean) => void, hidden: Type[], - setIsNFTMultipleHide: (nftIds: string[], hide: boolean) => void + setIsNFTMultipleHide: (nftIds: string[], hide: boolean) => void, ] { const [hiddenLists, setHiddenLists] = usePrefs>('isHidden', {}); @@ -35,7 +35,7 @@ export default function useHiddenList( }); } }, - [list, hiddenLists, setHiddenLists, listName] + [list, hiddenLists, setHiddenLists, listName], ); const setIsNFTMultipleHide = (nftIds: string[], hide: boolean) => { diff --git a/packages/core/src/hooks/useKeyringMigrationPrompt.tsx b/packages/core/src/hooks/useKeyringMigrationPrompt.tsx index 27ae4d6c7a..994000932e 100644 --- a/packages/core/src/hooks/useKeyringMigrationPrompt.tsx +++ b/packages/core/src/hooks/useKeyringMigrationPrompt.tsx @@ -22,7 +22,7 @@ export default function useKeyringMigrationPrompt() { Your keys have not been migrated to a new keyring. You will be unable to create new keys or delete existing keys until migration completes. Would you like to migrate your keys now? - + , ); if (beginMigration) { diff --git a/packages/core/src/hooks/useOpenDialog.ts b/packages/core/src/hooks/useOpenDialog.ts index 1111303eda..5a7bc86376 100644 --- a/packages/core/src/hooks/useOpenDialog.ts +++ b/packages/core/src/hooks/useOpenDialog.ts @@ -19,7 +19,7 @@ export default function useOpenDialog() { }); }, // eslint-disable-next-line react-hooks/exhaustive-deps -- Used only for unmounting - [] + [], ); const handleOpen = useCallback( @@ -32,7 +32,7 @@ export default function useOpenDialog() { return result; }, - [show] + [show], ); return handleOpen; diff --git a/packages/core/src/hooks/useOpenExternal.ts b/packages/core/src/hooks/useOpenExternal.ts index 9f91264b69..93f52ab6d3 100644 --- a/packages/core/src/hooks/useOpenExternal.ts +++ b/packages/core/src/hooks/useOpenExternal.ts @@ -1,7 +1,13 @@ import isElectron from 'is-electron'; +import { useCallback } from 'react'; +import isURL from 'validator/es/lib/isURL'; export default function useOpenExternal(): (url: string) => void { - function handleOpen(url: string) { + const handleOpen = useCallback((url: string) => { + if (!isURL(url, { protocols: ['http', 'https', 'ipfs'], require_protocol: true })) { + return; + } + if (isElectron()) { // @ts-ignore window.shell.openExternal(url); @@ -9,7 +15,7 @@ export default function useOpenExternal(): (url: string) => void { } window.open(url, '_blank'); - } + }, []); return handleOpen; } diff --git a/packages/core/src/hooks/usePersistState.ts b/packages/core/src/hooks/usePersistState.ts index d4c3af1c9c..2784bf5776 100755 --- a/packages/core/src/hooks/usePersistState.ts +++ b/packages/core/src/hooks/usePersistState.ts @@ -17,7 +17,7 @@ export default function usePersistState(defaultValue: T, namespace?: string): update(); }, - [namespace, persistContext, update] + [namespace, persistContext, update], ); return [value, setValue]; diff --git a/packages/core/src/hooks/useScrollbarsSettings.tsx b/packages/core/src/hooks/useScrollbarsSettings.tsx index 0ca02c96e6..feaff1fb18 100644 --- a/packages/core/src/hooks/useScrollbarsSettings.tsx +++ b/packages/core/src/hooks/useScrollbarsSettings.tsx @@ -19,7 +19,7 @@ export default function useScrollbarsSettings(): ScrollbarsSettings & { autoHide, })); }, - [setSettings] + [setSettings], ); return { diff --git a/packages/core/src/hooks/useTrans.ts b/packages/core/src/hooks/useTrans.ts index f175ea4dbe..bb4ea28896 100644 --- a/packages/core/src/hooks/useTrans.ts +++ b/packages/core/src/hooks/useTrans.ts @@ -6,7 +6,7 @@ export default function useTrans() { const handleTranslate = useCallback( (messageId: string, values?: Object, options?: Object) => i18n._(messageId, values, options), - [i18n] + [i18n], ); return handleTranslate; diff --git a/packages/core/src/hooks/useValidateChangePassphraseParams.tsx b/packages/core/src/hooks/useValidateChangePassphraseParams.tsx index 0c09738873..f75414f776 100644 --- a/packages/core/src/hooks/useValidateChangePassphraseParams.tsx +++ b/packages/core/src/hooks/useValidateChangePassphraseParams.tsx @@ -14,7 +14,7 @@ export default function useValidateChangePassphraseParams() { async function validateChangePassphraseParams( currentPassphrase: string | null, newPassphrase: string, - confirmationPassphrase: string + confirmationPassphrase: string, ): Promise { try { if (isLoading) { @@ -36,7 +36,7 @@ export default function useValidateChangePassphraseParams() { plural(minPassphraseLength, { one: 'Passphrases must be at least # character in length', other: 'Passphrases must be at least # characters in length', - }) + }), ); } else if (currentPassphrase !== null && currentPassphrase === newPassphrase) { throw new Error(t`New passphrase is the same as your current passphrase`); @@ -75,7 +75,7 @@ export default function useValidateChangePassphraseParams() { maxWidth="xs" > {message} - + , ); // @ts-ignore diff --git a/packages/core/src/locales/en-NZ/messages.po b/packages/core/src/locales/en-NZ/messages.po index 64d888d4bf..96bc9a742e 100644 --- a/packages/core/src/locales/en-NZ/messages.po +++ b/packages/core/src/locales/en-NZ/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: en_NZ\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-02-04 00:04\n" +"PO-Revision-Date: 2024-04-21 00:04\n" "Last-Translator: \n" "Language-Team: English, New Zealand\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -20,11 +20,11 @@ msgstr "" #: src/components/EstimatedFee/EstimatedFee.tsx:64 msgid "(>5 min)" -msgstr "" +msgstr "(>5 min)" #: src/components/EstimatedFee/EstimatedFee.tsx:64 msgid "(~{selectedTime} min)" -msgstr "" +msgstr "(~{selectedTime} min)" #: src/components/Amount/Amount.tsx:87 msgid "{0, plural, one {mojo} other {mojos}}" @@ -36,15 +36,15 @@ msgstr "{minPassphraseLength, plural, one {Passphrases must be at least # charac #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:95 msgid "A new version of Chia is available!" -msgstr "" +msgstr "A new version of Chia is available!" #: src/screens/SelectKey/EmojiAndColorPicker.tsx:270 msgid "Add Icon" -msgstr "" +msgstr "Add Icon" #: src/screens/SelectKey/SelectKey.tsx:174 msgid "Add wallet" -msgstr "" +msgstr "Add wallet" #: src/components/Amount/Amount.tsx:37 msgid "Amount" @@ -56,7 +56,7 @@ msgstr "Appearance" #: src/screens/SelectKey/WalletDeleteDialog.tsx:161 msgid "Are you sure you want to continue? Type in the fingerprint of this wallet key to confirm deletion." -msgstr "" +msgstr "Are you sure you want to continue? Type in the fingerprint of this wallet key to confirm deletion." #: src/components/FormBackButton/FormBackButton.tsx:15 #: src/screens/SelectKey/SelectKey.tsx:129 @@ -72,25 +72,25 @@ msgstr "Cancel" #: src/components/Settings/SettingsApp.tsx:140 msgid "Check for updates" -msgstr "" +msgstr "Check for updates" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:93 msgid "Checking for updates..." -msgstr "" +msgstr "Checking for updates..." #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:82 msgid "Chia {latestVersion} is currently the latest version available." -msgstr "" +msgstr "Chia {latestVersion} is currently the latest version available." #: src/components/Settings/SettingsApp.tsx:126 msgid "Chia Application Version:" -msgstr "" +msgstr "Chia Application Version:" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:110 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:47 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:70 msgid "Close" -msgstr "" +msgstr "Close" #: src/components/FormatConnectionStatus/FormatConnectionStatus.tsx:32 msgid "Connected" @@ -110,15 +110,15 @@ msgstr "Copy to Clipboard" #: src/screens/SelectKey/SelectKey.tsx:274 msgid "Create a new wallet key" -msgstr "" +msgstr "Create a new wallet key" #: src/screens/SelectKey/SelectKey.tsx:266 msgid "Create a new wallet key to get started with Chia." -msgstr "" +msgstr "Create a new wallet key to get started with Chia." #: src/screens/SelectKey/SelectKey.tsx:177 msgid "Create New" -msgstr "" +msgstr "Create New" #: src/components/Settings/SettingsApp.tsx:111 msgid "Dark" @@ -136,7 +136,7 @@ msgstr "Delete all keys" #: src/screens/SelectKey/SelectKey.tsx:202 msgid "Delete All Keys" -msgstr "" +msgstr "Delete All Keys" #: src/screens/SelectKey/WalletDeleteDialog.tsx:113 msgid "Delete key {fingerprint}" @@ -148,7 +148,7 @@ msgstr "Deleting all keys will permanently remove the keys from your computer, m #: src/screens/SelectKey/SelectKeyItem.tsx:106 msgid "Details" -msgstr "" +msgstr "Details" #: src/hooks/useValidateChangePassphraseParams.tsx:60 msgid "Disable" @@ -165,7 +165,7 @@ msgstr "Discard" #: src/components/LayoutDashboard/LayoutDashboard.tsx:148 msgid "Download" -msgstr "" +msgstr "Download" #: src/components/CardSimple/CardSimple.tsx:52 #: src/hooks/useShowError.tsx:14 @@ -178,7 +178,7 @@ msgstr "Error:" #: src/screens/SelectKey/SelectKeyRenameForm.tsx:91 msgid "Esc" -msgstr "" +msgstr "Esc" #: src/components/LayoutMain/LayoutFooter.tsx:49 msgid "FAQ" @@ -186,7 +186,7 @@ msgstr "FAQ" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:90 msgid "Farmer Public Key" -msgstr "" +msgstr "Farmer Public Key" #: src/screens/SelectKey/SelectKeyDeleteKeyDialog.tsx:58 msgid "Farmer public key:" @@ -204,7 +204,7 @@ msgstr "Fee" #: src/screens/SelectKey/WalletDeleteDialog.tsx:98 msgid "Fingerprint does not match" -msgstr "" +msgstr "Fingerprint does not match" #: src/components/Settings/SettingsApp.tsx:152 msgid "Frequently Asked Questions" @@ -212,7 +212,7 @@ msgstr "Frequently Asked Questions" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:121 msgid "Go To Download Page" -msgstr "" +msgstr "Go To Download Page" #: src/components/Settings/SettingsApp.tsx:148 msgid "Help" @@ -225,7 +225,7 @@ msgstr "Help translate" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:124 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:146 msgid "Hide" -msgstr "" +msgstr "Hide" #: src/components/AdvancedOptions/AdvancedOptions.tsx:27 msgid "Hide Advanced Options" @@ -233,7 +233,7 @@ msgstr "Hide Advanced Options" #: src/screens/SelectKey/SelectKey.tsx:182 msgid "Import Existing" -msgstr "" +msgstr "Import Existing" #: src/screens/SelectKey/SelectKey.tsx:181 #~ msgid "Import from Mnemonics (12 or 24 words)" @@ -249,7 +249,7 @@ msgstr "Language" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:57 msgid "Latest Version:" -msgstr "" +msgstr "Latest Version:" #: src/components/Settings/SettingsApp.tsx:103 msgid "Light" @@ -257,23 +257,23 @@ msgstr "Light" #: src/components/EstimatedFee/EstimatedFee.tsx:227 msgid "Likely in {0} seconds" -msgstr "" +msgstr "Likely in {0} seconds" #: src/components/EstimatedFee/EstimatedFee.tsx:224 msgid "Likely in {minutes} minutes" -msgstr "" +msgstr "Likely in {minutes} minutes" #: src/components/EstimatedFee/EstimatedFee.tsx:226 msgid "Likely in >5 minutes" -msgstr "" +msgstr "Likely in >5 minutes" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:46 msgid "Loading details" -msgstr "" +msgstr "Loading details" #: src/screens/SelectKey/SelectKey.tsx:236 msgid "Loading keys" -msgstr "" +msgstr "Loading keys" #: src/screens/SelectKey/SelectKey.tsx:117 #~ msgid "Loading list of the keys" @@ -302,7 +302,7 @@ msgstr "Mode" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:107 msgid "NEVER SHARE THESE WITH ANYONE" -msgstr "" +msgstr "NEVER SHARE THESE WITH ANYONE" #: src/hooks/useValidateChangePassphraseParams.tsx:42 msgid "New passphrase is the same as your current passphrase" @@ -310,7 +310,7 @@ msgstr "New passphrase is the same as your current passphrase" #: src/components/LayoutDashboard/LayoutDashboard.tsx:133 msgid "New version {latestVersion} available" -msgstr "" +msgstr "New version {latestVersion} available" #: src/screens/SelectKey/SelectKeyDeleteKeyDialog.tsx:84 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:138 @@ -332,11 +332,11 @@ msgstr "OK" #: src/screens/SelectKey/SelectKey.tsx:258 msgid "Open a world of possibilities." -msgstr "" +msgstr "Open a world of possibilities." #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:98 msgid "Pool Public Key" -msgstr "" +msgstr "Pool Public Key" #: src/screens/SelectKey/SelectKeyDeleteKeyDialog.tsx:66 msgid "Pool public key:" @@ -353,7 +353,7 @@ msgstr "Private key:" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:82 msgid "Public Key" -msgstr "" +msgstr "Public Key" #: src/screens/SelectKey/SelectKeyDeleteKeyDialog.tsx:50 msgid "Public key:" @@ -361,15 +361,15 @@ msgstr "Public key:" #: src/screens/SelectKey/EmojiAndColorPicker.tsx:289 msgid "Random" -msgstr "" +msgstr "Random" #: src/components/Fee/Fee.tsx:18 msgid "Recommended value: 0.000005" -msgstr "" +msgstr "Recommended value: 0.000005" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:71 msgid "Release Notes" -msgstr "" +msgstr "Release Notes" #: src/components/ErrorBoundary/ErrorBoundary.tsx:85 msgid "Reload Application" @@ -377,11 +377,11 @@ msgstr "Reload Application" #: src/screens/SelectKey/EmojiAndColorPicker.tsx:270 msgid "Remove Icon" -msgstr "" +msgstr "Remove Icon" #: src/screens/SelectKey/SelectKeyItem.tsx:98 msgid "Rename" -msgstr "" +msgstr "Rename" #: src/components/ErrorBoundary/ErrorBoundary.tsx:80 msgid "Report an Issue" @@ -390,24 +390,24 @@ msgstr "Report an Issue" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:124 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:146 msgid "Reveal" -msgstr "" +msgstr "Reveal" #: src/screens/SelectKey/SelectKeyRenameForm.tsx:109 msgid "Save" -msgstr "" +msgstr "Save" #: src/screens/SelectKey/EmojiAndColorPicker.tsx:182 #: src/screens/SelectKey/Search.tsx:34 msgid "Search" -msgstr "" +msgstr "Search" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:113 msgid "Secret Key" -msgstr "" +msgstr "Secret Key" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:131 msgid "Seed Phrase" -msgstr "" +msgstr "Seed Phrase" #: src/screens/SelectKey/SelectKeyDeleteKeyDialog.tsx:76 msgid "Seed:" @@ -470,23 +470,23 @@ msgstr "The provided passphrase and confirmation do not match" #: src/screens/SelectKey/WalletDeleteDialog.tsx:143 msgid "This key is used for a wallet that may have a non-zero balance. By deleting this key you may lose access to this wallet" -msgstr "" +msgstr "This key is used for a wallet that may have a non-zero balance. By deleting this key you may lose access to this wallet" #: src/screens/SelectKey/WalletDeleteDialog.tsx:125 msgid "This key is used for your farming rewards address. By deleting this key you may lose access to any future farming rewards" -msgstr "" +msgstr "This key is used for your farming rewards address. By deleting this key you may lose access to any future farming rewards" #: src/screens/SelectKey/WalletDeleteDialog.tsx:134 msgid "This key is used for your pool rewards address. By deleting this key you may lose access to any future pool rewards" -msgstr "" +msgstr "This key is used for your pool rewards address. By deleting this key you may lose access to any future pool rewards" #: src/screens/SelectKey/WalletDeleteDialog.tsx:155 msgid "This will permanently remove the key from your computer, make sure you have your mnemonic phrase backed up." -msgstr "" +msgstr "This will permanently remove the key from your computer, make sure you have your mnemonic phrase backed up." #: src/utils/getTransactionResult.ts:40 msgid "Transaction has been sent to a full node and is pending inclusion into the mempool. {0}" -msgstr "" +msgstr "Transaction has been sent to a full node and is pending inclusion into the mempool. {0}" #: src/utils/getTransactionResult.ts:15 msgid "Transaction has not been sent to node yet" @@ -506,7 +506,7 @@ msgstr "Try Again" #: src/screens/SelectKey/SelectKey.tsx:247 msgid "Unable to load keys" -msgstr "" +msgstr "Unable to load keys" #: src/screens/SelectKey/SelectKey.tsx:128 #~ msgid "Unable to load the list of the keys" @@ -537,15 +537,15 @@ msgstr "Wallet" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:63 #: src/screens/SelectKey/SelectKeyItem.tsx:234 msgid "Wallet {0}" -msgstr "" +msgstr "Wallet {0}" #: src/screens/SelectKey/WalletDeleteDialog.tsx:166 msgid "Wallet Fingerprint" -msgstr "" +msgstr "Wallet Fingerprint" #: src/screens/SelectKey/SelectKey.tsx:223 msgid "Wallet Keys" -msgstr "" +msgstr "Wallet Keys" #: src/screens/SelectKey/SelectKey.tsx:142 #~ msgid "Welcome to Chia. Please log in with an existing key, or create a new key." @@ -554,7 +554,7 @@ msgstr "" #: src/components/LayoutDashboard/LayoutDashboard.tsx:142 #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:66 msgid "What's New" -msgstr "" +msgstr "What's New" #: src/components/Back/Back.tsx:40 #: src/components/FormBackButton/FormBackButton.tsx:31 @@ -563,11 +563,11 @@ msgstr "You have made changes. Do you want to discard them?" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:97 msgid "You're up to date" -msgstr "" +msgstr "You're up to date" #: src/components/LayoutDashboard/NewerAppVersionAvailable.tsx:49 msgid "Your Current Version:" -msgstr "" +msgstr "Your Current Version:" #: src/hooks/useKeyringMigrationPrompt.tsx:21 msgid "Your keys have not been migrated to a new keyring. You will be unable to create new keys or delete existing keys until migration completes. Would you like to migrate your keys now?" diff --git a/packages/core/src/locales/fa-IR/messages.po b/packages/core/src/locales/fa-IR/messages.po index a35b460dde..8634972874 100644 --- a/packages/core/src/locales/fa-IR/messages.po +++ b/packages/core/src/locales/fa-IR/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fa_IR\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-03-03 00:04\n" +"PO-Revision-Date: 2024-05-05 00:04\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" diff --git a/packages/core/src/locales/fi-FI/messages.js b/packages/core/src/locales/fi-FI/messages.js index a2d8e8d89b..3018416f24 100644 --- a/packages/core/src/locales/fi-FI/messages.js +++ b/packages/core/src/locales/fi-FI/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"1hZFVs\":\"(>5 min)\",\"x8qMgP\":[\"(~\",[\"selectedTime\"],\" min)\"],\"Vz+B79\":[[\"0\",\"plural\",{\"one\":\"mojo\",\"other\":\"mojoa\"}]],\"ymf8PY\":[[\"minPassphraseLength\",\"plural\",{\"one\":[\"Salasanojen on oltava vähintään \",\"#\",\" merkki pituudeltaan\"],\"other\":[\"Salasanojen on oltava vähintään \",\"#\",\" merkkiä pituudeltaan\"]}]],\"D4Fysr\":\"Uusi versio Chiasta on saatavilla!\",\"pHwXUV\":\"Lisää Ikoni\",\"XyAmgg\":\"Lisää Lompakko\",\"hehnjM\":\"Summa\",\"aAIQg2\":\"Ulkoasu\",\"5xA48q\":\"Oletko varma, että haluat jatkaa? Kirjoita tämän lompakon sormenjälki vahvistaaksesi poistamisen.\",\"iH8pgl\":\"Takaisin\",\"dEgA5A\":\"Peru\",\"WMCwmR\":\"Tarkista päivitykset\",\"RTyFT2\":\"Tarkistetaan päivityksiä...\",\"hva9Hs\":[\"Chia \",[\"latestVersion\"],\" on tällä hetkellä uusin versio.\"],\"aBy9ta\":\"Chia-sovelluksen Versio:\",\"yz7wBu\":\"Sulje\",\"QHcLEN\":\"Yhdistetty\",\"6V3Ea3\":\"Kopioitu\",\"RTxUjI\":\"Kopioi Leikepöydälle\",\"zuFu16\":\"Create a new private key\",\"TmpHv5\":\"Luo uusi lompakon avain\",\"AuSKC3\":\"Luo uusi lompakon avain päästäksesi alkuun Chian kanssa.\",\"8faOjQ\":\"Luo Uusi\",\"pvnfJD\":\"Tumma\",\"cnGeoo\":\"Poista\",\"N/zU3D\":\"Poista kaikki avaimet\",\"ULTyyl\":\"Poista Kaikki Avaimet\",\"meKObD\":[\"Poista avain \",[\"fingerprint\"]],\"ZZqRDO\":\"Avainten poisto poistaa ne tietokoneeltasi. Varmista että sinulla on varmuuskopio. Haluatko jatkaa?\",\"URmyfc\":\"Lisätiedot\",\"cO9+2L\":\"Poista Käytöstä\",\"SJnIJM\":\"Poista Salasanasuojaus Käytöstä\",\"bzSI52\":\"Hylkää\",\"mzI/c+\":\"Lataa\",\"SlfejT\":\"Virhe\",\"4BITzH\":\"Virhe:\",\"zO1gmR\":\"Poistu\",\"/lDBHm\":\"UKK\",\"H7spup\":\"Farmarin julkinen avain\",\"uR0aok\":\"Farmarin julkinen avain:\",\"cIsyes\":\"Farmarointi\",\"PLUB/s\":\"Maksu\",\"Y7sUms\":\"Sormenjälki ei täsmää\",\"F7G/TS\":\"Usein Kysytyt Kysymykset\",\"B6JcDL\":\"Siirry Lataussivulle\",\"c3XJ18\":\"Apuja\",\"sg/lRs\":\"Auta kääntämisessä\",\"vLyv1R\":\"Piilota\",\"9aHqty\":\"Piilota Lisävalinnat\",\"4WLV0r\":\"Tuo Olemassaoleva\",\"hrwyLa\":\"Import from Mnemonics (12 or 24 words)\",\"Qn/F4f\":\"Virheellinen arvo\",\"vXIe7J\":\"Kieli\",\"L493i/\":\"Viimeisin Versio:\",\"1njn7W\":\"Vaalea\",\"1u9je+\":[\"Todennäköisesti \",[\"0\"],\" sekunnissa\"],\"ZWzkEr\":[\"Todennäköisesti \",[\"minutes\"],\" minuutissa\"],\"futFyg\":\"Todennäköisesti >5 minuutissa\",\"se/XvF\":\"Ladataan lisätietoja\",\"NZdZtz\":\"Ladataan avaimia\",\"PV+bVa\":\"Loading list of the keys\",\"paehRh\":\"Log Out\",\"nOhz3x\":\"Logout\",\"y5rS9U\":\"Siirrä\",\"blkZ0A\":\"Siirto vaaditaan\",\"zz/Wd/\":\"Tila\",\"FGyIVZ\":\"ÄLÄ KOSKAAN JAA NÄITÄ KENELLEKÄÄN\",\"x2xCEX\":\"Uusi salasana on sama kuin nykyinen salasana\",\"jtkUF9\":[\"Uusi versio \",[\"latestVersion\"],\" saatavilla\"],\"kZoZl6\":\"Tuotu avain, ei 24 muistisanaa.\",\"S33tz3\":\"Ei yhteyttä\",\"swfAWJ\":\"Not Synced\",\"zga9sT\":\"OK\",\"r9vw5O\":\"Avaa mahdollisuuksien maailma.\",\"kJCHR6\":\"Poolin Julkinen Avain\",\"l2g790\":\"Poolin julkinen avain:\",\"CvVuH+\":[\"Yksityinen avain \",[\"fingerprint\"]],\"kVwasa\":\"Yksityinen avain:\",\"z1Vlg/\":\"Julkinen avain\",\"w7FjgX\":\"Julkinen avain:\",\"ofUcbc\":\"Satunnainen\",\"WkVBw+\":\"Suositeltu arvo: 0.000005\",\"rwWjWg\":\"Version Muutokset\",\"3kCujM\":\"Uudelleenkäynnistä Sovellus\",\"S0UOEO\":\"Poista Kuvake\",\"2wxgft\":\"Nimeä uudelleen\",\"VL3117\":\"Raportoi Ongelma\",\"DzKAN8\":\"Näytä\",\"tfDRzk\":\"Tallenna\",\"A1taO8\":\"Etsi\",\"E7bgrN\":\"Salainen avain\",\"vJb1IT\":\"Avainsanat\",\"+ylpgu\":\"Siemenarvo:\",\"n+n+8Y\":\"Select Key\",\"O/7I0o\":\"Valitse...\",\"LDzfVJ\":\"Lähetä palautetta\",\"BiSySj\":\"Salasanan asettaminen on erittäin suositeltavaa avaimien suojaamiseksi. Oletko varma, että haluat ohittaa salasanan asettamisen?\",\"Tz0i8g\":\"Asetukset\",\"PUO6ed\":\"Näytä Lisävalinnat\",\"n1ekoW\":\"Sign In\",\"6Uau97\":\"Ohita\",\"HA3sM+\":\"Ohita Salasanalauseiden Suojaus\",\"nwtY4N\":\"Jokin meni pieleen\",\"N2FcBE\":\"Synced\",\"EHu0x2\":\"Syncing\",\"6g6WuG\":\"Annettu salasana ja vahvistus eivät täsmää\",\"JaTyma\":\"Varoitus: Tätä avainta käytetään lompakossa, jossa voi olla saldoa. Poistamalla tämän avaimen voit menettää pääsyn tähän lompakkoon\",\"OHjF3s\":\"Varoitus: tätä avainta käytetään farmarin palkinto-osoitteeseen. Poistamalla tämän avaimen voit menettää pääsyn tuleviin farmaripalkkioihin\",\"9Cee2e\":\"Varoitus: tätä avainta käytetään poolin palkinto-osoitteeseen. Poistamalla tämän avaimen voit menettää pääsyn tuleviin poolipalkkioihin\",\"aR0+N0\":\"Tämä poistaa avaimen pysyvästi tietokoneeltasi, varmista, että sinulla on mnemoninen lause varmuuskopioitu.\",\"GeD1cF\":[\"Transaction has been sent to a full node and is pending inclusion into the mempool. \",[\"0\"]],\"ClFkb8\":\"Transaktioita ei ole vielä lähetetty noodiin\",\"R3/TUc\":[\"Transaction has been sent to a full node and is pending inclusion into the mempool. \",[\"0\"]],\"8C0mqM\":\"Transaktio on onnistuneesti lähetetty noodille ja sisällytetty mempooliin.\",\"qJb6G2\":\"Yritä uudelleen\",\"hQuAt5\":\"Avaimia ei voi ladata\",\"uSyNqq\":\"Unable to load the list of the keys\",\"Ef7StM\":\"Tuntematon\",\"E+4PpT\":\"Tallentamattomia muutoksia\",\"CdYgmX\":\"Salasanan asettaminen on erittäin suositeltavaa avaimien suojaamiseksi. Oletko varma, että haluat ohittaa salasanan asettamisen?\",\"RrKn34\":\"Arvo vaikuttaa suurelta\",\"sb9Y58\":\"Lompakot\",\"Y6unKz\":[\"Lompakko \",[\"0\"]],\"YND/Oq\":\"Lompakon Sormenjälki\",\"Q+Zog9\":\"Lompakon Avaimet\",\"kZbfW/\":\"Welcome to Chia. Please log in with an existing key, or create a new key.\",\"U4uzyV\":\"Mitä Uutta\",\"tarSJQ\":\"Olet tehnyt muutoksia. Haluatko hylätä ne?\",\"Ekblrc\":\"Olet ajan tasalla\",\"+sV+6K\":\"Tämänhetkinen Versio:\",\"JeC7xq\":\"Avaimiasi ei ole siirretty uuteen avainrenkaaseen. Et voi luoda uusia avaimia tai poistaa olemassa olevia avaimia ennen kuin siirto on tehty. Haluatko siirtää avaimesi nyt?\"}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"1hZFVs\":\"(>5 min)\",\"x8qMgP\":[\"(~\",[\"selectedTime\"],\" min)\"],\"Vz+B79\":[[\"0\",\"plural\",{\"one\":\"mojo\",\"other\":\"mojoa\"}]],\"ymf8PY\":[[\"minPassphraseLength\",\"plural\",{\"one\":[\"Salasanojen on oltava vähintään \",\"#\",\" merkki pituudeltaan\"],\"other\":[\"Salasanojen on oltava vähintään \",\"#\",\" merkkiä pituudeltaan\"]}]],\"D4Fysr\":\"Uusi versio Chiasta on saatavilla!\",\"pHwXUV\":\"Lisää Ikoni\",\"XyAmgg\":\"Lisää Lompakko\",\"hehnjM\":\"Summa\",\"aAIQg2\":\"Ulkoasu\",\"5xA48q\":\"Oletko varma, että haluat jatkaa? Kirjoita tämän lompakon sormenjälki vahvistaaksesi poistamisen.\",\"iH8pgl\":\"Takaisin\",\"dEgA5A\":\"Peru\",\"WMCwmR\":\"Tarkista päivitykset\",\"RTyFT2\":\"Tarkistetaan päivityksiä...\",\"hva9Hs\":[\"Chia \",[\"latestVersion\"],\" on tällä hetkellä uusin versio.\"],\"aBy9ta\":\"Chia-sovelluksen Versio:\",\"yz7wBu\":\"Sulje\",\"QHcLEN\":\"Yhdistetty\",\"6V3Ea3\":\"Kopioitu\",\"RTxUjI\":\"Kopioi Leikepöydälle\",\"zuFu16\":\"Create a new private key\",\"TmpHv5\":\"Luo uusi lompakon avain\",\"AuSKC3\":\"Luo uusi lompakon avain päästäksesi alkuun Chian kanssa.\",\"8faOjQ\":\"Luo Uusi\",\"pvnfJD\":\"Tumma\",\"cnGeoo\":\"Poista\",\"N/zU3D\":\"Poista kaikki avaimet\",\"ULTyyl\":\"Poista Kaikki Avaimet\",\"meKObD\":[\"Poista avain \",[\"fingerprint\"]],\"ZZqRDO\":\"Avainten poisto poistaa ne tietokoneeltasi. Varmista että sinulla on varmuuskopio. Haluatko jatkaa?\",\"URmyfc\":\"Lisätiedot\",\"cO9+2L\":\"Poista Käytöstä\",\"SJnIJM\":\"Poista Salasanasuojaus Käytöstä\",\"bzSI52\":\"Hylkää\",\"mzI/c+\":\"Lataa\",\"SlfejT\":\"Virhe\",\"4BITzH\":\"Virhe:\",\"zO1gmR\":\"Poistu\",\"/lDBHm\":\"UKK\",\"H7spup\":\"Farmarin julkinen avain\",\"uR0aok\":\"Farmarin julkinen avain:\",\"cIsyes\":\"Farmarointi\",\"PLUB/s\":\"Maksu\",\"Y7sUms\":\"Sormenjälki ei täsmää\",\"F7G/TS\":\"Usein Kysytyt Kysymykset\",\"B6JcDL\":\"Siirry Lataussivulle\",\"c3XJ18\":\"Apuja\",\"sg/lRs\":\"Auta kääntämisessä\",\"vLyv1R\":\"Piilota\",\"9aHqty\":\"Piilota Lisävalinnat\",\"4WLV0r\":\"Tuo Olemassaoleva\",\"hrwyLa\":\"Import from Mnemonics (12 or 24 words)\",\"Qn/F4f\":\"Virheellinen arvo\",\"vXIe7J\":\"Kieli\",\"L493i/\":\"Viimeisin Versio:\",\"1njn7W\":\"Vaalea\",\"1u9je+\":[\"Todennäköisesti \",[\"0\"],\" sekunnissa\"],\"ZWzkEr\":[\"Todennäköisesti \",[\"minutes\"],\" minuutissa\"],\"futFyg\":\"Todennäköisesti >5 minuutissa\",\"se/XvF\":\"Ladataan lisätietoja\",\"NZdZtz\":\"Ladataan avaimia\",\"PV+bVa\":\"Loading list of the keys\",\"paehRh\":\"Log Out\",\"nOhz3x\":\"Logout\",\"y5rS9U\":\"Siirrä\",\"blkZ0A\":\"Siirto vaaditaan\",\"zz/Wd/\":\"Tila\",\"FGyIVZ\":\"ÄLÄ KOSKAAN JAA NÄITÄ KENELLEKÄÄN\",\"x2xCEX\":\"Uusi salasana on sama kuin nykyinen salasana\",\"jtkUF9\":[\"Uusi versio \",[\"latestVersion\"],\" saatavilla\"],\"kZoZl6\":\"Tuotu avain, ei 24 muistisanaa.\",\"S33tz3\":\"Ei yhteyttä\",\"swfAWJ\":\"Not Synced\",\"zga9sT\":\"OK\",\"r9vw5O\":\"Avaa mahdollisuuksien maailma.\",\"kJCHR6\":\"Poolin Julkinen Avain\",\"l2g790\":\"Poolin julkinen avain:\",\"CvVuH+\":[\"Yksityinen avain \",[\"fingerprint\"]],\"kVwasa\":\"Yksityinen avain:\",\"z1Vlg/\":\"Julkinen avain\",\"w7FjgX\":\"Julkinen avain:\",\"ofUcbc\":\"Satunnainen\",\"WkVBw+\":\"Suositeltu arvo: 0.000005\",\"rwWjWg\":\"Version Muutokset\",\"3kCujM\":\"Uudelleenkäynnistä Sovellus\",\"S0UOEO\":\"Poista Kuvake\",\"2wxgft\":\"Nimeä uudelleen\",\"VL3117\":\"Raportoi Ongelma\",\"DzKAN8\":\"Näytä\",\"tfDRzk\":\"Tallenna\",\"A1taO8\":\"Etsi\",\"E7bgrN\":\"Salainen avain\",\"vJb1IT\":\"Avainsanat\",\"+ylpgu\":\"Siemenarvo:\",\"n+n+8Y\":\"Select Key\",\"O/7I0o\":\"Valitse...\",\"LDzfVJ\":\"Lähetä palautetta\",\"BiSySj\":\"Salasanan asettaminen on erittäin suositeltavaa avaimien suojaamiseksi. Oletko varma, että haluat ohittaa salasanan asettamisen?\",\"Tz0i8g\":\"Asetukset\",\"PUO6ed\":\"Näytä Lisävalinnat\",\"n1ekoW\":\"Sign In\",\"6Uau97\":\"Ohita\",\"HA3sM+\":\"Ohita Salasanalauseiden Suojaus\",\"nwtY4N\":\"Jokin meni pieleen\",\"N2FcBE\":\"Synced\",\"EHu0x2\":\"Syncing\",\"6g6WuG\":\"Annettu salasana ja vahvistus eivät täsmää\",\"JaTyma\":\"Varoitus: Tätä avainta käytetään lompakossa, jossa voi olla saldoa. Poistamalla tämän avaimen voit menettää pääsyn tähän lompakkoon\",\"OHjF3s\":\"Varoitus: tätä avainta käytetään farmarin palkinto-osoitteeseen. Poistamalla tämän avaimen voit menettää pääsyn tuleviin farmaripalkkioihin\",\"9Cee2e\":\"Varoitus: tätä avainta käytetään poolin palkinto-osoitteeseen. Poistamalla tämän avaimen voit menettää pääsyn tuleviin poolipalkkioihin\",\"aR0+N0\":\"Tämä poistaa avaimen pysyvästi tietokoneeltasi, varmista, että sinulla on mnemoninen lause varmuuskopioitu.\",\"GeD1cF\":[\"Transaktio on lähetetty noodille ja odottaa sisällyttämistä mempooliin. \",[\"0\"]],\"ClFkb8\":\"Transaktioita ei ole vielä lähetetty noodiin\",\"R3/TUc\":[\"Transaction has been sent to a full node and is pending inclusion into the mempool. \",[\"0\"]],\"8C0mqM\":\"Transaktio on onnistuneesti lähetetty noodille ja sisällytetty mempooliin.\",\"qJb6G2\":\"Yritä uudelleen\",\"hQuAt5\":\"Avaimia ei voi ladata\",\"uSyNqq\":\"Unable to load the list of the keys\",\"Ef7StM\":\"Tuntematon\",\"E+4PpT\":\"Tallentamattomia muutoksia\",\"CdYgmX\":\"Salasanan asettaminen on erittäin suositeltavaa avaimien suojaamiseksi. Oletko varma, että haluat ohittaa salasanan asettamisen?\",\"RrKn34\":\"Arvo vaikuttaa suurelta\",\"sb9Y58\":\"Lompakot\",\"Y6unKz\":[\"Lompakko \",[\"0\"]],\"YND/Oq\":\"Lompakon Sormenjälki\",\"Q+Zog9\":\"Lompakon Avaimet\",\"kZbfW/\":\"Welcome to Chia. Please log in with an existing key, or create a new key.\",\"U4uzyV\":\"Mitä Uutta\",\"tarSJQ\":\"Olet tehnyt muutoksia. Haluatko hylätä ne?\",\"Ekblrc\":\"Olet ajan tasalla\",\"+sV+6K\":\"Tämänhetkinen Versio:\",\"JeC7xq\":\"Avaimiasi ei ole siirretty uuteen avainrenkaaseen. Et voi luoda uusia avaimia tai poistaa olemassa olevia avaimia ennen kuin siirto on tehty. Haluatko siirtää avaimesi nyt?\"}")}; \ No newline at end of file diff --git a/packages/core/src/locales/fi-FI/messages.po b/packages/core/src/locales/fi-FI/messages.po index 14442267f6..cd3108ab54 100644 --- a/packages/core/src/locales/fi-FI/messages.po +++ b/packages/core/src/locales/fi-FI/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fi_FI\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-02-04 00:04\n" +"PO-Revision-Date: 2024-04-07 00:04\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -486,7 +486,7 @@ msgstr "Tämä poistaa avaimen pysyvästi tietokoneeltasi, varmista, että sinul #: src/utils/getTransactionResult.ts:40 msgid "Transaction has been sent to a full node and is pending inclusion into the mempool. {0}" -msgstr "" +msgstr "Transaktio on lähetetty noodille ja odottaa sisällyttämistä mempooliin. {0}" #: src/utils/getTransactionResult.ts:15 msgid "Transaction has not been sent to node yet" diff --git a/packages/core/src/locales/ru-RU/messages.po b/packages/core/src/locales/ru-RU/messages.po index 4c1f9c44be..f00e4efa2e 100644 --- a/packages/core/src/locales/ru-RU/messages.po +++ b/packages/core/src/locales/ru-RU/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ru_RU\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-02-04 00:04\n" +"PO-Revision-Date: 2024-05-12 00:04\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" diff --git a/packages/core/src/locales/sv-SE/messages.js b/packages/core/src/locales/sv-SE/messages.js index 29a0c8f768..0b3c2516bd 100644 --- a/packages/core/src/locales/sv-SE/messages.js +++ b/packages/core/src/locales/sv-SE/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"1hZFVs\":\"(>5 min)\",\"x8qMgP\":[\"(~\",[\"selectedTime\"],\" min)\"],\"Vz+B79\":[[\"0\",\"plural\",{\"one\":\"mojo\",\"other\":\"mojo\"}]],\"ymf8PY\":[[\"minPassphraseLength\",\"plural\",{\"one\":[\"Lösenfraser måste vara minst \",\"#\",\" tecken lång\"],\"other\":[\"Lösenfraser måste vara minst \",\"#\",\" tecken lång\"]}]],\"D4Fysr\":\"En ny version av Chia finns tillgänglig!\",\"pHwXUV\":\"Lägg till ikon\",\"XyAmgg\":\"Lägg till plånbok\",\"hehnjM\":\"Belopp\",\"aAIQg2\":\"Utseende\",\"5xA48q\":\"Är du säker på att du vill fortsätta? Skriv in fingeravtrycket för denna plånboksnyckel för att bekräfta borttagning.\",\"iH8pgl\":\"Tillbaka\",\"dEgA5A\":\"Avbryt\",\"WMCwmR\":\"Sök efter uppdateringar\",\"RTyFT2\":\"Söker efter uppdateringar ...\",\"hva9Hs\":[\"Chia \",[\"latestVersion\"],\" är för närvarande den senaste tillgängliga versionen.\"],\"aBy9ta\":\"Chia programversion:\",\"yz7wBu\":\"Stäng\",\"QHcLEN\":\"Ansluten\",\"6V3Ea3\":\"Kopierad\",\"RTxUjI\":\"Kopiera till Urklipp\",\"zuFu16\":\"Create a new private key\",\"TmpHv5\":\"Skapa en ny plånboksnyckel\",\"AuSKC3\":\"Skapa en ny plånboksnyckel för att komma igång med Chia.\",\"8faOjQ\":\"Skapa ny\",\"pvnfJD\":\"Mörkt\",\"cnGeoo\":\"Ta bort\",\"N/zU3D\":\"Ta bort alla nycklar\",\"ULTyyl\":\"Ta bort alla nycklar\",\"meKObD\":[\"Ta bort nyckel \",[\"fingerprint\"]],\"ZZqRDO\":\"Om du tar bort alla nycklar kommer de att permanent tas bort från datorn. Se till att du har säkerhetskopierat dem. Är du säker på att du vill fortsätta?\",\"URmyfc\":\"Detaljer\",\"cO9+2L\":\"Inaktivera\",\"SJnIJM\":\"Inaktivera lösenfrasskydd\",\"bzSI52\":\"Spara inte\",\"mzI/c+\":\"Ladda ner\",\"SlfejT\":\"Fel\",\"4BITzH\":\"Fel:\",\"zO1gmR\":\"Esc\",\"/lDBHm\":\"FAQ\",\"H7spup\":\"Publik nyckel för odlare\",\"uR0aok\":\"Publik nyckel för odlare:\",\"cIsyes\":\"Odlar\",\"PLUB/s\":\"Avgift\",\"Y7sUms\":\"Fingeravtrycket matchar inte\",\"F7G/TS\":\"Vanliga frågor\",\"B6JcDL\":\"Gå till nedladdningssidan\",\"c3XJ18\":\"Hjälp\",\"sg/lRs\":\"Hjälp till med översättning\",\"vLyv1R\":\"Dölj\",\"9aHqty\":\"Dölj avancerade alternativ\",\"4WLV0r\":\"Importera befintlig\",\"hrwyLa\":\"Import from Mnemonics (12 or 24 words)\",\"Qn/F4f\":\"Felaktigt värde\",\"vXIe7J\":\"Språk\",\"L493i/\":\"Senaste version:\",\"1njn7W\":\"Ljust\",\"1u9je+\":[\"Troligen om \",[\"0\"],\" sekunder\"],\"ZWzkEr\":[\"Troligen om \",[\"minutes\"],\" minuter\"],\"futFyg\":\"Troligen om >5 minuter\",\"se/XvF\":\"Läser in information\",\"NZdZtz\":\"Läser in nycklar\",\"PV+bVa\":\"Loading list of the keys\",\"paehRh\":\"Log Out\",\"nOhz3x\":\"Logout\",\"y5rS9U\":\"Migrera\",\"blkZ0A\":\"Migrering krävs\",\"zz/Wd/\":\"Läge\",\"FGyIVZ\":\"DELA ALDRIG DESSA MED NÅGON ANNAN\",\"x2xCEX\":\"Ny lösenfras är densamma som din nuvarande lösenfras\",\"jtkUF9\":[\"Ny version \",[\"latestVersion\"],\" finns tillgänglig\"],\"kZoZl6\":\"Ingen 24 ords minnesfras eftersom denna nyckel har importerats.\",\"S33tz3\":\"Inte ansluten\",\"swfAWJ\":\"Not Synced\",\"zga9sT\":\"OK\",\"r9vw5O\":\"Öppna en värld av möjligheter.\",\"kJCHR6\":\"Publik nyckel för pool\",\"l2g790\":\"Publik nyckel för pool:\",\"CvVuH+\":[\"Privat nyckel \",[\"fingerprint\"]],\"kVwasa\":\"Privat nyckel:\",\"z1Vlg/\":\"Publik nyckel\",\"w7FjgX\":\"Publik nyckel:\",\"ofUcbc\":\"Slumpmässig\",\"WkVBw+\":\"Rekommenderat värde: 0,000005\",\"rwWjWg\":\"Viktig information\",\"3kCujM\":\"Läs in programmet på nytt\",\"S0UOEO\":\"Ta bort ikon\",\"2wxgft\":\"Byt namn\",\"VL3117\":\"Rapportera ett problem\",\"DzKAN8\":\"Reveal\",\"tfDRzk\":\"Spara\",\"A1taO8\":\"Sök\",\"E7bgrN\":\"Hemlig nyckel\",\"vJb1IT\":\"Minnesfras\",\"+ylpgu\":\"Minnesfras:\",\"n+n+8Y\":\"Select Key\",\"O/7I0o\":\"Välj...\",\"LDzfVJ\":\"Skicka feedback\",\"BiSySj\":\"Att ange en lösenfras rekommenderas starkt för att skydda dina nycklar. Är du säker på att du inte vill ange en lösenfras?\",\"Tz0i8g\":\"Inställningar\",\"PUO6ed\":\"Visa avancerade alternativ\",\"n1ekoW\":\"Sign In\",\"6Uau97\":\"Hoppa över\",\"HA3sM+\":\"Hoppa över lösenfrasskydd\",\"nwtY4N\":\"Något gick fel\",\"N2FcBE\":\"Synced\",\"EHu0x2\":\"Syncing\",\"6g6WuG\":\"Lösenfras och bekräftelse matchar inte\",\"JaTyma\":\"Denna nyckel används för en plånbok som kan ha ett saldo som inte är noll. Genom att ta bort denna nyckel kan du förlora åtkomst till plånboken\",\"OHjF3s\":\"Denna nyckel används för adressen för dina odlingsbelöningar. Om du tar bort denna nyckel kan du förlora åtkomst till framtida odlingsbelöningar\",\"9Cee2e\":\"This key is used for your pool rewards address. By deleting this key you may lose access to any future pool rewards\",\"aR0+N0\":\"Detta kommer att permanent ta bort nyckeln från din dator. Se till att du har en säkerhetskopia av din minnesfras.\",\"GeD1cF\":[\"Transaktionen har skickats till en fullständig nod och väntar på att inkluderas i mempoolen. \",[\"0\"]],\"ClFkb8\":\"Transaktionen har inte skickats till noden ännu\",\"R3/TUc\":[\"Transaction has been sent to a full node and is pending inclusion into the mempool. \",[\"0\"]],\"8C0mqM\":\"Transaktionen har skickats till en fullständig nod och inkluderats i mempoolen.\",\"qJb6G2\":\"Försök igen\",\"hQuAt5\":\"Det gick inte att läsa in nycklar\",\"uSyNqq\":\"Unable to load the list of the keys\",\"Ef7StM\":\"Okänd\",\"E+4PpT\":\"Osparade ändringar\",\"CdYgmX\":\"Att använda en lösenfras rekommenderas starkt för att skydda dina nycklar. Är du säker på att du vill ta bort lösenfrasskyddet?\",\"RrKn34\":\"Värdet verkar högt\",\"sb9Y58\":\"Plånbok\",\"Y6unKz\":[\"Plånbok \",[\"0\"]],\"YND/Oq\":\"Plånbokens fingeravtryck\",\"Q+Zog9\":\"Plånboksnycklar\",\"kZbfW/\":\"Welcome to Chia. Please log in with an existing key, or create a new key.\",\"U4uzyV\":\"Vad är nytt\",\"tarSJQ\":\"Du har gjort ändringar. Vill du kasta dem?\",\"Ekblrc\":\"Du är uppdaterad\",\"+sV+6K\":\"Din nuvarande version:\",\"JeC7xq\":\"Dina nycklar har inte migrerats till en ny nyckelring. Du kommer inte att kunna skapa nya nycklar eller ta bort befintliga nycklar tills migreringen är klar. Vill du migrera nycklarna nu?\"}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"1hZFVs\":\"(>5 min)\",\"x8qMgP\":[\"(~\",[\"selectedTime\"],\" min)\"],\"Vz+B79\":[[\"0\",\"plural\",{\"one\":\"mojo\",\"other\":\"mojo\"}]],\"ymf8PY\":[[\"minPassphraseLength\",\"plural\",{\"one\":[\"Lösenfraser måste vara minst \",\"#\",\" tecken lång\"],\"other\":[\"Lösenfraser måste vara minst \",\"#\",\" tecken lång\"]}]],\"D4Fysr\":\"En ny version av Chia finns tillgänglig!\",\"pHwXUV\":\"Lägg till ikon\",\"XyAmgg\":\"Lägg till plånbok\",\"hehnjM\":\"Belopp\",\"aAIQg2\":\"Utseende\",\"5xA48q\":\"Är du säker på att du vill fortsätta? Skriv in fingeravtrycket för denna plånboksnyckel för att bekräfta borttagning.\",\"iH8pgl\":\"Tillbaka\",\"dEgA5A\":\"Avbryt\",\"WMCwmR\":\"Sök efter uppdateringar\",\"RTyFT2\":\"Söker efter uppdateringar ...\",\"hva9Hs\":[\"Chia \",[\"latestVersion\"],\" är för närvarande den senaste tillgängliga versionen.\"],\"aBy9ta\":\"Chia programversion:\",\"yz7wBu\":\"Stäng\",\"QHcLEN\":\"Ansluten\",\"6V3Ea3\":\"Kopierad\",\"RTxUjI\":\"Kopiera till Urklipp\",\"zuFu16\":\"Create a new private key\",\"TmpHv5\":\"Skapa en ny plånboksnyckel\",\"AuSKC3\":\"Skapa en ny plånboksnyckel för att komma igång med Chia.\",\"8faOjQ\":\"Skapa ny\",\"pvnfJD\":\"Mörkt\",\"cnGeoo\":\"Ta bort\",\"N/zU3D\":\"Ta bort alla nycklar\",\"ULTyyl\":\"Ta bort alla nycklar\",\"meKObD\":[\"Ta bort nyckel \",[\"fingerprint\"]],\"ZZqRDO\":\"Om du tar bort alla nycklar kommer de att permanent tas bort från datorn. Se till att du har säkerhetskopierat dem. Är du säker på att du vill fortsätta?\",\"URmyfc\":\"Detaljer\",\"cO9+2L\":\"Inaktivera\",\"SJnIJM\":\"Inaktivera lösenfrasskydd\",\"bzSI52\":\"Spara inte\",\"mzI/c+\":\"Ladda ner\",\"SlfejT\":\"Fel\",\"4BITzH\":\"Fel:\",\"zO1gmR\":\"Esc\",\"/lDBHm\":\"FAQ\",\"H7spup\":\"Publik nyckel för odlare\",\"uR0aok\":\"Publik nyckel för odlare:\",\"cIsyes\":\"Odlar\",\"PLUB/s\":\"Avgift\",\"Y7sUms\":\"Fingeravtrycket matchar inte\",\"F7G/TS\":\"Vanliga frågor\",\"B6JcDL\":\"Gå till nedladdningssidan\",\"c3XJ18\":\"Hjälp\",\"sg/lRs\":\"Hjälp till med översättning\",\"vLyv1R\":\"Dölj\",\"9aHqty\":\"Dölj avancerade alternativ\",\"4WLV0r\":\"Importera befintlig\",\"hrwyLa\":\"Import from Mnemonics (12 or 24 words)\",\"Qn/F4f\":\"Felaktigt värde\",\"vXIe7J\":\"Språk\",\"L493i/\":\"Senaste version:\",\"1njn7W\":\"Ljust\",\"1u9je+\":[\"Troligen om \",[\"0\"],\" sekunder\"],\"ZWzkEr\":[\"Troligen om \",[\"minutes\"],\" minuter\"],\"futFyg\":\"Troligen om >5 minuter\",\"se/XvF\":\"Läser in information\",\"NZdZtz\":\"Läser in nycklar\",\"PV+bVa\":\"Loading list of the keys\",\"paehRh\":\"Log Out\",\"nOhz3x\":\"Logout\",\"y5rS9U\":\"Migrera\",\"blkZ0A\":\"Migrering krävs\",\"zz/Wd/\":\"Läge\",\"FGyIVZ\":\"DELA ALDRIG DESSA MED NÅGON ANNAN\",\"x2xCEX\":\"Ny lösenfras är densamma som din nuvarande lösenfras\",\"jtkUF9\":[\"Ny version \",[\"latestVersion\"],\" finns tillgänglig\"],\"kZoZl6\":\"Ingen 24 ords minnesfras eftersom denna nyckel har importerats.\",\"S33tz3\":\"Inte ansluten\",\"swfAWJ\":\"Not Synced\",\"zga9sT\":\"OK\",\"r9vw5O\":\"Öppna en värld av möjligheter.\",\"kJCHR6\":\"Publik nyckel för pool\",\"l2g790\":\"Publik nyckel för pool:\",\"CvVuH+\":[\"Privat nyckel \",[\"fingerprint\"]],\"kVwasa\":\"Privat nyckel:\",\"z1Vlg/\":\"Publik nyckel\",\"w7FjgX\":\"Publik nyckel:\",\"ofUcbc\":\"Slumpmässig\",\"WkVBw+\":\"Rekommenderat värde: 0,000005\",\"rwWjWg\":\"Viktig information\",\"3kCujM\":\"Läs in programmet på nytt\",\"S0UOEO\":\"Ta bort ikon\",\"2wxgft\":\"Byt namn\",\"VL3117\":\"Rapportera ett problem\",\"DzKAN8\":\"Visa\",\"tfDRzk\":\"Spara\",\"A1taO8\":\"Sök\",\"E7bgrN\":\"Hemlig nyckel\",\"vJb1IT\":\"Minnesfras\",\"+ylpgu\":\"Minnesfras:\",\"n+n+8Y\":\"Select Key\",\"O/7I0o\":\"Välj...\",\"LDzfVJ\":\"Skicka feedback\",\"BiSySj\":\"Att ange en lösenfras rekommenderas starkt för att skydda dina nycklar. Är du säker på att du inte vill ange en lösenfras?\",\"Tz0i8g\":\"Inställningar\",\"PUO6ed\":\"Visa avancerade alternativ\",\"n1ekoW\":\"Sign In\",\"6Uau97\":\"Hoppa över\",\"HA3sM+\":\"Hoppa över lösenfrasskydd\",\"nwtY4N\":\"Något gick fel\",\"N2FcBE\":\"Synced\",\"EHu0x2\":\"Syncing\",\"6g6WuG\":\"Lösenfras och bekräftelse matchar inte\",\"JaTyma\":\"Denna nyckel används för en plånbok som kan ha ett saldo som inte är noll. Genom att ta bort denna nyckel kan du förlora åtkomst till plånboken\",\"OHjF3s\":\"Denna nyckel används för adressen för dina odlingsbelöningar. Om du tar bort denna nyckel kan du förlora åtkomst till framtida odlingsbelöningar\",\"9Cee2e\":\"This key is used for your pool rewards address. By deleting this key you may lose access to any future pool rewards\",\"aR0+N0\":\"Detta kommer att permanent ta bort nyckeln från din dator. Se till att du har en säkerhetskopia av din minnesfras.\",\"GeD1cF\":[\"Transaktionen har skickats till en fullständig nod och väntar på att inkluderas i mempoolen. \",[\"0\"]],\"ClFkb8\":\"Transaktionen har inte skickats till noden ännu\",\"R3/TUc\":[\"Transaction has been sent to a full node and is pending inclusion into the mempool. \",[\"0\"]],\"8C0mqM\":\"Transaktionen har skickats till en fullständig nod och inkluderats i mempoolen.\",\"qJb6G2\":\"Försök igen\",\"hQuAt5\":\"Det gick inte att läsa in nycklar\",\"uSyNqq\":\"Unable to load the list of the keys\",\"Ef7StM\":\"Okänd\",\"E+4PpT\":\"Osparade ändringar\",\"CdYgmX\":\"Att använda en lösenfras rekommenderas starkt för att skydda dina nycklar. Är du säker på att du vill ta bort lösenfrasskyddet?\",\"RrKn34\":\"Värdet verkar högt\",\"sb9Y58\":\"Plånbok\",\"Y6unKz\":[\"Plånbok \",[\"0\"]],\"YND/Oq\":\"Plånbokens fingeravtryck\",\"Q+Zog9\":\"Plånboksnycklar\",\"kZbfW/\":\"Welcome to Chia. Please log in with an existing key, or create a new key.\",\"U4uzyV\":\"Vad är nytt\",\"tarSJQ\":\"Du har gjort ändringar. Vill du kasta dem?\",\"Ekblrc\":\"Du är uppdaterad\",\"+sV+6K\":\"Din nuvarande version:\",\"JeC7xq\":\"Dina nycklar har inte migrerats till en ny nyckelring. Du kommer inte att kunna skapa nya nycklar eller ta bort befintliga nycklar tills migreringen är klar. Vill du migrera nycklarna nu?\"}")}; \ No newline at end of file diff --git a/packages/core/src/locales/sv-SE/messages.po b/packages/core/src/locales/sv-SE/messages.po index 9a71718502..4f3f4f49a7 100644 --- a/packages/core/src/locales/sv-SE/messages.po +++ b/packages/core/src/locales/sv-SE/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sv_SE\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-03-03 00:04\n" +"PO-Revision-Date: 2024-05-05 00:04\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -24,7 +24,7 @@ msgstr "(>5 min)" #: src/components/EstimatedFee/EstimatedFee.tsx:64 msgid "(~{selectedTime} min)" -msgstr "" +msgstr "(~{selectedTime} min)" #: src/components/Amount/Amount.tsx:87 msgid "{0, plural, one {mojo} other {mojos}}" @@ -390,7 +390,7 @@ msgstr "Rapportera ett problem" #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:124 #: src/screens/SelectKey/SelectKeyDetailDialog.tsx:146 msgid "Reveal" -msgstr "" +msgstr "Visa" #: src/screens/SelectKey/SelectKeyRenameForm.tsx:109 msgid "Save" diff --git a/packages/core/src/locales/zh-CN/messages.po b/packages/core/src/locales/zh-CN/messages.po index 3907859606..88d4ada78c 100644 --- a/packages/core/src/locales/zh-CN/messages.po +++ b/packages/core/src/locales/zh-CN/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh_CN\n" "Project-Id-Version: 1263bc1f20e1271bda78e84d2f4a6562\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-03-03 00:04\n" +"PO-Revision-Date: 2024-05-05 00:04\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Plural-Forms: nplurals=1; plural=0;\n" diff --git a/packages/core/src/screens/SelectKey/EmojiAndColorPicker.tsx b/packages/core/src/screens/SelectKey/EmojiAndColorPicker.tsx index 283e70fb52..fdea881a09 100644 --- a/packages/core/src/screens/SelectKey/EmojiAndColorPicker.tsx +++ b/packages/core/src/screens/SelectKey/EmojiAndColorPicker.tsx @@ -75,7 +75,7 @@ export default function EmojiAndColorPicker(props: EmojiAndColorPickerType) { onClickOutside(); } }, - [onClickOutside] + [onClickOutside], ); React.useEffect(() => { diff --git a/packages/core/src/screens/SelectKey/SelectKey.tsx b/packages/core/src/screens/SelectKey/SelectKey.tsx index 3071a1a827..88362c9d34 100644 --- a/packages/core/src/screens/SelectKey/SelectKey.tsx +++ b/packages/core/src/screens/SelectKey/SelectKey.tsx @@ -134,7 +134,7 @@ export default function SelectKey() { Deleting all keys will permanently remove the keys from your computer, make sure you have backups. Are you sure you want to continue? - + , ); } diff --git a/packages/core/src/screens/SelectKey/WalletStatus.tsx b/packages/core/src/screens/SelectKey/WalletStatus.tsx index 925d6ec9cb..69e4caa374 100644 --- a/packages/core/src/screens/SelectKey/WalletStatus.tsx +++ b/packages/core/src/screens/SelectKey/WalletStatus.tsx @@ -37,7 +37,7 @@ export default function WalletStatus(props: WalletStatusProps) { {}, { pollingInterval: 10_000, - } + }, ); if (isLoading || !walletState) { diff --git a/packages/core/src/screens/SelectKey/WalletStatusHeight.tsx b/packages/core/src/screens/SelectKey/WalletStatusHeight.tsx index 85dcd16136..afe0da436a 100644 --- a/packages/core/src/screens/SelectKey/WalletStatusHeight.tsx +++ b/packages/core/src/screens/SelectKey/WalletStatusHeight.tsx @@ -8,7 +8,7 @@ export default function WalletStatusHeight() { {}, { pollingInterval: 10_000, - } + }, ); if (isLoading) { diff --git a/packages/core/src/theme/dark.ts b/packages/core/src/theme/dark.ts index 0006713529..5ad54857d3 100644 --- a/packages/core/src/theme/dark.ts +++ b/packages/core/src/theme/dark.ts @@ -157,5 +157,5 @@ export default createTheme( }, }, }, - } + }, ); diff --git a/packages/core/src/utils/validAddress.ts b/packages/core/src/utils/validAddress.ts index 9cf7e63b3a..9ac3477ea0 100644 --- a/packages/core/src/utils/validAddress.ts +++ b/packages/core/src/utils/validAddress.ts @@ -7,8 +7,8 @@ export default function validAddress(address: string, allowedPrefixes?: string[] if (allowedPrefixes && !allowedPrefixes.includes(prefix)) { throw new Error( `Invalid address: ${address}. Valid addresses must contain one of the following prefixes: ${allowedPrefixes.join( - ', ' - )}` + ', ', + )}`, ); } } diff --git a/packages/gui/package.json b/packages/gui/package.json index 57ba59396e..efc91ec2e5 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -7,7 +7,7 @@ "homepage": "./", "main": "build/electron/main.js", "engines": { - "node": ">=16.15.0" + "node": ">=18.18.2" }, "jest": { "testPathIgnorePatterns": [ @@ -41,7 +41,7 @@ "@chia-network/core": "1.0.0", "@chia-network/icons": "1.0.0", "@chia-network/wallets": "1.0.0", - "@electron/remote": "2.0.10", + "@electron/remote": "2.1.2", "@lingui/core": "4.4.0", "@lingui/macro": "4.4.0", "@lingui/react": "4.4.0", @@ -53,7 +53,7 @@ "@rehooks/local-storage": "2.4.4", "@walletconnect/sign-client": "2.10.0", "@walletconnect/utils": "2.10.0", - "axios": "1.6.0", + "axios": "1.6.4", "bech32": "2.0.0", "bignumber.js": "9.1.1", "byte-size": "8.1.1", @@ -136,10 +136,10 @@ "cross-env": "7.0.3", "date-and-time": "2.4.3", "css-loader": "6.8.1", - "electron": "27.0.0", + "electron": "30.0.1", "electron-devtools-assembler": "1.2.0", "electron-playwright-helpers": "^1.6.0", - "electron-winstaller": "5.1.0", + "electron-winstaller": "5.3.1", "html-webpack-plugin": "5.5.3", "jest": "29.6.3", "lodash-webpack-plugin": "0.11.6", diff --git a/packages/gui/public/index.html b/packages/gui/public/index.html index 48fff9e8ac..d79d6837eb 100644 --- a/packages/gui/public/index.html +++ b/packages/gui/public/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/gui/src/@types/WalletConnectCommandParam.ts b/packages/gui/src/@types/WalletConnectCommandParam.ts index 408a981fda..cdb0cd498c 100644 --- a/packages/gui/src/@types/WalletConnectCommandParam.ts +++ b/packages/gui/src/@types/WalletConnectCommandParam.ts @@ -14,7 +14,7 @@ type WalletConnectCommandParam = { value: any, params: WalletConnectCommandParam[], values: Record, - onChange: (values: Record) => void + onChange: (values: Record) => void, ) => ReactNode; hide?: boolean; }; diff --git a/packages/gui/src/components/addressbook/AddressBookSideBar.tsx b/packages/gui/src/components/addressbook/AddressBookSideBar.tsx index c86e08018c..90cc57cdd8 100644 --- a/packages/gui/src/components/addressbook/AddressBookSideBar.tsx +++ b/packages/gui/src/components/addressbook/AddressBookSideBar.tsx @@ -33,7 +33,7 @@ export default function AddressBookSideBar() { const filteredAddressesByName = addresses.filter( (addr: any) => (addr.name && addr.name.toLowerCase().includes(searchTerm)) || - (addr.address && addr.address.toLowerCase().includes(searchTerm)) + (addr.address && addr.address.toLowerCase().includes(searchTerm)), ); if (filteredAddressesByName && filteredAddressesByName.length > 0) { return true; @@ -45,7 +45,7 @@ export default function AddressBookSideBar() { const filteredDids = dids.filter( (did: any) => (did.name && did.name.toLowerCase().includes(searchTerm)) || - (did.did && did.did.toLowerCase().includes(searchTerm)) + (did.did && did.did.toLowerCase().includes(searchTerm)), ); if (filteredDids && filteredDids.length > 0) { return true; @@ -56,7 +56,7 @@ export default function AddressBookSideBar() { const filteredDomains = domainNames.filter( (domain: any) => (domain.name && domain.name.toLowerCase().includes(searchTerm)) || - (domain.domain && domain.domain.toLowerCase().includes(searchTerm)) + (domain.domain && domain.domain.toLowerCase().includes(searchTerm)), ); if (filteredDomains && filteredDomains.length > 0) { return true; diff --git a/packages/gui/src/components/addressbook/ContactEdit.tsx b/packages/gui/src/components/addressbook/ContactEdit.tsx index 1d9e01c8b8..71879f231a 100644 --- a/packages/gui/src/components/addressbook/ContactEdit.tsx +++ b/packages/gui/src/components/addressbook/ContactEdit.tsx @@ -242,7 +242,7 @@ export default function ContactEdit() { abContact.addresses.forEach((contactAddress) => { if (contactAddress.address === entry.address) { throw new Error( - `The address ${entry.address} is already assigned to an existing contact: ${abContact.name}` + `The address ${entry.address} is already assigned to an existing contact: ${abContact.name}`, ); } }); @@ -277,7 +277,7 @@ export default function ContactEdit() { data.notes, data.nftId, filteredDomains, - chosenEmoji + chosenEmoji, ); navigate(`/dashboard/addressbook/${Number(contact.contactId)}`); } diff --git a/packages/gui/src/components/addressbook/ContactSummary.tsx b/packages/gui/src/components/addressbook/ContactSummary.tsx index 6db5f53e6d..4b60f4affb 100644 --- a/packages/gui/src/components/addressbook/ContactSummary.tsx +++ b/packages/gui/src/components/addressbook/ContactSummary.tsx @@ -46,7 +46,7 @@ export default function ContactSummary() { Are you sure you want to permanently delete this contact? Once deleted, this contact cannot be recovered. - + , ); if (deleteContact) { diff --git a/packages/gui/src/components/app/AppKeyringMigrator.tsx b/packages/gui/src/components/app/AppKeyringMigrator.tsx index bd47aa06b2..76cf939838 100644 --- a/packages/gui/src/components/app/AppKeyringMigrator.tsx +++ b/packages/gui/src/components/app/AppKeyringMigrator.tsx @@ -82,7 +82,7 @@ export default function AppKeyringMigrator() { await openDialog( Keyring migration failed: {error.message} - + , ); } } diff --git a/packages/gui/src/components/app/AppProviders.tsx b/packages/gui/src/components/app/AppProviders.tsx index 6104fe634b..13c3a63092 100644 --- a/packages/gui/src/components/app/AppProviders.tsx +++ b/packages/gui/src/components/app/AppProviders.tsx @@ -70,7 +70,7 @@ export default function App(props: AppProps) { cert, key, webSocket: WebSocket, - }) + }), ); setIsReady(true); diff --git a/packages/gui/src/components/app/AppState.tsx b/packages/gui/src/components/app/AppState.tsx index bbb6715d24..128df2bd74 100644 --- a/packages/gui/src/components/app/AppState.tsx +++ b/packages/gui/src/components/app/AppState.tsx @@ -108,7 +108,7 @@ export default function AppState(props: Props) { } const specificRunningServiceStates = servicesState.running.filter((serviceName) => - runServices.includes(serviceName) + runServices.includes(serviceName), ); return specificRunningServiceStates.length === runServices.length; diff --git a/packages/gui/src/components/app/AppStatusHeader.tsx b/packages/gui/src/components/app/AppStatusHeader.tsx index c91d26a9ec..7c3f649df3 100644 --- a/packages/gui/src/components/app/AppStatusHeader.tsx +++ b/packages/gui/src/components/app/AppStatusHeader.tsx @@ -21,10 +21,10 @@ const StyledPopover = styled((props: PopoverProps) => )(({ color: theme.palette.mode === 'light' ? Color.Comet[700] : theme.palette.grey[300], boxShadow: `${Color.Neutral[50]} 0px 0px 0px 0px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.15 : 0.05 + theme.palette.mode === 'dark' ? 0.15 : 0.05, )} 0px 0px 0px 1px, ${alpha( Color.Neutral[900], - theme.palette.mode === 'dark' ? 0.01 : 0.1 + theme.palette.mode === 'dark' ? 0.01 : 0.1, )} 0px 10px 15px -3px, ${alpha(Color.Neutral[900], theme.palette.mode === 'dark' ? 0.15 : 0.05)} 0px 4px 6px -2px`, '& .MuiMenu-list': { padding: '4px 0', diff --git a/packages/gui/src/components/block/Block.jsx b/packages/gui/src/components/block/Block.jsx index 081e3e2a9a..66d6a3580a 100644 --- a/packages/gui/src/components/block/Block.jsx +++ b/packages/gui/src/components/block/Block.jsx @@ -69,7 +69,7 @@ export default function Block() { }, { skip: !blockRecord?.prevHash || !blockRecord?.height, - } + }, ); async function updateNewPlotId(blockLocal) { diff --git a/packages/gui/src/components/farm/FarmManageFarmingRewards.tsx b/packages/gui/src/components/farm/FarmManageFarmingRewards.tsx index 322328a5fd..b7638413d1 100644 --- a/packages/gui/src/components/farm/FarmManageFarmingRewards.tsx +++ b/packages/gui/src/components/farm/FarmManageFarmingRewards.tsx @@ -151,7 +151,7 @@ export default function FarmManageFarmingRewards(props: Props) { Note that this does not change your pooling payout addresses. This only affects old format plots, - and the 0.25XCH reward for pooling plots. + and the 0.125XCH reward for pooling plots. diff --git a/packages/gui/src/components/fullNode/FullNodeCloseConnection.tsx b/packages/gui/src/components/fullNode/FullNodeCloseConnection.tsx index f27aee39db..dd41a00b03 100644 --- a/packages/gui/src/components/fullNode/FullNodeCloseConnection.tsx +++ b/packages/gui/src/components/fullNode/FullNodeCloseConnection.tsx @@ -26,7 +26,7 @@ export default function FullNodeCloseConnection(props: Props): JSX.Element { } > Are you sure you want to disconnect? - + , ); } diff --git a/packages/gui/src/components/fullNode/card/FullNodeCardStatus.tsx b/packages/gui/src/components/fullNode/card/FullNodeCardStatus.tsx index 57a5f7dbc3..b93827664c 100644 --- a/packages/gui/src/components/fullNode/card/FullNodeCardStatus.tsx +++ b/packages/gui/src/components/fullNode/card/FullNodeCardStatus.tsx @@ -62,7 +62,7 @@ export default function FullNodeCardStatus() { {}, { pollingInterval: 10_000, - } + }, ); if (isLoading) { diff --git a/packages/gui/src/components/harvest/HarvesterDetail.tsx b/packages/gui/src/components/harvest/HarvesterDetail.tsx index c4c7be7527..e9a2950848 100644 --- a/packages/gui/src/components/harvest/HarvesterDetail.tsx +++ b/packages/gui/src/components/harvest/HarvesterDetail.tsx @@ -93,7 +93,7 @@ function HarvesterLatencyGraph(props: HarvesterLatencyGraphProps) { earnedSpacePercentage = ( }> {Math.round( - effectiveSpace.minus(harvesterTotalPlotSize).div(harvesterTotalPlotSize).multipliedBy(1000).toNumber() + effectiveSpace.minus(harvesterTotalPlotSize).div(harvesterTotalPlotSize).multipliedBy(1000).toNumber(), ) / 10}{' '} % diff --git a/packages/gui/src/components/harvest/HarvesterOverview.tsx b/packages/gui/src/components/harvest/HarvesterOverview.tsx index 4b9a25a657..2e711a20e3 100644 --- a/packages/gui/src/components/harvest/HarvesterOverview.tsx +++ b/packages/gui/src/components/harvest/HarvesterOverview.tsx @@ -141,7 +141,7 @@ export default function HarvesterOverview() { totalFarmSizeRaw={totalFarmSizeRaw} totalFarmSizeEffective={totalFarmSizeEffective} /> - + , ); } return elements; diff --git a/packages/gui/src/components/harvest/HarvesterPlotDetails.tsx b/packages/gui/src/components/harvest/HarvesterPlotDetails.tsx index 65bca9686c..b9580fde47 100644 --- a/packages/gui/src/components/harvest/HarvesterPlotDetails.tsx +++ b/packages/gui/src/components/harvest/HarvesterPlotDetails.tsx @@ -97,7 +97,7 @@ function HarvesterPlotDetails(props: HarvesterPlotDetailsProps) { }} /> C{cl} {countCompression} {percentageCompression}% - + , ); } @@ -133,7 +133,7 @@ function HarvesterPlotDetails(props: HarvesterPlotDetailsProps) { {kSizeAndCompressionBreakDown} - + , ); } diff --git a/packages/gui/src/components/harvest/LatencyCharts.tsx b/packages/gui/src/components/harvest/LatencyCharts.tsx index 897892b833..659f397917 100644 --- a/packages/gui/src/components/harvest/LatencyCharts.tsx +++ b/packages/gui/src/components/harvest/LatencyCharts.tsx @@ -78,7 +78,7 @@ function LatencyBarChart(props: BarChartProps) { }, }, }), - [unit] + [unit], ); const data = React.useMemo(() => { diff --git a/packages/gui/src/components/harvest/PlotDetailsChart.tsx b/packages/gui/src/components/harvest/PlotDetailsChart.tsx index 8c495224c8..b6d81796ab 100644 --- a/packages/gui/src/components/harvest/PlotDetailsChart.tsx +++ b/packages/gui/src/components/harvest/PlotDetailsChart.tsx @@ -70,7 +70,7 @@ function PlotDetailsChart(props: PlotDetailsProps) { }, ], }), - [kSizeData, compressionData] + [kSizeData, compressionData], ); return ; } diff --git a/packages/gui/src/components/lrus/LRUsProvider.tsx b/packages/gui/src/components/lrus/LRUsProvider.tsx index 615d3a27b8..27fbf7ab76 100644 --- a/packages/gui/src/components/lrus/LRUsProvider.tsx +++ b/packages/gui/src/components/lrus/LRUsProvider.tsx @@ -25,7 +25,7 @@ export default function LRUsProvider(props: LRUsProviderProps) { } return lru; }, - [LRUs] + [LRUs], ); const value = useMemo(() => ({ getLRU }), [getLRU]); diff --git a/packages/gui/src/components/nfts/NFTAutocomplete.tsx b/packages/gui/src/components/nfts/NFTAutocomplete.tsx index a3883e2f12..9c7b0d6753 100644 --- a/packages/gui/src/components/nfts/NFTAutocomplete.tsx +++ b/packages/gui/src/components/nfts/NFTAutocomplete.tsx @@ -85,7 +85,7 @@ export default function NFTAutocomplete(props: NFTAutocompleteProps) { ); }, - [inputValue] + [inputValue], ); const handleChange = useCallback( @@ -99,7 +99,7 @@ export default function NFTAutocomplete(props: NFTAutocompleteProps) { onChange(getNFTId(newValue.launcherId)); } }, - [onChange] + [onChange], ); const handleInputValueChange = useCallback( @@ -108,7 +108,7 @@ export default function NFTAutocomplete(props: NFTAutocompleteProps) { setSearchText(newInputValue); onChange(newInputValue || ''); }, - [onChange] + [onChange], ); const handleClose = useCallback(() => { @@ -137,7 +137,7 @@ export default function NFTAutocomplete(props: NFTAutocompleteProps) { return option.launcherId === selectedNFT.launcherId; }, - [firstOption, selectedNFT] + [firstOption, selectedNFT], ); const options = includeNFTCollection ? nfts : []; diff --git a/packages/gui/src/components/nfts/NFTBurnDialog.tsx b/packages/gui/src/components/nfts/NFTBurnDialog.tsx index 684f24a7ae..27e7f35aa0 100644 --- a/packages/gui/src/components/nfts/NFTBurnDialog.tsx +++ b/packages/gui/src/components/nfts/NFTBurnDialog.tsx @@ -88,7 +88,7 @@ export default function NFTBurnDialog(props: NFTPreviewDialogProps) { } confirmTitle={Burn} - /> + />, ); if (!confirmation) { diff --git a/packages/gui/src/components/nfts/NFTContextualActions.tsx b/packages/gui/src/components/nfts/NFTContextualActions.tsx index 9206740a50..2cd2252da5 100644 --- a/packages/gui/src/components/nfts/NFTContextualActions.tsx +++ b/packages/gui/src/components/nfts/NFTContextualActions.tsx @@ -172,13 +172,13 @@ function NFTTransferContextualAction(props: NFTTransferContextualActionProps) { openDialog( NFT Transfer Pending}> The NFT transfer transaction has been successfully submitted to the blockchain. - + , ); } else { openDialog( NFT Transfer Failed}> The NFT transfer failed: {result.error} - + , ); } } @@ -256,14 +256,14 @@ function NFTCancelUnconfirmedTransactionContextualAction(props: NFTCancelUnconfi The NFT status has been updated. If the transaction was successfully sent to the mempool, it may still complete. - + , ); } catch (error) { const err = error?.message || 'Unknown error'; openDialog( NFT Status Update Failed}> The NFT status update failed: {err} - + , ); } } @@ -475,10 +475,7 @@ function NFTHideContextualAction(props: NFTHideContextualActionProps) { } if (isMultiSelect) { - setHiddenMultiple( - selection?.items.map((nft: NFTInfo) => nft.$nftId), - !isHidden - ); + setHiddenMultiple(selection?.items.map((nft: NFTInfo) => nft.$nftId), !isHidden); setSelectedNFTIds([]); } else { setIsNFTHidden(selectedNft.$nftId, !isHidden); diff --git a/packages/gui/src/components/nfts/NFTDetails.tsx b/packages/gui/src/components/nfts/NFTDetails.tsx index e2c003424b..b950890e4f 100644 --- a/packages/gui/src/components/nfts/NFTDetails.tsx +++ b/packages/gui/src/components/nfts/NFTDetails.tsx @@ -7,7 +7,6 @@ import { Tooltip, Truncate, truncateValue, - Link, useCurrencyCode, } from '@chia-network/core'; import { Trans } from '@lingui/macro'; @@ -302,35 +301,37 @@ export default function NFTDetails(props: NFTDetailsProps) { }); } - if (metadata?.preview_image_uris) { - const value = metadata?.preview_image_uris.map((uri: string) => ( - -   - - {uri} - - - )); - rows.push({ - key: 'preview_image_uris', - label: Preview image uris, - value, + if (Array.isArray(metadata?.preview_image_uris)) { + metadata.preview_image_uris.forEach((uri: string, i: number) => { + if (uri) { + const index = i + 1; + rows.push({ + key: `preview-image-uris-${i}`, + label: Preview image URL {index}, + value: ( + + {uri} + + ), + }); + } }); } if (Array.isArray(metadata?.preview_video_uris)) { - const value = metadata?.preview_video_uris.map((uri: string) => ( - -   - - {uri} - - - )); - rows.push({ - key: 'preview_video_uris', - label: Preview video uris, - value, + metadata.preview_video_uris.forEach((uri: string, i: number) => { + if (uri) { + const index = i + 1; + rows.push({ + key: `preview-video-uris-${i}`, + label: Preview video URL {index}, + value: ( + + {uri} + + ), + }); + } }); } diff --git a/packages/gui/src/components/nfts/NFTFilterProvider.tsx b/packages/gui/src/components/nfts/NFTFilterProvider.tsx index 74bdbb3860..1c59d33706 100644 --- a/packages/gui/src/components/nfts/NFTFilterProvider.tsx +++ b/packages/gui/src/components/nfts/NFTFilterProvider.tsx @@ -48,7 +48,7 @@ export default function NFTFilterProvider(props: NFTFilterProviderProps) { setVisibility, setSearch, }), - [walletIds, types, visibility, search, setWalletIds, setTypes, setVisibility, setSearch] + [walletIds, types, visibility, search, setWalletIds, setTypes, setVisibility, setSearch], ); return {children}; diff --git a/packages/gui/src/components/nfts/NFTMoveToProfileDialog.tsx b/packages/gui/src/components/nfts/NFTMoveToProfileDialog.tsx index 9cf4bcb9b6..085eb3f124 100644 --- a/packages/gui/src/components/nfts/NFTMoveToProfileDialog.tsx +++ b/packages/gui/src/components/nfts/NFTMoveToProfileDialog.tsx @@ -193,20 +193,20 @@ export function NFTMoveToProfileAction(props: NFTMoveToProfileActionProps) { ) : null} - + , ); } else if (!error) { openDialog( NFT Move Pending}> The NFT move transaction has been successfully submitted to the blockchain. - + , ); } else { const err = error?.message || 'Unknown error'; openDialog( NFT Move Failed}> The NFT move failed: {err} - + , ); } } finally { diff --git a/packages/gui/src/components/nfts/NFTPreview.tsx b/packages/gui/src/components/nfts/NFTPreview.tsx index 39bd0f3075..ddf1b4c800 100644 --- a/packages/gui/src/components/nfts/NFTPreview.tsx +++ b/packages/gui/src/components/nfts/NFTPreview.tsx @@ -64,7 +64,9 @@ const ModelExtension = styled.div<{ isDarkMode: boolean }>` align-items: center; padding: 8px 16px; background: ${(props) => (props.isDarkMode ? Color.Neutral[800] : Color.Neutral[50])}; - box-shadow: 0px 0px 24px ${alpha(Color.Green[500], 0.5)}, 0px 4px 8px ${alpha(Color.Green[700], 0.32)}; + box-shadow: + 0px 0px 24px ${alpha(Color.Green[500], 0.5)}, + 0px 4px 8px ${alpha(Color.Green[700], 0.32)}; border-radius: 32px; color: ${(props) => (props.isDarkMode ? Color.Neutral[50] : Color.Neutral[800])}; `; @@ -146,7 +148,7 @@ export default function NFTPreview(props: NFTPreviewProps) { const [hideObjectionableContent] = useHideObjectionableContent(); const [ignoreSizeLimit /* , setIgnoreSizeLimit */] = usePersistState( false, - `nft-preview-ignore-size-limit-${nftId}` + `nft-preview-ignore-size-limit-${nftId}`, ); const { preview, isLoading: isLoadingVerifyHash } = useNFTVerifyHash(nftId, { @@ -254,7 +256,7 @@ export default function NFTPreview(props: NFTPreviewProps) {