diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 41934e00..4311fff7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,3 +5,5 @@ # That file is used for some automated workflows, and maps controller to owning team(s). * @MetaMask/core-platform @MetaMask/networks + +packages/bitcoin-wallet-snap @MetaMask/networks diff --git a/README.md b/README.md index 08b53cfe..7eba1a3a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Each snap in this repository has its own README with installation and usage inst +- [`@metamask/bitcoin-wallet-snap`](packages/bitcoin-wallet-snap) - [`@metamask/sample-snap`](packages/sample-snap) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 0967ef42..e2ef581c 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -1 +1,136 @@ -{} +{ + "packages/bitcoin-wallet-snap/integration-test/client-request.test.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + }, + "jest/no-disabled-tests": { + "count": 1 + }, + "no-restricted-syntax": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts": { + "n/no-sync": { + "count": 1 + }, + "no-restricted-syntax": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts": { + "no-restricted-syntax": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/integration-test/keyring.test.ts": { + "jest/no-disabled-tests": { + "count": 1 + }, + "no-restricted-syntax": { + "count": 3 + } + }, + "packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js": { + "n/no-sync": { + "count": 2 + } + }, + "packages/bitcoin-wallet-snap/scripts/populate-en-locale.js": { + "n/no-sync": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/snap.config.ts": { + "import-x/no-nodejs-modules": { + "count": 1 + }, + "no-restricted-globals": { + "count": 14 + } + }, + "packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 4 + } + }, + "packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 2 + }, + "@typescript-eslint/no-explicit-any": { + "count": 12 + } + }, + "packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.ts": { + "no-restricted-syntax": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/handlers/mappings.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 3 + }, + "@typescript-eslint/no-explicit-any": { + "count": 17 + } + }, + "packages/bitcoin-wallet-snap/src/handlers/validation.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 4 + } + }, + "packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/components/SendForm.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/ReviewTransactionView.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/SendFormView.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/UnifiedSendFormView.tsx": { + "id-length": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/store/InMemoryCache.test.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts": { + "@typescript-eslint/explicit-function-return-type": { + "count": 1 + }, + "@typescript-eslint/no-explicit-any": { + "count": 5 + } + } +} diff --git a/package.json b/package.json index 58545934..2e09be31 100644 --- a/package.json +++ b/package.json @@ -83,14 +83,16 @@ "simple-git-hooks": "^2.8.0", "ts-jest": "^29.4.1", "tsx": "^4.20.5", - "typescript": "~5.7.3", + "typescript": "~5.8.3", "typescript-eslint": "^8.48.0", "yargs": "^17.7.2" }, "resolutions": { - "@metamask/snaps-sdk": "^11.0.0", + "@metamask/snaps-sdk": "11.1.1", "elliptic@6.5.4": "^6.5.7", "fast-xml-parser@^4.3.4": "^4.4.1", + "hash-base@npm:^3.0.0": "3.1.0", + "ripemd160@npm:^2.0.1": "2.0.2", "ws@7.4.6": "^7.5.10" }, "simple-git-hooks": { diff --git a/merged-packages/bitcoin-wallet-snap/.env.example b/packages/bitcoin-wallet-snap/.env.example similarity index 100% rename from merged-packages/bitcoin-wallet-snap/.env.example rename to packages/bitcoin-wallet-snap/.env.example diff --git a/merged-packages/bitcoin-wallet-snap/CHANGELOG.md b/packages/bitcoin-wallet-snap/CHANGELOG.md similarity index 100% rename from merged-packages/bitcoin-wallet-snap/CHANGELOG.md rename to packages/bitcoin-wallet-snap/CHANGELOG.md diff --git a/merged-packages/bitcoin-wallet-snap/LICENSE b/packages/bitcoin-wallet-snap/LICENSE similarity index 97% rename from merged-packages/bitcoin-wallet-snap/LICENSE rename to packages/bitcoin-wallet-snap/LICENSE index ebc64e84..8bc6b28b 100644 --- a/merged-packages/bitcoin-wallet-snap/LICENSE +++ b/packages/bitcoin-wallet-snap/LICENSE @@ -17,4 +17,5 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/merged-packages/bitcoin-wallet-snap/README.md b/packages/bitcoin-wallet-snap/README.md similarity index 100% rename from merged-packages/bitcoin-wallet-snap/README.md rename to packages/bitcoin-wallet-snap/README.md diff --git a/merged-packages/bitcoin-wallet-snap/babel.config.js b/packages/bitcoin-wallet-snap/babel.config.js similarity index 100% rename from merged-packages/bitcoin-wallet-snap/babel.config.js rename to packages/bitcoin-wallet-snap/babel.config.js diff --git a/merged-packages/bitcoin-wallet-snap/crowdin.yml b/packages/bitcoin-wallet-snap/crowdin.yml similarity index 100% rename from merged-packages/bitcoin-wallet-snap/crowdin.yml rename to packages/bitcoin-wallet-snap/crowdin.yml diff --git a/merged-packages/bitcoin-wallet-snap/docs/ui.png b/packages/bitcoin-wallet-snap/docs/ui.png similarity index 100% rename from merged-packages/bitcoin-wallet-snap/docs/ui.png rename to packages/bitcoin-wallet-snap/docs/ui.png diff --git a/merged-packages/bitcoin-wallet-snap/images/icon.svg b/packages/bitcoin-wallet-snap/images/icon.svg similarity index 100% rename from merged-packages/bitcoin-wallet-snap/images/icon.svg rename to packages/bitcoin-wallet-snap/images/icon.svg diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/blockchain-utils.ts b/packages/bitcoin-wallet-snap/integration-test/blockchain-utils.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/integration-test/blockchain-utils.ts rename to packages/bitcoin-wallet-snap/integration-test/blockchain-utils.ts diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/client-request.test.ts b/packages/bitcoin-wallet-snap/integration-test/client-request.test.ts similarity index 97% rename from merged-packages/bitcoin-wallet-snap/integration-test/client-request.test.ts rename to packages/bitcoin-wallet-snap/integration-test/client-request.test.ts index 2cb56a67..6a576dbc 100644 --- a/merged-packages/bitcoin-wallet-snap/integration-test/client-request.test.ts +++ b/packages/bitcoin-wallet-snap/integration-test/client-request.test.ts @@ -3,10 +3,10 @@ import { FeeType, BtcAccountType, BtcScope } from '@metamask/keyring-api'; import type { Snap } from '@metamask/snaps-jest'; import { installSnap } from '@metamask/snaps-jest'; -import { BlockchainTestUtils } from './blockchain-utils'; -import { MNEMONIC, ORIGIN, TEST_ADDRESS_REGTEST } from './constants'; import { CurrencyUnit, TrackingSnapEvent } from '../src/entities'; import { Caip19Asset } from '../src/handlers/caip'; +import { BlockchainTestUtils } from './blockchain-utils'; +import { MNEMONIC, ORIGIN, TEST_ADDRESS_REGTEST } from './constants'; const ACCOUNT_INDEX = 1; @@ -28,7 +28,7 @@ describe('OnClientRequestHandler', () => { snap.mockJsonRpc((request) => { if (request.method === 'snap_manageAccounts') { const params = request.params as Record | undefined; - if (params && params.method === 'getSelectedAccounts') { + if (params?.method === 'getSelectedAccounts') { return createdAccountId ? [createdAccountId] : []; } return null; @@ -90,7 +90,6 @@ describe('OnClientRequestHandler', () => { response.response as { result: { transactionId: string } } ).result; - /* eslint-disable @typescript-eslint/naming-convention */ expect(response).toTrackEvent({ event: TrackingSnapEvent.TransactionSubmitted, properties: { @@ -101,7 +100,6 @@ describe('OnClientRequestHandler', () => { tx_id: transactionId, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ await blockchain.mineBlocks(6); @@ -112,7 +110,6 @@ describe('OnClientRequestHandler', () => { expect(finalSyncResponse).toRespondWith(null); - /* eslint-disable @typescript-eslint/naming-convention */ expect(finalSyncResponse).toTrackEvent({ event: TrackingSnapEvent.TransactionFinalized, properties: { @@ -123,7 +120,6 @@ describe('OnClientRequestHandler', () => { tx_id: transactionId, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ }); it('fails if incorrect PSBT', async () => { diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/constants.ts b/packages/bitcoin-wallet-snap/integration-test/constants.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/integration-test/constants.ts rename to packages/bitcoin-wallet-snap/integration-test/constants.ts diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts b/packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts similarity index 91% rename from merged-packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts rename to packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts index d90b6558..273e00ff 100644 --- a/merged-packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts +++ b/packages/bitcoin-wallet-snap/integration-test/cron-sync.test.ts @@ -3,9 +3,9 @@ import { BtcAccountType, BtcScope } from '@metamask/keyring-api'; import type { Snap } from '@metamask/snaps-jest'; import { installSnap } from '@metamask/snaps-jest'; +import { TrackingSnapEvent } from '../src/entities'; import { BlockchainTestUtils } from './blockchain-utils'; import { MNEMONIC, ORIGIN } from './constants'; -import { TrackingSnapEvent } from '../src/entities'; const ACCOUNT_INDEX = 2; @@ -30,7 +30,7 @@ describe('CronHandler', () => { snap.mockJsonRpc((request) => { if (request.method === 'snap_manageAccounts') { const params = request.params as Record | undefined; - if (params && params.method === 'getSelectedAccounts') { + if (params?.method === 'getSelectedAccounts') { return [...accountsToSync]; } return null; @@ -89,7 +89,6 @@ describe('CronHandler', () => { }); expect(syncResponse).toRespondWith(null); - /* eslint-disable @typescript-eslint/naming-convention */ expect(syncResponse).toTrackEvent({ event: 'Transaction Received', properties: { @@ -100,7 +99,6 @@ describe('CronHandler', () => { tx_id: txid, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ // send a transaction to the account txid = await blockchain.sendToAddress(account.address, 5); @@ -114,7 +112,6 @@ describe('CronHandler', () => { expect(syncResponse).toRespondWith(null); - /* eslint-disable @typescript-eslint/naming-convention */ expect(syncResponse).toTrackEvent({ event: TrackingSnapEvent.TransactionReceived, properties: { @@ -125,6 +122,5 @@ describe('CronHandler', () => { tx_id: txid, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ }); }); diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/docker-compose.yml b/packages/bitcoin-wallet-snap/integration-test/docker-compose.yml similarity index 65% rename from merged-packages/bitcoin-wallet-snap/integration-test/docker-compose.yml rename to packages/bitcoin-wallet-snap/integration-test/docker-compose.yml index 3c1c6bcd..883262aa 100644 --- a/merged-packages/bitcoin-wallet-snap/integration-test/docker-compose.yml +++ b/packages/bitcoin-wallet-snap/integration-test/docker-compose.yml @@ -3,11 +3,11 @@ services: image: blockstream/esplora container_name: esplora ports: - - "50001:50001" - - "8094:80" + - '50001:50001' + - '8094:80' volumes: - ./init-esplora.sh:/init-esplora.sh entrypoint: - bash - -c - - "/srv/explorer/run.sh bitcoin-regtest explorer" + - '/srv/explorer/run.sh bitcoin-regtest explorer' diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/init-esplora.sh b/packages/bitcoin-wallet-snap/integration-test/init-esplora.sh similarity index 100% rename from merged-packages/bitcoin-wallet-snap/integration-test/init-esplora.sh rename to packages/bitcoin-wallet-snap/integration-test/init-esplora.sh diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts b/packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts rename to packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts index 9f84bb52..f777d740 100644 --- a/merged-packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts +++ b/packages/bitcoin-wallet-snap/integration-test/keyring-request.test.ts @@ -3,11 +3,11 @@ import { BtcScope } from '@metamask/keyring-api'; import type { Snap } from '@metamask/snaps-jest'; import { assertIsConfirmationDialog, installSnap } from '@metamask/snaps-jest'; -import { BlockchainTestUtils } from './blockchain-utils'; -import { MNEMONIC, ORIGIN } from './constants'; import { AccountCapability } from '../src/entities'; import { Caip19Asset } from '../src/handlers/caip'; import type { FillPsbtResponse } from '../src/handlers/KeyringRequestHandler'; +import { BlockchainTestUtils } from './blockchain-utils'; +import { MNEMONIC, ORIGIN } from './constants'; const ACCOUNT_INDEX = 3; const submitRequestMethod = 'keyring_submitRequest'; @@ -30,7 +30,7 @@ describe('KeyringRequestHandler', () => { snap.mockJsonRpc((request) => { if (request.method === 'snap_manageAccounts') { const params = request.params as Record | undefined; - if (params && params.method === 'getSelectedAccounts') { + if (params?.method === 'getSelectedAccounts') { return createdAccountId ? [createdAccountId] : []; } return null; diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/keyring.test.ts b/packages/bitcoin-wallet-snap/integration-test/keyring.test.ts similarity index 98% rename from merged-packages/bitcoin-wallet-snap/integration-test/keyring.test.ts rename to packages/bitcoin-wallet-snap/integration-test/keyring.test.ts index b092ae3c..0908ade2 100644 --- a/merged-packages/bitcoin-wallet-snap/integration-test/keyring.test.ts +++ b/packages/bitcoin-wallet-snap/integration-test/keyring.test.ts @@ -3,6 +3,8 @@ import { BtcAccountType, BtcScope } from '@metamask/keyring-api'; import type { Snap } from '@metamask/snaps-jest'; import { installSnap } from '@metamask/snaps-jest'; +import { AccountCapability, CurrencyUnit } from '../src/entities'; +import { Caip19Asset } from '../src/handlers/caip'; import { FUNDING_TX, MNEMONIC, @@ -12,8 +14,6 @@ import { scopeToCoinType, accountTypeToPurpose, } from './constants'; -import { AccountCapability, CurrencyUnit } from '../src/entities'; -import { Caip19Asset } from '../src/handlers/caip'; const ACCOUNT_INDEX = 0; @@ -35,7 +35,7 @@ describe('Keyring', () => { snap.mockJsonRpc((request) => { if (request.method === 'snap_manageAccounts') { const params = request.params as Record | undefined; - if (params && params.method === 'getSelectedAccounts') { + if (params?.method === 'getSelectedAccounts') { return []; } return null; @@ -105,7 +105,6 @@ describe('Keyring', () => { methods: Object.values(AccountCapability), }); - // eslint-disable-next-line jest/no-conditional-in-test if ('result' in response.response) { accounts[TEST_ADDRESS_REGTEST] = response.response .result as KeyringAccount; @@ -158,7 +157,6 @@ describe('Keyring', () => { methods: Object.values(AccountCapability), }); - // eslint-disable-next-line jest/no-conditional-in-test if ('result' in response.response) { accounts[expectedAddress] = response.response.result as KeyringAccount; } @@ -230,7 +228,6 @@ describe('Keyring', () => { methods: Object.values(AccountCapability), }); - // eslint-disable-next-line jest/no-conditional-in-test if ('result' in response.response) { accounts[expectedAddress] = response.response.result as KeyringAccount; } diff --git a/merged-packages/bitcoin-wallet-snap/integration-test/run-integration.sh b/packages/bitcoin-wallet-snap/integration-test/run-integration.sh similarity index 100% rename from merged-packages/bitcoin-wallet-snap/integration-test/run-integration.sh rename to packages/bitcoin-wallet-snap/integration-test/run-integration.sh diff --git a/merged-packages/bitcoin-wallet-snap/jest.config.mjs b/packages/bitcoin-wallet-snap/jest.config.mjs similarity index 100% rename from merged-packages/bitcoin-wallet-snap/jest.config.mjs rename to packages/bitcoin-wallet-snap/jest.config.mjs diff --git a/merged-packages/bitcoin-wallet-snap/jest.integration.config.mjs b/packages/bitcoin-wallet-snap/jest.integration.config.mjs similarity index 99% rename from merged-packages/bitcoin-wallet-snap/jest.integration.config.mjs rename to packages/bitcoin-wallet-snap/jest.integration.config.mjs index 4c82e226..c36c839e 100644 --- a/merged-packages/bitcoin-wallet-snap/jest.integration.config.mjs +++ b/packages/bitcoin-wallet-snap/jest.integration.config.mjs @@ -8,4 +8,3 @@ const config = { }; export default config; - diff --git a/merged-packages/bitcoin-wallet-snap/keyring.openrpc.json b/packages/bitcoin-wallet-snap/keyring.openrpc.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/keyring.openrpc.json rename to packages/bitcoin-wallet-snap/keyring.openrpc.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/de.json b/packages/bitcoin-wallet-snap/locales/de.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/de.json rename to packages/bitcoin-wallet-snap/locales/de.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/el.json b/packages/bitcoin-wallet-snap/locales/el.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/el.json rename to packages/bitcoin-wallet-snap/locales/el.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/en.json b/packages/bitcoin-wallet-snap/locales/en.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/en.json rename to packages/bitcoin-wallet-snap/locales/en.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/es.json b/packages/bitcoin-wallet-snap/locales/es.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/es.json rename to packages/bitcoin-wallet-snap/locales/es.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/es_419.json b/packages/bitcoin-wallet-snap/locales/es_419.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/es_419.json rename to packages/bitcoin-wallet-snap/locales/es_419.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/fr.json b/packages/bitcoin-wallet-snap/locales/fr.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/fr.json rename to packages/bitcoin-wallet-snap/locales/fr.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/hi.json b/packages/bitcoin-wallet-snap/locales/hi.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/hi.json rename to packages/bitcoin-wallet-snap/locales/hi.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/id.json b/packages/bitcoin-wallet-snap/locales/id.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/id.json rename to packages/bitcoin-wallet-snap/locales/id.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/ja.json b/packages/bitcoin-wallet-snap/locales/ja.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/ja.json rename to packages/bitcoin-wallet-snap/locales/ja.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/ko.json b/packages/bitcoin-wallet-snap/locales/ko.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/ko.json rename to packages/bitcoin-wallet-snap/locales/ko.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/pt.json b/packages/bitcoin-wallet-snap/locales/pt.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/pt.json rename to packages/bitcoin-wallet-snap/locales/pt.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/ru.json b/packages/bitcoin-wallet-snap/locales/ru.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/ru.json rename to packages/bitcoin-wallet-snap/locales/ru.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/tl.json b/packages/bitcoin-wallet-snap/locales/tl.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/tl.json rename to packages/bitcoin-wallet-snap/locales/tl.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/tr.json b/packages/bitcoin-wallet-snap/locales/tr.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/tr.json rename to packages/bitcoin-wallet-snap/locales/tr.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/vi.json b/packages/bitcoin-wallet-snap/locales/vi.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/vi.json rename to packages/bitcoin-wallet-snap/locales/vi.json diff --git a/merged-packages/bitcoin-wallet-snap/locales/zh_CN.json b/packages/bitcoin-wallet-snap/locales/zh_CN.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/locales/zh_CN.json rename to packages/bitcoin-wallet-snap/locales/zh_CN.json diff --git a/merged-packages/bitcoin-wallet-snap/messages.json b/packages/bitcoin-wallet-snap/messages.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/messages.json rename to packages/bitcoin-wallet-snap/messages.json diff --git a/merged-packages/bitcoin-wallet-snap/openrpc.json b/packages/bitcoin-wallet-snap/openrpc.json similarity index 100% rename from merged-packages/bitcoin-wallet-snap/openrpc.json rename to packages/bitcoin-wallet-snap/openrpc.json diff --git a/merged-packages/bitcoin-wallet-snap/package.json b/packages/bitcoin-wallet-snap/package.json similarity index 77% rename from merged-packages/bitcoin-wallet-snap/package.json rename to packages/bitcoin-wallet-snap/package.json index 3288148a..18d6b74d 100644 --- a/merged-packages/bitcoin-wallet-snap/package.json +++ b/packages/bitcoin-wallet-snap/package.json @@ -1,29 +1,37 @@ { "name": "@metamask/bitcoin-wallet-snap", "version": "1.15.0", - "description": "A Bitcoin wallet Snap.", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/internal-snaps.git" - }, + "description": "A Bitcoin wallet Snap", + "keywords": [ + "Ethereum", + "MetaMask" + ], "homepage": "https://github.com/MetaMask/internal-snaps/tree/main/packages/bitcoin-wallet-snap#readme", "bugs": { "url": "https://github.com/MetaMask/internal-snaps/issues" }, "license": "MIT", - "main": "./dist/bundle.js", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/internal-snaps.git" + }, "files": [ "dist/", "images/", "snap.manifest.json", "locales/" ], + "main": "./dist/bundle.js", + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, "scripts": { "allow-scripts": "yarn workspace root allow-scripts", "build": "mm-snap build && yarn build:locale && yarn build-preinstalled-snap", "build-preinstalled-snap": "node scripts/build-preinstalled-snap.js", "build:clean": "yarn clean && yarn build:locale && yarn build", - "build:locale": "node ./scripts/populate-en-locale.js && prettier 'locales/**/*.json' -w", + "build:locale": "node ./scripts/populate-en-locale.js && oxfmt 'locales/**/*.json'", "build:locale:watch": "npx nodemon --watch packages/snap/messages.json --exec \"node ./scripts/populate-en-locale.js && prettier 'locales/**/*.json' -w\"", "changelog:update": "../../scripts/update-changelog.sh @metamask/bitcoin-wallet-snap", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bitcoin-wallet-snap", @@ -34,14 +42,17 @@ "lint:deps:fix": "depcheck && yarn dedupe", "lint:eslint": "eslint . --cache --ext js,jsx,ts,tsx", "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", - "lint:misc": "prettier '**/*.json' '**/*.md' --check", + "lint:misc": "oxfmt '**/*.json' '**/*.md' --check", "lint:types": "tsc --noEmit", "publish:preview": "yarn npm publish --tag preview", "prepublishOnly": "mm-snap manifest", "serve": "mm-snap serve", "start": "concurrently \"mm-snap watch\" \"yarn build:locale:watch\"", - "test": "jest", - "test:integration": "./integration-test/run-integration.sh" + "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", + "test:integration": "./integration-test/run-integration.sh", + "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", + "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose", + "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "devDependencies": { "@jest/globals": "^29.5.0", @@ -56,18 +67,19 @@ "@metamask/snaps-sdk": "^11.0.0", "@metamask/utils": "^11.9.0", "bip322-js": "^3.0.0", - "concurrently": "^9.2.1", + "concurrently": "^10.0.3", "dotenv": "^17.2.1", "jest": "^29.7.0", "jest-mock-extended": "^4.0.0", "jest-transform-stub": "2.0.0", + "oxfmt": "^0.45.0", "superstruct": "^2.0.2", "ts-jest": "^29.4.1", + "typescript": "~5.8.3", "uuid": "^14.0.0", "wif": "^5.0.0" }, - "publishConfig": { - "access": "public", - "registry": "https://registry.npmjs.org/" + "engines": { + "node": ">=20" } } diff --git a/merged-packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js b/packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js similarity index 99% rename from merged-packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js rename to packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js index 74a220b2..a369fb40 100644 --- a/merged-packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js +++ b/packages/bitcoin-wallet-snap/scripts/build-preinstalled-snap.js @@ -1,5 +1,4 @@ // @ts-check - const { readFileSync, writeFileSync } = require('node:fs'); const { join } = require('node:path'); @@ -10,6 +9,7 @@ console.log('[preinstalled-snap] - attempt to build preinstalled snap'); /** * Read the contents of a file and return as a string. + * * @param {string} filePath - Path to file. * @returns {string} File as utf-8 string. */ diff --git a/merged-packages/bitcoin-wallet-snap/scripts/populate-en-locale.js b/packages/bitcoin-wallet-snap/scripts/populate-en-locale.js similarity index 100% rename from merged-packages/bitcoin-wallet-snap/scripts/populate-en-locale.js rename to packages/bitcoin-wallet-snap/scripts/populate-en-locale.js diff --git a/merged-packages/bitcoin-wallet-snap/snap.config.ts b/packages/bitcoin-wallet-snap/snap.config.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/snap.config.ts rename to packages/bitcoin-wallet-snap/snap.config.ts diff --git a/merged-packages/bitcoin-wallet-snap/snap.manifest.json b/packages/bitcoin-wallet-snap/snap.manifest.json similarity index 93% rename from merged-packages/bitcoin-wallet-snap/snap.manifest.json rename to packages/bitcoin-wallet-snap/snap.manifest.json index 8a06e8f0..d726aa64 100644 --- a/merged-packages/bitcoin-wallet-snap/snap.manifest.json +++ b/packages/bitcoin-wallet-snap/snap.manifest.json @@ -1,13 +1,13 @@ { - "version": "1.14.1", + "version": "1.15.0", "description": "Manage Bitcoin using MetaMask", "proposedName": "Bitcoin", "repository": { "type": "git", - "url": "https://github.com/MetaMask/snap-bitcoin-wallet.git" + "url": "https://github.com/MetaMask/internal-snaps.git" }, "source": { - "shasum": "AJMM/qNI5aAedy2QgWak4Ms+B1e5r0VQBbRoJthPXnw=", + "shasum": "DU+UUHmv9yx6wtTo5LTjheE6ac2AaqEqy62smhRD0Xo=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/merged-packages/bitcoin-wallet-snap/src/config.ts b/packages/bitcoin-wallet-snap/src/config.ts similarity index 96% rename from merged-packages/bitcoin-wallet-snap/src/config.ts rename to packages/bitcoin-wallet-snap/src/config.ts index 1022af74..1cfcbf14 100644 --- a/merged-packages/bitcoin-wallet-snap/src/config.ts +++ b/packages/bitcoin-wallet-snap/src/config.ts @@ -2,7 +2,8 @@ import type { AddressType } from '@metamask/bitcoindevkit'; -import { LogLevel, type SnapConfig } from './entities'; +import { LogLevel } from './entities'; +import type { SnapConfig } from './entities'; const ENV = { LOG_LEVEL: process.env.LOG_LEVEL, diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/account.test.ts b/packages/bitcoin-wallet-snap/src/entities/account.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/account.test.ts rename to packages/bitcoin-wallet-snap/src/entities/account.test.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/account.ts b/packages/bitcoin-wallet-snap/src/entities/account.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/account.ts rename to packages/bitcoin-wallet-snap/src/entities/account.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/balance.test.ts b/packages/bitcoin-wallet-snap/src/entities/balance.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/entities/balance.test.ts rename to packages/bitcoin-wallet-snap/src/entities/balance.test.ts index b6361de8..dc0d9ccf 100644 --- a/merged-packages/bitcoin-wallet-snap/src/entities/balance.test.ts +++ b/packages/bitcoin-wallet-snap/src/entities/balance.test.ts @@ -56,7 +56,7 @@ describe('computeDisplayBalanceSats', () => { account.sentAndReceived.mockImplementation((tx) => { // Match by reference: find the txid whose mocked WalletTx.tx === tx. for (const [txid, walletTx] of Object.entries(overrides.txByTxid)) { - if (walletTx && walletTx.tx === tx) { + if (walletTx?.tx === tx) { return [sat(overrides.sentByTxid[txid] ?? 0n), sat(0n)]; } } diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/balance.ts b/packages/bitcoin-wallet-snap/src/entities/balance.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/balance.ts rename to packages/bitcoin-wallet-snap/src/entities/balance.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/chain.ts b/packages/bitcoin-wallet-snap/src/entities/chain.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/chain.ts rename to packages/bitcoin-wallet-snap/src/entities/chain.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/config.ts b/packages/bitcoin-wallet-snap/src/entities/config.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/config.ts rename to packages/bitcoin-wallet-snap/src/entities/config.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/confirmation.ts b/packages/bitcoin-wallet-snap/src/entities/confirmation.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/confirmation.ts rename to packages/bitcoin-wallet-snap/src/entities/confirmation.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/currency.ts b/packages/bitcoin-wallet-snap/src/entities/currency.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/currency.ts rename to packages/bitcoin-wallet-snap/src/entities/currency.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/error.ts b/packages/bitcoin-wallet-snap/src/entities/error.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/error.ts rename to packages/bitcoin-wallet-snap/src/entities/error.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/index.ts b/packages/bitcoin-wallet-snap/src/entities/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/index.ts rename to packages/bitcoin-wallet-snap/src/entities/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/logger.ts b/packages/bitcoin-wallet-snap/src/entities/logger.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/logger.ts rename to packages/bitcoin-wallet-snap/src/entities/logger.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/meta-protocols.ts b/packages/bitcoin-wallet-snap/src/entities/meta-protocols.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/meta-protocols.ts rename to packages/bitcoin-wallet-snap/src/entities/meta-protocols.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/rates.ts b/packages/bitcoin-wallet-snap/src/entities/rates.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/rates.ts rename to packages/bitcoin-wallet-snap/src/entities/rates.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/send-flow.ts b/packages/bitcoin-wallet-snap/src/entities/send-flow.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/send-flow.ts rename to packages/bitcoin-wallet-snap/src/entities/send-flow.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/snap.ts b/packages/bitcoin-wallet-snap/src/entities/snap.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/snap.ts rename to packages/bitcoin-wallet-snap/src/entities/snap.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/transaction.ts b/packages/bitcoin-wallet-snap/src/entities/transaction.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/transaction.ts rename to packages/bitcoin-wallet-snap/src/entities/transaction.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/entities/translator.ts b/packages/bitcoin-wallet-snap/src/entities/translator.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/entities/translator.ts rename to packages/bitcoin-wallet-snap/src/entities/translator.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts index bee2613a..63cc4050 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.test.ts @@ -4,10 +4,10 @@ import type { } from '@metamask/snaps-sdk'; import { mock } from 'jest-mock-extended'; +import type { Logger, SnapClient, SpotPrice } from '../entities'; import type { AssetsUseCases } from '../use-cases'; import { AssetsHandler } from './AssetsHandler'; import { Caip19Asset } from './caip'; -import type { Logger, SnapClient, SpotPrice } from '../entities'; describe('AssetsHandler', () => { const mockAssetsUseCases = mock(); diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/AssetsHandler.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts index 4a406285..224e9bf1 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/CronHandler.test.ts @@ -3,11 +3,7 @@ import { getSelectedAccounts } from '@metamask/keyring-snap-sdk'; import type { SnapsProvider, JsonRpcRequest } from '@metamask/snaps-sdk'; import { mock } from 'jest-mock-extended'; -import { - type BitcoinAccount, - type SnapClient, - type SyncResult, -} from '../entities'; +import type { BitcoinAccount, SnapClient, SyncResult } from '../entities'; import type { SendFlowUseCases, AccountUseCases } from '../use-cases'; import { CronHandler, CronMethod } from './CronHandler'; diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts similarity index 97% rename from merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts index 658f6a4a..f034158f 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/CronHandler.ts @@ -2,12 +2,8 @@ import { getSelectedAccounts } from '@metamask/keyring-snap-sdk'; import type { JsonRpcRequest, SnapsProvider } from '@metamask/snaps-sdk'; import { array, assert, object, string } from 'superstruct'; -import { - InexistentMethodError, - type SnapClient, - type SyncResult, - SynchronizationError, -} from '../entities'; +import { InexistentMethodError, SynchronizationError } from '../entities'; +import type { SnapClient, SyncResult } from '../entities'; import type { SendFlowUseCases, AccountUseCases } from '../use-cases'; export enum CronMethod { diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts b/packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts similarity index 96% rename from merged-packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts index a7dc68ae..d0734fc1 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.test.ts @@ -1,14 +1,8 @@ import type { GetPreferencesResult } from '@metamask/snaps-sdk'; import { mock } from 'jest-mock-extended'; -import { - type Logger, - type SnapClient, - type Translator, - BaseError, - ExternalServiceError, - UserActionError, -} from '../entities'; +import { BaseError, ExternalServiceError, UserActionError } from '../entities'; +import type { Logger, SnapClient, Translator } from '../entities'; import { HandlerMiddleware, shouldTrackError } from './HandlerMiddleware'; describe('HandlerMiddleware', () => { diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.ts b/packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.ts rename to packages/bitcoin-wallet-snap/src/handlers/HandlerMiddleware.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts index 2ca7f1db..c9d2658f 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.test.ts @@ -32,14 +32,14 @@ import { Purpose, FormatError, } from '../entities'; -import { scopeToNetwork, caipToAddressType, Caip19Asset } from './caip'; -import { KeyringHandler, CreateAccountRequest } from './KeyringHandler'; -import type { KeyringRequestHandler } from './KeyringRequestHandler'; -import { mapToDiscoveredAccount } from './mappings'; import type { AccountUseCases, CreateAccountParams, } from '../use-cases/AccountUseCases'; +import { scopeToNetwork, caipToAddressType, Caip19Asset } from './caip'; +import { KeyringHandler, CreateAccountRequest } from './KeyringHandler'; +import type { KeyringRequestHandler } from './KeyringRequestHandler'; +import { mapToDiscoveredAccount } from './mappings'; jest.mock('superstruct', () => ({ ...jest.requireActual('superstruct'), diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts index 7c4823b4..1f64694a 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/KeyringHandler.ts @@ -49,16 +49,18 @@ import { } from 'superstruct'; import { - type BitcoinAccount, computeDisplayBalanceSats, FormatError, InexistentMethodError, - type Logger, networkToCurrencyUnit, Purpose, purposeToAddressType, - type SnapClient, } from '../entities'; +import type { BitcoinAccount, Logger, SnapClient } from '../entities'; +import type { + AccountUseCases, + CreateAccountParams, +} from '../use-cases/AccountUseCases'; import { networkToCaip19, caipToAddressType, @@ -74,10 +76,6 @@ import { mapToTransaction, } from './mappings'; import { BtcWalletRequestStruct, validateSelectedAccounts } from './validation'; -import type { - AccountUseCases, - CreateAccountParams, -} from '../use-cases/AccountUseCases'; export const CreateAccountRequest = object({ scope: enums(Object.values(BtcScope)), diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts similarity index 94% rename from merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts index affd08e4..f396be20 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.test.ts @@ -3,8 +3,13 @@ import type { KeyringRequest } from '@metamask/keyring-api'; import { mock } from 'jest-mock-extended'; import { assert } from 'superstruct'; +import type { BitcoinAccount, ConfirmationRepository } from '../entities'; +import { AccountCapability } from '../entities'; import type { AccountUseCases } from '../use-cases'; import { KeyringRequestHandler } from './KeyringRequestHandler'; +import type { Utxo } from './mappings'; +import { mapToUtxo } from './mappings'; +import { parsePsbt } from './parsers'; import { BroadcastPsbtRequest, ComputeFeeRequest, @@ -13,11 +18,6 @@ import { SendTransferRequest, SignPsbtRequest, } from './validation'; -import type { BitcoinAccount, ConfirmationRepository } from '../entities'; -import { AccountCapability } from '../entities'; -import type { Utxo } from './mappings'; -import { mapToUtxo } from './mappings'; -import { parsePsbt } from './parsers'; /* eslint-disable @typescript-eslint/naming-convention */ jest.mock('@metamask/bitcoindevkit', () => ({ @@ -38,6 +38,35 @@ jest.mock('./mappings', () => ({ mapToUtxo: jest.fn(), })); +type TestKeyringRequest = { + account?: string; + id?: string; + origin?: string; + request: { + method: string; + params?: Record; + }; + scope?: string; +}; + +// `mock` composes recursive mock utility types with +// `superstruct`'s `Infer`, which can trigger TS2589 in nested request +// fixtures. +const createKeyringRequest = ({ + account = 'account-id', + id = 'account-id', + origin: requestOrigin = 'metamask', + request, + scope = 'scope', +}: TestKeyringRequest): KeyringRequest => + ({ + account, + id, + origin: requestOrigin, + request, + scope, + }) as KeyringRequest; + describe('KeyringRequestHandler', () => { const mockAccountsUseCases = mock(); const mockConfirmationRepository = mock(); @@ -58,9 +87,9 @@ describe('KeyringRequestHandler', () => { }); describe('route', () => { - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, - request: {}, + request: { method: '' }, id: 'account-id', scope: 'scope', account: 'account-id', @@ -76,7 +105,7 @@ describe('KeyringRequestHandler', () => { describe('signPsbt', () => { const mockOptions = { fill: false, broadcast: true }; const mockAccount = mock(); - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SignPsbt, @@ -136,7 +165,7 @@ describe('KeyringRequestHandler', () => { }); it('omits canBeMalleable when broadcast=false (no txid returned)', async () => { - const noBroadcastRequest = mock({ + const noBroadcastRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SignPsbt, @@ -197,7 +226,7 @@ describe('KeyringRequestHandler', () => { it('fills the PSBT before showing the confirmation when options.fill is true', async () => { const fillOptions = { fill: true, broadcast: true }; - const fillRequest = mock({ + const fillRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SignPsbt, @@ -294,7 +323,7 @@ describe('KeyringRequestHandler', () => { it('does not show confirmation or sign if fillPsbt fails', async () => { const fillOptions = { fill: true, broadcast: true }; - const fillRequest = mock({ + const fillRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SignPsbt, @@ -350,7 +379,7 @@ describe('KeyringRequestHandler', () => { }); describe('computeFee', () => { - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ request: { method: AccountCapability.ComputeFee, params: { @@ -416,7 +445,7 @@ describe('KeyringRequestHandler', () => { }); describe('fillPsbt', () => { - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ request: { method: AccountCapability.FillPsbt, params: { @@ -481,7 +510,7 @@ describe('KeyringRequestHandler', () => { }); describe('broadcastPsbt', () => { - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.BroadcastPsbt, @@ -573,7 +602,7 @@ describe('KeyringRequestHandler', () => { amount: '1000', }, ]; - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SendTransfer, @@ -646,7 +675,7 @@ describe('KeyringRequestHandler', () => { getUtxo: () => mockLocalOutput, network: 'bitcoin', }); - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.GetUtxo, @@ -700,7 +729,7 @@ describe('KeyringRequestHandler', () => { listUnspent: () => [mockLocalOutput, mockLocalOutput], network: 'bitcoin', }); - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.ListUtxos, @@ -732,7 +761,7 @@ describe('KeyringRequestHandler', () => { const mockAccount = mock({ publicDescriptor: 'publicDescriptor', }); - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.PublicDescriptor, @@ -753,7 +782,7 @@ describe('KeyringRequestHandler', () => { }); describe('signMessage', () => { - const mockRequest = mock({ + const mockRequest = createKeyringRequest({ origin, request: { method: AccountCapability.SignMessage, diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts index 170ec887..360151b1 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/KeyringRequestHandler.ts @@ -9,6 +9,7 @@ import { InexistentMethodError, NotFoundError, } from '../entities'; +import type { AccountUseCases } from '../use-cases/AccountUseCases'; import { mapToUtxo } from './mappings'; import { parsePsbt } from './parsers'; import { @@ -20,7 +21,6 @@ import { SignMessageRequest, SignPsbtRequest, } from './validation'; -import type { AccountUseCases } from '../use-cases/AccountUseCases'; export type SignPsbtResponse = { psbt: string; diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts index 597d5faf..46af2613 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/RpcHandler.test.ts @@ -5,12 +5,12 @@ import { BtcScope, FeeType } from '@metamask/keyring-api'; import type { JsonRpcRequest } from '@metamask/snaps-sdk'; import { mock } from 'jest-mock-extended'; +import type { Logger, BitcoinAccount } from '../entities'; import type { AccountUseCases, SendFlowUseCases } from '../use-cases'; import { Caip19Asset } from './caip'; +import { mapPsbtToTransaction } from './mappings'; import { RpcHandler } from './RpcHandler'; import { RpcMethod, SendErrorCodes } from './validation'; -import type { Logger, BitcoinAccount } from '../entities'; -import { mapPsbtToTransaction } from './mappings'; const mockPsbt = mock(); // TODO: enable when this is merged: https://github.com/rustwasm/wasm-bindgen/issues/1818 diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts index 1722459e..dd545ad1 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/RpcHandler.ts @@ -13,12 +13,11 @@ import { import { AssertionError, - type CodifiedError, FormatError, InexistentMethodError, - type Logger, ValidationError, } from '../entities'; +import type { CodifiedError, Logger } from '../entities'; import type { AccountUseCases, SendFlowUseCases } from '../use-cases'; import { scopeToNetwork } from './caip'; import type { TransactionFee } from './mappings'; diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.test.ts b/packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.test.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.ts b/packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.ts rename to packages/bitcoin-wallet-snap/src/handlers/UserInputHandler.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/caip.ts b/packages/bitcoin-wallet-snap/src/handlers/caip.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/caip.ts rename to packages/bitcoin-wallet-snap/src/handlers/caip.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/icons.ts b/packages/bitcoin-wallet-snap/src/handlers/icons.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/icons.ts rename to packages/bitcoin-wallet-snap/src/handlers/icons.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/index.ts b/packages/bitcoin-wallet-snap/src/handlers/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/index.ts rename to packages/bitcoin-wallet-snap/src/handlers/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/mappings.test.ts b/packages/bitcoin-wallet-snap/src/handlers/mappings.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/mappings.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/mappings.test.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/mappings.ts b/packages/bitcoin-wallet-snap/src/handlers/mappings.ts similarity index 98% rename from merged-packages/bitcoin-wallet-snap/src/handlers/mappings.ts rename to packages/bitcoin-wallet-snap/src/handlers/mappings.ts index 6f90bea7..6c8131a8 100644 --- a/merged-packages/bitcoin-wallet-snap/src/handlers/mappings.ts +++ b/packages/bitcoin-wallet-snap/src/handlers/mappings.ts @@ -19,11 +19,8 @@ import { TransactionStatus, } from '@metamask/keyring-api'; -import { - type BitcoinAccount, - canAccountTxidBeMalleated, - networkToCurrencyUnit, -} from '../entities'; +import { canAccountTxidBeMalleated, networkToCurrencyUnit } from '../entities'; +import type { BitcoinAccount } from '../entities'; import type { Caip19Asset } from './caip'; import { addressTypeToCaip, networkToCaip19, networkToScope } from './caip'; diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/parsers.ts b/packages/bitcoin-wallet-snap/src/handlers/parsers.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/parsers.ts rename to packages/bitcoin-wallet-snap/src/handlers/parsers.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/types.ts b/packages/bitcoin-wallet-snap/src/handlers/types.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/types.ts rename to packages/bitcoin-wallet-snap/src/handlers/types.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/validation.test.ts b/packages/bitcoin-wallet-snap/src/handlers/validation.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/validation.test.ts rename to packages/bitcoin-wallet-snap/src/handlers/validation.test.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/handlers/validation.ts b/packages/bitcoin-wallet-snap/src/handlers/validation.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/handlers/validation.ts rename to packages/bitcoin-wallet-snap/src/handlers/validation.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/index.ts b/packages/bitcoin-wallet-snap/src/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/index.ts rename to packages/bitcoin-wallet-snap/src/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts b/packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts similarity index 96% rename from merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts rename to packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts index 42015012..3b2425f9 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts +++ b/packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/naming-convention */ import type { ChangeSet, DescriptorPair, @@ -39,7 +38,6 @@ describe('BdkAccountAdapter', () => { }); describe('WebAssembly availability guard', () => { - // eslint-disable-next-line no-restricted-globals -- needed to save/restore the WebAssembly global in tests let originalWebAssembly: typeof WebAssembly; beforeEach(() => { diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts similarity index 97% rename from merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts index 760f6be7..89af0a75 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/BdkAccountAdapter.ts @@ -25,13 +25,8 @@ import { OutPoint, } from '@metamask/bitcoindevkit'; -import { - AccountCapability, - ValidationError, - WalletError, - type BitcoinAccount, - type TransactionBuilder, -} from '../entities'; +import { AccountCapability, ValidationError, WalletError } from '../entities'; +import type { BitcoinAccount, TransactionBuilder } from '../entities'; import { BdkTxBuilderAdapter } from './BdkTxBuilderAdapter'; /** diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts similarity index 95% rename from merged-packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts index f03d46e3..ef0ed32a 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/BdkTxBuilderAdapter.ts @@ -13,11 +13,8 @@ import { Recipient, } from '@metamask/bitcoindevkit'; -import { - type CodifiedError, - ValidationError, - type TransactionBuilder, -} from '../entities'; +import { ValidationError } from '../entities'; +import type { CodifiedError, TransactionBuilder } from '../entities'; export class BdkTxBuilderAdapter implements TransactionBuilder { #builder: TxBuilder; diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts similarity index 95% rename from merged-packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts index 2207af2b..65734c18 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/EsploraClientAdapter.ts @@ -5,11 +5,11 @@ import type { } from '@metamask/bitcoindevkit'; import { EsploraClient } from '@metamask/bitcoindevkit'; -import { - type BitcoinAccount, - type ChainConfig, - type BlockchainClient, - ExternalServiceError, +import { ExternalServiceError } from '../entities'; +import type { + BitcoinAccount, + ChainConfig, + BlockchainClient, } from '../entities'; export class EsploraClientAdapter implements BlockchainClient { diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/LocalTranslatorAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/LocalTranslatorAdapter.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/LocalTranslatorAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/LocalTranslatorAdapter.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts similarity index 96% rename from merged-packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts index c080d193..fd080edc 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/PriceApiClientAdapter.ts @@ -1,11 +1,11 @@ import type { HistoricalPriceValue } from '@metamask/snaps-sdk'; -import { - ExternalServiceError, - type AssetRatesClient, - type PriceApiConfig, - type SpotPrice, - type TimePeriod, +import { ExternalServiceError } from '../entities'; +import type { + AssetRatesClient, + PriceApiConfig, + SpotPrice, + TimePeriod, } from '../entities'; type SpotPricesResponse = { diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts b/packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts similarity index 94% rename from merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts rename to packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts index 64902bf9..a4498f87 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts +++ b/packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.test.ts @@ -6,7 +6,6 @@ import type { BitcoinAccount, Logger } from '../entities'; import { TrackingSnapEvent } from '../entities'; import { SnapClientAdapter } from './SnapClientAdapter'; -/* eslint-disable @typescript-eslint/naming-convention */ jest.mock('@metamask/bitcoindevkit', () => ({ Amount: { from_sat: jest.fn(() => ({ @@ -16,7 +15,6 @@ jest.mock('@metamask/bitcoindevkit', () => ({ })), }, })); -/* eslint-enable @typescript-eslint/naming-convention */ const setupTest = () => { const mockLogger = mock(); @@ -56,7 +54,6 @@ describe('SnapClientAdapter', () => { ), ).toBeUndefined(); - /* eslint-disable @typescript-eslint/naming-convention */ expect(mockRequest).toHaveBeenCalledWith({ method: 'snap_trackEvent', params: { @@ -72,7 +69,7 @@ describe('SnapClientAdapter', () => { }, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ + expect(mockLogger.error).toHaveBeenCalledWith( 'Failed to track event: Transaction Received', trackingError, diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts similarity index 98% rename from merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts index 8d8a6d39..2e195dd8 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/SnapClientAdapter.ts @@ -285,7 +285,6 @@ export class SnapClientAdapter implements SnapClient { } }; - /* eslint-disable @typescript-eslint/naming-convention */ await snap.request({ method: 'snap_trackEvent', params: { @@ -301,7 +300,6 @@ export class SnapClientAdapter implements SnapClient { }, }, }); - /* eslint-enable @typescript-eslint/naming-convention */ } catch (error) { this.#logger.error(`Failed to track event: ${eventType}`, error); } diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts similarity index 96% rename from merged-packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts rename to packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts index ae7c9d57..908e97ca 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts +++ b/packages/bitcoin-wallet-snap/src/infra/StoredAccountAdapter.ts @@ -16,13 +16,12 @@ import type { } from '@metamask/bitcoindevkit'; import { Address } from '@metamask/bitcoindevkit'; -import { - AccountCapability, - WalletError, - type AccountMetadata, - type AccountState, - type BitcoinAccount, - type TransactionBuilder, +import { AccountCapability, WalletError } from '../entities'; +import type { + AccountMetadata, + AccountState, + BitcoinAccount, + TransactionBuilder, } from '../entities'; type AccountStateWithMetadata = AccountState & { diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/index.ts b/packages/bitcoin-wallet-snap/src/infra/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/index.ts rename to packages/bitcoin-wallet-snap/src/infra/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIcon.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIcon.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIcon.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIcon.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIconInline.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIconInline.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIconInline.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/components/AssetIconInline.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/HeadingWithReturn.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/components/HeadingWithReturn.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/HeadingWithReturn.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/components/HeadingWithReturn.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/SendForm.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/components/SendForm.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/SendForm.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/components/SendForm.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/index.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/components/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/components/index.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/components/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx similarity index 97% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx index 2388c56a..ef4c474c 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx +++ b/packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignMessageConfirmationView.tsx @@ -8,8 +8,8 @@ import { Section, Text as SnapText, Tooltip, - type SnapComponent, } from '@metamask/snaps-sdk/jsx'; +import type { SnapComponent } from '@metamask/snaps-sdk/jsx'; import type { Messages, diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx similarity index 98% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx index 56f0937c..31d59ec5 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx +++ b/packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/SignPsbtConfirmationView.tsx @@ -7,8 +7,8 @@ import { Footer, Section, Text as SnapText, - type SnapComponent, } from '@metamask/snaps-sdk/jsx'; +import type { SnapComponent } from '@metamask/snaps-sdk/jsx'; import type { Messages, SignPsbtConfirmationContext } from '../../../entities'; import { ConfirmationEvent } from '../../../entities'; diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/index.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/index.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/confirmations/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts similarity index 92% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts index a175612f..6a8c225c 100644 --- a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts +++ b/packages/bitcoin-wallet-snap/src/infra/jsx/format.test.ts @@ -1,13 +1,11 @@ import { displayOrigin } from './format'; -/* eslint-disable @typescript-eslint/naming-convention */ jest.mock('@metamask/bitcoindevkit', () => ({ Amount: { from_sat: jest.fn(), }, BdkErrorCode: {}, })); -/* eslint-enable @typescript-eslint/naming-convention */ describe('displayOrigin', () => { it('returns the known label for the internal "metamask" origin', () => { diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/format.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/format.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/format.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/format.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin-inline.svg b/packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin-inline.svg similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin-inline.svg rename to packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin-inline.svg diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin.svg b/packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin.svg similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin.svg rename to packages/bitcoin-wallet-snap/src/infra/jsx/images/bitcoin.svg diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/signet.svg b/packages/bitcoin-wallet-snap/src/infra/jsx/images/signet.svg similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/signet.svg rename to packages/bitcoin-wallet-snap/src/infra/jsx/images/signet.svg diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/testnet.svg b/packages/bitcoin-wallet-snap/src/infra/jsx/images/testnet.svg similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/images/testnet.svg rename to packages/bitcoin-wallet-snap/src/infra/jsx/images/testnet.svg diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/index.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/index.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/ReviewTransactionView.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/ReviewTransactionView.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/ReviewTransactionView.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/ReviewTransactionView.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/SendFormView.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/SendFormView.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/SendFormView.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/SendFormView.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/index.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/index.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/send-flow/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/UnifiedSendFormView.tsx b/packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/UnifiedSendFormView.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/UnifiedSendFormView.tsx rename to packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/UnifiedSendFormView.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/index.ts b/packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/index.ts rename to packages/bitcoin-wallet-snap/src/infra/jsx/unified-send-flow/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts b/packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts rename to packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts index c4a30e2b..e909e902 100644 --- a/merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts +++ b/packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.test.ts @@ -21,7 +21,7 @@ import { BdkAccountAdapter } from '../infra'; import { BdkAccountRepository } from './BdkAccountRepository'; // TODO: enable when this is merged: https://github.com/rustwasm/wasm-bindgen/issues/1818 -/* eslint-disable @typescript-eslint/naming-convention */ + jest.mock('@metamask/bitcoindevkit', () => { return { ChangeSet: { diff --git a/merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts b/packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts similarity index 98% rename from merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts rename to packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts index 252970ed..44d1232d 100644 --- a/merged-packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts +++ b/packages/bitcoin-wallet-snap/src/store/BdkAccountRepository.ts @@ -10,15 +10,15 @@ import { } from '@metamask/bitcoindevkit'; import { v4 } from 'uuid'; -import { - type BitcoinAccountRepository, - type BitcoinAccount, - type SnapClient, - type Inscription, - type AccountState, - type AccountMetadata, - type SnapState, - StorageError, +import { StorageError } from '../entities'; +import type { + BitcoinAccountRepository, + BitcoinAccount, + SnapClient, + Inscription, + AccountState, + AccountMetadata, + SnapState, } from '../entities'; import { BdkAccountAdapter, StoredAccountAdapter } from '../infra'; diff --git a/merged-packages/bitcoin-wallet-snap/src/store/ICache.ts b/packages/bitcoin-wallet-snap/src/store/ICache.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/ICache.ts rename to packages/bitcoin-wallet-snap/src/store/ICache.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/store/InMemoryCache.test.ts b/packages/bitcoin-wallet-snap/src/store/InMemoryCache.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/InMemoryCache.test.ts rename to packages/bitcoin-wallet-snap/src/store/InMemoryCache.test.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/store/InMemoryCache.ts b/packages/bitcoin-wallet-snap/src/store/InMemoryCache.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/InMemoryCache.ts rename to packages/bitcoin-wallet-snap/src/store/InMemoryCache.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx b/packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx rename to packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx index 8d7d7db1..686fbca1 100644 --- a/merged-packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx +++ b/packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.test.tsx @@ -20,9 +20,9 @@ import type { SpotPrice, } from '../entities'; import { networkToCurrencyUnit } from '../entities'; -import { JSXConfirmationRepository } from './JSXConfirmationRepository'; import { SignMessageConfirmationView } from '../infra/jsx'; import { UnifiedSendFormView } from '../infra/jsx/unified-send-flow'; +import { JSXConfirmationRepository } from './JSXConfirmationRepository'; /* eslint-disable @typescript-eslint/naming-convention */ jest.mock('@metamask/bitcoindevkit', () => ({ diff --git a/merged-packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.tsx b/packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.tsx rename to packages/bitcoin-wallet-snap/src/store/JSXConfirmationRepository.tsx diff --git a/merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx b/packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx rename to packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx index ad3ea611..cdf9cf37 100644 --- a/merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx +++ b/packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.test.tsx @@ -7,9 +7,9 @@ import type { ReviewTransactionContext, Translator, } from '../entities'; -import { JSXSendFlowRepository } from './JSXSendFlowRepository'; import { ReviewTransactionView, SendFormView } from '../infra/jsx'; import { UnifiedSendFormView } from '../infra/jsx/unified-send-flow'; +import { JSXSendFlowRepository } from './JSXSendFlowRepository'; jest.mock('../infra/jsx', () => ({ SendFormView: jest.fn(), diff --git a/merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx b/packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx similarity index 91% rename from merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx rename to packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx index 2ba4984e..2ec262a3 100644 --- a/merged-packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx +++ b/packages/bitcoin-wallet-snap/src/store/JSXSendFlowRepository.tsx @@ -1,11 +1,11 @@ -import { - type ConfirmSendFormContext, - type SendFormContext, - type SendFlowRepository, - type SnapClient, - type ReviewTransactionContext, - type Translator, - AssertionError, +import { AssertionError } from '../entities'; +import type { + ConfirmSendFormContext, + SendFormContext, + SendFlowRepository, + SnapClient, + ReviewTransactionContext, + Translator, } from '../entities'; import { ReviewTransactionView, SendFormView } from '../infra/jsx'; import { UnifiedSendFormView } from '../infra/jsx/unified-send-flow'; diff --git a/merged-packages/bitcoin-wallet-snap/src/store/index.ts b/packages/bitcoin-wallet-snap/src/store/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/store/index.ts rename to packages/bitcoin-wallet-snap/src/store/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts b/packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts rename to packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts index 293c74af..694d5569 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.test.ts @@ -30,12 +30,12 @@ import { TrackingSnapEvent, ValidationError, } from '../entities'; +import { CronMethod } from '../handlers/CronHandler'; import type { CreateAccountParams, DiscoverAccountParams, } from './AccountUseCases'; import { AccountUseCases } from './AccountUseCases'; -import { CronMethod } from '../handlers/CronHandler'; describe('AccountUseCases', () => { const mockLogger = mock(); @@ -614,7 +614,6 @@ describe('AccountUseCases', () => { it('synchronizes with confirmed transactions', async () => { const mockTxPending = mock({ - // eslint-disable-next-line @typescript-eslint/naming-convention chain_position: { is_confirmed: false }, txid: { toString: () => 'txid', @@ -622,7 +621,7 @@ describe('AccountUseCases', () => { }); const mockTxConfirmed = mock({ ...mockTxPending, - // eslint-disable-next-line @typescript-eslint/naming-convention + chain_position: { is_confirmed: true }, }); mockAccount.listTransactions @@ -648,14 +647,12 @@ describe('AccountUseCases', () => { it('synchronizes with both new and confirmed transactions', async () => { const mockTxPending = mock({ - // eslint-disable-next-line @typescript-eslint/naming-convention chain_position: { is_confirmed: false }, txid: { toString: () => 'txid1', }, }); const mockTxNew = mock({ - // eslint-disable-next-line @typescript-eslint/naming-convention chain_position: { is_confirmed: false }, txid: { toString: () => 'txid2', @@ -663,17 +660,16 @@ describe('AccountUseCases', () => { }); const mockTxConfirmed = mock({ ...mockTxPending, - // eslint-disable-next-line @typescript-eslint/naming-convention + chain_position: { is_confirmed: true }, }); const mockTxPreviouslyConfirmed = mock({ - // eslint-disable-next-line @typescript-eslint/naming-convention chain_position: { is_confirmed: true }, }); const mockTxReorged = mock({ ...mockTxPreviouslyConfirmed, - // eslint-disable-next-line @typescript-eslint/naming-convention + chain_position: { is_confirmed: false }, }); @@ -728,7 +724,6 @@ describe('AccountUseCases', () => { }); it('should emit TransactionReorged when a confirmed transaction becomes unconfirmed', async () => { - /* eslint-disable @typescript-eslint/naming-convention */ const mockTxConfirmed = mock({ chain_position: { is_confirmed: true }, }); @@ -1001,7 +996,7 @@ describe('AccountUseCases', () => { }); const mockTransaction = mock({ // TODO: enable when this is merged: https://github.com/rustwasm/wasm-bindgen/issues/1818 - /* eslint-disable @typescript-eslint/naming-convention */ + compute_txid: jest.fn(), clone: jest.fn(), }); @@ -1724,7 +1719,7 @@ describe('AccountUseCases', () => { }); const mockTransaction = mock({ // TODO: enable when this is merged: https://github.com/rustwasm/wasm-bindgen/issues/1818 - /* eslint-disable @typescript-eslint/naming-convention */ + compute_txid: jest.fn(), clone: jest.fn(), }); diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts b/packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts rename to packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts index ae31ecd8..85c8b34d 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/AccountUseCases.ts @@ -216,7 +216,7 @@ export class AccountUseCases { // Idempotent account creation + ensures only one account per derivation path const account = await this.#repository.getByDerivationPath(derivationPath); - if (account && account.network === network) { + if (account?.network === network) { this.#logger.debug('Account already exists: %s,', account.id); return account; } @@ -250,7 +250,7 @@ export class AccountUseCases { // Idempotent account creation + ensures only one account per derivation path const account = await this.#repository.getByDerivationPath(derivationPath); - if (account && account.network === network) { + if (account?.network === network) { this.#logger.debug('Account already exists: %s,', account.id); await this.#snapClient.emitAccountCreatedEvent( account, @@ -327,7 +327,7 @@ export class AccountUseCases { uniqueEntries.forEach((entry, index) => { const account = existingAccounts[index]; - if (account && account.network === entry.req.network) { + if (account?.network === entry.req.network) { existingAccountsByPath.set(entry.pathKey, account); } }); diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts b/packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts rename to packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts index 7b5a4e85..17f11653 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.test.ts @@ -7,9 +7,9 @@ import type { SnapClient, SpotPrice, } from '../entities'; -import { AssetsUseCases } from './AssetsUseCases'; import { Caip19Asset } from '../handlers/caip'; import type { ICache, Serializable } from '../store/ICache'; +import { AssetsUseCases } from './AssetsUseCases'; describe('AssetsUseCases', () => { const mockLogger = mock(); diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.ts b/packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.ts rename to packages/bitcoin-wallet-snap/src/use-cases/AssetsUseCases.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts b/packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts similarity index 93% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts rename to packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts index 42f5c86f..e7923fc4 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.test.ts @@ -1,6 +1,7 @@ import { mock } from 'jest-mock-extended'; -import { ConfirmationEvent, type Logger, type SnapClient } from '../entities'; +import { ConfirmationEvent } from '../entities'; +import type { Logger, SnapClient } from '../entities'; import { ConfirmationUseCases } from './ConfirmationUseCases'; describe('ConfirmationUseCases', () => { diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.ts b/packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.ts rename to packages/bitcoin-wallet-snap/src/use-cases/ConfirmationUseCases.ts diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts b/packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts rename to packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts index b99de0bc..8b534cb6 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.test.ts @@ -26,12 +26,12 @@ import { CurrencyUnit, SendFormEvent, } from '../entities'; -import { SendFlowUseCases } from './SendFlowUseCases'; import { CronMethod } from '../handlers'; import type { AccountUseCases } from './AccountUseCases'; +import { SendFlowUseCases } from './SendFlowUseCases'; // TODO: enable when this is merged: https://github.com/rustwasm/wasm-bindgen/issues/1818 -/* eslint-disable @typescript-eslint/naming-convention */ + jest.mock('@metamask/bitcoindevkit', () => { return { Address: { diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts b/packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts similarity index 99% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts rename to packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts index b04a1b17..8df3c239 100644 --- a/merged-packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts +++ b/packages/bitcoin-wallet-snap/src/use-cases/SendFlowUseCases.ts @@ -1,10 +1,5 @@ -import { - type Network, - Address, - Amount, - Psbt, - type Transaction, -} from '@metamask/bitcoindevkit'; +import { Address, Amount, Psbt } from '@metamask/bitcoindevkit'; +import type { Network, Transaction } from '@metamask/bitcoindevkit'; import { getCurrentUnixTimestamp } from '@metamask/keyring-snap-sdk'; import type { InputChangeEvent } from '@metamask/snaps-sdk'; @@ -31,9 +26,9 @@ import { SendFormEvent, UserActionError, } from '../entities'; -import type { AccountUseCases } from './AccountUseCases'; import { CronMethod } from '../handlers'; import { parsePsbt } from '../handlers/parsers'; +import type { AccountUseCases } from './AccountUseCases'; type SetAccountEventValue = { accountId: string; diff --git a/merged-packages/bitcoin-wallet-snap/src/use-cases/index.ts b/packages/bitcoin-wallet-snap/src/use-cases/index.ts similarity index 100% rename from merged-packages/bitcoin-wallet-snap/src/use-cases/index.ts rename to packages/bitcoin-wallet-snap/src/use-cases/index.ts diff --git a/merged-packages/bitcoin-wallet-snap/tsconfig.json b/packages/bitcoin-wallet-snap/tsconfig.json similarity index 90% rename from merged-packages/bitcoin-wallet-snap/tsconfig.json rename to packages/bitcoin-wallet-snap/tsconfig.json index 6fcdfe6b..6aeb6e95 100644 --- a/merged-packages/bitcoin-wallet-snap/tsconfig.json +++ b/packages/bitcoin-wallet-snap/tsconfig.json @@ -10,6 +10,8 @@ "noErrorTruncation": true, "noUncheckedIndexedAccess": true, "skipLibCheck": true, + "module": "CommonJS", + "moduleResolution": "node", "types": ["jest"] }, "include": ["**/*.ts", "**/*.tsx", "locales/*.json"] diff --git a/packages/sample-snap/package.json b/packages/sample-snap/package.json index 9af22e58..8208e5df 100644 --- a/packages/sample-snap/package.json +++ b/packages/sample-snap/package.json @@ -46,20 +46,18 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch", "since-latest-release": "../../scripts/since-latest-release.sh" }, - "dependencies": { - "@metamask/snaps-sdk": "~10.3.0" - }, "devDependencies": { "@jest/globals": "^29.5.0", "@metamask/auto-changelog": "^6.1.0", "@metamask/snaps-cli": "^8.3.0", "@metamask/snaps-jest": "^9.8.0", + "@metamask/snaps-sdk": "^11.0.0", "@types/react": "18.2.4", "@types/react-dom": "18.2.4", "eslint": "^9.39.1", "jest": "^29.7.0", "rimraf": "^5.0.5", - "typescript": "~5.7.3" + "typescript": "~5.8.3" }, "engines": { "node": ">=20" diff --git a/teams.json b/teams.json index dc2e17b2..4b836b49 100644 --- a/teams.json +++ b/teams.json @@ -1,3 +1,4 @@ { - "metamask/sample-snap": "team-networks" + "metamask/sample-snap": "team-networks", + "metamask/bitcoin-wallet-snap": "team-networks" } diff --git a/yarn.lock b/yarn.lock index 48c2f13c..015b4d8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -395,6 +395,15 @@ __metadata: languageName: node linkType: hard +"@bitcoinerlab/secp256k1@npm:^1.2.0": + version: 1.2.0 + resolution: "@bitcoinerlab/secp256k1@npm:1.2.0" + dependencies: + "@noble/curves": "npm:^1.7.0" + checksum: 10/435978260e15832227e37c683ca9b470625786ef8903a174ff4386d16cba49ba5c43c7bc4d0284be2d69e467b3fb0e030c8845895f2fe768b505ebd42e106938 + languageName: node + linkType: hard + "@discoveryjs/json-ext@npm:0.5.7": version: 0.5.7 resolution: "@discoveryjs/json-ext@npm:0.5.7" @@ -1718,6 +1727,43 @@ __metadata: languageName: node linkType: hard +"@metamask/bitcoin-wallet-snap@workspace:packages/bitcoin-wallet-snap": + version: 0.0.0-use.local + resolution: "@metamask/bitcoin-wallet-snap@workspace:packages/bitcoin-wallet-snap" + dependencies: + "@jest/globals": "npm:^29.5.0" + "@metamask/auto-changelog": "npm:^6.1.0" + "@metamask/bitcoindevkit": "npm:^0.1.13" + "@metamask/key-tree": "npm:^10.1.1" + "@metamask/keyring-api": "npm:^22.0.0" + "@metamask/keyring-snap-sdk": "npm:^8.0.0" + "@metamask/slip44": "npm:^4.2.0" + "@metamask/snaps-cli": "npm:^8.3.0" + "@metamask/snaps-jest": "npm:^9.8.0" + "@metamask/snaps-sdk": "npm:^11.0.0" + "@metamask/utils": "npm:^11.9.0" + bip322-js: "npm:^3.0.0" + concurrently: "npm:^10.0.3" + dotenv: "npm:^17.2.1" + jest: "npm:^29.7.0" + jest-mock-extended: "npm:^4.0.0" + jest-transform-stub: "npm:2.0.0" + oxfmt: "npm:^0.45.0" + superstruct: "npm:^2.0.2" + ts-jest: "npm:^29.4.1" + typescript: "npm:~5.8.3" + uuid: "npm:^14.0.0" + wif: "npm:^5.0.0" + languageName: unknown + linkType: soft + +"@metamask/bitcoindevkit@npm:^0.1.13": + version: 0.1.13 + resolution: "@metamask/bitcoindevkit@npm:0.1.13" + checksum: 10/650d140df7cf4e86af0102cdfade71d3c56a28999a0f477108018c6240110d9f9b19b5c3582b761c806bfcef9763b4b4b4089c0bcd16f4f41d856fbc38ae6e21 + languageName: node + linkType: hard + "@metamask/browser-passworder@npm:^6.0.0": version: 6.0.0 resolution: "@metamask/browser-passworder@npm:6.0.0" @@ -2220,7 +2266,7 @@ __metadata: simple-git-hooks: "npm:^2.8.0" ts-jest: "npm:^29.4.1" tsx: "npm:^4.20.5" - typescript: "npm:~5.7.3" + typescript: "npm:~5.8.3" typescript-eslint: "npm:^8.48.0" yargs: "npm:^17.7.2" languageName: unknown @@ -2467,6 +2513,22 @@ __metadata: languageName: node linkType: hard +"@metamask/keyring-snap-sdk@npm:^8.0.0": + version: 8.0.0 + resolution: "@metamask/keyring-snap-sdk@npm:8.0.0" + dependencies: + "@metamask/keyring-utils": "npm:^3.2.0" + "@metamask/snaps-sdk": "npm:^11.0.0" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^11.1.0" + webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/keyring-api": ^22.0.0 + "@metamask/providers": ^19.0.0 + checksum: 10/271b4f84d214813c0312ffbbe3fb6201b66172210da4d06a155c3ddb359403ed1fa4c7afa424cd34fa9db04e3c876f30f69afb676bb7a905d392552d871ebd57 + languageName: node + linkType: hard + "@metamask/keyring-snap-sdk@npm:^9.0.2": version: 9.0.2 resolution: "@metamask/keyring-snap-sdk@npm:9.0.2" @@ -2788,13 +2850,13 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/snaps-cli": "npm:^8.3.0" "@metamask/snaps-jest": "npm:^9.8.0" - "@metamask/snaps-sdk": "npm:~10.3.0" + "@metamask/snaps-sdk": "npm:^11.0.0" "@types/react": "npm:18.2.4" "@types/react-dom": "npm:18.2.4" eslint: "npm:^9.39.1" jest: "npm:^29.7.0" rimraf: "npm:^5.0.5" - typescript: "npm:~5.7.3" + typescript: "npm:~5.8.3" languageName: unknown linkType: soft @@ -2808,10 +2870,10 @@ __metadata: languageName: node linkType: hard -"@metamask/slip44@npm:^4.3.0, @metamask/slip44@npm:^4.4.0": - version: 4.4.0 - resolution: "@metamask/slip44@npm:4.4.0" - checksum: 10/296ac7c578bd35792c7e3942a9a0b7d9d7af76cf98358b97403c1ed483faa3c2fe6c71b1c3f8c7719fbfcf9fc73e5fa8707c89ac277ee9ce6c8bc4c694b2059d +"@metamask/slip44@npm:^4.2.0, @metamask/slip44@npm:^4.3.0, @metamask/slip44@npm:^4.4.0": + version: 4.5.0 + resolution: "@metamask/slip44@npm:4.5.0" + checksum: 10/8450d4f5afa98e8f57c67a39f12aa413888c423505f22c05a3dc181be223f7742db017f54a99852acc3826abe74b22bf7247bccd78b810e509321c075e67516f languageName: node linkType: hard @@ -3045,7 +3107,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^11.0.0": +"@metamask/snaps-sdk@npm:11.1.1": version: 11.1.1 resolution: "@metamask/snaps-sdk@npm:11.1.1" dependencies: @@ -3289,7 +3351,7 @@ __metadata: languageName: node linkType: hard -"@noble/curves@npm:^1.2.0, @noble/curves@npm:^1.8.1": +"@noble/curves@npm:^1.2.0, @noble/curves@npm:^1.7.0, @noble/curves@npm:^1.8.1": version: 1.9.7 resolution: "@noble/curves@npm:1.9.7" dependencies: @@ -3312,7 +3374,7 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.1.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:^1.7.1, @noble/hashes@npm:^1.8.0": +"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.1.2, @noble/hashes@npm:^1.2.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:^1.7.1, @noble/hashes@npm:^1.8.0": version: 1.8.0 resolution: "@noble/hashes@npm:1.8.0" checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e @@ -4915,10 +4977,10 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 10/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 +"ansi-regex@npm:^6.2.2": + version: 6.2.2 + resolution: "ansi-regex@npm:6.2.2" + checksum: 10/9b17ce2c6daecc75bcd5966b9ad672c23b184dc3ed9bf3c98a0702f0d2f736c15c10d461913568f2cf527a5e64291c7473358885dd493305c84a1cfed66ba94f languageName: node linkType: hard @@ -4938,10 +5000,10 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 +"ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": + version: 6.2.3 + resolution: "ansi-styles@npm:6.2.3" + checksum: 10/c49dad7639f3e48859bd51824c93b9eb0db628afc243c51c3dd2410c4a15ede1a83881c6c7341aa2b159c4f90c11befb38f2ba848c07c66c9f9de4bcd7cb9f30 languageName: node linkType: hard @@ -5259,6 +5321,20 @@ __metadata: languageName: node linkType: hard +"base-x@npm:^4.0.0": + version: 4.0.1 + resolution: "base-x@npm:4.0.1" + checksum: 10/c9061e576f7376b2bc6b69eca131254bb16ebe1445b535a3f0d68f27524e724965b6c191dffd255bf80f9bdf5eb9d1c8d0320903e83116f2c3e09f81b5ecb6a2 + languageName: node + linkType: hard + +"base-x@npm:^5.0.0": + version: 5.0.1 + resolution: "base-x@npm:5.0.1" + checksum: 10/6e4f847ef842e0a71c6b6020a6ec482a2a5e727f5a98534dbfd5d5a4e8afbc0d1bdf1fd57174b3f0455d107f10a932c3c7710bec07e2878f80178607f8f605c8 + languageName: node + linkType: hard + "base58-js@npm:^1.0.0": version: 1.0.5 resolution: "base58-js@npm:1.0.5" @@ -5282,7 +5358,7 @@ __metadata: languageName: node linkType: hard -"bech32@npm:1.1.4": +"bech32@npm:1.1.4, bech32@npm:^1.1.3": version: 1.1.4 resolution: "bech32@npm:1.1.4" checksum: 10/63ff37c0ce43be914c685ce89700bba1589c319af0dac1ea04f51b33d0e5ecfd40d14c24f527350b94f0a4e236385373bb9122ec276410f354ddcdbf29ca13f4 @@ -5322,6 +5398,46 @@ __metadata: languageName: node linkType: hard +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: "npm:1.0.0" + checksum: 10/593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133 + languageName: node + linkType: hard + +"bip174@npm:^2.1.1": + version: 2.1.1 + resolution: "bip174@npm:2.1.1" + checksum: 10/b90da3f9fe5b076a3d7b125a9dd39345a8cd8ece2dcc328a19c92948a60d7242886235bc94712935c71a9c5bc445b98a3570dca8881d19d421fc88a30b150b46 + languageName: node + linkType: hard + +"bip322-js@npm:^3.0.0": + version: 3.0.0 + resolution: "bip322-js@npm:3.0.0" + dependencies: + "@bitcoinerlab/secp256k1": "npm:^1.2.0" + bitcoinjs-lib: "npm:^6.1.7" + bitcoinjs-message: "npm:^2.2.0" + ecpair: "npm:^2.1.0" + elliptic: "npm:^6.6.1" + fast-sha256: "npm:^1.3.0" + secp256k1: "npm:^5.0.1" + checksum: 10/ec1ec04df9f200f1199cb5024ad8c4df9a0cf8c80be4b08ffe60f9f01cb27e3e3c2d0f35f823fe2bdd6cb1a33daac767663408fc53f88367616ed2a7be9cceab + languageName: node + linkType: hard + +"bip66@npm:^1.1.5": + version: 1.1.5 + resolution: "bip66@npm:1.1.5" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10/6257e90ff2149aa08740ff4009730c1bceb1a3456571d3006a36b39f30044f2973e05f043ea6977046d6ab66e4a8d6f5c9785094f8317f4ff546a325baece1ab + languageName: node + linkType: hard + "bitcoin-address-validation@npm:^2.2.3": version: 2.2.3 resolution: "bitcoin-address-validation@npm:2.2.3" @@ -5333,6 +5449,34 @@ __metadata: languageName: node linkType: hard +"bitcoinjs-lib@npm:^6.1.7": + version: 6.1.7 + resolution: "bitcoinjs-lib@npm:6.1.7" + dependencies: + "@noble/hashes": "npm:^1.2.0" + bech32: "npm:^2.0.0" + bip174: "npm:^2.1.1" + bs58check: "npm:^3.0.1" + typeforce: "npm:^1.11.3" + varuint-bitcoin: "npm:^1.1.2" + checksum: 10/d501b1cd83073ca6bc0cdefb7cf220dde651a49d9b52ba5da3fa6e98b6010f27c0234650dcf7b2285cc93b5e68723654071a6ebbdd3b4252a39022101c7592f2 + languageName: node + linkType: hard + +"bitcoinjs-message@npm:^2.2.0": + version: 2.2.0 + resolution: "bitcoinjs-message@npm:2.2.0" + dependencies: + bech32: "npm:^1.1.3" + bs58check: "npm:^2.1.2" + buffer-equals: "npm:^1.0.3" + create-hash: "npm:^1.1.2" + secp256k1: "npm:^3.0.1" + varuint-bitcoin: "npm:^1.0.1" + checksum: 10/715ee436857f74455750700210060a775047bffb894276387faf07aafaac76a8446b750352c456126069042d1ce1324e0d45b1e3d9683fb810c4f1866402a6d5 + languageName: node + linkType: hard + "bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -5365,17 +5509,17 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": - version: 4.12.3 - resolution: "bn.js@npm:4.12.3" - checksum: 10/57ed5a055f946f3e009f1589c45a5242db07f3dddfc72e4506f0dd9d8b145f0dbee4edabc2499288f3fc338eb712fb96a1c623a2ed2bcd49781df1a64db64dd1 +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": + version: 4.12.5 + resolution: "bn.js@npm:4.12.5" + checksum: 10/be6afe3e31e812e240983a6661e4c8f31f7f5a28e6fc4fbd8ea04d18c887ce4a5089c4bd28d8495a535411deda84d1125f72bcfa253f223067d15f743d8e65a8 languageName: node linkType: hard "bn.js@npm:^5.1.2, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1, bn.js@npm:^5.2.3": - version: 5.2.3 - resolution: "bn.js@npm:5.2.3" - checksum: 10/dfb3927e0d531e6ec4f191597ce6f7f7665310c356fef5f968ada676b8058027f959af42eaa37b5f5c63617e819d3741813025ab15dd71a90f2e74698df0b58e + version: 5.2.5 + resolution: "bn.js@npm:5.2.5" + checksum: 10/10b1ac91e76fd828c1187cf65a9f1a0374e7afb9acd167e19c2d7c4108f6216841007c1e3aef145fa95cc7b3d07f705236a707184af1537667362b3a842d01ac languageName: node linkType: hard @@ -5451,7 +5595,7 @@ __metadata: languageName: node linkType: hard -"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.0.6, browserify-aes@npm:^1.2.0": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" dependencies: @@ -5558,7 +5702,25 @@ __metadata: languageName: node linkType: hard -"bs58check@npm:^2.1.2": +"bs58@npm:^5.0.0": + version: 5.0.0 + resolution: "bs58@npm:5.0.0" + dependencies: + base-x: "npm:^4.0.0" + checksum: 10/2475cb0684e07077521aac718e604a13e0f891d58cff923d437a2f7e9e28703ab39fce9f84c7c703ab369815a675f11e3bd394d38643bfe8969fbe42e6833d45 + languageName: node + linkType: hard + +"bs58@npm:^6.0.0": + version: 6.0.0 + resolution: "bs58@npm:6.0.0" + dependencies: + base-x: "npm:^5.0.0" + checksum: 10/7c9bb2b2d93d997a8c652de3510d89772007ac64ee913dc4e16ba7ff47624caad3128dcc7f360763eb6308760c300b3e9fd91b8bcbd489acd1a13278e7949c4e + languageName: node + linkType: hard + +"bs58check@npm:<3.0.0, bs58check@npm:^2.1.2": version: 2.1.2 resolution: "bs58check@npm:2.1.2" dependencies: @@ -5569,6 +5731,26 @@ __metadata: languageName: node linkType: hard +"bs58check@npm:^3.0.1": + version: 3.0.1 + resolution: "bs58check@npm:3.0.1" + dependencies: + "@noble/hashes": "npm:^1.2.0" + bs58: "npm:^5.0.0" + checksum: 10/dbbecc7a09f3836e821149266c864c4bbd545539cea43c35f23f4c3c46b54c86c52b65d224b9ea2e916fa6d93bd2ce9fac5b6c6bfcf19621a9c209a5602f71c8 + languageName: node + linkType: hard + +"bs58check@npm:^4.0.0": + version: 4.0.0 + resolution: "bs58check@npm:4.0.0" + dependencies: + "@noble/hashes": "npm:^1.2.0" + bs58: "npm:^6.0.0" + checksum: 10/cf5691bdfdf317574f722582360a834f01a36e8f6c850bd5791f04e040b334a0800b7c322ad24c77979c3ed6ef6cf31a6373366b4018223e3005278d491d8799 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -5578,6 +5760,13 @@ __metadata: languageName: node linkType: hard +"buffer-equals@npm:^1.0.3": + version: 1.0.4 + resolution: "buffer-equals@npm:1.0.4" + checksum: 10/392a2f82acdaad46392aec7ce54a8ff0b2a650b5802ccb0c77072050bbc7fd4e101f38460c7e88cdc7e130421882977f595d5c1a3d3343611562ecf7c684a70f + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -5722,6 +5911,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:5.6.2": + version: 5.6.2 + resolution: "chalk@npm:5.6.2" + checksum: 10/1b2f48f6fba1370670d5610f9cd54c391d6ede28f4b7062dd38244ea5768777af72e5be6b74fb6c6d54cb84c4a2dff3f3afa9b7cb5948f7f022cfd3d087989e0 + languageName: node + linkType: hard + "chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -5839,6 +6035,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^9.0.1": + version: 9.0.1 + resolution: "cliui@npm:9.0.1" + dependencies: + string-width: "npm:^7.2.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10/df43d8d1c6e3254cbb64b1905310d5f6672c595496a3cbe76946c6d24777136886470686f2772ac9edfe547a74bb70e8017530b3554715aee119efd7752fc0d9 + languageName: node + linkType: hard + "clone-deep@npm:^4.0.1": version: 4.0.1 resolution: "clone-deep@npm:4.0.1" @@ -5952,6 +6159,23 @@ __metadata: languageName: node linkType: hard +"concurrently@npm:^10.0.3": + version: 10.0.3 + resolution: "concurrently@npm:10.0.3" + dependencies: + chalk: "npm:5.6.2" + rxjs: "npm:7.8.2" + shell-quote: "npm:1.8.4" + supports-color: "npm:10.2.2" + tree-kill: "npm:1.2.2" + yargs: "npm:18.0.0" + bin: + conc: dist/bin/index.js + concurrently: dist/bin/index.js + checksum: 10/ef1ffc31df0df3663af33fb39c4f7f40b5e84affc0d397537b586e7cfedefeb513b643273afbbf00bbc252b8539c336dc854afb52f6cb74e6dbe3e5c812bd256 + languageName: node + linkType: hard + "console-browserify@npm:^1.2.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" @@ -6093,7 +6317,7 @@ __metadata: languageName: node linkType: hard -"create-hmac@npm:^1.1.7": +"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: @@ -6429,6 +6653,24 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^17.2.1": + version: 17.4.2 + resolution: "dotenv@npm:17.4.2" + checksum: 10/ca1b6f54d58e39914901e1518958e86083aca8deb5aa2e7f2a51acd53291d97852479b0ab26ed949b6a45a0e9adcc7b0d1c3c72375e8ea670f7005e341c6daba + languageName: node + linkType: hard + +"drbg.js@npm:^1.0.1": + version: 1.0.1 + resolution: "drbg.js@npm:1.0.1" + dependencies: + browserify-aes: "npm:^1.0.6" + create-hash: "npm:^1.1.2" + create-hmac: "npm:^1.1.4" + checksum: 10/a50e770cf641ec364f6b8de8e955c63e0db59f0af6525cc0306f392f4361427e37bf5c74373b31589b24e98d523acc7bbab4c8ee421bc35a2a8a82fe6e06ce95 + languageName: node + linkType: hard + "dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" @@ -6454,6 +6696,17 @@ __metadata: languageName: node linkType: hard +"ecpair@npm:^2.1.0": + version: 2.1.0 + resolution: "ecpair@npm:2.1.0" + dependencies: + randombytes: "npm:^2.1.0" + typeforce: "npm:^1.18.0" + wif: "npm:^2.0.6" + checksum: 10/06a9dfe50ac4528e6f61ce709218baf3261b28ce2ae05273c590a1e9646481699e36df97ca1dbe5c0ffc91753da543b8778f4341db24dc6c74e9046fcb975b3e + languageName: node + linkType: hard + "ee-first@npm:1.1.1": version: 1.1.1 resolution: "ee-first@npm:1.1.1" @@ -6490,6 +6743,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.3.0": + version: 10.6.0 + resolution: "emoji-regex@npm:10.6.0" + checksum: 10/98cc0b0e1daed1ed25afbf69dcb921fee00f712f51aab93aa1547e4e4e8171725cc4f0098aaa645b4f611a19da11ec9f4623eb6ff2b72314b39a8f2ae7c12bf2 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -7424,6 +7684,13 @@ __metadata: languageName: node linkType: hard +"fast-sha256@npm:^1.3.0": + version: 1.3.0 + resolution: "fast-sha256@npm:1.3.0" + checksum: 10/3bef0491f10a254348ec11dcddb26e4d951cfd3b4c0662ea5843ad1be3fe184ed74d640df68565fcc60f6437548cddf49e3ac886f88a69e05b5142e862840bf9 + languageName: node + linkType: hard + "fast-uri@npm:^3.0.1": version: 3.1.2 resolution: "fast-uri@npm:3.1.2" @@ -7513,6 +7780,13 @@ __metadata: languageName: node linkType: hard +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: 10/b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -7762,6 +8036,13 @@ __metadata: languageName: node linkType: hard +"get-east-asian-width@npm:^1.0.0": + version: 1.6.0 + resolution: "get-east-asian-width@npm:1.6.0" + checksum: 10/3e5370b5df1f0020db711d8a3f9ee2cbfc9c7542daa99a699e9d7b9acf66e7868b89084741565a45d30d80afedf6e1218e0fb8bef7a583924a449c2816777380 + languageName: node + linkType: hard + "get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0": version: 1.3.1 resolution: "get-intrinsic@npm:1.3.1" @@ -7996,7 +8277,18 @@ __metadata: languageName: node linkType: hard -"hash-base@npm:^3.0.0, hash-base@npm:^3.1.2": +"hash-base@npm:3.1.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + safe-buffer: "npm:^5.2.0" + checksum: 10/26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc + languageName: node + linkType: hard + +"hash-base@npm:^3.1.2": version: 3.1.2 resolution: "hash-base@npm:3.1.2" dependencies: @@ -8860,6 +9152,20 @@ __metadata: languageName: node linkType: hard +"jest-mock-extended@npm:^4.0.0": + version: 4.0.1 + resolution: "jest-mock-extended@npm:4.0.1" + dependencies: + lodash.isequal: "npm:^4.5.0" + ts-essentials: "npm:^10.1.1" + peerDependencies: + "@jest/globals": ^28.0.0 || ^29.0.0 || ^30.0.0 + jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 || ^30.0.0 + typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + checksum: 10/48c5bdd4f2009b040ee9b412ab5308edc3ed2a4b80cb77cb7a88a3952106bac3ab37b405bd54ee5aef16657e3b43d6995c8586a4125369acbbbb7591f1d05f7f + languageName: node + linkType: hard + "jest-mock@npm:^29.7.0": version: 29.7.0 resolution: "jest-mock@npm:29.7.0" @@ -9014,6 +9320,13 @@ __metadata: languageName: node linkType: hard +"jest-transform-stub@npm:2.0.0": + version: 2.0.0 + resolution: "jest-transform-stub@npm:2.0.0" + checksum: 10/c46134257e5fb047f5952e4a4a1339925dd009da15aa8d3310ba1d3e4d22266ed6c675cd18e58c9d5ca2246718d6cc8ff00ea6a4b6f3b2a6b285b6426f6ae8fe + languageName: node + linkType: hard + "jest-util@npm:^26.0.0": version: 26.6.2 resolution: "jest-util@npm:26.6.2" @@ -9371,6 +9684,13 @@ __metadata: languageName: node linkType: hard +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: 10/82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214 + languageName: node + linkType: hard + "lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -9839,6 +10159,15 @@ __metadata: languageName: node linkType: hard +"nan@npm:^2.14.0": + version: 2.28.0 + resolution: "nan@npm:2.28.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10/299ffb18f43cc53b0728cb16ed15e868960168b84d4140b54c8e057c54e6714d0291eee63c02c3cae4bcf5d0d06b6a93fc8717d8d9ae72ad6d4e8eba5ddacc66 + languageName: node + linkType: hard + "nanoid@npm:^3.3.10, nanoid@npm:^3.3.12, nanoid@npm:^3.3.8": version: 3.3.12 resolution: "nanoid@npm:3.3.12" @@ -11092,7 +11421,17 @@ __metadata: languageName: node linkType: hard -"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.3": +"ripemd160@npm:2.0.2": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + checksum: 10/006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 + languageName: node + linkType: hard + +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.3": version: 2.0.3 resolution: "ripemd160@npm:2.0.3" dependencies: @@ -11142,7 +11481,16 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"rxjs@npm:7.8.2": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/03dff09191356b2b87d94fbc1e97c4e9eb3c09d4452399dddd451b09c2f1ba8d56925a40af114282d7bc0c6fe7514a2236ca09f903cf70e4bbf156650dddb49d + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 @@ -11211,6 +11559,23 @@ __metadata: languageName: node linkType: hard +"secp256k1@npm:^3.0.1": + version: 3.8.1 + resolution: "secp256k1@npm:3.8.1" + dependencies: + bindings: "npm:^1.5.0" + bip66: "npm:^1.1.5" + bn.js: "npm:^4.11.8" + create-hash: "npm:^1.2.0" + drbg.js: "npm:^1.0.1" + elliptic: "npm:^6.5.7" + nan: "npm:^2.14.0" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.2" + checksum: 10/dfe9621aea56268878ed384cbf8aac55ad7d3a887816d6e130d202ad679a25546f0079b22ab462f605c30668733e6b7676e4e77c63542d6fc45a7a5ad9ebb3f4 + languageName: node + linkType: hard + "secp256k1@npm:^4.0.1": version: 4.0.4 resolution: "secp256k1@npm:4.0.4" @@ -11223,6 +11588,18 @@ __metadata: languageName: node linkType: hard +"secp256k1@npm:^5.0.1": + version: 5.0.1 + resolution: "secp256k1@npm:5.0.1" + dependencies: + elliptic: "npm:^6.5.7" + node-addon-api: "npm:^5.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + checksum: 10/63fbd35624be4fd9cf3d39e5f79c5471b4a8aea6944453b2bea7b100bb1c77a25c55e6e08e2210cdabdf478c4c62d34c408b34214f2afd9367e19a52a3a4236c + languageName: node + linkType: hard + "semver-compare@npm:^1.0.0": version: 1.0.0 resolution: "semver-compare@npm:1.0.0" @@ -11403,6 +11780,13 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:1.8.4": + version: 1.8.4 + resolution: "shell-quote@npm:1.8.4" + checksum: 10/a3e3796385f2cd5cf0b78207a4439f0c7395c0833fc75b2473084b5d298c109c5c0fa687fcd1c04e4b4484866e5bb8eaae7efae443b80fff71ea7e29baf11f0c + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.1 resolution: "side-channel-list@npm:1.0.1" @@ -11737,6 +12121,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.0.0, string-width@npm:^7.2.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -11764,12 +12159,12 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 + ansi-regex: "npm:^6.2.2" + checksum: 10/96da3bc6d73cfba1218625a3d66cf7d37a69bf0920d8735b28f9eeaafcdb6c1fe8440e1ae9eb1ba0ca355dbe8702da872e105e2e939fa93e7851b3cb5dd7d316 languageName: node linkType: hard @@ -11824,6 +12219,20 @@ __metadata: languageName: node linkType: hard +"superstruct@npm:^2.0.2": + version: 2.0.2 + resolution: "superstruct@npm:2.0.2" + checksum: 10/10e1944a9da4baee187fbaa6c5d97d7af266b55786dfe50bce67f0f1e7d93f1a5a42dd51e245a2e16404f8336d07c21c67f1c1fbc4ad0a252d3d2601d6c926da + languageName: node + linkType: hard + +"supports-color@npm:10.2.2": + version: 10.2.2 + resolution: "supports-color@npm:10.2.2" + checksum: 10/bd132705fc07213a4024131fb061f0a46a48b49ecaf434bb029c0a5aa0339b969236d496d63969e3c248a90fdcac16d4f9c5bf187e7be0bfb5e804ed13bef6b0 + languageName: node + linkType: hard + "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -12060,6 +12469,15 @@ __metadata: languageName: node linkType: hard +"tree-kill@npm:1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10/49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7 + languageName: node + linkType: hard + "ts-api-utils@npm:^2.4.0": version: 2.4.0 resolution: "ts-api-utils@npm:2.4.0" @@ -12069,6 +12487,18 @@ __metadata: languageName: node linkType: hard +"ts-essentials@npm:^10.1.1": + version: 10.2.1 + resolution: "ts-essentials@npm:10.2.1" + peerDependencies: + typescript: ">=4.5.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/60f2e1afb1d2c768b750370163ba02b0b6310c4dd16a3973e452724e59ec4efe3acc27f6266ae671cd7e26790f39efee7c8b6a42d6ebed133bc35216eba3b3b2 + languageName: node + linkType: hard + "ts-jest@npm:^29.4.1": version: 29.4.11 resolution: "ts-jest@npm:29.4.11" @@ -12116,7 +12546,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": +"tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 @@ -12222,6 +12652,13 @@ __metadata: languageName: node linkType: hard +"typeforce@npm:^1.11.3, typeforce@npm:^1.18.0": + version: 1.18.0 + resolution: "typeforce@npm:1.18.0" + checksum: 10/dbf98c75b1d57e56e33c1e1271d5505e67981f4e6a2e2e6e8e31160b58777fea1726160810b6c606517db16476805b7dce315926ba2d4859b9a56cab05b7a41f + languageName: node + linkType: hard + "typescript-eslint@npm:^8.48.0": version: 8.54.0 resolution: "typescript-eslint@npm:8.54.0" @@ -12237,23 +12674,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~5.7.3": - version: 5.7.3 - resolution: "typescript@npm:5.7.3" +"typescript@npm:~5.8.3": + version: 5.8.3 + resolution: "typescript@npm:5.8.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/6a7e556de91db3d34dc51cd2600e8e91f4c312acd8e52792f243c7818dfadb27bae677175fad6947f9c81efb6c57eb6b2d0c736f196a6ee2f1f7d57b74fc92fa + checksum: 10/65c40944c51b513b0172c6710ee62e951b70af6f75d5a5da745cb7fab132c09ae27ffdf7838996e3ed603bb015dadd099006658046941bd0ba30340cc563ae92 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A~5.7.3#optional!builtin": - version: 5.7.3 - resolution: "typescript@patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=5786d5" +"typescript@patch:typescript@npm%3A~5.8.3#optional!builtin": + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/dc58d777eb4c01973f7fbf1fd808aad49a0efdf545528dab9b07d94fdcb65b8751742804c3057e9619a4627f2d9cc85547fdd49d9f4326992ad0181b49e61d81 + checksum: 10/b9b1e73dabac5dc730c041325dbd9c99467c1b0d239f1b74ec3b90d831384af3e2ba973946232df670519147eb51a2c20f6f96163cea2b359f03de1e2091cc4f languageName: node linkType: hard @@ -12388,6 +12825,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^14.0.0": + version: 14.0.1 + resolution: "uuid@npm:14.0.1" + bin: + uuid: dist-node/bin/uuid + checksum: 10/0f978fd5b0269d7acb615342aeb131f0b8d85eeb8ec34f2915d906baa3befcc14a079a430d0f8116aec6fd20c850cbfab65d1b3d1643fa81ed373c0cf9574f18 + languageName: node + linkType: hard + "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -12441,6 +12887,15 @@ __metadata: languageName: node linkType: hard +"varuint-bitcoin@npm:^1.0.1, varuint-bitcoin@npm:^1.1.2": + version: 1.1.2 + resolution: "varuint-bitcoin@npm:1.1.2" + dependencies: + safe-buffer: "npm:^5.1.1" + checksum: 10/1c900bf08f2408ae33a6094dc5d809bdb6673eaf6039062d88c230155873e51e29c760053611f93ccd024854d04ebd92ed95c744720e94a79ca4e1150fcce071 + languageName: node + linkType: hard + "vary@npm:^1.1.2, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -12649,6 +13104,24 @@ __metadata: languageName: node linkType: hard +"wif@npm:^2.0.6": + version: 2.0.6 + resolution: "wif@npm:2.0.6" + dependencies: + bs58check: "npm:<3.0.0" + checksum: 10/c8d7581664532d9ab6d163ee5194a9bec71b089a6e50d54d6ec57a9bd714fcf84bc8d9f22f4cfc7c297fc6ad10b973b8e83eca5c41240163fc61f44b5154b7da + languageName: node + linkType: hard + +"wif@npm:^5.0.0": + version: 5.0.0 + resolution: "wif@npm:5.0.0" + dependencies: + bs58check: "npm:^4.0.0" + checksum: 10/3af0d4e9f1d1b35672b860470b6545f34f77b4a804e06ccae2f06f43c96a31fba859cf64889344eded621433eb609fc4c95aa28d62c02057372232b85231e414 + languageName: node + linkType: hard + "wildcard@npm:^2.0.0": version: 2.0.1 resolution: "wildcard@npm:2.0.1" @@ -12692,6 +13165,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.2 + resolution: "wrap-ansi@npm:9.0.2" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/f3907e1ea9717404ca53a338fa5a017c2121550c3a5305180e2bc08c03e21aa45068df55b0d7676bf57be1880ba51a84458c17241ebedea485fafa9ef16b4024 + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -12838,6 +13322,13 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^22.0.0": + version: 22.0.0 + resolution: "yargs-parser@npm:22.0.0" + checksum: 10/f13c42bad6ebed1a587a72f2db5694f5fa772bcaf409a701691d13cf74eb5adfcf61a2611de08807e319b829d3e5e6e1578b16ebe174cae8e8be3bf7b8e7a19e + languageName: node + linkType: hard + "yargs@npm:17.7.2, yargs@npm:^17.0.1, yargs@npm:^17.3.1, yargs@npm:^17.7.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" @@ -12853,6 +13344,20 @@ __metadata: languageName: node linkType: hard +"yargs@npm:18.0.0": + version: 18.0.0 + resolution: "yargs@npm:18.0.0" + dependencies: + cliui: "npm:^9.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + string-width: "npm:^7.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^22.0.0" + checksum: 10/5af36234871390386b31cac99f00e79fcbc2ead858a61b30a8ca381c5fde5df8af0b407c36b000d3f774bcbe4aec5833f2f1c915f6ddc49ce97b78176b651801 + languageName: node + linkType: hard + "yargs@npm:^16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0"