From cd89937b508a9a8e30fb428d94bf81e371b24b51 Mon Sep 17 00:00:00 2001 From: MetaMask Bot Date: Wed, 28 Aug 2024 20:30:30 +0000 Subject: [PATCH 1/8] Version v12.1.1 --- CHANGELOG.md | 5 ++++- package.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41f3091f878e..b7900afd29e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [12.1.1] + ## [12.1.0] ### Added - Launched a feature displaying the percentage increase or decrease for tokens within the UI ([#24223](https://github.com/MetaMask/metamask-extension/pull/24223)) @@ -4996,7 +4998,8 @@ Update styles and spacing on the critical error page ([#20350](https://github.c - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v12.1.0...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v12.1.1...HEAD +[12.1.1]: https://github.com/MetaMask/metamask-extension/compare/v12.1.0...v12.1.1 [12.1.0]: https://github.com/MetaMask/metamask-extension/compare/v12.0.6...v12.1.0 [12.0.6]: https://github.com/MetaMask/metamask-extension/compare/v12.0.5...v12.0.6 [12.0.5]: https://github.com/MetaMask/metamask-extension/compare/v12.0.4...v12.0.5 diff --git a/package.json b/package.json index 2b890b689cad..814ce18ffbb8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "12.1.0", + "version": "12.1.1", "private": true, "repository": { "type": "git", From 006f607a3b698b7db463fba17ff6658d4385aeb0 Mon Sep 17 00:00:00 2001 From: Alex Donesky Date: Thu, 29 Aug 2024 11:49:57 -0500 Subject: [PATCH 2/8] cherrypick: fix: `wallet_addEthereumChain` does not attach a `result` under certain conditions (#26726) (#26733) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Fix issue where `wallet_addEthereumChain` does not attach a result to the response object when the currently selected rpcUrl matches the request. This would cause the request to get "stuck" in the `QueuedRequestController` queue, preventing the queue from progressing and causing confusing behavior. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26726?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/metamask-extension/issues/26706 ## **Manual testing steps** 1. Go to https://chainlist.org/?chain=56&search=blast 2. Connect the wallet and add Blast Mainnet (For other chains it appears Chainlist cycles to the next rpcUrl you don't have which avoids this bug, so use Blast) 3. After successfully adding the network, attempt to add Blast again. Nothing should happen. 4. Then go to https://faucet.quicknode.com/blast/sepolia (or any dapp where your wallet isn't already connected) and attempt to connect 5. You should be able to connect as usual ## **Screenshots/Recordings** ### **Before** https://github.com/user-attachments/assets/b997027f-1c62-4279-87c6-0fe70989abb3 ### **After** https://github.com/user-attachments/assets/08307a88-8f6f-44cd-9b75-877aadb1805a ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. ## **Description** [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26733?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- .../handlers/add-ethereum-chain.js | 2 +- .../handlers/add-ethereum-chain.test.js | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js index c9e39c1b8579..571688688611 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js @@ -134,11 +134,11 @@ async function addEthereumChainHandler( } else { networkClientId = existingNetwork.id ?? existingNetwork.type; const currentRpcUrl = getCurrentRpcUrl(); - if ( currentChainIdForDomain === chainId && currentRpcUrl === firstValidRPCUrl ) { + res.result = null; return end(); } diff --git a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js index ee8993ceb3fc..20fbde395134 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js @@ -541,4 +541,45 @@ describe('addEthereumChainHandler', () => { }), ); }); + + it('should add result set to null to response object if the requested rpcUrl (and chainId) is currently selected', async () => { + const CURRENT_RPC_CONFIG = createMockNonInfuraConfiguration(); + + const mocks = makeMocks({ + permissionsFeatureFlagIsActive: false, + overrides: { + getCurrentChainIdForDomain: jest + .fn() + .mockReturnValue(CURRENT_RPC_CONFIG.chainId), + findNetworkConfigurationBy: jest + .fn() + .mockReturnValue(CURRENT_RPC_CONFIG), + getCurrentRpcUrl: jest.fn().mockReturnValue(CURRENT_RPC_CONFIG.rpcUrl), + }, + }); + const res = {}; + + await addEthereumChainHandler( + { + origin: 'example.com', + params: [ + { + chainId: CURRENT_RPC_CONFIG.chainId, + chainName: 'Custom Network', + rpcUrls: [CURRENT_RPC_CONFIG.rpcUrl], + nativeCurrency: { + symbol: CURRENT_RPC_CONFIG.ticker, + decimals: 18, + }, + blockExplorerUrls: ['https://custom.blockexplorer'], + }, + ], + }, + res, + jest.fn(), + jest.fn(), + mocks, + ); + expect(res.result).toBeNull(); + }); }); From 1a5a9c01124641ae264ab505d8e4b1d256d7a0cb Mon Sep 17 00:00:00 2001 From: Owen Craston Date: Fri, 30 Aug 2024 02:48:19 -0700 Subject: [PATCH 3/8] fix: cherry pick accounts controller migration improvements (#26778) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** This PR cherry picks two improvements to the latest accounts controller migrations into the latest release. - https://github.com/MetaMask/metamask-extension/pull/26742 - https://github.com/MetaMask/metamask-extension/pull/26773 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26778?quickstart=1) ## **Related issues** Fixes: https://github.com/MetaMask/metamask-extension/issues/26377 ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Monte Lai Co-authored-by: Mark Stacey --- app/scripts/migrations/121.1.test.ts | 238 +++++++++++++++++++++++++++ app/scripts/migrations/121.1.ts | 143 ++++++++++++++++ app/scripts/migrations/index.js | 1 + 3 files changed, 382 insertions(+) create mode 100644 app/scripts/migrations/121.1.test.ts create mode 100644 app/scripts/migrations/121.1.ts diff --git a/app/scripts/migrations/121.1.test.ts b/app/scripts/migrations/121.1.test.ts new file mode 100644 index 000000000000..1d2d6f9ab70e --- /dev/null +++ b/app/scripts/migrations/121.1.test.ts @@ -0,0 +1,238 @@ +import { AccountsControllerState } from '@metamask/accounts-controller'; +import { cloneDeep } from 'lodash'; +import { createMockInternalAccount } from '../../../test/jest/mocks'; +import { migrate, version } from './121.1'; + +const sentryCaptureExceptionMock = jest.fn(); + +global.sentry = { + captureException: sentryCaptureExceptionMock, +}; + +const oldVersion = 121; + +const mockInternalAccount = createMockInternalAccount(); +const mockAccountsControllerState: AccountsControllerState = { + internalAccounts: { + accounts: { + [mockInternalAccount.id]: mockInternalAccount, + }, + selectedAccount: mockInternalAccount.id, + }, +}; + +describe('migration #121.1', () => { + afterEach(() => jest.resetAllMocks()); + + it('updates the version metadata', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + AccountsController: mockAccountsControllerState, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.meta).toStrictEqual({ version }); + }); + + it('updates selected account if it is not found in the list of accounts', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + AccountsController: { + ...mockAccountsControllerState, + internalAccounts: { + ...mockAccountsControllerState.internalAccounts, + selectedAccount: 'unknown id', + }, + }, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.data.AccountsController).toStrictEqual({ + ...mockAccountsControllerState, + internalAccounts: { + ...mockAccountsControllerState.internalAccounts, + selectedAccount: mockInternalAccount.id, + }, + }); + }); + + it('does nothing if the selectedAccount is found in the list of accounts', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + AccountsController: mockAccountsControllerState, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.data).toStrictEqual(oldStorage.data); + }); + + it('does nothing if AccountsController state is missing', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + OtherController: {}, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.data).toStrictEqual(oldStorage.data); + }); + + it('does nothing if there are no accounts', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + AccountsController: { + ...mockAccountsControllerState, + internalAccounts: { + ...mockAccountsControllerState.internalAccounts, + accounts: {}, + }, + }, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.data).toStrictEqual(oldStorage.data); + }); + + it('does nothing if selectedAccount is unset', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: { + AccountsController: { + ...mockAccountsControllerState, + internalAccounts: { + ...mockAccountsControllerState.internalAccounts, + selectedAccount: '', + }, + }, + }, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(newStorage.data).toStrictEqual(oldStorage.data); + }); + + const invalidState = [ + { + errorMessage: `Migration ${version}: Invalid AccountsController state of type 'string'`, + label: 'AccountsController type', + state: { AccountsController: 'invalid' }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController state, missing internalAccounts`, + label: 'Missing internalAccounts', + state: { AccountsController: {} }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts state of type 'string'`, + label: 'Invalid internalAccounts', + state: { AccountsController: { internalAccounts: 'invalid' } }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts state, missing selectedAccount`, + label: 'Missing selectedAccount', + state: { AccountsController: { internalAccounts: { accounts: {} } } }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts.selectedAccount state of type 'object'`, + label: 'Invalid selectedAccount', + state: { + AccountsController: { + internalAccounts: { accounts: {}, selectedAccount: {} }, + }, + }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts state, missing accounts`, + label: 'Missing accounts', + state: { + AccountsController: { + internalAccounts: { selectedAccount: '' }, + }, + }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts.accounts state of type 'string'`, + label: 'Missing accounts', + state: { + AccountsController: { + internalAccounts: { accounts: 'invalid', selectedAccount: '' }, + }, + }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found of type 'string'`, + label: 'Account entry type', + state: { + AccountsController: { + internalAccounts: { + accounts: { [mockInternalAccount.id]: 'invalid' }, + selectedAccount: 'unknown id', + }, + }, + }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found that is missing an id`, + label: 'Account entry missing ID', + state: { + AccountsController: { + internalAccounts: { + accounts: { [mockInternalAccount.id]: {} }, + selectedAccount: 'unknown id', + }, + }, + }, + }, + { + errorMessage: `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found with an id of type 'object'`, + label: 'Account entry missing ID', + state: { + AccountsController: { + internalAccounts: { + accounts: { [mockInternalAccount.id]: { id: {} } }, + selectedAccount: 'unknown id', + }, + }, + }, + }, + ]; + + // @ts-expect-error 'each' function missing from type definitions, but it does exist + it.each(invalidState)( + 'captures error when state is invalid due to: $label', + async ({ + errorMessage, + state, + }: { + errorMessage: string; + state: Record; + }) => { + const oldStorage = { + meta: { version: oldVersion }, + data: state, + }; + + const newStorage = await migrate(cloneDeep(oldStorage)); + + expect(sentryCaptureExceptionMock).toHaveBeenCalledWith( + new Error(errorMessage), + ); + expect(newStorage.data).toStrictEqual(oldStorage.data); + }, + ); +}); diff --git a/app/scripts/migrations/121.1.ts b/app/scripts/migrations/121.1.ts new file mode 100644 index 000000000000..f81893bb00e8 --- /dev/null +++ b/app/scripts/migrations/121.1.ts @@ -0,0 +1,143 @@ +import { hasProperty } from '@metamask/utils'; +import { cloneDeep, isObject } from 'lodash'; +import log from 'loglevel'; + +type VersionedData = { + meta: { version: number }; + data: Record; +}; + +export const version = 121.1; + +/** + * Fix AccountsController state corruption, where the `selectedAccount` state is set to an invalid + * ID. + * + * @param originalVersionedData - Versioned MetaMask extension state, exactly + * what we persist to dist. + * @param originalVersionedData.meta - State metadata. + * @param originalVersionedData.meta.version - The current state version. + * @param originalVersionedData.data - The persisted MetaMask state, keyed by + * controller. + * @returns Updated versioned MetaMask extension state. + */ +export async function migrate( + originalVersionedData: VersionedData, +): Promise { + const versionedData = cloneDeep(originalVersionedData); + versionedData.meta.version = version; + transformState(versionedData.data); + return versionedData; +} + +function transformState(state: Record): void { + if (!hasProperty(state, 'AccountsController')) { + return; + } + + const accountsControllerState = state.AccountsController; + + if (!isObject(accountsControllerState)) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController state of type '${typeof accountsControllerState}'`, + ), + ); + return; + } else if (!hasProperty(accountsControllerState, 'internalAccounts')) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController state, missing internalAccounts`, + ), + ); + return; + } else if (!isObject(accountsControllerState.internalAccounts)) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts state of type '${typeof accountsControllerState.internalAccounts}'`, + ), + ); + return; + } else if ( + !hasProperty(accountsControllerState.internalAccounts, 'selectedAccount') + ) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts state, missing selectedAccount`, + ), + ); + return; + } else if ( + typeof accountsControllerState.internalAccounts.selectedAccount !== 'string' + ) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts.selectedAccount state of type '${typeof accountsControllerState + .internalAccounts.selectedAccount}'`, + ), + ); + return; + } else if ( + !hasProperty(accountsControllerState.internalAccounts, 'accounts') + ) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts state, missing accounts`, + ), + ); + return; + } else if (!isObject(accountsControllerState.internalAccounts.accounts)) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts.accounts state of type '${typeof accountsControllerState + .internalAccounts.accounts}'`, + ), + ); + return; + } + + if ( + Object.keys(accountsControllerState.internalAccounts.accounts).length === 0 + ) { + log.warn(`Migration ${version}: Skipping, no accounts found`); + return; + } else if (accountsControllerState.internalAccounts.selectedAccount === '') { + log.warn(`Migration ${version}: Skipping, no selected account set`); + return; + } + + const firstAccount = Object.values( + accountsControllerState.internalAccounts.accounts, + )[0]; + if (!isObject(firstAccount)) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found of type '${typeof firstAccount}'`, + ), + ); + return; + } else if (!hasProperty(firstAccount, 'id')) { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found that is missing an id`, + ), + ); + return; + } else if (typeof firstAccount.id !== 'string') { + global.sentry?.captureException( + new Error( + `Migration ${version}: Invalid AccountsController internalAccounts.accounts state, entry found with an id of type '${typeof firstAccount.id}'`, + ), + ); + return; + } + + if ( + !hasProperty( + accountsControllerState.internalAccounts.accounts, + accountsControllerState.internalAccounts.selectedAccount, + ) + ) { + accountsControllerState.internalAccounts.selectedAccount = firstAccount.id; + } +} diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index f5d9ee09f189..2cbcabc87e84 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -138,6 +138,7 @@ const migrations = [ require('./120.5'), require('./120.6'), require('./121'), + require('./121.1'), ]; export default migrations; From 0ef30b94926bc3ac21ed070e28a71ad4e07bfd13 Mon Sep 17 00:00:00 2001 From: Monte Lai Date: Fri, 30 Aug 2024 23:31:03 +0800 Subject: [PATCH 4/8] chore(cherry-pick):759b92e to 12.1.1 (#26802) --- app/scripts/migrations/105.test.ts | 1 + app/scripts/migrations/105.ts | 1 + app/scripts/migrations/119.ts | 14 +- lavamoat/browserify/beta/policy.json | 228 ++++++++++++++++-- lavamoat/browserify/flask/policy.json | 228 ++++++++++++++++-- lavamoat/browserify/main/policy.json | 228 ++++++++++++++++-- lavamoat/browserify/mmi/policy.json | 228 ++++++++++++++++-- package.json | 2 +- .../connect-accounts-modal.test.tsx | 12 +- .../pages/connections/connections.tsx | 35 ++- .../permission-details-modal.test.tsx | 8 + ui/components/multichain/toast/toast.test.tsx | 4 - ui/hooks/useMultichainSelector.test.ts | 1 + .../remove-snap-account/snap-account-card.tsx | 3 +- ui/selectors/selectors.types.ts | 29 +++ yarn.lock | 176 +++++++++++--- 16 files changed, 1063 insertions(+), 135 deletions(-) create mode 100644 ui/selectors/selectors.types.ts diff --git a/app/scripts/migrations/105.test.ts b/app/scripts/migrations/105.test.ts index 944606043075..168fe8dd0916 100644 --- a/app/scripts/migrations/105.test.ts +++ b/app/scripts/migrations/105.test.ts @@ -72,6 +72,7 @@ function expectedInternalAccount( type: 'HD Key Tree', }, lastSelected: lastSelected ? expect.any(Number) : undefined, + importTime: 0, }, options: {}, methods: ETH_EOA_METHODS, diff --git a/app/scripts/migrations/105.ts b/app/scripts/migrations/105.ts index d4f5f2985215..a54b3e6457a7 100644 --- a/app/scripts/migrations/105.ts +++ b/app/scripts/migrations/105.ts @@ -97,6 +97,7 @@ function createInternalAccountsForAccountsController( metadata: { name: identity.name, lastSelected: identity.lastSelected ?? undefined, + importTime: 0, keyring: { // This is default HD Key Tree type because the keyring is encrypted // during migration, the type will get updated when the during the diff --git a/app/scripts/migrations/119.ts b/app/scripts/migrations/119.ts index 6e0f66687350..8cb0d2c04b97 100644 --- a/app/scripts/migrations/119.ts +++ b/app/scripts/migrations/119.ts @@ -46,13 +46,13 @@ function transformState(state: Record) { .accounts, ).length > 0 ) { - Object.values(accountsController.internalAccounts.accounts).forEach( - (internalAccount: InternalAccount) => { - if (!internalAccount.metadata?.importTime) { - internalAccount.metadata.importTime = Date.now(); - } - }, - ); + Object.values( + accountsController.internalAccounts.accounts, + ).forEach((internalAccount) => { + if (!internalAccount.metadata?.importTime) { + internalAccount.metadata.importTime = Date.now(); + } + }); } return { diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index a892ddff8b2f..831b12bedd76 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -797,11 +797,10 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/accounts-controller>@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/utils": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, - "@metamask/snaps-utils": true, - "@metamask/utils": true, "uuid": true } }, @@ -813,6 +812,21 @@ "immer": true } }, + "@metamask/accounts-controller>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/controller-utils": true, @@ -926,15 +940,30 @@ }, "packages": { "@ethereumjs/tx>@ethereumjs/util": true, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/assets-controllers>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -1592,10 +1621,25 @@ "URL": true }, "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, - "@metamask/keyring-api>uuid": true, - "@metamask/utils": true, - "superstruct": true + "@metamask/keyring-api>uuid": true + } + }, + "@metamask/keyring-api>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/keyring-api>uuid": { @@ -1778,13 +1822,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/name-controller>async-mutex": { "globals": { "clearTimeout": true, @@ -1836,13 +1895,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura": { "globals": { "setTimeout": true @@ -1934,13 +2008,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/permission-controller>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2092,10 +2181,25 @@ }, "@metamask/rpc-errors": { "packages": { - "@metamask/utils": true, + "@metamask/rpc-errors>@metamask/utils": true, "eth-rpc-errors>fast-safe-stringify": true } }, + "@metamask/rpc-errors>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/rpc-methods-flask>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2364,13 +2468,28 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": { "globals": { "clearInterval": true, @@ -2405,7 +2524,7 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, @@ -2425,6 +2544,21 @@ "webpack>events": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -2545,7 +2679,22 @@ "packages": { "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": true + } + }, + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-controllers>@metamask/json-rpc-middleware-stream": { @@ -2639,11 +2788,26 @@ "packages": { "@metamask/message-signing-snap>@noble/curves": true, "@metamask/scure-bip39": true, - "@metamask/utils": true, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": true, "@metamask/utils>@scure/base": true, "@noble/hashes": true } }, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/snaps-utils": { "globals": { "File": true, @@ -2681,10 +2845,25 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, - "@metamask/utils": true, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, + "@noble/hashes": true + } + }, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, "@noble/hashes": true, - "superstruct": true + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-utils>cron-parser": { @@ -2782,13 +2961,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index a892ddff8b2f..831b12bedd76 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -797,11 +797,10 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/accounts-controller>@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/utils": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, - "@metamask/snaps-utils": true, - "@metamask/utils": true, "uuid": true } }, @@ -813,6 +812,21 @@ "immer": true } }, + "@metamask/accounts-controller>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/controller-utils": true, @@ -926,15 +940,30 @@ }, "packages": { "@ethereumjs/tx>@ethereumjs/util": true, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/assets-controllers>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -1592,10 +1621,25 @@ "URL": true }, "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, - "@metamask/keyring-api>uuid": true, - "@metamask/utils": true, - "superstruct": true + "@metamask/keyring-api>uuid": true + } + }, + "@metamask/keyring-api>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/keyring-api>uuid": { @@ -1778,13 +1822,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/name-controller>async-mutex": { "globals": { "clearTimeout": true, @@ -1836,13 +1895,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura": { "globals": { "setTimeout": true @@ -1934,13 +2008,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/permission-controller>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2092,10 +2181,25 @@ }, "@metamask/rpc-errors": { "packages": { - "@metamask/utils": true, + "@metamask/rpc-errors>@metamask/utils": true, "eth-rpc-errors>fast-safe-stringify": true } }, + "@metamask/rpc-errors>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/rpc-methods-flask>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2364,13 +2468,28 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": { "globals": { "clearInterval": true, @@ -2405,7 +2524,7 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, @@ -2425,6 +2544,21 @@ "webpack>events": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -2545,7 +2679,22 @@ "packages": { "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": true + } + }, + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-controllers>@metamask/json-rpc-middleware-stream": { @@ -2639,11 +2788,26 @@ "packages": { "@metamask/message-signing-snap>@noble/curves": true, "@metamask/scure-bip39": true, - "@metamask/utils": true, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": true, "@metamask/utils>@scure/base": true, "@noble/hashes": true } }, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/snaps-utils": { "globals": { "File": true, @@ -2681,10 +2845,25 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, - "@metamask/utils": true, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, + "@noble/hashes": true + } + }, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, "@noble/hashes": true, - "superstruct": true + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-utils>cron-parser": { @@ -2782,13 +2961,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index a892ddff8b2f..831b12bedd76 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -797,11 +797,10 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/accounts-controller>@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/utils": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, - "@metamask/snaps-utils": true, - "@metamask/utils": true, "uuid": true } }, @@ -813,6 +812,21 @@ "immer": true } }, + "@metamask/accounts-controller>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/controller-utils": true, @@ -926,15 +940,30 @@ }, "packages": { "@ethereumjs/tx>@ethereumjs/util": true, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/assets-controllers>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -1592,10 +1621,25 @@ "URL": true }, "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, - "@metamask/keyring-api>uuid": true, - "@metamask/utils": true, - "superstruct": true + "@metamask/keyring-api>uuid": true + } + }, + "@metamask/keyring-api>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/keyring-api>uuid": { @@ -1778,13 +1822,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/name-controller>async-mutex": { "globals": { "clearTimeout": true, @@ -1836,13 +1895,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura": { "globals": { "setTimeout": true @@ -1934,13 +2008,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/permission-controller>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2092,10 +2181,25 @@ }, "@metamask/rpc-errors": { "packages": { - "@metamask/utils": true, + "@metamask/rpc-errors>@metamask/utils": true, "eth-rpc-errors>fast-safe-stringify": true } }, + "@metamask/rpc-errors>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/rpc-methods-flask>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2364,13 +2468,28 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": { "globals": { "clearInterval": true, @@ -2405,7 +2524,7 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, @@ -2425,6 +2544,21 @@ "webpack>events": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -2545,7 +2679,22 @@ "packages": { "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": true + } + }, + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-controllers>@metamask/json-rpc-middleware-stream": { @@ -2639,11 +2788,26 @@ "packages": { "@metamask/message-signing-snap>@noble/curves": true, "@metamask/scure-bip39": true, - "@metamask/utils": true, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": true, "@metamask/utils>@scure/base": true, "@noble/hashes": true } }, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/snaps-utils": { "globals": { "File": true, @@ -2681,10 +2845,25 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, - "@metamask/utils": true, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, + "@noble/hashes": true + } + }, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, "@noble/hashes": true, - "superstruct": true + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-utils>cron-parser": { @@ -2782,13 +2961,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json index c7975844f736..f43b33a6f535 100644 --- a/lavamoat/browserify/mmi/policy.json +++ b/lavamoat/browserify/mmi/policy.json @@ -889,11 +889,10 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/accounts-controller>@metamask/base-controller": true, + "@metamask/accounts-controller>@metamask/utils": true, "@metamask/eth-snap-keyring": true, "@metamask/keyring-api": true, "@metamask/keyring-controller": true, - "@metamask/snaps-utils": true, - "@metamask/utils": true, "uuid": true } }, @@ -905,6 +904,21 @@ "immer": true } }, + "@metamask/accounts-controller>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/address-book-controller": { "packages": { "@metamask/address-book-controller>@metamask/controller-utils": true, @@ -1018,15 +1032,30 @@ }, "packages": { "@ethereumjs/tx>@ethereumjs/util": true, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/assets-controllers>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/assets-controllers>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -1684,10 +1713,25 @@ "URL": true }, "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, - "@metamask/keyring-api>uuid": true, - "@metamask/utils": true, - "superstruct": true + "@metamask/keyring-api>uuid": true + } + }, + "@metamask/keyring-api>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/keyring-api>uuid": { @@ -1870,13 +1914,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/name-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/name-controller>async-mutex": { "globals": { "clearTimeout": true, @@ -1928,13 +1987,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/network-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura": { "globals": { "setTimeout": true @@ -2026,13 +2100,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/permission-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/permission-controller>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2184,10 +2273,25 @@ }, "@metamask/rpc-errors": { "packages": { - "@metamask/utils": true, + "@metamask/rpc-errors>@metamask/utils": true, "eth-rpc-errors>fast-safe-stringify": true } }, + "@metamask/rpc-errors>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/rpc-methods-flask>nanoid": { "globals": { "crypto.getRandomValues": true @@ -2456,13 +2560,28 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": { "globals": { "clearInterval": true, @@ -2497,7 +2616,7 @@ "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": true, - "@metamask/utils": true, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, @@ -2517,6 +2636,21 @@ "webpack>events": true } }, + "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": { "globals": { "clearTimeout": true, @@ -2637,7 +2771,22 @@ "packages": { "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": true + } + }, + "@metamask/snaps-controllers>@metamask/json-rpc-engine>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-controllers>@metamask/json-rpc-middleware-stream": { @@ -2731,11 +2880,26 @@ "packages": { "@metamask/message-signing-snap>@noble/curves": true, "@metamask/scure-bip39": true, - "@metamask/utils": true, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": true, "@metamask/utils>@scure/base": true, "@noble/hashes": true } }, + "@metamask/snaps-sdk>@metamask/key-tree>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/snaps-utils": { "globals": { "File": true, @@ -2773,10 +2937,25 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, - "@metamask/utils": true, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, + "@noble/hashes": true + } + }, + "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, "@noble/hashes": true, - "superstruct": true + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/snaps-utils>cron-parser": { @@ -2874,13 +3053,28 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/controller-utils>@spruceid/siwe-parser": true, "@metamask/ethjs>@metamask/ethjs-unit": true, - "@metamask/utils": true, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": true, "bn.js": true, "browserify>buffer": true, "eslint>fast-deep-equal": true, "eth-ens-namehash": true } }, + "@metamask/transaction-controller>@metamask/controller-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true + } + }, "@metamask/transaction-controller>@metamask/nonce-tracker": { "packages": { "@ethersproject/providers": true, diff --git a/package.json b/package.json index 814ce18ffbb8..c40ef61a7a2e 100644 --- a/package.json +++ b/package.json @@ -291,7 +291,7 @@ "@metamask-institutional/sdk": "^0.1.30", "@metamask-institutional/transaction-update": "^0.2.5", "@metamask/abi-utils": "^2.0.2", - "@metamask/accounts-controller": "^17.0.0", + "@metamask/accounts-controller": "^18.1.0", "@metamask/address-book-controller": "^4.0.1", "@metamask/announcement-controller": "^6.1.0", "@metamask/approval-controller": "^7.0.0", diff --git a/ui/components/multichain/connect-accounts-modal/connect-accounts-modal.test.tsx b/ui/components/multichain/connect-accounts-modal/connect-accounts-modal.test.tsx index e365acdd36bd..9dbba6dd4484 100644 --- a/ui/components/multichain/connect-accounts-modal/connect-accounts-modal.test.tsx +++ b/ui/components/multichain/connect-accounts-modal/connect-accounts-modal.test.tsx @@ -1,7 +1,10 @@ import React from 'react'; +import { EthAccountType } from '@metamask/keyring-api'; +import { KeyringTypes } from '@metamask/keyring-controller'; import configureStore from '../../../store/store'; import mockState from '../../../../test/data/mock-state.json'; import { renderWithProvider } from '../../../../test/jest/rendering'; +import { ETH_EOA_METHODS } from '../../../../shared/constants/eth-methods'; import { ConnectAccountsModalList } from './connect-accounts-modal-list'; const render = () => { @@ -24,9 +27,16 @@ const render = () => { keyring: { type: 'Custody', }, + importTime: 1631610000000, }, - type: 'eip155:eoa', + type: EthAccountType.Eoa, options: {}, + methods: ETH_EOA_METHODS, + keyring: { + type: KeyringTypes.hd, + }, + name: 'Custody Account A', + balance: '0x0', }, ], selectedAccounts: [], diff --git a/ui/components/multichain/pages/connections/connections.tsx b/ui/components/multichain/pages/connections/connections.tsx index 6e75c222c59d..ae1f5b88193e 100644 --- a/ui/components/multichain/pages/connections/connections.tsx +++ b/ui/components/multichain/pages/connections/connections.tsx @@ -110,7 +110,10 @@ export const Connections = () => { ); const selectedAccount = useSelector(getSelectedAccount); const internalAccounts = useSelector(getInternalAccounts); - const mergedAccounts = mergeAccounts(connectedAccounts, internalAccounts); + const mergedAccounts = mergeAccounts( + connectedAccounts, + internalAccounts, + ) as AccountType[]; const permittedAccountsByOrigin = useSelector( getPermittedAccountsByOrigin, @@ -174,16 +177,24 @@ export const Connections = () => { index === mergedAccounts.reduce( ( - acc: string | number, - cur: { metadata: { lastSelected: number } }, + indexOfAccountWIthHighestLastSelected: number, + currentAccountToCompare: AccountType, // TODO: Replace `any` with type // eslint-disable-next-line @typescript-eslint/no-explicit-any i: any, - ) => - cur.metadata.lastSelected > - mergedAccounts[acc].metadata.lastSelected + ) => { + const currentLastSelected = + currentAccountToCompare.metadata.lastSelected ?? 0; + const accountAtIndexLastSelected = mergedAccounts[ + indexOfAccountWIthHighestLastSelected + ].metadata.lastSelected ? i - : acc, + : indexOfAccountWIthHighestLastSelected; + + return currentLastSelected > accountAtIndexLastSelected + ? i + : indexOfAccountWIthHighestLastSelected; + }, 0, ) ); @@ -252,12 +263,10 @@ export const Connections = () => { const isSelectedAccount = selectedAccount.address === account.address; // Match the index of latestSelected Account with the index of all the accounts and set the active status - let mergedAccountsProps; - if (index === latestSelected) { - mergedAccountsProps = { ...account, isAccountActive: true }; - } else { - mergedAccountsProps = { ...account }; - } + const mergedAccountsProps = { + ...account, + isAccountActive: index === latestSelected, + }; return ( { @@ -34,6 +35,8 @@ describe('PermissionDetailsModal', () => { id: 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3', metadata: { name: 'Really Long Name That Should Be Truncated', + importTime: 1724252448, + lastSelected: 1724252448, keyring: { type: 'HD Key Tree', }, @@ -48,6 +51,7 @@ describe('PermissionDetailsModal', () => { metadata: { name: 'Account 1', lastSelected: 1586359844192, + importTime: 1586359844192, lastActive: 1586359844192, keyring: { type: 'HD Key Tree', @@ -112,10 +116,14 @@ describe('PermissionDetailsModal', () => { id: 'cf8dace4-9439-4bd4-b3a8-88c821c8fcb3', metadata: { name: 'mockName', + importTime: 1724256979, keyring: { type: 'HD Key Tree', }, }, + options: {}, + methods: ETH_EOA_METHODS, + type: EthAccountType.Eoa, label: '', }, isOpen: true, diff --git a/ui/components/multichain/toast/toast.test.tsx b/ui/components/multichain/toast/toast.test.tsx index d1541587694e..eb208d41e122 100644 --- a/ui/components/multichain/toast/toast.test.tsx +++ b/ui/components/multichain/toast/toast.test.tsx @@ -12,10 +12,6 @@ const mockInternalAccount = createMockInternalAccount(); const CHAOS_ACCOUNT: InternalAccount = { ...mockInternalAccount, address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4', - balance: '0x152387ad22c3f0', - keyring: { - type: 'HD Key Tree', - }, }; const onActionClick = jest.fn(); diff --git a/ui/hooks/useMultichainSelector.test.ts b/ui/hooks/useMultichainSelector.test.ts index e4469a9f05db..0f66030ae100 100644 --- a/ui/hooks/useMultichainSelector.test.ts +++ b/ui/hooks/useMultichainSelector.test.ts @@ -60,6 +60,7 @@ describe('useMultichainSelector', () => { }); it('uses selectedAccount if account is not provided', () => { + // @ts-expect-error: intentionally testing without account const { result } = renderUseMultichainHook(getMultichainIsEvm, null); expect(result.current).toBe(true); diff --git a/ui/pages/remove-snap-account/snap-account-card.tsx b/ui/pages/remove-snap-account/snap-account-card.tsx index aaef89c844ca..fcf946639077 100644 --- a/ui/pages/remove-snap-account/snap-account-card.tsx +++ b/ui/pages/remove-snap-account/snap-account-card.tsx @@ -8,6 +8,7 @@ import { BlockSize, BorderRadius } from '../../helpers/constants/design-system'; import { Box } from '../../components/component-library'; import { AccountListItem } from '../../components/multichain'; import { mergeAccounts } from '../../components/multichain/account-list-menu/account-list-menu'; +import { MergedInternalAccount } from '../../selectors/selectors.types'; // Wrapper component of AccountListItem with proper styling and auto populating information for the selected account export const SnapAccountCard = ({ @@ -24,7 +25,7 @@ export const SnapAccountCard = ({ const account = mergedAccounts.find( (internalAccount: { address: string }) => internalAccount.address === address, - ); + ) as MergedInternalAccount; return ( =15 <18" - checksum: 10/0c8546a4e980c70a7d4a6dcc470fa4968ca36d3e05f8fa8974e980c2b02616ada8ed416aa49f2801f883c08455453b2386d393e3b41c853d2dd45c226f8c360f + checksum: 10/15711ddaa0007794cc23f9c02f6cfbee85aa1cf79a46468a0398404c295eef1511555ce6bd60a691081d33864d288ea8b309ee9ac9c4d6f277ab22e4d97cb76e languageName: node linkType: hard @@ -5949,6 +5971,25 @@ __metadata: languageName: node linkType: hard +"@metamask/permission-controller@npm:^11.0.0": + version: 11.0.0 + resolution: "@metamask/permission-controller@npm:11.0.0" + dependencies: + "@metamask/base-controller": "npm:^6.0.2" + "@metamask/controller-utils": "npm:^11.0.2" + "@metamask/json-rpc-engine": "npm:^9.0.2" + "@metamask/rpc-errors": "npm:^6.3.1" + "@metamask/utils": "npm:^9.1.0" + "@types/deep-freeze-strict": "npm:^1.1.0" + deep-freeze-strict: "npm:^1.1.1" + immer: "npm:^9.0.6" + nanoid: "npm:^3.1.31" + peerDependencies: + "@metamask/approval-controller": ^7.0.0 + checksum: 10/3bd957b72ac4ed307566b650b5531e739732b9e6a414ec630bd43fc86c7c99b446eb5666f744abfb30c043824fe1b5a13681df8bd7c2244640b8996eec8e927a + languageName: node + linkType: hard + "@metamask/permission-controller@npm:^9.0.2": version: 9.1.0 resolution: "@metamask/permission-controller@npm:9.1.0" @@ -6173,13 +6214,13 @@ __metadata: languageName: node linkType: hard -"@metamask/rpc-errors@npm:^6.0.0, @metamask/rpc-errors@npm:^6.2.1": - version: 6.2.1 - resolution: "@metamask/rpc-errors@npm:6.2.1" +"@metamask/rpc-errors@npm:^6.0.0, @metamask/rpc-errors@npm:^6.2.1, @metamask/rpc-errors@npm:^6.3.1": + version: 6.3.1 + resolution: "@metamask/rpc-errors@npm:6.3.1" dependencies: - "@metamask/utils": "npm:^8.3.0" + "@metamask/utils": "npm:^9.0.0" fast-safe-stringify: "npm:^2.0.6" - checksum: 10/789f0a2090339c1aa43d45ee496f4f115e141bc55b98e4ce27498497568f9e85fb5527ecf1f113b156d88fc4f1e63a572ced74bdc1ba16826bf648391b223f7b + checksum: 10/f968fb490b13b632c2ad4770a144d67cecdff8d539cb8b489c732b08dab7a62fae65d7a2908ce8c5b77260317aa618948a52463f093fa8d9f84aee1c5f6f5daf languageName: node linkType: hard @@ -6367,15 +6408,15 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-registry@npm:^3.1.0": - version: 3.1.0 - resolution: "@metamask/snaps-registry@npm:3.1.0" +"@metamask/snaps-registry@npm:^3.1.0, @metamask/snaps-registry@npm:^3.2.1": + version: 3.2.1 + resolution: "@metamask/snaps-registry@npm:3.2.1" dependencies: - "@metamask/utils": "npm:^8.3.0" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^9.0.0" "@noble/curves": "npm:^1.2.0" "@noble/hashes": "npm:^1.3.2" - superstruct: "npm:^1.0.3" - checksum: 10/28b5a8685f20801e64265687f3cd3d4bd202e8fe1f0cc044fcc8ad6af94d1a1d354f98a866235a1b827f414c067f6ae4bf0c18f26603804db53f3869722d957e + checksum: 10/b2a413f27db9b5701d3773017035ee1e153734a25363e3877f44be4a70f51c48d77ad0ac8f1e96a7d732d2079a4b259896f361b3cba1ae0bf0bbc1075406f178 languageName: node linkType: hard @@ -6439,6 +6480,37 @@ __metadata: languageName: node linkType: hard +"@metamask/snaps-utils@npm:^7.8.1": + version: 7.8.1 + resolution: "@metamask/snaps-utils@npm:7.8.1" + dependencies: + "@babel/core": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + "@metamask/base-controller": "npm:^6.0.2" + "@metamask/key-tree": "npm:^9.1.2" + "@metamask/permission-controller": "npm:^11.0.0" + "@metamask/rpc-errors": "npm:^6.3.1" + "@metamask/slip44": "npm:^3.1.0" + "@metamask/snaps-registry": "npm:^3.2.1" + "@metamask/snaps-sdk": "npm:^6.1.0" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^9.1.0" + "@noble/hashes": "npm:^1.3.1" + "@scure/base": "npm:^1.1.1" + chalk: "npm:^4.1.2" + cron-parser: "npm:^4.5.0" + fast-deep-equal: "npm:^3.1.3" + fast-json-stable-stringify: "npm:^2.1.0" + fast-xml-parser: "npm:^4.3.4" + marked: "npm:^12.0.1" + rfdc: "npm:^1.3.0" + semver: "npm:^7.5.4" + ses: "npm:^1.1.0" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10/572108aafbad970910ffb3605cf9eb4675ede0d69ff2bd37515da7f071de2065a55c73d6dc44dbe70bbd9c3ff0dfe29d40fd16badd925a4b8504db293265ca2f + languageName: node + linkType: hard + "@metamask/snaps-utils@patch:@metamask/snaps-utils@npm%3A7.7.0#~/.yarn/patches/@metamask-snaps-utils-npm-7.7.0-2cc1f044af.patch": version: 7.7.0 resolution: "@metamask/snaps-utils@patch:@metamask/snaps-utils@npm%3A7.7.0#~/.yarn/patches/@metamask-snaps-utils-npm-7.7.0-2cc1f044af.patch::version=7.7.0&hash=5f2735" @@ -6470,6 +6542,13 @@ __metadata: languageName: node linkType: hard +"@metamask/superstruct@npm:^3.1.0": + version: 3.1.0 + resolution: "@metamask/superstruct@npm:3.1.0" + checksum: 10/5066fe228d5f11da387606d7f9545de2b473ab5a9e0f1bb8aea2f52d3e2c9d25e427151acde61f4a2de80a07a9871fe9505ad06abca6a61b7c3b54ed5c403b01 + languageName: node + linkType: hard + "@metamask/swappable-obj-proxy@npm:^2.2.0": version: 2.2.0 resolution: "@metamask/swappable-obj-proxy@npm:2.2.0" @@ -6637,6 +6716,23 @@ __metadata: languageName: node linkType: hard +"@metamask/utils@npm:^9.0.0, @metamask/utils@npm:^9.1.0": + version: 9.2.1 + resolution: "@metamask/utils@npm:9.2.1" + dependencies: + "@ethereumjs/tx": "npm:^4.2.0" + "@metamask/superstruct": "npm:^3.1.0" + "@noble/hashes": "npm:^1.3.1" + "@scure/base": "npm:^1.1.3" + "@types/debug": "npm:^4.1.7" + debug: "npm:^4.3.4" + pony-cause: "npm:^2.1.10" + semver: "npm:^7.5.4" + uuid: "npm:^9.0.1" + checksum: 10/2192797afd91af19898e107afeaf63e89b61dc7285e0a75d0cc814b5b288e4cdfc856781b01904034c4d2c1efd9bdab512af24c7e4dfe7b77a03f1f3d9dec7e8 + languageName: node + linkType: hard + "@mobily/ts-belt@npm:^3.13.1": version: 3.13.1 resolution: "@mobily/ts-belt@npm:3.13.1" @@ -25275,7 +25371,7 @@ __metadata: "@metamask-institutional/sdk": "npm:^0.1.30" "@metamask-institutional/transaction-update": "npm:^0.2.5" "@metamask/abi-utils": "npm:^2.0.2" - "@metamask/accounts-controller": "npm:^17.0.0" + "@metamask/accounts-controller": "npm:^18.1.0" "@metamask/address-book-controller": "npm:^4.0.1" "@metamask/announcement-controller": "npm:^6.1.0" "@metamask/api-specs": "npm:^0.9.3" From 1548351685c9dedf34d9b68f84e6905cc9e056b5 Mon Sep 17 00:00:00 2001 From: Nick Gambino <35090461+gambinish@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:41:09 -0700 Subject: [PATCH 5/8] fix: Cherry pick `1b4417d` for 12.1.1 (#26780) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Backports changes from MATIC - POL update, including state migration: https://github.com/MetaMask/metamask-extension/pull/26671 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26780?quickstart=1) ## **Related issues** Fixes: MATIC ticker should now be POL. Should automatically update for users. ## **Manual testing steps** ## **Screenshots/Recordings** ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- app/images/matic-token.png | Bin 16286 -> 0 bytes app/images/{matic-token.svg => pol-token.svg} | 0 .../constants/notification-schema.ts | 2 +- app/scripts/migrations/121.2.test.ts | 274 ++++++++++++++++++ app/scripts/migrations/121.2.ts | 93 ++++++ app/scripts/migrations/index.js | 1 + shared/constants/network.ts | 14 +- shared/constants/swaps.ts | 4 +- .../app/add-network/add-network.stories.js | 4 +- .../avatar-network/README.mdx | 2 +- .../avatar-network/avatar-network.stories.tsx | 2 +- .../picker-network/README.mdx | 2 +- .../picker-network/picker-network.stories.tsx | 2 +- .../picker-network/picker-network.test.tsx | 4 +- .../__snapshots__/avatar-group.test.tsx.snap | 2 +- .../avatar-group/avatar-group.stories.tsx | 4 +- .../avatar-group/avatar-group.test.tsx | 2 +- .../network-list-item.test.js.snap | 2 +- .../network-list-item.stories.js | 2 +- .../network-list-item.test.js | 4 +- .../token-input/token-input.component.test.js | 6 +- .../simulation-details/asset-pill.test.tsx | 4 +- .../networks-form/networks-form.js | 6 + 23 files changed, 406 insertions(+), 30 deletions(-) delete mode 100644 app/images/matic-token.png rename app/images/{matic-token.svg => pol-token.svg} (100%) create mode 100644 app/scripts/migrations/121.2.test.ts create mode 100644 app/scripts/migrations/121.2.ts diff --git a/app/images/matic-token.png b/app/images/matic-token.png deleted file mode 100644 index b154c46ea54324347bedc0b9f71ad5acb18b97d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16286 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Ø}%sa&Eo8LNh< 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 { + it('updates the version metadata', async () => { + const oldStorage = { + meta: { version: oldVersion }, + data: {}, + }; + + const newStorage = await migrate(oldStorage); + + expect(newStorage.meta).toStrictEqual({ version }); + }); + + it('Does nothing if `networkConfigurations` or `providerConfig` are not in the network controller state', async () => { + const oldState = { + NetworkController: { + selectedNetworkClientId: 'mainnet', + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(oldState); + }); + + it('Updates MATIC ticker to POL and updates imageURL in networkConfigurations', async () => { + const oldState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'MATIC', + rpcPrefs: { + imageUrl: './images/matic-token.svg', + }, + }, + }, + }, + }; + + const expectedState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'POL', + rpcPrefs: { + imageUrl: './images/pol-token.svg', + }, + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(expectedState); + }); + + it('Does not update ticker to POL if ticker is not MATIC, but still updates imageURL in networkConfigurations', async () => { + const oldState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'NOT_MATIC', + rpcPrefs: { + imageUrl: './images/matic-token.svg', + }, + }, + }, + }, + }; + + const expectedState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'NOT_MATIC', + rpcPrefs: { + imageUrl: './images/pol-token.svg', + }, + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(expectedState); + }); + + it('Does not update tickers for other network configurations, updates only ticker and imageURL for chain 0x89', async () => { + const oldState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'MATIC', + rpcPrefs: { + imageUrl: './images/matic-token.svg', + }, + }, + '0x1': { + chainId: '0x1', + ticker: 'ETH', + rpcPrefs: { + imageUrl: './images/eth-token.svg', + }, + }, + }, + }, + }; + + const expectedState = { + NetworkController: { + networkConfigurations: { + '0x89': { + chainId: '0x89', + ticker: 'POL', + rpcPrefs: { + imageUrl: './images/pol-token.svg', + }, + }, + '0x1': { + chainId: '0x1', + ticker: 'ETH', + rpcPrefs: { + imageUrl: './images/eth-token.svg', + }, + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(expectedState); + }); + + it('Does nothing if Polygon ChainId (0x89) is not in networkConfigurations', async () => { + const oldState = { + NetworkController: { + networkConfigurations: { + '0x1': { + chainId: '0x1', + ticker: 'ETH', + rpcPrefs: { + imageUrl: './images/eth-token.svg', + }, + }, + '0x2a': { + chainId: '0x2a', + ticker: 'KOVAN', + rpcPrefs: { + imageUrl: './images/kovan-token.svg', + }, + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(oldState); + }); + + it('Updates Polygon ChainId (0x89) in ProviderConfig if exists, and ticker is set to MATIC, and updates imageUrl', async () => { + const oldState = { + NetworkController: { + providerConfig: { + chainId: '0x89', + ticker: 'MATIC', + rpcPrefs: { + imageUrl: './images/matic-token.svg', + }, + }, + }, + }; + + const expectedState = { + NetworkController: { + providerConfig: { + chainId: '0x89', + ticker: 'POL', + rpcPrefs: { + imageUrl: './images/pol-token.svg', + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(expectedState); + }); + + it('Does nothing if Polygon ChainId (0x89) is not in providerConfig', async () => { + const oldState = { + NetworkController: { + providerConfig: { + chainId: '0x1', + ticker: 'ETH', + rpcPrefs: { + imageUrl: './images/eth-token.svg', + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(oldState); + }); + + it('Does not update ticker if Polygon ChainId (0x89) is in providerConfig, but ticker is not MATIC, but still updates imageUrl', async () => { + const oldState = { + NetworkController: { + providerConfig: { + chainId: '0x89', + ticker: 'NOT_MATIC', + rpcPrefs: { + imageUrl: './images/matic-token.svg', + }, + }, + }, + }; + + const expectedState = { + NetworkController: { + providerConfig: { + chainId: '0x89', + ticker: 'NOT_MATIC', + rpcPrefs: { + imageUrl: './images/pol-token.svg', + }, + }, + }, + }; + + const transformedState = await migrate({ + meta: { version: oldVersion }, + data: cloneDeep(oldState), + }); + + expect(transformedState.data).toStrictEqual(expectedState); + }); +}); diff --git a/app/scripts/migrations/121.2.ts b/app/scripts/migrations/121.2.ts new file mode 100644 index 000000000000..8cd84d3e10ab --- /dev/null +++ b/app/scripts/migrations/121.2.ts @@ -0,0 +1,93 @@ +import { hasProperty, isObject } from '@metamask/utils'; +import { cloneDeep } from 'lodash'; +import { CHAIN_IDS } from '../../../shared/constants/network'; + +export const version = 121.2; + +type VersionedData = { + meta: { version: number }; + data: Record; +}; + +/** + * Migrates MATIC ticker in Network Configuration to POL ticker as per the direction in https://polygon.technology/blog/save-the-date-matic-pol-migration-coming-september-4th-everything-you-need-to-know + * + * @param originalVersionedData - Versioned MetaMask extension state, exactly what we persist to dist. + * @param originalVersionedData.meta - State metadata. + * @param originalVersionedData.meta.version - The current state version. + * @param originalVersionedData.data - The persisted MetaMask state, keyed by controller. + * @returns Updated versioned MetaMask extension state. + */ +export async function migrate( + originalVersionedData: VersionedData, +): Promise { + const versionedData = cloneDeep(originalVersionedData); + versionedData.meta.version = version; + transformState(versionedData.data); + return versionedData; +} + +function transformState(state: Record): void { + const networkControllerState = state.NetworkController; + if ( + hasProperty(state, 'NetworkController') && + isObject(networkControllerState) && + hasProperty(networkControllerState, 'networkConfigurations') && + isObject(networkControllerState.networkConfigurations) + ) { + for (const networkConfiguration of Object.values( + networkControllerState.networkConfigurations, + )) { + if ( + isObject(networkConfiguration) && + networkConfiguration.chainId === CHAIN_IDS.POLYGON + ) { + // update image path regardless of ticker + if ( + hasProperty(networkConfiguration, 'rpcPrefs') && + isObject(networkConfiguration.rpcPrefs) && + hasProperty(networkConfiguration.rpcPrefs, 'imageUrl') && + networkConfiguration.rpcPrefs.imageUrl === './images/matic-token.svg' + ) { + networkConfiguration.rpcPrefs.imageUrl = './images/pol-token.svg'; + } + // update ticker only if MATIC + if ( + hasProperty(networkConfiguration, 'ticker') && + networkConfiguration.ticker === 'MATIC' + ) { + networkConfiguration.ticker = 'POL'; + } + } + } + } + + // handle legacy NetworkController versions (with providerConfig) + if ( + hasProperty(state, 'NetworkController') && + isObject(networkControllerState) && + hasProperty(networkControllerState, 'providerConfig') && + isObject(networkControllerState.providerConfig) && + hasProperty(networkControllerState.providerConfig, 'chainId') && + networkControllerState.providerConfig.chainId === CHAIN_IDS.POLYGON + ) { + // update image path regardless of ticker + if ( + hasProperty(networkControllerState.providerConfig, 'rpcPrefs') && + isObject(networkControllerState.providerConfig.rpcPrefs) && + hasProperty(networkControllerState.providerConfig.rpcPrefs, 'imageUrl') && + networkControllerState.providerConfig.rpcPrefs.imageUrl === + './images/matic-token.svg' + ) { + networkControllerState.providerConfig.rpcPrefs.imageUrl = + './images/pol-token.svg'; + } + // update ticker only if MATIC + if ( + hasProperty(networkControllerState.providerConfig, 'ticker') && + networkControllerState.providerConfig.ticker === 'MATIC' + ) { + networkControllerState.providerConfig.ticker = 'POL'; + } + } +} diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index 2cbcabc87e84..6e7fada1469e 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -139,6 +139,7 @@ const migrations = [ require('./120.6'), require('./121'), require('./121.1'), + require('./121.2'), ]; export default migrations; diff --git a/shared/constants/network.ts b/shared/constants/network.ts index 955c9b2decc2..758d9cb4357e 100644 --- a/shared/constants/network.ts +++ b/shared/constants/network.ts @@ -289,6 +289,7 @@ export const CURRENCY_SYMBOLS = { HARMONY: 'ONE', PALM: 'PALM', MATIC: 'MATIC', + POL: 'POL', TEST_ETH: 'TESTETH', USDC: 'USDC', USDT: 'USDT', @@ -361,6 +362,7 @@ const CHAINLIST_CURRENCY_SYMBOLS_MAP = { export const CHAINLIST_CURRENCY_SYMBOLS_MAP_NETWORK_COLLISION = { WETHIO: 'ZYN', CHZ: 'CHZ', + MATIC: 'POL', }; export const ETH_TOKEN_IMAGE_URL = './images/eth_logo.svg'; @@ -369,7 +371,7 @@ export const LINEA_SEPOLIA_TOKEN_IMAGE_URL = './images/linea-logo-testnet.png'; export const LINEA_MAINNET_TOKEN_IMAGE_URL = './images/linea-logo-mainnet.svg'; export const TEST_ETH_TOKEN_IMAGE_URL = './images/black-eth-logo.svg'; export const BNB_TOKEN_IMAGE_URL = './images/bnb.svg'; -export const MATIC_TOKEN_IMAGE_URL = './images/matic-token.svg'; +export const POL_TOKEN_IMAGE_URL = './images/pol-token.svg'; export const AVAX_TOKEN_IMAGE_URL = './images/avax-token.svg'; export const AETH_TOKEN_IMAGE_URL = './images/arbitrum.svg'; export const FTM_TOKEN_IMAGE_URL = './images/fantom-opera.svg'; @@ -546,7 +548,7 @@ export const CHAIN_ID_TO_CURRENCY_SYMBOL_MAP = { [CHAINLIST_CHAIN_IDS_MAP.MAINNET]: CHAINLIST_CURRENCY_SYMBOLS_MAP.ETH, [CHAINLIST_CHAIN_IDS_MAP.OPBNB]: CHAINLIST_CURRENCY_SYMBOLS_MAP.OPBNB, [CHAINLIST_CHAIN_IDS_MAP.OPTIMISM]: CHAINLIST_CURRENCY_SYMBOLS_MAP.OPTIMISM, - [CHAINLIST_CHAIN_IDS_MAP.POLYGON]: CHAINLIST_CURRENCY_SYMBOLS_MAP.MATIC, + [CHAINLIST_CHAIN_IDS_MAP.POLYGON]: CHAINLIST_CURRENCY_SYMBOLS_MAP.POL, [CHAINLIST_CHAIN_IDS_MAP.ZKSYNC_ERA]: CHAINLIST_CURRENCY_SYMBOLS_MAP.ZKSYNC_ERA, [CHAINLIST_CHAIN_IDS_MAP.GOERLI]: @@ -694,7 +696,7 @@ export const CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP = { [CHAIN_IDS.LINEA_MAINNET]: LINEA_MAINNET_TOKEN_IMAGE_URL, [CHAIN_IDS.AVALANCHE]: AVAX_TOKEN_IMAGE_URL, [CHAIN_IDS.BSC]: BNB_TOKEN_IMAGE_URL, - [CHAIN_IDS.POLYGON]: MATIC_TOKEN_IMAGE_URL, + [CHAIN_IDS.POLYGON]: POL_TOKEN_IMAGE_URL, [CHAIN_IDS.ARBITRUM]: AETH_TOKEN_IMAGE_URL, [CHAIN_IDS.FANTOM]: FTM_TOKEN_IMAGE_URL, [CHAIN_IDS.HARMONY]: HARMONY_ONE_TOKEN_IMAGE_URL, @@ -768,7 +770,7 @@ export const CHAIN_ID_TOKEN_IMAGE_MAP = { [CHAIN_IDS.MAINNET]: ETH_TOKEN_IMAGE_URL, [CHAIN_IDS.TEST_ETH]: TEST_ETH_TOKEN_IMAGE_URL, [CHAIN_IDS.BSC]: BNB_TOKEN_IMAGE_URL, - [CHAIN_IDS.POLYGON]: MATIC_TOKEN_IMAGE_URL, + [CHAIN_IDS.POLYGON]: POL_TOKEN_IMAGE_URL, [CHAIN_IDS.AVALANCHE]: AVAX_TOKEN_IMAGE_URL, [CHAIN_IDS.OPTIMISM]: ETH_TOKEN_IMAGE_URL, [CHAIN_IDS.CELO]: CELO_TOKEN_IMAGE_URL, @@ -938,10 +940,10 @@ export const FEATURED_RPCS: RPCDefinition[] = [ chainId: CHAIN_IDS.POLYGON, nickname: `${POLYGON_DISPLAY_NAME} ${capitalize(NETWORK_TYPES.MAINNET)}`, rpcUrl: `https://polygon-mainnet.infura.io/v3/${infuraProjectId}`, - ticker: CURRENCY_SYMBOLS.MATIC, + ticker: CURRENCY_SYMBOLS.POL, rpcPrefs: { blockExplorerUrl: 'https://polygonscan.com/', - imageUrl: MATIC_TOKEN_IMAGE_URL, + imageUrl: POL_TOKEN_IMAGE_URL, }, }, { diff --git a/shared/constants/swaps.ts b/shared/constants/swaps.ts index bd3db9d94a2f..53e1243acaa0 100644 --- a/shared/constants/swaps.ts +++ b/shared/constants/swaps.ts @@ -2,7 +2,7 @@ import { ETH_TOKEN_IMAGE_URL, TEST_ETH_TOKEN_IMAGE_URL, BNB_TOKEN_IMAGE_URL, - MATIC_TOKEN_IMAGE_URL, + POL_TOKEN_IMAGE_URL, AVAX_TOKEN_IMAGE_URL, CURRENCY_SYMBOLS, CHAIN_IDS, @@ -74,7 +74,7 @@ export const MATIC_SWAPS_TOKEN_OBJECT: SwapsTokenObject = { name: 'Matic', address: DEFAULT_TOKEN_ADDRESS, decimals: 18, - iconUrl: MATIC_TOKEN_IMAGE_URL, + iconUrl: POL_TOKEN_IMAGE_URL, } as const; export const AVAX_SWAPS_TOKEN_OBJECT: SwapsTokenObject = { diff --git a/ui/components/app/add-network/add-network.stories.js b/ui/components/app/add-network/add-network.stories.js index 88de1480c782..76d10b569d23 100644 --- a/ui/components/app/add-network/add-network.stories.js +++ b/ui/components/app/add-network/add-network.stories.js @@ -1,7 +1,7 @@ import React from 'react'; import AddNetwork from './add-network'; -const MATIC_TOKEN_IMAGE_URL = './images/matic-token.svg'; +const POL_TOKEN_IMAGE_URL = './images/pol-token.svg'; const ARBITRUM_IMAGE_URL = './images/arbitrum.svg'; const OPTIMISM_IMAGE_URL = './images/optimism.svg'; const AVALANCHE_IMAGE_URL = './images/avax-token.svg'; @@ -93,7 +93,7 @@ export default { ticker: 'MATIC', rpcPrefs: { blockExplorerUrl: 'https://polygonscan.com/', - imageUrl: MATIC_TOKEN_IMAGE_URL, + imageUrl: POL_TOKEN_IMAGE_URL, }, }, { diff --git a/ui/components/component-library/avatar-network/README.mdx b/ui/components/component-library/avatar-network/README.mdx index f2db6d4ad227..8022bbbba6e7 100644 --- a/ui/components/component-library/avatar-network/README.mdx +++ b/ui/components/component-library/avatar-network/README.mdx @@ -71,7 +71,7 @@ Use the `src` prop to set the image to be rendered of the `AvatarNetwork`. ```jsx import { AvatarNetwork } from '../../component-library'; - + diff --git a/ui/components/component-library/avatar-network/avatar-network.stories.tsx b/ui/components/component-library/avatar-network/avatar-network.stories.tsx index 04265930331f..390ddc3e87cc 100644 --- a/ui/components/component-library/avatar-network/avatar-network.stories.tsx +++ b/ui/components/component-library/avatar-network/avatar-network.stories.tsx @@ -95,7 +95,7 @@ Name.args = { export const Src: StoryFn = (args) => ( - + diff --git a/ui/components/component-library/picker-network/README.mdx b/ui/components/component-library/picker-network/README.mdx index 96377c2ddac3..19a0f1381d54 100644 --- a/ui/components/component-library/picker-network/README.mdx +++ b/ui/components/component-library/picker-network/README.mdx @@ -44,7 +44,7 @@ Use the `src` prop with an image url to render the `AvatarNetwork`. Use the `ava ```jsx import { PickerNetwork } from '../../ui/component-library'; - + ``` diff --git a/ui/components/component-library/picker-network/picker-network.stories.tsx b/ui/components/component-library/picker-network/picker-network.stories.tsx index b426b5a28a1b..9960058e873e 100644 --- a/ui/components/component-library/picker-network/picker-network.stories.tsx +++ b/ui/components/component-library/picker-network/picker-network.stories.tsx @@ -66,7 +66,7 @@ export const Src: StoryFn = (args) => ( diff --git a/ui/components/component-library/picker-network/picker-network.test.tsx b/ui/components/component-library/picker-network/picker-network.test.tsx index 8701efc2388f..ac7ee292b55c 100644 --- a/ui/components/component-library/picker-network/picker-network.test.tsx +++ b/ui/components/component-library/picker-network/picker-network.test.tsx @@ -18,12 +18,12 @@ describe('PickerNetwork', () => { , ); const image = screen.getByRole('img'); expect(image).toBeDefined(); - expect(image).toHaveAttribute('src', './images/matic-token.svg'); + expect(image).toHaveAttribute('src', './images/pol-token.svg'); }); it('should render avatar network inside the PickerNetwork with custom props', () => { const container = ( diff --git a/ui/components/multichain/avatar-group/__snapshots__/avatar-group.test.tsx.snap b/ui/components/multichain/avatar-group/__snapshots__/avatar-group.test.tsx.snap index 526fb9b58498..ff4c6a297c38 100644 --- a/ui/components/multichain/avatar-group/__snapshots__/avatar-group.test.tsx.snap +++ b/ui/components/multichain/avatar-group/__snapshots__/avatar-group.test.tsx.snap @@ -47,7 +47,7 @@ exports[`AvatarGroup should render AvatarGroup component 1`] = ` MATIC logo diff --git a/ui/components/multichain/avatar-group/avatar-group.stories.tsx b/ui/components/multichain/avatar-group/avatar-group.stories.tsx index ec2a97dfdfbc..b0b9bbc7601e 100644 --- a/ui/components/multichain/avatar-group/avatar-group.stories.tsx +++ b/ui/components/multichain/avatar-group/avatar-group.stories.tsx @@ -16,7 +16,7 @@ export default { args: { members: [ { symbol: 'ETH', avatarValue: './images/eth_logo.svg' }, - { symbol: 'MATIC', avatarValue: './images/matic-token.svg' }, + { symbol: 'MATIC', avatarValue: './images/pol-token.svg' }, { symbol: 'OP', avatarValue: './images/optimism.svg' }, { symbol: 'AVAX', avatarValue: './images/avax-token.svg' }, ], @@ -35,7 +35,7 @@ export const WithTag: StoryFn = (args) => ( WithTag.args = { members: [ { symbol: 'ETH', avatarValue: './images/eth_logo.svg' }, - { symbol: 'MATIC', avatarValue: './images/matic-token.svg' }, + { symbol: 'MATIC', avatarValue: './images/pol-token.svg' }, { symbol: 'OP', avatarValue: './images/optimism.svg' }, { symbol: 'AVAX', avatarValue: './images/avax-token.svg' }, { symbol: 'PALM', avatarValue: './images/palm.svg' }, diff --git a/ui/components/multichain/avatar-group/avatar-group.test.tsx b/ui/components/multichain/avatar-group/avatar-group.test.tsx index 836c4d3b341f..22feec62d524 100644 --- a/ui/components/multichain/avatar-group/avatar-group.test.tsx +++ b/ui/components/multichain/avatar-group/avatar-group.test.tsx @@ -9,7 +9,7 @@ import { AvatarGroup } from './avatar-group'; const members = [ { symbol: 'ETH', avatarValue: './images/eth_logo.svg' }, - { symbol: 'MATIC', avatarValue: './images/matic-token.svg' }, + { symbol: 'MATIC', avatarValue: './images/pol-token.svg' }, { symbol: 'OP', avatarValue: './images/optimism.svg' }, { symbol: 'AVAX', avatarValue: './images/avax-token.svg' }, { symbol: 'PALM', avatarValue: './images/palm.svg' }, diff --git a/ui/components/multichain/network-list-item/__snapshots__/network-list-item.test.js.snap b/ui/components/multichain/network-list-item/__snapshots__/network-list-item.test.js.snap index df225a439aed..a0ac4ec93b39 100644 --- a/ui/components/multichain/network-list-item/__snapshots__/network-list-item.test.js.snap +++ b/ui/components/multichain/network-list-item/__snapshots__/network-list-item.test.js.snap @@ -11,7 +11,7 @@ exports[`NetworkListItem renders properly 1`] = ` Polygon logo
(
); -IconStory.args = { iconSrc: './images/matic-token.svg', name: 'Polygon' }; +IconStory.args = { iconSrc: './images/pol-token.svg', name: 'Polygon' }; export const SelectedStory = (args) => (
undefined, onDeleteClick: () => undefined, diff --git a/ui/components/ui/token-input/token-input.component.test.js b/ui/components/ui/token-input/token-input.component.test.js index dd2f12307b76..8f6e278b3d0e 100644 --- a/ui/components/ui/token-input/token-input.component.test.js +++ b/ui/components/ui/token-input/token-input.component.test.js @@ -66,7 +66,7 @@ describe('TokenInput Component', () => { metamask: { ...mockState.metamask, currencyRates: { - [CURRENCY_SYMBOLS.MATIC]: { + [CURRENCY_SYMBOLS.POL]: { conversionRate: 1, }, }, @@ -77,7 +77,7 @@ describe('TokenInput Component', () => { providerConfig: { chainId: CHAIN_IDS.POLYGON, type: NETWORK_TYPES.MAINNET, - ticker: CURRENCY_SYMBOLS.MATIC, + ticker: CURRENCY_SYMBOLS.POL, }, }, }; @@ -88,7 +88,7 @@ describe('TokenInput Component', () => { mockStore, ); - expect(queryByTitle('0 MATIC')).toBeInTheDocument(); + expect(queryByTitle('0 POL')).toBeInTheDocument(); }); it('should render showFiat', () => { diff --git a/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx b/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx index 57ec93f0883d..0e32ca14ecb2 100644 --- a/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx +++ b/ui/pages/confirmations/components/simulation-details/asset-pill.test.tsx @@ -37,8 +37,8 @@ describe('AssetPill', () => { { chainId: CHAIN_IDS.POLYGON, expected: { - ticker: 'MATIC', - imgSrc: './images/matic-token.svg', + ticker: 'POL', + imgSrc: './images/pol-token.svg', }, }, ]; diff --git a/ui/pages/settings/networks-tab/networks-form/networks-form.js b/ui/pages/settings/networks-tab/networks-form/networks-form.js index 87b46b41afaf..123a2bedeccb 100644 --- a/ui/pages/settings/networks-tab/networks-form/networks-form.js +++ b/ui/pages/settings/networks-tab/networks-form/networks-form.js @@ -177,6 +177,12 @@ const NetworksForm = ({ }); safeChainsList.current = [ ...chainList, + { + chainId: 137, + nativeCurrency: { + symbol: CHAINLIST_CURRENCY_SYMBOLS_MAP_NETWORK_COLLISION.MATIC, + }, + }, { chainId: 78, nativeCurrency: { From abe7da49107d735383c52559aa384ba216ca22f5 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Fri, 30 Aug 2024 13:57:28 -0400 Subject: [PATCH 6/8] cherry-pick(v12.1.1): Bump `@metamask/eth-json-rpc-middleware` to `^14.0.0` (#26143) (#26626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Cherry-pick of #26143 for ~v12.1.0-rc~ v12.1.1-rc. This is a very different PR from the original, as I had to remove diffs to a significant amount of code that has not yet been introduced to the release candidate. The diffs that were excluded here will need to be reapplied to a future release. I'm also keeping an eye out for new cherry-picks that may introduce changes requiring me to restore certain diffs. Aligning `@metamask/eth-block-tracker` to `^11.0.1` is deferred, as it's blocked by #26150, which is not included in this release candidate. The `@metamask/transaction-controller` major version bump from `^34.0.0` to `^35.1.1` is also removed for now. See below for new changelog. ## Changelog ### Added - Add and export `PPOMMiddlewareRequest` type for `JsonRpcRequest` types that include the `securityAlertResponse` property. - `securityAlertResponse` is defined as both optional and nullable. - Add `PPOMRequest` type for `eth-sendTransaction` requests. ### Changed - **BREAKING:** Bump `@metamask/eth-json-rpc-middleware` from `^12.1.1` to `^14.0.0`. - Bump `@trezor/connect-web` from `9.2.2` to `9.3.0`. ### Fixed - **BREAKING:** Narrow `Params` generic parameter of `createPPOMMiddleware` function from `JsonRpcParams` to `(string | { to: string })[]`. - Add `Params` generic parameter to `handleSnapRequest` function, which is constrained by `Record` and defaults to `JsonRpcParams`. - `handleSnapRequest` can now be typed correctly with any `params` object. ### Security - **BREAKING:** Typed signature validation only replaces `0X` prefix with `0x`, and contract address normalization is removed for decimal and octal values. - Threat actors have been manipulating `eth_signTypedData_v4` fields to cause failures in blockaid's detectors. - Extension crashes with an error when performing Malicious permit with a non-0x prefixed integer address. - This fixes an issue where the key value row or petname component disappears if a signed address is prefixed by "0X" instead of "0x". ## **Manual testing steps** ## **Screenshots/Recordings** ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: MetaMask Bot --- ...zor-connect-web-npm-9.3.0-040ab10d9a.patch | 33 + .../lib/accounts/BalancesController.test.ts | 1 - .../lib/createDupeReqFilterStream.test.ts | 27 +- app/scripts/lib/createDupeReqFilterStream.ts | 4 +- app/scripts/lib/ppom/ppom-middleware.test.ts | 49 +- app/scripts/lib/ppom/ppom-middleware.ts | 10 +- app/scripts/lib/ppom/ppom-util.test.ts | 2 + app/scripts/lib/ppom/ppom-util.ts | 16 +- app/scripts/lib/transaction/util.ts | 7 +- app/scripts/snaps/preinstalled-snaps.ts | 2 +- lavamoat/browserify/beta/policy.json | 188 ++- lavamoat/browserify/flask/policy.json | 188 ++- lavamoat/browserify/main/policy.json | 188 ++- lavamoat/browserify/mmi/policy.json | 188 ++- package.json | 41 +- .../account-tracker-api-usage.spec.ts | 2 +- test/jest/{mocks.js => mocks.ts} | 26 +- ui/contexts/snaps/snap-interface.tsx | 2 +- ...MultichainAccountTotalFiatBalance.test.tsx | 1 - ui/hooks/useTheme.ts | 4 +- ui/store/actions.ts | 16 +- yarn.lock | 1467 +++++++---------- 22 files changed, 1171 insertions(+), 1291 deletions(-) create mode 100644 .yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch rename test/jest/{mocks.js => mocks.ts} (90%) diff --git a/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch b/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch new file mode 100644 index 000000000000..854707ea51a1 --- /dev/null +++ b/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch @@ -0,0 +1,33 @@ +diff --git a/lib/impl/core-in-iframe.js b/lib/impl/core-in-iframe.js +index c47cf3bff860d6b1855341c00b80fc6c40f9d6d5..275eb0f312ff396819fa406c154a3562842db49d 100644 +--- a/lib/impl/core-in-iframe.js ++++ b/lib/impl/core-in-iframe.js +@@ -116,7 +116,9 @@ class CoreInIframe { + this._log.enabled = !!this._settings.debug; + window.addEventListener('message', this.boundHandleMessage); + window.addEventListener('unload', this.boundDispose); +- await iframe.init(this._settings); ++ const modifiedSettings = Object.assign({}, this.settings); ++ modifiedSettings.env = 'webextension'; ++ await iframe.init(modifiedSettings); + if (this._settings.sharedLogger !== false) { + iframe.initIframeLogger(); + } +diff --git a/lib/popup/index.js b/lib/popup/index.js +index 9b13c370a5ac8b4e4fc0315ed40cdf615d0bb0cb..4dbd97fc28df49beb73379451974ec48a8a42ea7 100644 +--- a/lib/popup/index.js ++++ b/lib/popup/index.js +@@ -229,10 +229,12 @@ class PopupManager extends events_1.default { + } + else if (message.type === events_2.POPUP.LOADED) { + this.handleMessage(message); ++ const modifiedSettings = Object.assign({}, this.settings); ++ modifiedSettings.env = 'webextension'; + this.channel.postMessage({ + type: events_2.POPUP.INIT, + payload: { +- settings: this.settings, ++ settings: modifiedSettings, + useCore: true, + }, + }); diff --git a/app/scripts/lib/accounts/BalancesController.test.ts b/app/scripts/lib/accounts/BalancesController.test.ts index 02627c6aa201..422c58e2f49e 100644 --- a/app/scripts/lib/accounts/BalancesController.test.ts +++ b/app/scripts/lib/accounts/BalancesController.test.ts @@ -19,7 +19,6 @@ import { Poller } from './Poller'; const mockBtcAccount = createMockInternalAccount({ address: '', name: 'Btc Account', - // @ts-expect-error - account type may be btc or eth, mock file is not typed type: BtcAccountType.P2wpkh, snapOptions: { id: 'mock-btc-snap', diff --git a/app/scripts/lib/createDupeReqFilterStream.test.ts b/app/scripts/lib/createDupeReqFilterStream.test.ts index 4a3ff375b7e6..b42ba08f5f50 100644 --- a/app/scripts/lib/createDupeReqFilterStream.test.ts +++ b/app/scripts/lib/createDupeReqFilterStream.test.ts @@ -3,7 +3,7 @@ import OurReadableStream from 'readable-stream'; import ReadableStream2 from 'readable-stream-2'; import ReadableStream3 from 'readable-stream-3'; -import type { JsonRpcRequest } from '@metamask/utils'; +import type { JsonRpcNotification, JsonRpcRequest } from '@metamask/utils'; import createDupeReqFilterStream, { THREE_MINUTES, } from './createDupeReqFilterStream'; @@ -26,7 +26,7 @@ function createTestStream(output: JsonRpcRequest[] = [], S = Transform) { } function runStreamTest( - requests: JsonRpcRequest[] = [], + requests: (JsonRpcRequest | JsonRpcNotification)[] = [], advanceTimersTime = 10, S = Transform, ) { @@ -54,12 +54,12 @@ describe('createDupeReqFilterStream', () => { const requests = [ { id: 1, method: 'foo' }, { id: 2, method: 'bar' }, - ]; + ].map((request) => ({ ...request, jsonrpc: '2.0' as const })); const expectedOutput = [ { id: 1, method: 'foo' }, { id: 2, method: 'bar' }, - ]; + ].map((output) => ({ ...output, jsonrpc: '2.0' })); const output = await runStreamTest(requests); expect(output).toEqual(expectedOutput); @@ -69,18 +69,25 @@ describe('createDupeReqFilterStream', () => { const requests = [ { id: 1, method: 'foo' }, { id: 1, method: 'foo' }, // duplicate - ]; + ].map((request) => ({ ...request, jsonrpc: '2.0' as const })); - const expectedOutput = [{ id: 1, method: 'foo' }]; + const expectedOutput = [{ id: 1, method: 'foo' }].map((output) => ({ + ...output, + jsonrpc: '2.0', + })); const output = await runStreamTest(requests); expect(output).toEqual(expectedOutput); }); it("lets through requests if they don't have an id", async () => { - const requests = [{ method: 'notify1' }, { method: 'notify2' }]; + const requests = [{ method: 'notify1' }, { method: 'notify2' }].map( + (request) => ({ ...request, jsonrpc: '2.0' as const }), + ); - const expectedOutput = [{ method: 'notify1' }, { method: 'notify2' }]; + const expectedOutput = [{ method: 'notify1' }, { method: 'notify2' }].map( + (output) => ({ ...output, jsonrpc: '2.0' }), + ); const output = await runStreamTest(requests); expect(output).toEqual(expectedOutput); @@ -95,7 +102,7 @@ describe('createDupeReqFilterStream', () => { { method: 'notify2' }, { id: 2, method: 'bar' }, { id: 3, method: 'baz' }, - ]; + ].map((request) => ({ ...request, jsonrpc: '2.0' as const })); const expectedOutput = [ { id: 1, method: 'foo' }, @@ -103,7 +110,7 @@ describe('createDupeReqFilterStream', () => { { id: 2, method: 'bar' }, { method: 'notify2' }, { id: 3, method: 'baz' }, - ]; + ].map((output) => ({ ...output, jsonrpc: '2.0' })); const output = await runStreamTest(requests); expect(output).toEqual(expectedOutput); diff --git a/app/scripts/lib/createDupeReqFilterStream.ts b/app/scripts/lib/createDupeReqFilterStream.ts index 63d801e7f1e4..ded95c5fa99f 100644 --- a/app/scripts/lib/createDupeReqFilterStream.ts +++ b/app/scripts/lib/createDupeReqFilterStream.ts @@ -11,7 +11,7 @@ export const THREE_MINUTES = MINUTE * 3; * @returns The expiry set. */ const makeExpirySet = () => { - const map: Map = new Map(); + const map: Map = new Map(); setInterval(() => { const cutoffTime = Date.now() - THREE_MINUTES; @@ -32,7 +32,7 @@ const makeExpirySet = () => { * @param value - The value to add. * @returns `true` if the value was added, and `false` if it already existed. */ - add(value: string | number) { + add(value: string | number | null) { if (!map.has(value)) { map.set(value, Date.now()); return true; diff --git a/app/scripts/lib/ppom/ppom-middleware.test.ts b/app/scripts/lib/ppom/ppom-middleware.test.ts index 354b2a8e4408..9c48f7ef59d8 100644 --- a/app/scripts/lib/ppom/ppom-middleware.test.ts +++ b/app/scripts/lib/ppom/ppom-middleware.test.ts @@ -1,8 +1,4 @@ -import { - type Hex, - JsonRpcRequestStruct, - JsonRpcResponseStruct, -} from '@metamask/utils'; +import { type Hex, JsonRpcResponseStruct } from '@metamask/utils'; import { CHAIN_IDS } from '../../../../shared/constants/network'; import { @@ -10,7 +6,7 @@ import { BlockaidResultType, } from '../../../../shared/constants/security-provider'; import { flushPromises } from '../../../../test/lib/timer-helpers'; -import { createPPOMMiddleware } from './ppom-middleware'; +import { createPPOMMiddleware, PPOMMiddlewareRequest } from './ppom-middleware'; import { generateSecurityAlertId, handlePPOMError, @@ -28,6 +24,12 @@ const SECURITY_ALERT_RESPONSE_MOCK: SecurityAlertResponse = { reason: BlockaidReason.permitFarming, }; +const REQUEST_MOCK = { + params: [], + id: '', + jsonrpc: '2.0' as const, +}; + const createMiddleware = ( options: { chainId?: Hex; @@ -48,8 +50,7 @@ const createMiddleware = ( const preferenceController = { store: { getState: () => ({ - securityAlertsEnabled: - securityAlertsEnabled === undefined ?? securityAlertsEnabled, + securityAlertsEnabled: securityAlertsEnabled ?? true, }), }, }; @@ -106,14 +107,14 @@ describe('PPOMMiddleware', () => { }); const req = { - ...JsonRpcRequestStruct, + ...REQUEST_MOCK, method: 'eth_sendTransaction', securityAlertResponse: undefined, }; await middlewareFunction( req, - { ...JsonRpcResponseStruct }, + { ...JsonRpcResponseStruct.TYPE }, () => undefined, ); @@ -130,20 +131,20 @@ describe('PPOMMiddleware', () => { it('adds loading response to confirmation requests while validation is in progress', async () => { const middlewareFunction = createMiddleware(); - const req = { - ...JsonRpcRequestStruct, + const req: PPOMMiddlewareRequest<(string | { to: string })[]> = { + ...REQUEST_MOCK, method: 'eth_sendTransaction', securityAlertResponse: undefined, }; await middlewareFunction( req, - { ...JsonRpcResponseStruct }, + { ...JsonRpcResponseStruct.TYPE }, () => undefined, ); - expect(req.securityAlertResponse.reason).toBe(BlockaidReason.inProgress); - expect(req.securityAlertResponse.result_type).toBe( + expect(req.securityAlertResponse?.reason).toBe(BlockaidReason.inProgress); + expect(req.securityAlertResponse?.result_type).toBe( BlockaidResultType.Loading, ); }); @@ -154,7 +155,7 @@ describe('PPOMMiddleware', () => { }); const req = { - ...JsonRpcRequestStruct, + ...REQUEST_MOCK, method: 'eth_sendTransaction', securityAlertResponse: undefined, }; @@ -171,14 +172,14 @@ describe('PPOMMiddleware', () => { }); const req = { - ...JsonRpcRequestStruct, + ...REQUEST_MOCK, method: 'eth_sendTransaction', securityAlertResponse: undefined, }; await middlewareFunction( req, - { ...JsonRpcResponseStruct }, + { ...JsonRpcResponseStruct.TYPE }, () => undefined, ); @@ -190,14 +191,14 @@ describe('PPOMMiddleware', () => { const middlewareFunction = createMiddleware(); const req = { - ...JsonRpcRequestStruct, + ...REQUEST_MOCK, method: 'eth_someRequest', securityAlertResponse: undefined, }; await middlewareFunction( req, - { ...JsonRpcResponseStruct }, + { ...JsonRpcResponseStruct.TYPE }, () => undefined, ); @@ -210,8 +211,8 @@ describe('PPOMMiddleware', () => { const nextMock = jest.fn(); await middlewareFunction( - { ...JsonRpcRequestStruct, method: 'eth_sendTransaction' }, - { ...JsonRpcResponseStruct }, + { ...REQUEST_MOCK, method: 'eth_sendTransaction' }, + { ...JsonRpcResponseStruct.TYPE }, nextMock, ); @@ -227,12 +228,12 @@ describe('PPOMMiddleware', () => { const middlewareFunction = createMiddleware({ error }); const req = { - ...JsonRpcRequestStruct, + ...REQUEST_MOCK, method: 'eth_sendTransaction', securityAlertResponse: undefined, }; - await middlewareFunction(req, { ...JsonRpcResponseStruct }, nextMock); + await middlewareFunction(req, { ...JsonRpcResponseStruct.TYPE }, nextMock); expect(req.securityAlertResponse).toStrictEqual( SECURITY_ALERT_RESPONSE_MOCK, diff --git a/app/scripts/lib/ppom/ppom-middleware.ts b/app/scripts/lib/ppom/ppom-middleware.ts index 0bdd46edba3f..bc2f3720d445 100644 --- a/app/scripts/lib/ppom/ppom-middleware.ts +++ b/app/scripts/lib/ppom/ppom-middleware.ts @@ -27,6 +27,12 @@ const CONFIRMATION_METHODS = Object.freeze([ ...SIGNING_METHODS, ]); +export type PPOMMiddlewareRequest< + Params extends JsonRpcParams = JsonRpcParams, +> = Required> & { + securityAlertResponse?: SecurityAlertResponse | undefined; +}; + /** * Middleware function that handles JSON RPC requests. * This function will be called for every JSON RPC request. @@ -44,7 +50,7 @@ const CONFIRMATION_METHODS = Object.freeze([ * @returns PPOMMiddleware function. */ export function createPPOMMiddleware< - Params extends JsonRpcParams, + Params extends (string | { to: string })[], Result extends Json, >( ppomController: PPOMController, @@ -58,7 +64,7 @@ export function createPPOMMiddleware< ) => void, ) { return async ( - req: JsonRpcRequest, + req: PPOMMiddlewareRequest, _res: JsonRpcResponse, next: () => void, ) => { diff --git a/app/scripts/lib/ppom/ppom-util.test.ts b/app/scripts/lib/ppom/ppom-util.test.ts index ac16022cee8a..ab128079d290 100644 --- a/app/scripts/lib/ppom/ppom-util.test.ts +++ b/app/scripts/lib/ppom/ppom-util.test.ts @@ -31,6 +31,8 @@ const TRANSACTION_ID_MOCK = '123'; const REQUEST_MOCK = { method: 'eth_signTypedData_v4', params: [], + id: '', + jsonrpc: '2.0' as const, }; const SECURITY_ALERT_RESPONSE_MOCK: SecurityAlertResponse = { diff --git a/app/scripts/lib/ppom/ppom-util.ts b/app/scripts/lib/ppom/ppom-util.ts index 8d64aacd3a91..ea827962e6f1 100644 --- a/app/scripts/lib/ppom/ppom-util.ts +++ b/app/scripts/lib/ppom/ppom-util.ts @@ -25,6 +25,10 @@ const SECURITY_ALERT_RESPONSE_ERROR = { reason: BlockaidReason.errored, }; +type PPOMRequest = Omit & { + method: typeof METHOD_SEND_TRANSACTION; + params: [TransactionParams]; +}; export async function validateRequestWithPPOM({ ppomController, request, @@ -115,12 +119,18 @@ async function usePPOM( } } -function normalizePPOMRequest(request: JsonRpcRequest): JsonRpcRequest { - if (request.method !== METHOD_SEND_TRANSACTION) { +function normalizePPOMRequest( + request: PPOMRequest | JsonRpcRequest, +): PPOMRequest | JsonRpcRequest { + if ( + !((req): req is PPOMRequest => req.method === METHOD_SEND_TRANSACTION)( + request, + ) + ) { return request; } - const transactionParams = (request.params?.[0] || {}) as TransactionParams; + const transactionParams = request.params[0]; const normalizedParams = normalizeTransactionParams(transactionParams); return { diff --git a/app/scripts/lib/transaction/util.ts b/app/scripts/lib/transaction/util.ts index d62ea2af02f3..c38ee8c5fd00 100644 --- a/app/scripts/lib/transaction/util.ts +++ b/app/scripts/lib/transaction/util.ts @@ -251,11 +251,12 @@ function validateSecurity(request: AddTransactionRequest) { params: [ { from, - to, - value, - data, + to: to ?? '', + value: value ?? '', + data: data ?? '', }, ], + jsonrpc: '2.0' as const, }; const securityAlertId = generateSecurityAlertId(); diff --git a/app/scripts/snaps/preinstalled-snaps.ts b/app/scripts/snaps/preinstalled-snaps.ts index 0a014c350c21..5f0ee23777c5 100644 --- a/app/scripts/snaps/preinstalled-snaps.ts +++ b/app/scripts/snaps/preinstalled-snaps.ts @@ -1,7 +1,7 @@ import type { PreinstalledSnap } from '@metamask/snaps-controllers'; import MessageSigningSnap from '@metamask/message-signing-snap/dist/preinstalled-snap.json'; -const PREINSTALLED_SNAPS: readonly PreinstalledSnap[] = Object.freeze([ +const PREINSTALLED_SNAPS = Object.freeze([ MessageSigningSnap as PreinstalledSnap, ]); diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index 831b12bedd76..e67b2183d078 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -788,8 +788,23 @@ }, "@metamask/abi-utils": { "packages": { - "@metamask/utils": true, - "superstruct": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/utils": true + } + }, + "@metamask/abi-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/accounts-controller": { @@ -818,7 +833,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -955,7 +970,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1140,33 +1155,27 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/eth-json-rpc-middleware>@metamask/utils": true, "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, "@metamask/eth-sig-util": true, "@metamask/rpc-errors": true, - "@metamask/utils": true, - "pify": true, + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "@metamask/eth-json-rpc-middleware>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/eth-ledger-bridge-keyring": { @@ -1199,26 +1208,32 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/abi-utils": true, + "@metamask/eth-sig-util>@metamask/utils": true, "@metamask/eth-sig-util>tweetnacl": true, - "@metamask/eth-sig-util>tweetnacl-util": true, - "@metamask/utils": true, + "@metamask/utils>@scure/base": true, "browserify>buffer": true } }, - "@metamask/eth-sig-util>tweetnacl": { + "@metamask/eth-sig-util>@metamask/utils": { "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" + "TextDecoder": true, + "TextEncoder": true }, "packages": { - "browserify>browser-resolve": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, - "@metamask/eth-sig-util>tweetnacl-util": { + "@metamask/eth-sig-util>tweetnacl": { "globals": { - "atob": true, - "btoa": true + "crypto": true, + "msCrypto": true, + "nacl": "write" }, "packages": { "browserify>browser-resolve": true @@ -1368,8 +1383,8 @@ "@ethereumjs/tx": true, "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/eth-trezor-keyring>@trezor/connect-plugin-ethereum": true, - "@metamask/eth-trezor-keyring>@trezor/connect-web": true, "@metamask/eth-trezor-keyring>hdkey": true, + "@trezor/connect-web": true, "browserify>buffer": true, "webpack>events": true } @@ -1380,37 +1395,6 @@ "@trezor/connect-web>tslib": true } }, - "@metamask/eth-trezor-keyring>@trezor/connect-web": { - "globals": { - "URLSearchParams": true, - "__TREZOR_CONNECT_SRC": true, - "addEventListener": true, - "btoa": true, - "chrome": true, - "clearInterval": true, - "clearTimeout": true, - "console.warn": true, - "document.body": true, - "document.createElement": true, - "document.createTextNode": true, - "document.getElementById": true, - "document.querySelectorAll": true, - "location": true, - "navigator": true, - "open": true, - "origin": true, - "removeEventListener": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "@trezor/connect-web>@trezor/connect": true, - "@trezor/connect-web>@trezor/connect-common": true, - "@trezor/connect-web>@trezor/utils": true, - "@trezor/connect-web>tslib": true, - "webpack>events": true - } - }, "@metamask/eth-trezor-keyring>hdkey": { "packages": { "browserify>assert": true, @@ -1621,7 +1605,7 @@ "URL": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true @@ -1633,7 +1617,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1835,7 +1819,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1861,12 +1845,12 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/controller-utils": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, "@metamask/rpc-errors": true, @@ -1908,7 +1892,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1922,13 +1906,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/rpc-errors": true, @@ -1936,10 +1926,35 @@ "@metamask/utils": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": { + "globals": { + "URL": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, + "@metamask/eth-sig-util": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/rpc-errors": true, + "@metamask/utils": true, + "pify": true, + "sass-loader>klona": true + } + }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "packages": { + "@metamask/rpc-errors": true, + "@metamask/safe-event-emitter": true, + "@metamask/utils": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-provider": { "packages": { + "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/snaps-controllers>@metamask/json-rpc-engine": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, + "uuid": true } }, "@metamask/notification-controller": { @@ -2021,7 +2036,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2191,7 +2206,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2481,7 +2496,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2550,7 +2565,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2688,7 +2703,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2799,7 +2814,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2845,7 +2860,7 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, "@noble/hashes": true @@ -2857,7 +2872,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2974,7 +2989,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -3432,19 +3447,28 @@ "globals": { "AbortController": true, "Intl.NumberFormat": true, + "clearInterval": true, "clearTimeout": true, "console.error": true, "console.info": true, "console.log": true, "console.warn": true, + "setInterval": true, "setTimeout": true }, "packages": { + "@trezor/connect-web>@trezor/utils>bignumber.js": true, "@trezor/connect-web>tslib": true, "browserify>buffer": true, "webpack>events": true } }, + "@trezor/connect-web>@trezor/utils>bignumber.js": { + "globals": { + "crypto": true, + "define": true + } + }, "@trezor/connect-web>tslib": { "globals": { "SuppressedError": true, diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 831b12bedd76..e67b2183d078 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -788,8 +788,23 @@ }, "@metamask/abi-utils": { "packages": { - "@metamask/utils": true, - "superstruct": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/utils": true + } + }, + "@metamask/abi-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/accounts-controller": { @@ -818,7 +833,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -955,7 +970,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1140,33 +1155,27 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/eth-json-rpc-middleware>@metamask/utils": true, "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, "@metamask/eth-sig-util": true, "@metamask/rpc-errors": true, - "@metamask/utils": true, - "pify": true, + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "@metamask/eth-json-rpc-middleware>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/eth-ledger-bridge-keyring": { @@ -1199,26 +1208,32 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/abi-utils": true, + "@metamask/eth-sig-util>@metamask/utils": true, "@metamask/eth-sig-util>tweetnacl": true, - "@metamask/eth-sig-util>tweetnacl-util": true, - "@metamask/utils": true, + "@metamask/utils>@scure/base": true, "browserify>buffer": true } }, - "@metamask/eth-sig-util>tweetnacl": { + "@metamask/eth-sig-util>@metamask/utils": { "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" + "TextDecoder": true, + "TextEncoder": true }, "packages": { - "browserify>browser-resolve": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, - "@metamask/eth-sig-util>tweetnacl-util": { + "@metamask/eth-sig-util>tweetnacl": { "globals": { - "atob": true, - "btoa": true + "crypto": true, + "msCrypto": true, + "nacl": "write" }, "packages": { "browserify>browser-resolve": true @@ -1368,8 +1383,8 @@ "@ethereumjs/tx": true, "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/eth-trezor-keyring>@trezor/connect-plugin-ethereum": true, - "@metamask/eth-trezor-keyring>@trezor/connect-web": true, "@metamask/eth-trezor-keyring>hdkey": true, + "@trezor/connect-web": true, "browserify>buffer": true, "webpack>events": true } @@ -1380,37 +1395,6 @@ "@trezor/connect-web>tslib": true } }, - "@metamask/eth-trezor-keyring>@trezor/connect-web": { - "globals": { - "URLSearchParams": true, - "__TREZOR_CONNECT_SRC": true, - "addEventListener": true, - "btoa": true, - "chrome": true, - "clearInterval": true, - "clearTimeout": true, - "console.warn": true, - "document.body": true, - "document.createElement": true, - "document.createTextNode": true, - "document.getElementById": true, - "document.querySelectorAll": true, - "location": true, - "navigator": true, - "open": true, - "origin": true, - "removeEventListener": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "@trezor/connect-web>@trezor/connect": true, - "@trezor/connect-web>@trezor/connect-common": true, - "@trezor/connect-web>@trezor/utils": true, - "@trezor/connect-web>tslib": true, - "webpack>events": true - } - }, "@metamask/eth-trezor-keyring>hdkey": { "packages": { "browserify>assert": true, @@ -1621,7 +1605,7 @@ "URL": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true @@ -1633,7 +1617,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1835,7 +1819,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1861,12 +1845,12 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/controller-utils": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, "@metamask/rpc-errors": true, @@ -1908,7 +1892,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1922,13 +1906,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/rpc-errors": true, @@ -1936,10 +1926,35 @@ "@metamask/utils": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": { + "globals": { + "URL": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, + "@metamask/eth-sig-util": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/rpc-errors": true, + "@metamask/utils": true, + "pify": true, + "sass-loader>klona": true + } + }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "packages": { + "@metamask/rpc-errors": true, + "@metamask/safe-event-emitter": true, + "@metamask/utils": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-provider": { "packages": { + "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/snaps-controllers>@metamask/json-rpc-engine": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, + "uuid": true } }, "@metamask/notification-controller": { @@ -2021,7 +2036,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2191,7 +2206,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2481,7 +2496,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2550,7 +2565,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2688,7 +2703,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2799,7 +2814,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2845,7 +2860,7 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, "@noble/hashes": true @@ -2857,7 +2872,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2974,7 +2989,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -3432,19 +3447,28 @@ "globals": { "AbortController": true, "Intl.NumberFormat": true, + "clearInterval": true, "clearTimeout": true, "console.error": true, "console.info": true, "console.log": true, "console.warn": true, + "setInterval": true, "setTimeout": true }, "packages": { + "@trezor/connect-web>@trezor/utils>bignumber.js": true, "@trezor/connect-web>tslib": true, "browserify>buffer": true, "webpack>events": true } }, + "@trezor/connect-web>@trezor/utils>bignumber.js": { + "globals": { + "crypto": true, + "define": true + } + }, "@trezor/connect-web>tslib": { "globals": { "SuppressedError": true, diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index 831b12bedd76..e67b2183d078 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -788,8 +788,23 @@ }, "@metamask/abi-utils": { "packages": { - "@metamask/utils": true, - "superstruct": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/utils": true + } + }, + "@metamask/abi-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/accounts-controller": { @@ -818,7 +833,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -955,7 +970,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1140,33 +1155,27 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/eth-json-rpc-middleware>@metamask/utils": true, "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, "@metamask/eth-sig-util": true, "@metamask/rpc-errors": true, - "@metamask/utils": true, - "pify": true, + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "@metamask/eth-json-rpc-middleware>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/eth-ledger-bridge-keyring": { @@ -1199,26 +1208,32 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/abi-utils": true, + "@metamask/eth-sig-util>@metamask/utils": true, "@metamask/eth-sig-util>tweetnacl": true, - "@metamask/eth-sig-util>tweetnacl-util": true, - "@metamask/utils": true, + "@metamask/utils>@scure/base": true, "browserify>buffer": true } }, - "@metamask/eth-sig-util>tweetnacl": { + "@metamask/eth-sig-util>@metamask/utils": { "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" + "TextDecoder": true, + "TextEncoder": true }, "packages": { - "browserify>browser-resolve": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, - "@metamask/eth-sig-util>tweetnacl-util": { + "@metamask/eth-sig-util>tweetnacl": { "globals": { - "atob": true, - "btoa": true + "crypto": true, + "msCrypto": true, + "nacl": "write" }, "packages": { "browserify>browser-resolve": true @@ -1368,8 +1383,8 @@ "@ethereumjs/tx": true, "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/eth-trezor-keyring>@trezor/connect-plugin-ethereum": true, - "@metamask/eth-trezor-keyring>@trezor/connect-web": true, "@metamask/eth-trezor-keyring>hdkey": true, + "@trezor/connect-web": true, "browserify>buffer": true, "webpack>events": true } @@ -1380,37 +1395,6 @@ "@trezor/connect-web>tslib": true } }, - "@metamask/eth-trezor-keyring>@trezor/connect-web": { - "globals": { - "URLSearchParams": true, - "__TREZOR_CONNECT_SRC": true, - "addEventListener": true, - "btoa": true, - "chrome": true, - "clearInterval": true, - "clearTimeout": true, - "console.warn": true, - "document.body": true, - "document.createElement": true, - "document.createTextNode": true, - "document.getElementById": true, - "document.querySelectorAll": true, - "location": true, - "navigator": true, - "open": true, - "origin": true, - "removeEventListener": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "@trezor/connect-web>@trezor/connect": true, - "@trezor/connect-web>@trezor/connect-common": true, - "@trezor/connect-web>@trezor/utils": true, - "@trezor/connect-web>tslib": true, - "webpack>events": true - } - }, "@metamask/eth-trezor-keyring>hdkey": { "packages": { "browserify>assert": true, @@ -1621,7 +1605,7 @@ "URL": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true @@ -1633,7 +1617,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1835,7 +1819,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1861,12 +1845,12 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/controller-utils": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, "@metamask/rpc-errors": true, @@ -1908,7 +1892,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1922,13 +1906,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/rpc-errors": true, @@ -1936,10 +1926,35 @@ "@metamask/utils": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": { + "globals": { + "URL": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, + "@metamask/eth-sig-util": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/rpc-errors": true, + "@metamask/utils": true, + "pify": true, + "sass-loader>klona": true + } + }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "packages": { + "@metamask/rpc-errors": true, + "@metamask/safe-event-emitter": true, + "@metamask/utils": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-provider": { "packages": { + "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/snaps-controllers>@metamask/json-rpc-engine": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, + "uuid": true } }, "@metamask/notification-controller": { @@ -2021,7 +2036,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2191,7 +2206,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2481,7 +2496,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2550,7 +2565,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2688,7 +2703,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2799,7 +2814,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2845,7 +2860,7 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, "@noble/hashes": true @@ -2857,7 +2872,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2974,7 +2989,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -3432,19 +3447,28 @@ "globals": { "AbortController": true, "Intl.NumberFormat": true, + "clearInterval": true, "clearTimeout": true, "console.error": true, "console.info": true, "console.log": true, "console.warn": true, + "setInterval": true, "setTimeout": true }, "packages": { + "@trezor/connect-web>@trezor/utils>bignumber.js": true, "@trezor/connect-web>tslib": true, "browserify>buffer": true, "webpack>events": true } }, + "@trezor/connect-web>@trezor/utils>bignumber.js": { + "globals": { + "crypto": true, + "define": true + } + }, "@trezor/connect-web>tslib": { "globals": { "SuppressedError": true, diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json index f43b33a6f535..db02892515b2 100644 --- a/lavamoat/browserify/mmi/policy.json +++ b/lavamoat/browserify/mmi/policy.json @@ -880,8 +880,23 @@ }, "@metamask/abi-utils": { "packages": { - "@metamask/utils": true, - "superstruct": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/utils": true + } + }, + "@metamask/abi-utils>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/accounts-controller": { @@ -910,7 +925,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1047,7 +1062,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1232,33 +1247,27 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/eth-json-rpc-middleware>@metamask/utils": true, "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, "@metamask/eth-sig-util": true, "@metamask/rpc-errors": true, - "@metamask/utils": true, - "pify": true, + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, "sass-loader>klona": true } }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": { - "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": true, - "@metamask/safe-event-emitter": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider>@metamask/json-rpc-engine": { - "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true - } - }, - "@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "@metamask/eth-json-rpc-middleware>@metamask/utils": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, "packages": { - "@metamask/rpc-errors": true, - "@metamask/safe-event-emitter": true, - "@metamask/utils": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, "@metamask/eth-ledger-bridge-keyring": { @@ -1291,26 +1300,32 @@ "@ethereumjs/tx>@ethereumjs/util": true, "@ethereumjs/tx>ethereum-cryptography": true, "@metamask/abi-utils": true, + "@metamask/eth-sig-util>@metamask/utils": true, "@metamask/eth-sig-util>tweetnacl": true, - "@metamask/eth-sig-util>tweetnacl-util": true, - "@metamask/utils": true, + "@metamask/utils>@scure/base": true, "browserify>buffer": true } }, - "@metamask/eth-sig-util>tweetnacl": { + "@metamask/eth-sig-util>@metamask/utils": { "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" + "TextDecoder": true, + "TextEncoder": true }, "packages": { - "browserify>browser-resolve": true + "@metamask/abi-utils>@metamask/superstruct": true, + "@metamask/utils>@scure/base": true, + "@metamask/utils>pony-cause": true, + "@noble/hashes": true, + "browserify>buffer": true, + "nock>debug": true, + "semver": true } }, - "@metamask/eth-sig-util>tweetnacl-util": { + "@metamask/eth-sig-util>tweetnacl": { "globals": { - "atob": true, - "btoa": true + "crypto": true, + "msCrypto": true, + "nacl": "write" }, "packages": { "browserify>browser-resolve": true @@ -1460,8 +1475,8 @@ "@ethereumjs/tx": true, "@ethereumjs/tx>@ethereumjs/util": true, "@metamask/eth-trezor-keyring>@trezor/connect-plugin-ethereum": true, - "@metamask/eth-trezor-keyring>@trezor/connect-web": true, "@metamask/eth-trezor-keyring>hdkey": true, + "@trezor/connect-web": true, "browserify>buffer": true, "webpack>events": true } @@ -1472,37 +1487,6 @@ "@trezor/connect-web>tslib": true } }, - "@metamask/eth-trezor-keyring>@trezor/connect-web": { - "globals": { - "URLSearchParams": true, - "__TREZOR_CONNECT_SRC": true, - "addEventListener": true, - "btoa": true, - "chrome": true, - "clearInterval": true, - "clearTimeout": true, - "console.warn": true, - "document.body": true, - "document.createElement": true, - "document.createTextNode": true, - "document.getElementById": true, - "document.querySelectorAll": true, - "location": true, - "navigator": true, - "open": true, - "origin": true, - "removeEventListener": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "@trezor/connect-web>@trezor/connect": true, - "@trezor/connect-web>@trezor/connect-common": true, - "@trezor/connect-web>@trezor/utils": true, - "@trezor/connect-web>tslib": true, - "webpack>events": true - } - }, "@metamask/eth-trezor-keyring>hdkey": { "packages": { "browserify>assert": true, @@ -1713,7 +1697,7 @@ "URL": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/keyring-api>@metamask/utils": true, "@metamask/keyring-api>bech32": true, "@metamask/keyring-api>uuid": true @@ -1725,7 +1709,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1927,7 +1911,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -1953,12 +1937,12 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware": true, "@metamask/eth-query": true, "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true, "@metamask/network-controller>@metamask/base-controller": true, "@metamask/network-controller>@metamask/controller-utils": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true, "@metamask/network-controller>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/swappable-obj-proxy": true, "@metamask/rpc-errors": true, @@ -2000,7 +1984,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2014,13 +1998,19 @@ "setTimeout": true }, "packages": { - "@metamask/eth-json-rpc-middleware>@metamask/eth-json-rpc-provider": true, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": true, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, "@metamask/rpc-errors": true, "@metamask/utils": true, "node-fetch": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/eth-json-rpc-provider": { + "packages": { + "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": true, + "@metamask/safe-event-emitter": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-infura>@metamask/json-rpc-engine": { "packages": { "@metamask/rpc-errors": true, @@ -2028,10 +2018,35 @@ "@metamask/utils": true } }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware": { + "globals": { + "URL": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true, + "@metamask/eth-sig-util": true, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": true, + "@metamask/rpc-errors": true, + "@metamask/utils": true, + "pify": true, + "sass-loader>klona": true + } + }, + "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/json-rpc-engine": { + "packages": { + "@metamask/rpc-errors": true, + "@metamask/safe-event-emitter": true, + "@metamask/utils": true + } + }, "@metamask/network-controller>@metamask/eth-json-rpc-provider": { "packages": { + "@metamask/rpc-errors": true, "@metamask/safe-event-emitter": true, - "@metamask/snaps-controllers>@metamask/json-rpc-engine": true + "@metamask/snaps-controllers>@metamask/json-rpc-engine": true, + "uuid": true } }, "@metamask/notification-controller": { @@ -2113,7 +2128,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2283,7 +2298,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2573,7 +2588,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2642,7 +2657,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2780,7 +2795,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2891,7 +2906,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -2937,7 +2952,7 @@ }, "@metamask/snaps-utils>@metamask/snaps-registry": { "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/message-signing-snap>@noble/curves": true, "@metamask/snaps-utils>@metamask/snaps-registry>@metamask/utils": true, "@noble/hashes": true @@ -2949,7 +2964,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -3066,7 +3081,7 @@ "TextEncoder": true }, "packages": { - "@metamask/keyring-api>@metamask/superstruct": true, + "@metamask/abi-utils>@metamask/superstruct": true, "@metamask/utils>@scure/base": true, "@metamask/utils>pony-cause": true, "@noble/hashes": true, @@ -3524,19 +3539,28 @@ "globals": { "AbortController": true, "Intl.NumberFormat": true, + "clearInterval": true, "clearTimeout": true, "console.error": true, "console.info": true, "console.log": true, "console.warn": true, + "setInterval": true, "setTimeout": true }, "packages": { + "@trezor/connect-web>@trezor/utils>bignumber.js": true, "@trezor/connect-web>tslib": true, "browserify>buffer": true, "webpack>events": true } }, + "@trezor/connect-web>@trezor/utils>bignumber.js": { + "globals": { + "crypto": true, + "define": true + } + }, "@trezor/connect-web>tslib": { "globals": { "SuppressedError": true, diff --git a/package.json b/package.json index c40ef61a7a2e..163c849a15ab 100644 --- a/package.json +++ b/package.json @@ -261,7 +261,8 @@ "@metamask/snaps-utils@npm:^7.4.0": "patch:@metamask/snaps-utils@npm%3A7.7.0#~/.yarn/patches/@metamask-snaps-utils-npm-7.7.0-2cc1f044af.patch", "@metamask/snaps-utils@npm:^7.5.0": "patch:@metamask/snaps-utils@npm%3A7.7.0#~/.yarn/patches/@metamask-snaps-utils-npm-7.7.0-2cc1f044af.patch", "@metamask/keyring-controller@npm:^16.0.0": "patch:@metamask/keyring-controller@npm%3A16.1.0#~/.yarn/patches/@metamask-keyring-controller-npm-16.1.0-7043d2dc62.patch", - "@metamask/keyring-controller@npm:^17.1.0": "patch:@metamask/keyring-controller@npm%3A16.1.0#~/.yarn/patches/@metamask-keyring-controller-npm-16.1.0-7043d2dc62.patch" + "@metamask/keyring-controller@npm:^17.1.0": "patch:@metamask/keyring-controller@npm%3A16.1.0#~/.yarn/patches/@metamask-keyring-controller-npm-16.1.0-7043d2dc62.patch", + "@trezor/connect-web@npm:^9.1.11": "patch:@trezor/connect-web@npm%3A9.3.0#~/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch" }, "dependencies": { "@babel/runtime": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch", @@ -303,7 +304,7 @@ "@metamask/design-tokens": "^4.0.0", "@metamask/ens-controller": "^10.0.1", "@metamask/eth-json-rpc-filters": "^7.0.0", - "@metamask/eth-json-rpc-middleware": "^12.1.1", + "@metamask/eth-json-rpc-middleware": "^14.0.0", "@metamask/eth-ledger-bridge-keyring": "^2.0.1", "@metamask/eth-query": "^4.0.0", "@metamask/eth-sig-util": "^7.0.1", @@ -359,7 +360,7 @@ "@sentry/browser": "^8.19.0", "@sentry/types": "^8.19.0", "@sentry/utils": "^8.19.0", - "@trezor/connect-web": "patch:@trezor/connect-web@npm%3A9.2.2#~/.yarn/patches/@trezor-connect-web-npm-9.2.2-a4de8e45fc.patch", + "@trezor/connect-web": "patch:@trezor/connect-web@npm%3A9.3.0#~/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch", "@zxing/browser": "^0.1.4", "@zxing/library": "0.20.0", "await-semaphore": "^0.1.1", @@ -470,23 +471,23 @@ "@open-rpc/test-coverage": "^2.2.2", "@playwright/test": "^1.39.0", "@sentry/cli": "^2.19.4", - "@storybook/addon-a11y": "^7.6.19", - "@storybook/addon-actions": "^7.6.19", + "@storybook/addon-a11y": "^7.6.20", + "@storybook/addon-actions": "^7.6.20", "@storybook/addon-designs": "^7.0.9", - "@storybook/addon-docs": "^7.6.19", - "@storybook/addon-essentials": "^7.6.19", + "@storybook/addon-docs": "^7.6.20", + "@storybook/addon-essentials": "^7.6.20", "@storybook/addon-knobs": "^7.0.2", - "@storybook/addon-mdx-gfm": "^7.6.19", - "@storybook/addons": "^7.6.19", - "@storybook/api": "^7.6.19", - "@storybook/client-api": "^7.6.19", - "@storybook/components": "^7.6.19", - "@storybook/core-events": "^7.6.19", - "@storybook/react": "^7.6.19", - "@storybook/react-webpack5": "^7.6.19", + "@storybook/addon-mdx-gfm": "^7.6.20", + "@storybook/addons": "^7.6.20", + "@storybook/api": "^7.6.20", + "@storybook/client-api": "^7.6.20", + "@storybook/components": "^7.6.20", + "@storybook/core-events": "^7.6.20", + "@storybook/react": "^7.6.20", + "@storybook/react-webpack5": "^7.6.20", "@storybook/storybook-deployer": "^2.8.16", "@storybook/test-runner": "^0.14.1", - "@storybook/theming": "^7.6.19", + "@storybook/theming": "^7.6.20", "@testing-library/jest-dom": "^5.11.10", "@testing-library/react": "^10.4.8", "@testing-library/react-hooks": "^8.0.1", @@ -620,8 +621,8 @@ "source-map": "^0.7.4", "source-map-explorer": "^2.4.2", "sprintf-js": "^1.1.3", - "storybook": "^7.6.19", - "storybook-dark-mode": "^3.0.3", + "storybook": "^7.6.20", + "storybook-dark-mode": "^4.0.2", "stream-browserify": "^3.0.0", "string.prototype.matchall": "^4.0.2", "style-loader": "^0.21.0", @@ -711,7 +712,9 @@ "tsx>esbuild": false, "@metamask/eth-trezor-keyring>@trezor/connect-web>@trezor/connect>@trezor/protobuf>protobufjs": false, "firebase>@firebase/firestore>@grpc/proto-loader>protobufjs": false, - "@lavamoat/lavadome-core>@lavamoat/preinstall-always-fail": false + "@lavamoat/lavadome-core>@lavamoat/preinstall-always-fail": false, + "resolve-url-loader>es6-iterator>d>es5-ext": false, + "resolve-url-loader>es6-iterator>d>es5-ext>esniff>es5-ext": false } }, "packageManager": "yarn@4.2.2" diff --git a/test/e2e/tests/api-usage/account-tracker-api-usage.spec.ts b/test/e2e/tests/api-usage/account-tracker-api-usage.spec.ts index 5ab35138ce7b..9c534c1a768a 100644 --- a/test/e2e/tests/api-usage/account-tracker-api-usage.spec.ts +++ b/test/e2e/tests/api-usage/account-tracker-api-usage.spec.ts @@ -72,7 +72,7 @@ async function getAllInfuraJsonRpcRequests( ); for (const r of seenProviderRequests) { - const json = await r.body.getJson(); + const json = (await r.body.getJson()) as JsonRpcRequest | undefined; if (json !== undefined) { allInfuraJsonRpcRequests.push(json); } diff --git a/test/jest/mocks.js b/test/jest/mocks.ts similarity index 90% rename from test/jest/mocks.js rename to test/jest/mocks.ts index b52a0d984df3..ed89b487e3ab 100644 --- a/test/jest/mocks.js +++ b/test/jest/mocks.ts @@ -3,14 +3,17 @@ import { EthMethod, BtcMethod, BtcAccountType, + InternalAccount, } from '@metamask/keyring-api'; import { KeyringTypes } from '@metamask/keyring-controller'; import { v4 as uuidv4 } from 'uuid'; import { keyringTypeToName } from '@metamask/accounts-controller'; import { + DraftTransaction, draftTransactionInitialState, initialState, } from '../../ui/ducks/send'; +import { MetaMaskReduxState } from '../../ui/store/store'; export const MOCK_DEFAULT_ADDRESS = '0xd5e099c71b797516c10ed0f0d895f429c2781111'; @@ -131,7 +134,9 @@ export const INITIAL_SEND_STATE_FOR_EXISTING_DRAFT = { }, }; -export const getInitialSendStateWithExistingTxState = (draftTxState) => ({ +export const getInitialSendStateWithExistingTxState = ( + draftTxState: DraftTransaction & { test: string }, +) => ({ ...INITIAL_SEND_STATE_FOR_EXISTING_DRAFT, draftTransactions: { 'test-uuid': { @@ -171,11 +176,21 @@ export const getInitialSendStateWithExistingTxState = (draftTxState) => ({ }); export function createMockInternalAccount({ + name = 'Account 1', address = MOCK_DEFAULT_ADDRESS, - name, type = EthAccountType.Eoa, keyringType = KeyringTypes.hd, - snapOptions, + snapOptions = undefined, +}: { + name?: string; + address?: string; + type?: string; + keyringType?: string; + snapOptions?: { + enabled: boolean; + name: string; + id: string; + }; } = {}) { let methods; @@ -183,7 +198,6 @@ export function createMockInternalAccount({ case EthAccountType.Eoa: methods = [ EthMethod.PersonalSign, - EthMethod.Sign, EthMethod.SignTransaction, EthMethod.SignTypedDataV1, EthMethod.SignTypedDataV3, @@ -221,7 +235,9 @@ export function createMockInternalAccount({ }; } -export const getSelectedInternalAccountFromMockState = (state) => { +export const getSelectedInternalAccountFromMockState = ( + state: MetaMaskReduxState, +): InternalAccount => { return state.metamask.internalAccounts.accounts[ state.metamask.internalAccounts.selectedAccount ]; diff --git a/ui/contexts/snaps/snap-interface.tsx b/ui/contexts/snaps/snap-interface.tsx index 2b46781e1aa4..05998b989ffd 100644 --- a/ui/contexts/snaps/snap-interface.tsx +++ b/ui/contexts/snaps/snap-interface.tsx @@ -193,7 +193,7 @@ export const SnapInterfaceContextProvider: FunctionComponent< handleInputChangeDebounced(name, value); }; - const uploadFile = (name: string, file: File | null) => { + const uploadFile = (name: string, file: FileObject | null) => { handleSnapRequest({ snapId, origin: '', diff --git a/ui/hooks/useMultichainAccountTotalFiatBalance.test.tsx b/ui/hooks/useMultichainAccountTotalFiatBalance.test.tsx index a2f7cc108e4a..677453104e15 100644 --- a/ui/hooks/useMultichainAccountTotalFiatBalance.test.tsx +++ b/ui/hooks/useMultichainAccountTotalFiatBalance.test.tsx @@ -42,7 +42,6 @@ jest.mock('./useTokenTracker', () => { const mockAccount = createMockInternalAccount({ name: 'Account 1', address: '0x0836f5ed6b62baf60706fe3adc0ff0fd1df833da', - snapOptions: null, }); const mockNonEvmAccount = { ...mockAccount, diff --git a/ui/hooks/useTheme.ts b/ui/hooks/useTheme.ts index 066510050b16..f5d04bec9739 100644 --- a/ui/hooks/useTheme.ts +++ b/ui/hooks/useTheme.ts @@ -25,7 +25,9 @@ export function useTheme() { !settingTheme || settingTheme === ThemeType.os ? document.documentElement.getAttribute('data-theme') : settingTheme; - const isValidTheme = validThemes.includes(result as ThemeType); + const isValidTheme = validThemes.includes( + result as ThemeType.light | ThemeType.dark, + ); if (!isValidTheme) { console.warn( diff --git a/ui/store/actions.ts b/ui/store/actions.ts index 4779c6e4b5b1..a0f061dc164b 100644 --- a/ui/store/actions.ts +++ b/ui/store/actions.ts @@ -10,7 +10,7 @@ import { capitalize, isEqual } from 'lodash'; import { ThunkAction } from 'redux-thunk'; import { Action, AnyAction } from 'redux'; import { ethErrors, serializeError } from 'eth-rpc-errors'; -import { Hex, Json } from '@metamask/utils'; +import type { Hex, Json } from '@metamask/utils'; import { AssetsContractController, BalanceMap, @@ -1238,18 +1238,14 @@ export function removeSnap( }; } -export async function handleSnapRequest(args: { +export async function handleSnapRequest< + Params extends Record = JsonRpcParams, +>(args: { snapId: string; origin: string; handler: string; - request: { - id?: string; - jsonrpc: '2.0'; - method: string; - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - params?: Record; - }; + request: Pick & + Partial, 'id' | 'params'>>; }): Promise { return submitRequestToBackground('handleSnapRequest', [args]); } diff --git a/yarn.lock b/yarn.lock index 5b5092406f9d..c530a426ef57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -91,15 +91,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:~7.10.4": - version: 7.10.4 - resolution: "@babel/code-frame@npm:7.10.4" - dependencies: - "@babel/highlight": "npm:^7.10.4" - checksum: 10/4ef9c679515be9cb8eab519fcded953f86226155a599cf7ea209e40e088bb9a51bb5893d3307eae510b07bb3e359d64f2620957a00c27825dbe26ac62aca81f5 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.2": version: 7.23.2 resolution: "@babel/compat-data@npm:7.23.2" @@ -451,7 +442,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.22.13, @babel/highlight@npm:^7.24.2": +"@babel/highlight@npm:^7.22.13, @babel/highlight@npm:^7.24.2": version: 7.24.5 resolution: "@babel/highlight@npm:7.24.5" dependencies: @@ -1609,12 +1600,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/runtime@npm:7.24.6" +"@babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.25.0": + version: 7.25.6 + resolution: "@babel/runtime@npm:7.25.6" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10/6c4e12731cd9206a883c19d48fa04f6aaaf7ee83f049b22631e6521b866edc20832b4d5db30aa86d8ae799c4dcf57761fe8a4af2bf7e233245c079c1dafb5668 + checksum: 10/0c4134734deb20e1005ffb9165bf342e1074576621b246d8e5e41cc7cb315a885b7d98950fbf5c63619a2990a56ae82f444d35fe8c4691a0b70c2fe5673667dc languageName: node linkType: hard @@ -2875,112 +2866,6 @@ __metadata: languageName: node linkType: hard -"@expo/config-plugins@npm:~7.9.0": - version: 7.9.2 - resolution: "@expo/config-plugins@npm:7.9.2" - dependencies: - "@expo/config-types": "npm:^50.0.0-alpha.1" - "@expo/fingerprint": "npm:^0.6.0" - "@expo/json-file": "npm:~8.3.0" - "@expo/plist": "npm:^0.1.0" - "@expo/sdk-runtime-versions": "npm:^1.0.0" - "@react-native/normalize-color": "npm:^2.0.0" - chalk: "npm:^4.1.2" - debug: "npm:^4.3.1" - find-up: "npm:~5.0.0" - getenv: "npm:^1.0.0" - glob: "npm:7.1.6" - resolve-from: "npm:^5.0.0" - semver: "npm:^7.5.3" - slash: "npm:^3.0.0" - slugify: "npm:^1.6.6" - xcode: "npm:^3.0.1" - xml2js: "npm:0.6.0" - checksum: 10/11e80f74e307742e195b2476efabe362da3593b5351070a68b8a5dd020a1e8f224c7ab0806d2f969e071403c26071a3490ed574797534e7cf043eca4046310af - languageName: node - linkType: hard - -"@expo/config-types@npm:^50.0.0, @expo/config-types@npm:^50.0.0-alpha.1": - version: 50.0.1 - resolution: "@expo/config-types@npm:50.0.1" - checksum: 10/cfee0c3c66b77a557193461c6a0c81305576ae7ff6eb6bfddda838364b4157c107ee4a306570652ff692e4fe78628377471b1717267bb36e53d34a7d137d4b20 - languageName: node - linkType: hard - -"@expo/config@npm:~8.5.0": - version: 8.5.6 - resolution: "@expo/config@npm:8.5.6" - dependencies: - "@babel/code-frame": "npm:~7.10.4" - "@expo/config-plugins": "npm:~7.9.0" - "@expo/config-types": "npm:^50.0.0" - "@expo/json-file": "npm:^8.2.37" - getenv: "npm:^1.0.0" - glob: "npm:7.1.6" - require-from-string: "npm:^2.0.2" - resolve-from: "npm:^5.0.0" - semver: "npm:7.5.3" - slugify: "npm:^1.3.4" - sucrase: "npm:3.34.0" - checksum: 10/5deaea04cdbb53ee77067bb2a9ca0a9095926236b415e30d5d81d78bd02ef2c02c577e6695f660695f089d2306ff1b7e6ded828dda6e3bbaed504a6d448615ba - languageName: node - linkType: hard - -"@expo/fingerprint@npm:^0.6.0": - version: 0.6.1 - resolution: "@expo/fingerprint@npm:0.6.1" - dependencies: - "@expo/spawn-async": "npm:^1.5.0" - chalk: "npm:^4.1.2" - debug: "npm:^4.3.4" - find-up: "npm:^5.0.0" - minimatch: "npm:^3.0.4" - p-limit: "npm:^3.1.0" - resolve-from: "npm:^5.0.0" - bin: - fingerprint: bin/cli.js - checksum: 10/081d9e306550bc195c1d2fb5a16af7b7a571c615fcb3ad6f147fea0c810d264dc1fa910929fce30b989b21fa9724e25e25696408d213c8e4e5a1cc491a8b1826 - languageName: node - linkType: hard - -"@expo/json-file@npm:^8.2.37, @expo/json-file@npm:~8.3.0": - version: 8.3.3 - resolution: "@expo/json-file@npm:8.3.3" - dependencies: - "@babel/code-frame": "npm:~7.10.4" - json5: "npm:^2.2.2" - write-file-atomic: "npm:^2.3.0" - checksum: 10/621b21d42023c5a8d7bc3d9be53911434416fd84fd06de527dc4c6b0b54119fa0324a8e1ecb4c716ff6c30d1a12b9b3bfc2317a093bf2a111de40aad991dd6d0 - languageName: node - linkType: hard - -"@expo/plist@npm:^0.1.0": - version: 0.1.3 - resolution: "@expo/plist@npm:0.1.3" - dependencies: - "@xmldom/xmldom": "npm:~0.7.7" - base64-js: "npm:^1.2.3" - xmlbuilder: "npm:^14.0.0" - checksum: 10/7026e45744784539a0a3534dc393f4d7ccc04cc5a4c71a194f61aa9c5577599e27066c43e60c6611a4d34ebc30bec9380190be1685040bc72b037704fe2d2aec - languageName: node - linkType: hard - -"@expo/sdk-runtime-versions@npm:^1.0.0": - version: 1.0.0 - resolution: "@expo/sdk-runtime-versions@npm:1.0.0" - checksum: 10/0942d5a356f590e8dc795761456cc48b3e2d6a38ad2a02d6774efcdc5a70424e05623b4e3e5d2fec0cdc30f40dde05c14391c781607eed3971bf8676518bfd9d - languageName: node - linkType: hard - -"@expo/spawn-async@npm:^1.5.0": - version: 1.7.2 - resolution: "@expo/spawn-async@npm:1.7.2" - dependencies: - cross-spawn: "npm:^7.0.3" - checksum: 10/009816d1722fc02603cfb4c348a609a80f41fba726d0d20208cd0d2d8a532f511a924a6681501251c851453499c4c13380a93209027a00bacc1b5282a4324cf8 - languageName: node - linkType: hard - "@fal-works/esbuild-plugin-global-externals@npm:^2.1.2": version: 2.1.2 resolution: "@fal-works/esbuild-plugin-global-externals@npm:2.1.2" @@ -4078,7 +3963,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: @@ -4741,13 +4626,13 @@ __metadata: languageName: node linkType: hard -"@metamask/abi-utils@npm:^2.0.2": - version: 2.0.2 - resolution: "@metamask/abi-utils@npm:2.0.2" +"@metamask/abi-utils@npm:^2.0.2, @metamask/abi-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "@metamask/abi-utils@npm:2.0.4" dependencies: - "@metamask/utils": "npm:^8.0.0" - superstruct: "npm:^1.0.3" - checksum: 10/150218e81d4e494196ce967f203a4fa6c03c07dc4e319cf72429cb37586e851adf9b0b89e341faeab38c5f03f6f8dff175486653e9a6da6c7fa9e4c9f96430e9 + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^9.0.0" + checksum: 10/3d32d42c6e98fc4719b2b53597e573764b80936c7cc31d884c87729c4c4f74a30e93096db87aaa7cbcec9d3bb7d22b1adfc98a8bcb4c7c2f17bfbddaa4367d34 languageName: node linkType: hard @@ -5172,6 +5057,19 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-block-tracker@npm:^11.0.1": + version: 11.0.1 + resolution: "@metamask/eth-block-tracker@npm:11.0.1" + dependencies: + "@metamask/eth-json-rpc-provider": "npm:^4.1.1" + "@metamask/safe-event-emitter": "npm:^3.1.1" + "@metamask/utils": "npm:^9.1.0" + json-rpc-random-id: "npm:^1.0.1" + pify: "npm:^5.0.0" + checksum: 10/6a5143dcd20ea87cd674efb25870275d97d4ffe921e843391a5b85876ebe074e5a587a128c268d27520904c74c9feecf91218ea086bd65cc6096f8501bdf8f32 + languageName: node + linkType: hard + "@metamask/eth-block-tracker@npm:^9.0.2": version: 9.0.3 resolution: "@metamask/eth-block-tracker@npm:9.0.3" @@ -5241,6 +5139,25 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-json-rpc-middleware@npm:^14.0.0": + version: 14.0.0 + resolution: "@metamask/eth-json-rpc-middleware@npm:14.0.0" + dependencies: + "@metamask/eth-block-tracker": "npm:^11.0.1" + "@metamask/eth-json-rpc-provider": "npm:^4.1.1" + "@metamask/eth-sig-util": "npm:^7.0.3" + "@metamask/json-rpc-engine": "npm:^9.0.2" + "@metamask/rpc-errors": "npm:^6.3.1" + "@metamask/utils": "npm:^9.1.0" + "@types/bn.js": "npm:^5.1.5" + bn.js: "npm:^5.2.1" + klona: "npm:^2.0.6" + pify: "npm:^5.0.0" + safe-stable-stringify: "npm:^2.4.3" + checksum: 10/1b62b1b2f2cce21cc4d7c4ccaf33024552119f09258cad1af683c317b90a5bbbb33311e3cb22a44913032deb93876ffdcbd591ed0269043af560a7a50a8ea6d9 + languageName: node + linkType: hard + "@metamask/eth-json-rpc-provider@npm:^2.1.0": version: 2.3.2 resolution: "@metamask/eth-json-rpc-provider@npm:2.3.2" @@ -5263,14 +5180,16 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-json-rpc-provider@npm:^4.0.0": - version: 4.0.0 - resolution: "@metamask/eth-json-rpc-provider@npm:4.0.0" +"@metamask/eth-json-rpc-provider@npm:^4.0.0, @metamask/eth-json-rpc-provider@npm:^4.1.1": + version: 4.1.3 + resolution: "@metamask/eth-json-rpc-provider@npm:4.1.3" dependencies: - "@metamask/json-rpc-engine": "npm:^9.0.0" + "@metamask/json-rpc-engine": "npm:^9.0.2" + "@metamask/rpc-errors": "npm:^6.3.1" "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^8.3.0" - checksum: 10/00e87f5d70e044d3dfe7a62ae8c3b530e92dea91de2ad921dee00cd3307fbb1444c5441a05f6178aaf81e3b11f6feeccaa4a8683edf058bf7769c00efeb8915a + "@metamask/utils": "npm:^9.1.0" + uuid: "npm:^8.3.2" + checksum: 10/d581cc0f6485783ed59ac9517aa7f0eb37ee6a0674409eeaba1bbda4b54fcc5f633cc8ace66207871e2c2fac33195982969f4e61c18b04faf4656cccf79d8d3d languageName: node linkType: hard @@ -5307,17 +5226,17 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-sig-util@npm:^7.0.0, @metamask/eth-sig-util@npm:^7.0.1": - version: 7.0.1 - resolution: "@metamask/eth-sig-util@npm:7.0.1" +"@metamask/eth-sig-util@npm:^7.0.0, @metamask/eth-sig-util@npm:^7.0.1, @metamask/eth-sig-util@npm:^7.0.3": + version: 7.0.3 + resolution: "@metamask/eth-sig-util@npm:7.0.3" dependencies: "@ethereumjs/util": "npm:^8.1.0" - "@metamask/abi-utils": "npm:^2.0.2" - "@metamask/utils": "npm:^8.1.0" + "@metamask/abi-utils": "npm:^2.0.4" + "@metamask/utils": "npm:^9.0.0" + "@scure/base": "npm:~1.1.3" ethereum-cryptography: "npm:^2.1.2" tweetnacl: "npm:^1.0.3" - tweetnacl-util: "npm:^0.15.1" - checksum: 10/e2aa3f0ad4db75b872705863a502414e17cd72d70c8b2a3f49c700ee237c428919161f345d42c6d00c5267fe87909ec021dee601cc02cb65bab04db2ec771997 + checksum: 10/a71b28607b0815d609cf27ab2d8535393d0a7e7f2c6b7a23d92669b770c664c14e2f539129351147339172b0bb865bb977e7cfb30624870eedab5d7ab700beff languageName: node linkType: hard @@ -6699,7 +6618,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^8.0.0, @metamask/utils@npm:^8.1.0, @metamask/utils@npm:^8.2.0, @metamask/utils@npm:^8.2.1, @metamask/utils@npm:^8.3.0, @metamask/utils@npm:^8.4.0": +"@metamask/utils@npm:^8.1.0, @metamask/utils@npm:^8.2.0, @metamask/utils@npm:^8.2.1, @metamask/utils@npm:^8.3.0, @metamask/utils@npm:^8.4.0": version: 8.4.0 resolution: "@metamask/utils@npm:8.4.0" dependencies: @@ -6798,12 +6717,12 @@ __metadata: languageName: node linkType: hard -"@noble/curves@npm:^1.2.0, @noble/curves@npm:^1.4.0": - version: 1.4.0 - resolution: "@noble/curves@npm:1.4.0" +"@noble/curves@npm:^1.2.0, @noble/curves@npm:^1.4.0, @noble/curves@npm:^1.4.2": + version: 1.5.0 + resolution: "@noble/curves@npm:1.5.0" dependencies: "@noble/hashes": "npm:1.4.0" - checksum: 10/b21b30a36ff02bfcc0f5e6163d245cdbaf7f640511fff97ccf83fc207ee79cfd91584b4d97977374de04cb118a55eb63a7964c82596a64162bbc42bc685ae6d9 + checksum: 10/d7707d756a887a0daf9eba709526017ac6905d4be58760947e0f0652961926295ba62a5a699d9a9f0bf2a2e0c6803381373e14542be5ff3885b3434bb59be86c languageName: node linkType: hard @@ -7912,13 +7831,6 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-color@npm:^2.0.0": - version: 2.1.0 - resolution: "@react-native/normalize-color@npm:2.1.0" - checksum: 10/a72b98538e6b7e265fb0669b8767d5f788777fb1a0ac1df7b0c82d8b3a804c8122aa7b819688c5e36fcf90b5ba93050b0070e29d3f0d70ab9530c2abd2bb9f9e - languageName: node - linkType: hard - "@reduxjs/toolkit@npm:1.9.7": version: 1.9.7 resolution: "@reduxjs/toolkit@npm:1.9.7" @@ -8252,12 +8164,12 @@ __metadata: languageName: node linkType: hard -"@solana/web3.js@npm:^1.90.0": - version: 1.91.8 - resolution: "@solana/web3.js@npm:1.91.8" +"@solana/web3.js@npm:^1.90.2, @solana/web3.js@npm:^1.91.6": + version: 1.95.3 + resolution: "@solana/web3.js@npm:1.95.3" dependencies: - "@babel/runtime": "npm:^7.24.5" - "@noble/curves": "npm:^1.4.0" + "@babel/runtime": "npm:^7.25.0" + "@noble/curves": "npm:^1.4.2" "@noble/hashes": "npm:^1.4.0" "@solana/buffer-layout": "npm:^4.0.1" agentkeepalive: "npm:^4.5.0" @@ -8267,11 +8179,11 @@ __metadata: bs58: "npm:^4.0.1" buffer: "npm:6.0.3" fast-stable-stringify: "npm:^1.0.0" - jayson: "npm:^4.1.0" + jayson: "npm:^4.1.1" node-fetch: "npm:^2.7.0" - rpc-websockets: "npm:^7.11.0" - superstruct: "npm:^0.14.2" - checksum: 10/d86f4a64fe83c715691562bc514fdda153d5d304a7c6508e38d13ba4bf7e61fabc6d5fc25d51ce797b6cb64a4965cafe76568281031f5b386cc1e40b2d2f9fcb + rpc-websockets: "npm:^9.0.2" + superstruct: "npm:^2.0.2" + checksum: 10/25bdc5100faae6d3e48cbfac965b129060bec61669dcd75d0a525cea3ce8d23632ebea249a7b21616c89641bf7ea26d18826ce51246274b6aa1278d32180c870 languageName: node linkType: hard @@ -8299,49 +8211,49 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-a11y@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-a11y@npm:7.6.19" +"@storybook/addon-a11y@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-a11y@npm:7.6.20" dependencies: - "@storybook/addon-highlight": "npm:7.6.19" + "@storybook/addon-highlight": "npm:7.6.20" axe-core: "npm:^4.2.0" - checksum: 10/c3dc5367235022ede49232b2373b4c674083ff79e50ab62144d4706c2cfa484c0d117ff233a2db9c001bc0e8a53a75f38ec55b8cdb8bfd00ccf190845b4884df + checksum: 10/4da3479a6db035092d6ef59dfd4465357976623db9ff84b9178dd30210e63f728d9f2819850fdfcd6fe00739b3849d4399255e90917ac6083c37ece97d4da30a languageName: node linkType: hard -"@storybook/addon-actions@npm:7.6.19, @storybook/addon-actions@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-actions@npm:7.6.19" +"@storybook/addon-actions@npm:7.6.20, @storybook/addon-actions@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-actions@npm:7.6.20" dependencies: - "@storybook/core-events": "npm:7.6.19" + "@storybook/core-events": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" "@types/uuid": "npm:^9.0.1" dequal: "npm:^2.0.2" polished: "npm:^4.2.2" uuid: "npm:^9.0.0" - checksum: 10/6e25cc16f6e9cf4076ec2da0b851d5a8dfeb8f73b9b53c9ec57e6f0f34d2155518f0dc9af5279fc8a78ab0fd60e3ab72f0509f0815c1bdbee11f595627ef065d + checksum: 10/cbec5ebbb8a4a632a14b04c0ae32adc4d9783ecc3faba325ede0e172170b579ffd8e5d7c825a1cd61a1008ed69fc78eda7c63df58490c543534f63318683d4b9 languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-backgrounds@npm:7.6.19" +"@storybook/addon-backgrounds@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-backgrounds@npm:7.6.20" dependencies: "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" ts-dedent: "npm:^2.0.0" - checksum: 10/617e13e9b650eeb6d5a5495bc341a86dcd645e3b148bc07e04e4b142c761981df413832cc1500710c9aa7a1905bbdcf518aac1ddd952df744bb1b23954ac18b7 + checksum: 10/458c9493fb8f8efe552efd4a3f4f3a1c3fc0bee539c508de92da6af7efd3fde047d0fce40521bf8b9453747b7c9f07352483500cef173fb8ee382817e2ec692e languageName: node linkType: hard -"@storybook/addon-controls@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-controls@npm:7.6.19" +"@storybook/addon-controls@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-controls@npm:7.6.20" dependencies: - "@storybook/blocks": "npm:7.6.19" + "@storybook/blocks": "npm:7.6.20" lodash: "npm:^4.17.21" ts-dedent: "npm:^2.0.0" - checksum: 10/31f6ad7613fcf2459b2177996816ceb0727ab4972c9768c097cf36f7fc38d09e4d1b481fd69c02900cde323916a2271778cde6e3dbd4f5a64532fc227a0782b6 + checksum: 10/27b0f4d5e751445c16e1a86de4013ee8d60136cc040914cc8e7a9cc53ca93084094335d4bc78fa74cb566d38ce519d5a5dd3cd7f4985cc4c2062f70ad9ebe3b9 languageName: node linkType: hard @@ -8368,25 +8280,25 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-docs@npm:7.6.19, @storybook/addon-docs@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-docs@npm:7.6.19" +"@storybook/addon-docs@npm:7.6.20, @storybook/addon-docs@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-docs@npm:7.6.20" dependencies: "@jest/transform": "npm:^29.3.1" "@mdx-js/react": "npm:^2.1.5" - "@storybook/blocks": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/components": "npm:7.6.19" - "@storybook/csf-plugin": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" + "@storybook/blocks": "npm:7.6.20" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/components": "npm:7.6.20" + "@storybook/csf-plugin": "npm:7.6.20" + "@storybook/csf-tools": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" "@storybook/mdx2-csf": "npm:^1.0.0" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/postinstall": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/react-dom-shim": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/postinstall": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/react-dom-shim": "npm:7.6.20" + "@storybook/theming": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" fs-extra: "npm:^11.1.0" remark-external-links: "npm:^8.0.0" remark-slug: "npm:^6.0.0" @@ -8394,41 +8306,41 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/2498d682b2faf77312a3e9632df9681e6f1cd6d3b688981db54ef4818248a40837c2fa97cb5a93a063d0efc49f9f4cabd1c264482b1c54194cdc5aa316eccf10 - languageName: node - linkType: hard - -"@storybook/addon-essentials@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-essentials@npm:7.6.19" - dependencies: - "@storybook/addon-actions": "npm:7.6.19" - "@storybook/addon-backgrounds": "npm:7.6.19" - "@storybook/addon-controls": "npm:7.6.19" - "@storybook/addon-docs": "npm:7.6.19" - "@storybook/addon-highlight": "npm:7.6.19" - "@storybook/addon-measure": "npm:7.6.19" - "@storybook/addon-outline": "npm:7.6.19" - "@storybook/addon-toolbars": "npm:7.6.19" - "@storybook/addon-viewport": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/manager-api": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" + checksum: 10/04b162f169f2d203089a04a522f5c7923f856e6708fb5da5509ba075abea000dac9fdb4e198bcb0f0b58dd31b79a67126fe1ced210fce6193c3c6b6c4f0123ff + languageName: node + linkType: hard + +"@storybook/addon-essentials@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-essentials@npm:7.6.20" + dependencies: + "@storybook/addon-actions": "npm:7.6.20" + "@storybook/addon-backgrounds": "npm:7.6.20" + "@storybook/addon-controls": "npm:7.6.20" + "@storybook/addon-docs": "npm:7.6.20" + "@storybook/addon-highlight": "npm:7.6.20" + "@storybook/addon-measure": "npm:7.6.20" + "@storybook/addon-outline": "npm:7.6.20" + "@storybook/addon-toolbars": "npm:7.6.20" + "@storybook/addon-viewport": "npm:7.6.20" + "@storybook/core-common": "npm:7.6.20" + "@storybook/manager-api": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" ts-dedent: "npm:^2.0.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/85f5e1c989bfa59845fc9a0b8ab3c7105630308393d84a2ef3762f3620a90cf5285742b24a9904289047e25fb19752389662b4770bc5d2bdeff29031ad36c8bb + checksum: 10/caa019515d0cf6b628a13611d231145254ca4c69aa01de78f597aef32425cdd1b227ec916f45e56ccf30790503e552adc931d44cb1e76e11a24a19378638bfdd languageName: node linkType: hard -"@storybook/addon-highlight@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-highlight@npm:7.6.19" +"@storybook/addon-highlight@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-highlight@npm:7.6.20" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 10/a0271f5b5f8ce792791e5949a7fe4dfa17107ee90ffe1defb974e0f8f24dc5387238dc96e021d994420714c8592b82fa9de69ecbc135f1370fb3099e3c465867 + checksum: 10/80258b39b9611c633ee131424af7694addaf66cc4b39e120202634ac30c401d1b654662e8d2677151743e10cf21b5711fe8c2f7a4e695c994240e4ad84251d5b languageName: node linkType: hard @@ -8464,89 +8376,89 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-mdx-gfm@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-mdx-gfm@npm:7.6.19" +"@storybook/addon-mdx-gfm@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-mdx-gfm@npm:7.6.20" dependencies: - "@storybook/node-logger": "npm:7.6.19" + "@storybook/node-logger": "npm:7.6.20" remark-gfm: "npm:^3.0.1" ts-dedent: "npm:^2.0.0" - checksum: 10/d215b6004326190f4b8aa2a00e3faf4444535c8cf2802e78ed3afe20def790bc8d4cdbe4daebe0e8c134c6379b8ed38c6b7c4f21cfae4c269c4fe0991eb0ac6d + checksum: 10/4068fa42d9a8c4a0ab4f03d2da7f5b9ef247826cb89601b441faa83977a6391bc76051d38b36847d0582b0b606d7974ffad7dfb8b846e88dc60d46d55591453b languageName: node linkType: hard -"@storybook/addon-measure@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-measure@npm:7.6.19" +"@storybook/addon-measure@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-measure@npm:7.6.20" dependencies: "@storybook/global": "npm:^5.0.0" tiny-invariant: "npm:^1.3.1" - checksum: 10/33d8140f0569349cdc5e64662ee5e96576e2b80a7760c6a385eb31263a1c3bf4c79aa6e981e6880f92212fb0b4f46a5bae2cf3c9ba06e79684276266415f411a + checksum: 10/ef2db439402bd8710513ecfb1ecf47d3572e93229d6a41287a8114fc714039387ef3562ddb5a4f1a9930a96587073e59975a87f47cf45c90d0deb7052662cf82 languageName: node linkType: hard -"@storybook/addon-outline@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-outline@npm:7.6.19" +"@storybook/addon-outline@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-outline@npm:7.6.20" dependencies: "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10/19d9191a1a181337fb531432e467b874f0c3a07d789b71a587b43b9b6ac7204cac0de4e4dd9560477a45b5d039f632dd988f677503eadc10254959727ffcfc0e + checksum: 10/74cf0cde404f883c1dfdda64036d90dc0174ab742d9f81c8a88fc1c131230aec494236bdd8fa00e0ac7e0e4d153de54bdfe6ef55733d775932f5f62ee8239775 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-toolbars@npm:7.6.19" - checksum: 10/ca9bda329ab2f59d5b55b13548e0b991be260bc08cb52ef2529417aae447b2a3ad7cc43c8cd13b408d7228b7bbf800ab5eabe24fded25089fdd5a42067e5513c +"@storybook/addon-toolbars@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-toolbars@npm:7.6.20" + checksum: 10/3338badd22714001ba022a9d41a3bf7d9e178fdf26652914b09b7cfb3ed2cd6e680360d8b9f667ae8043c215d009965b119fd4918676f2ebeafc888eec5310a3 languageName: node linkType: hard -"@storybook/addon-viewport@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-viewport@npm:7.6.19" +"@storybook/addon-viewport@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/addon-viewport@npm:7.6.20" dependencies: memoizerific: "npm:^1.11.3" - checksum: 10/3d5685f32e1a4e1deef9768a4c0e609b6574544f01e025e5b71eabbc27a182f2ed6f129680e45a9e9ad133d477ffcae370e198fb39779151f037b5bbdc358c37 + checksum: 10/aba68c9de68d61e7b915909ba6296e9091e8be48d193ac3f84acebf7488bf96ee1e754f6b2a3728765d15d3ecef491531130246f9e9a08b395c21f88ef584043 languageName: node linkType: hard -"@storybook/addons@npm:^7.0.0, @storybook/addons@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/addons@npm:7.6.19" +"@storybook/addons@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/addons@npm:7.6.20" dependencies: - "@storybook/manager-api": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - checksum: 10/e0bd716798a4906f9c421544734d6542a8473138240ea370718a09546c721beb78a6236120027efdf38c308fc26444867d9902ec75e2ab6398592daa207233f7 + "@storybook/manager-api": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" + checksum: 10/801b8281b6e7b6f96808c83c8f862da86d9bb3f5e1abf57a0f51ba4b46b1530613b869a9660147115ebc7787e0bf01eb10b92516c608da0cd6e83e6bf74a2e9c languageName: node linkType: hard -"@storybook/api@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/api@npm:7.6.19" +"@storybook/api@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/api@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/manager-api": "npm:7.6.19" - checksum: 10/9cb203d7af879bf6fec782ba7d8c432f6bba6259bd1d48a343844b31a476ecaaa06b8d8edf068b44b0a83d48e6ae399902e9c3729b22f8dd9ec5c92fce0e84cd + "@storybook/client-logger": "npm:7.6.20" + "@storybook/manager-api": "npm:7.6.20" + checksum: 10/2aeabb07d1d245c4a3500dec8dd2472e0f0e6f81c06d1bdcc81f79e9a416c3ddb91b98a72449d8857a26177532bfc93f8094918ef047284c971075062d713630 languageName: node linkType: hard -"@storybook/blocks@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/blocks@npm:7.6.19" +"@storybook/blocks@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/blocks@npm:7.6.20" dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/components": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" + "@storybook/channels": "npm:7.6.20" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/components": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" "@storybook/csf": "npm:^0.1.2" - "@storybook/docs-tools": "npm:7.6.19" + "@storybook/docs-tools": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/manager-api": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/theming": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/lodash": "npm:^4.14.167" color-convert: "npm:^2.0.1" dequal: "npm:^2.0.2" @@ -8562,18 +8474,18 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/12a2309b5f2beed5db2f8bdd12d1e8a8d1b3a91c10b68152bedc0a6d64fec4b0a357573ca94fe3d7def84bedfff65b17bbcccbe4c9121960f76458303bb5a228 + checksum: 10/fa893dbf5600b48bdcea757e844f2fc70ab5b68309527802e639c4c596d53c937cc53ec6246afa93ac3da0d83bfb65c50666e66a7c474a776c57fe80a5c7c98f languageName: node linkType: hard -"@storybook/builder-manager@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/builder-manager@npm:7.6.19" +"@storybook/builder-manager@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/builder-manager@npm:7.6.20" dependencies: "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" - "@storybook/core-common": "npm:7.6.19" - "@storybook/manager": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" + "@storybook/core-common": "npm:7.6.20" + "@storybook/manager": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" "@types/ejs": "npm:^3.1.1" "@types/find-cache-dir": "npm:^3.2.1" "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" @@ -8586,23 +8498,23 @@ __metadata: fs-extra: "npm:^11.1.0" process: "npm:^0.11.10" util: "npm:^0.12.4" - checksum: 10/aef5af6b7808e40ebd442e276328b4ed64f7f718d94fae9d23b309d126ee44c7ec79ac4df06a8377ad6fc477af80235d61269effbb70dbd365542789f045589b + checksum: 10/08e6b1294495bcfdfafa3ce1159785fcf4bc0b7ea2f1cdeb88b8ac952017c6106209617cd01c59c35d4dd74cc61eead3c9746ffca6ccf4e18e9ebf0bbda1c819 languageName: node linkType: hard -"@storybook/builder-webpack5@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/builder-webpack5@npm:7.6.19" +"@storybook/builder-webpack5@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/builder-webpack5@npm:7.6.20" dependencies: "@babel/core": "npm:^7.23.2" - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/core-webpack": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" + "@storybook/channels": "npm:7.6.20" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-common": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" + "@storybook/core-webpack": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/preview": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" "@swc/core": "npm:^1.3.82" "@types/node": "npm:^18.0.0" "@types/semver": "npm:^7.3.4" @@ -8635,40 +8547,40 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/3cc3536902c82357fa2ca03610d0e6dce73782cd562a2add60cf083530a099bf5b63bbe9ec2c3ac73a44ea943ce7d9b4e90140d26096a05ad0d65ea3ba608e1e + checksum: 10/deb645ccb3a3f83172e91450177db4256dac1d35994a7b5d81184065914b084475eda585b718cf7f2e7b6059f20d3a68899b4d4d059d59b765a17c1efff4c3c1 languageName: node linkType: hard -"@storybook/channels@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/channels@npm:7.6.19" +"@storybook/channels@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/channels@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" qs: "npm:^6.10.0" telejson: "npm:^7.2.0" tiny-invariant: "npm:^1.3.1" - checksum: 10/ee4f3d85aeeecc9885e9807951c3302edfa42cc25a309940901e12fdd81c8c028815f935bef593dc712c051317434a1f65646a57103655ebe6667935de72a832 + checksum: 10/3dc827df9d0d0c0c68f10edbf5169e42c2cdb43832cb14ce3ac8149f295219f8bae6ed27300fd50e6a78080914cf142d1810fdbcf687dd313a7bfac41386cd95 languageName: node linkType: hard -"@storybook/cli@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/cli@npm:7.6.19" +"@storybook/cli@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/cli@npm:7.6.20" dependencies: "@babel/core": "npm:^7.23.2" "@babel/preset-env": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" "@ndelangen/get-tarball": "npm:^3.0.7" - "@storybook/codemod": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/core-server": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/telemetry": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/codemod": "npm:7.6.20" + "@storybook/core-common": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" + "@storybook/core-server": "npm:7.6.20" + "@storybook/csf-tools": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/telemetry": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/semver": "npm:^7.3.4" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" @@ -8700,40 +8612,40 @@ __metadata: bin: getstorybook: ./bin/index.js sb: ./bin/index.js - checksum: 10/7a835ddff46cf604b8465ef3bd03cc5a5a101cd6dfef6bd37876a4702f0f79d32e1a57fee33e073ed00327e1146b51615c2b0f84135eacb6fab92be4eee6c412 + checksum: 10/0de9d7e77e1f0d97781b5acde906fe99c62caf182a9fcd1bbb7c852745208e74a8295c3cbbfcec41337a0d3ab7f97a43fdb3a6139f36ebabbe9b80b3c0fc2ca9 languageName: node linkType: hard -"@storybook/client-api@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/client-api@npm:7.6.19" +"@storybook/client-api@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/client-api@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - checksum: 10/742a8372ec6ceea060417777b1418f108d25357f1e58d61c094e56d90875d9fa410155fd08fc406e2fc4e15e5521dcc9e231621f370b5d6bf58385a368c2bdc1 + "@storybook/client-logger": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + checksum: 10/094ebacca2c01a43659bbb22a88a415c196ad38c3cf1e752b544cd415566f3a5c71f528bb165cfcce80e7897b4c4e5ea6ae7d58a050207f5d1187822c17d8c91 languageName: node linkType: hard -"@storybook/client-logger@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/client-logger@npm:7.6.19" +"@storybook/client-logger@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/client-logger@npm:7.6.20" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 10/140ea57ea53c4a78652e323b3dab8131cfe1d744a760393c8a798a1c964d0e2c927b7ef9a0326e8c4ee90b820003b5653db3c2ab5c16887e5df2cd114b8efb32 + checksum: 10/0062c440c825ab460667d799b00d3ff87dcf4dabce05733c11ffbb1ea70e0a2e77fdc313ce9bdeccc4ac816101abe17572b96cc20c975874812f875828653704 languageName: node linkType: hard -"@storybook/codemod@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/codemod@npm:7.6.19" +"@storybook/codemod@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/codemod@npm:7.6.20" dependencies: "@babel/core": "npm:^7.23.2" "@babel/preset-env": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/csf-tools": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/cross-spawn": "npm:^6.0.2" cross-spawn: "npm:^7.0.3" globby: "npm:^11.0.2" @@ -8741,48 +8653,57 @@ __metadata: lodash: "npm:^4.17.21" prettier: "npm:^2.8.0" recast: "npm:^0.23.1" - checksum: 10/a5601cc6bab253c7337ca7356d41ef89d4d430d1a4405f5bad1cae1470387a6c8cfa04f8974cf70c75149cc01731f970daef3fff82093f3c0eeb4ff2569e7749 + checksum: 10/ac4e2132be665e173bf7ce121341e847e6fed225e3fef4518a1a3d6f005d7677d116febe0d08f2ecb5f479823dcefa720ac4cf9b6b72ff9b557dbc7db7bd8b2f languageName: node linkType: hard -"@storybook/components@npm:7.6.19, @storybook/components@npm:^7.0.0, @storybook/components@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/components@npm:7.6.19" +"@storybook/components@npm:7.6.20, @storybook/components@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/components@npm:7.6.20" dependencies: "@radix-ui/react-select": "npm:^1.2.2" "@radix-ui/react-toolbar": "npm:^1.0.4" - "@storybook/client-logger": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" "@storybook/csf": "npm:^0.1.2" "@storybook/global": "npm:^5.0.0" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/theming": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" memoizerific: "npm:^1.11.3" use-resize-observer: "npm:^9.1.0" util-deprecate: "npm:^1.0.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/8e2d7bc4c6c341dba8edd6443597531a0e4888ad32c7de5d08c361687b9f0d505c94b84bf70756514a3beddd2702eb8aa361c040547a0094902406c23772517b + checksum: 10/1b3e267ae73a4afad61aec99202e3d483dea079a02046bfa75ddb03726c5d59de4200f745c843b7c45dd8cea7159c85e2919ce83adff045f592fa04658d6d1e8 + languageName: node + linkType: hard + +"@storybook/components@npm:^8.0.0": + version: 8.2.9 + resolution: "@storybook/components@npm:8.2.9" + peerDependencies: + storybook: ^8.2.9 + checksum: 10/32153df19777ea751d1adb33da6e92b5647d19fd924753b2ca1c80bcc102ee0489eac7b02914a2e56406233940f6eca7f1aa3ba0c441a164cabc954679a67869 languageName: node linkType: hard -"@storybook/core-client@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-client@npm:7.6.19" +"@storybook/core-client@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/core-client@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - checksum: 10/1548a991907471c2e3520dacd278419800a7cf898000f3f6dfdaed3906bf039d5df2067dc11d3aed79b50cab5032638dd213881e9f786bcfd9d1bdd6f6daae92 + "@storybook/client-logger": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + checksum: 10/e89fb4d9944715bed204371d8edf66b3d9038912b13e16962ea90e2d863331591b9dc10fa00a4218a4d770c56dd72bfc0b7d0a3ad3d7594cd3ebf218fa760a49 languageName: node linkType: hard -"@storybook/core-common@npm:7.6.19, @storybook/core-common@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version: 7.6.19 - resolution: "@storybook/core-common@npm:7.6.19" +"@storybook/core-common@npm:7.6.20, @storybook/core-common@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": + version: 7.6.20 + resolution: "@storybook/core-common@npm:7.6.20" dependencies: - "@storybook/core-events": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/core-events": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/find-cache-dir": "npm:^3.2.1" "@types/node": "npm:^18.0.0" "@types/node-fetch": "npm:^2.6.4" @@ -8803,38 +8724,47 @@ __metadata: pretty-hrtime: "npm:^1.0.3" resolve-from: "npm:^5.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10/344e2d7be2d96aa1eeb91b53fd192f3c8c83a43266bc7342691b30435eab67ca7187ef70699919dc2412c09d6423c2948d9a5f15114dcc9d4fca57d928eac75e + checksum: 10/adc2c6dabd01904f10d2bce4f8d21fced023dfd3651661655844fa2e4f779e3774b1bf3328fd85e40091785bdb3a1cbb7bfca5b78c546493824322cd9ddae934 languageName: node linkType: hard -"@storybook/core-events@npm:7.6.19, @storybook/core-events@npm:^7.0.0, @storybook/core-events@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/core-events@npm:7.6.19" +"@storybook/core-events@npm:7.6.20, @storybook/core-events@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/core-events@npm:7.6.20" dependencies: ts-dedent: "npm:^2.0.0" - checksum: 10/bbf856ee350d914bb77fb35b85057c304516bcbdbe783338407d42af7a3e4c32270da70741a61b5d7fd271a97a28c49a107bc0ffc9bc403e21d6ad72b7224706 + checksum: 10/bd72649a262017f244aa6311352c1b38f2b38478c19b9aee4851bfdff5b2b11565dd768fe144f1304f9f130b533ffa4ab3fd2eea1361d202a76ff920cc377601 languageName: node linkType: hard -"@storybook/core-server@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-server@npm:7.6.19" +"@storybook/core-events@npm:^8.0.0": + version: 8.2.9 + resolution: "@storybook/core-events@npm:8.2.9" + peerDependencies: + storybook: ^8.2.9 + checksum: 10/6ac658a75702c645695d82fbd69da5cf4d559050ffa1f0023729ad34c0d84965b2abeeb65efd168b0cdb049314de002c00267eaf692064e3efeae1337cc3ba52 + languageName: node + linkType: hard + +"@storybook/core-server@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/core-server@npm:7.6.20" dependencies: "@aw-web-design/x-default-browser": "npm:1.4.126" "@discoveryjs/json-ext": "npm:^0.5.3" - "@storybook/builder-manager": "npm:7.6.19" - "@storybook/channels": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" + "@storybook/builder-manager": "npm:7.6.20" + "@storybook/channels": "npm:7.6.20" + "@storybook/core-common": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.19" + "@storybook/csf-tools": "npm:7.6.20" "@storybook/docs-mdx": "npm:^0.1.0" "@storybook/global": "npm:^5.0.0" - "@storybook/manager": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/telemetry": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/manager": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/telemetry": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/detect-port": "npm:^1.3.0" "@types/node": "npm:^18.0.0" "@types/pretty-hrtime": "npm:^1.0.0" @@ -8847,7 +8777,6 @@ __metadata: express: "npm:^4.17.3" fs-extra: "npm:^11.1.0" globby: "npm:^11.0.2" - ip: "npm:^2.0.1" lodash: "npm:^4.17.21" open: "npm:^8.4.0" pretty-hrtime: "npm:^1.0.3" @@ -8861,47 +8790,47 @@ __metadata: util-deprecate: "npm:^1.0.2" watchpack: "npm:^2.2.0" ws: "npm:^8.2.3" - checksum: 10/4baea0772977f717cc21404bd12fcc90558e743ab84963407494e8ab1c4466173f797a1f65b3235519cf54542f1d4c784c770d8e465633c98e3c21a5216ac578 + checksum: 10/994dcdbd475650d396ad5f13113412779b23c910133e2fd45a2f7bd31c24a2bd351db977d6ae05b18dc6807edc7ac756286533145449e4e4f4d2bb99507586bb languageName: node linkType: hard -"@storybook/core-webpack@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-webpack@npm:7.6.19" +"@storybook/core-webpack@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/core-webpack@npm:7.6.20" dependencies: - "@storybook/core-common": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/core-common": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/node": "npm:^18.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10/28684d5e74bc4001fa8a084f3423f2b23dd73a1a197ccdc9899a67505b406074b1bdecb74b9411cbbd687394337cfe92f9aa111f1a59c54f80b2876e3f3e2fa0 + checksum: 10/2277c5f996e2936955e19ba52600e286cf28eca7a24eba373329ca804e3e0d5da4047a15c01cdbb03abdf59690dbd96592c1f2c10d77af2463917555774ad9e0 languageName: node linkType: hard -"@storybook/csf-plugin@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/csf-plugin@npm:7.6.19" +"@storybook/csf-plugin@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/csf-plugin@npm:7.6.20" dependencies: - "@storybook/csf-tools": "npm:7.6.19" + "@storybook/csf-tools": "npm:7.6.20" unplugin: "npm:^1.3.1" - checksum: 10/94cf074437f5dbc897b7714e18d502d9e5f59def4be5219a31c5eb7a5344c040f8e24f22d83bfe3ffd4f30fecae4267ac0738994bc419f677997c0dc816df45d + checksum: 10/0f40b4968e9abb0abf6657548fc6338755133b2c8bb788caf55b101b4558c9c55c428e357659723e06ab385a22fa96ba14059149c4473dd3d0190d6d21088a90 languageName: node linkType: hard -"@storybook/csf-tools@npm:7.6.19, @storybook/csf-tools@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version: 7.6.19 - resolution: "@storybook/csf-tools@npm:7.6.19" +"@storybook/csf-tools@npm:7.6.20, @storybook/csf-tools@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": + version: 7.6.20 + resolution: "@storybook/csf-tools@npm:7.6.20" dependencies: "@babel/generator": "npm:^7.23.0" "@babel/parser": "npm:^7.23.0" "@babel/traverse": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" "@storybook/csf": "npm:^0.1.2" - "@storybook/types": "npm:7.6.19" + "@storybook/types": "npm:7.6.20" fs-extra: "npm:^11.1.0" recast: "npm:^0.23.1" ts-dedent: "npm:^2.0.0" - checksum: 10/ef616c8df2da2d28b9fcb938495ab9cd277843926deb9b542694f8046111c23997a99181b70b45cdb637235a9679376eeb7c2f6ba1c04c56ad4c4695e666b931 + checksum: 10/f0ca4a7e7309548bf647fbbc175bccb56fe4df210e3e52f96a5cc553bc06253c8fd7fcceb00ee7192e09fd073fd67fdaacab0ba81c56d440116114355b5f0935 languageName: node linkType: hard @@ -8930,18 +8859,18 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/docs-tools@npm:7.6.19" +"@storybook/docs-tools@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/docs-tools@npm:7.6.20" dependencies: - "@storybook/core-common": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/core-common": "npm:7.6.20" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/doctrine": "npm:^0.0.3" assert: "npm:^2.1.0" doctrine: "npm:^3.0.0" lodash: "npm:^4.17.21" - checksum: 10/2f5324e4be4d481cb116895d3c45b6f40ff0bcf5364b2987c619849ef46b5a0e87a7b24266be1e94bb48539cb49c130931d0a9d31f54496883ea542a3a5ffc7c + checksum: 10/735a64bc90aaf51532104c6835e5fba7b30db33513b069404f3ed610ddfdd4c8689ea61630c1b6d04985a4faef8331d05ef95999983cdb244448229e5e3ef6bf languageName: node linkType: hard @@ -8952,32 +8881,51 @@ __metadata: languageName: node linkType: hard -"@storybook/manager-api@npm:7.6.19, @storybook/manager-api@npm:^7.0.0": - version: 7.6.19 - resolution: "@storybook/manager-api@npm:7.6.19" +"@storybook/icons@npm:^1.2.5": + version: 1.2.10 + resolution: "@storybook/icons@npm:1.2.10" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10/fad929a7e3c7a1a0fbf6b924b0be73f557b1bba9519faa15422482f89513ceb4b649444c224ee3d1dfbdce3616e684063cff23da08f6b1dd96f1aff4381388a6 + languageName: node + linkType: hard + +"@storybook/manager-api@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/manager-api@npm:7.6.20" dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" + "@storybook/channels": "npm:7.6.20" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" "@storybook/csf": "npm:^0.1.2" "@storybook/global": "npm:^5.0.0" - "@storybook/router": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/router": "npm:7.6.20" + "@storybook/theming": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" memoizerific: "npm:^1.11.3" store2: "npm:^2.14.2" telejson: "npm:^7.2.0" ts-dedent: "npm:^2.0.0" - checksum: 10/0dfd7d3c038b2c458553b5f9524f26adf920b162f793a69603be14fac44a1a38149df940accc14755c5c29587985eae4e7f7b5cf934453e147706bca0113d26b + checksum: 10/ad66099e1bdcab11ac6542c65849b7dcf905207b2e6cc2bff8684450ce2b9838e1e913160803e4cd0d59c708400a25f0225d1b083853e737516e99eab6636315 + languageName: node + linkType: hard + +"@storybook/manager-api@npm:^8.0.0": + version: 8.2.9 + resolution: "@storybook/manager-api@npm:8.2.9" + peerDependencies: + storybook: ^8.2.9 + checksum: 10/5ee66ebdc88f886c05425acff2c362681a6f778e2f27023a43c6c36767ef265175c58b8f23f74684dba64477b26b310fad7cf1761e6643325325a8724f53d93c languageName: node linkType: hard -"@storybook/manager@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/manager@npm:7.6.19" - checksum: 10/cb2c55f7d25ed7620c06335dd326db93550c028b4827a65f25603e5a539522ee785495d31704aa89325f663fa37948040aa06f00b77b0b98db79b99ba7d14953 +"@storybook/manager@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/manager@npm:7.6.20" + checksum: 10/542b5c765cf7704e157e6aea1bcf6b90e00cbb286251257b5e41bc35737f2df05215fecfdad89b3efa780341c1adf671eba71b7ee3164993bdf48bee3ad7c0a0 languageName: node linkType: hard @@ -8988,31 +8936,31 @@ __metadata: languageName: node linkType: hard -"@storybook/node-logger@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/node-logger@npm:7.6.19" - checksum: 10/44ecb90b28b71b8b9e1a5efe392096e11f4eb25aef94d4c8725434693966712e07f49b9742e14be355c8eda560ff4db6a9dbd02f5c16fa75c4d3d863f479c419 +"@storybook/node-logger@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/node-logger@npm:7.6.20" + checksum: 10/4e6cf2be559e91b111142cdd2ed7c742f2d231ea30c3df773de0e1daec9986c4db3724ddf3c6dcbc873784a49dc8c7a9e3780037d0690a95a0a0c2d6b7ce0968 languageName: node linkType: hard -"@storybook/postinstall@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/postinstall@npm:7.6.19" - checksum: 10/d0d2771ec7e85090dcd8f6b25ae2b8af62a17e647f332edda80daf6ac843bb9d80802451acc3d532c07aeb050ee7f6d923806942eba27cdc1f7f37c78496bcc6 +"@storybook/postinstall@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/postinstall@npm:7.6.20" + checksum: 10/bb743168ce64e90d95ded66742d76cf4818d41a29e84f6d88044f680f83e24fbce159555670754fe58a414193139373ea03c7699adbac3599e860eed092c11bc languageName: node linkType: hard -"@storybook/preset-react-webpack@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/preset-react-webpack@npm:7.6.19" +"@storybook/preset-react-webpack@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/preset-react-webpack@npm:7.6.20" dependencies: "@babel/preset-flow": "npm:^7.22.15" "@babel/preset-react": "npm:^7.22.15" "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.11" - "@storybook/core-webpack": "npm:7.6.19" - "@storybook/docs-tools": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/react": "npm:7.6.19" + "@storybook/core-webpack": "npm:7.6.20" + "@storybook/docs-tools": "npm:7.6.20" + "@storybook/node-logger": "npm:7.6.20" + "@storybook/react": "npm:7.6.20" "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" "@types/node": "npm:^18.0.0" "@types/semver": "npm:^7.3.4" @@ -9032,20 +8980,20 @@ __metadata: optional: true typescript: optional: true - checksum: 10/f3bcc256e970cce470b226d464b9621837e59687f075c438284ef60967f3756d7403442c6716a48cd444308a4fc2fa7fa6b4686cb65f6c253b226f689abd6ad3 + checksum: 10/bcce20358d85b5fb143a3bb184d4305ba96c4c54bed09b61b3a10e6748e4c3721069b7f7c89f9a1d62ba8234c215759a38d4d39f26e3e6b0c2b19a8ce23e13a1 languageName: node linkType: hard -"@storybook/preview-api@npm:7.6.19, @storybook/preview-api@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version: 7.6.19 - resolution: "@storybook/preview-api@npm:7.6.19" +"@storybook/preview-api@npm:7.6.20, @storybook/preview-api@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": + version: 7.6.20 + resolution: "@storybook/preview-api@npm:7.6.20" dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" + "@storybook/channels": "npm:7.6.20" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-events": "npm:7.6.20" "@storybook/csf": "npm:^0.1.2" "@storybook/global": "npm:^5.0.0" - "@storybook/types": "npm:7.6.19" + "@storybook/types": "npm:7.6.20" "@types/qs": "npm:^6.9.5" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" @@ -9054,14 +9002,14 @@ __metadata: synchronous-promise: "npm:^2.0.15" ts-dedent: "npm:^2.0.0" util-deprecate: "npm:^1.0.2" - checksum: 10/54543d845dd7f5652e25059af4a9b1337716dbadd300530ec5bf04f31fd84df542c0d59d09f46246a2f2b2780c1ad787b357d0e5f38e14fe598521a14ee95310 + checksum: 10/1facc19c6f3723d509114e3023dca1d19fd28f199673c81b77a2f31dea6d13c31455ce3b0eb57841e77b438479df9a6b73f2d5d0d4636bb123a3637c81910b49 languageName: node linkType: hard -"@storybook/preview@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/preview@npm:7.6.19" - checksum: 10/4f90675422a9e224478eeff2646fa7625d9afe4d44c7ad50dbf5f7e63688f3458fe513b1f282808311718d9889f463e9e2113cf7496c2d4b678017711c784272 +"@storybook/preview@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/preview@npm:7.6.20" + checksum: 10/1d1e4c7dc47898467f8ce9caa5026e902e420dac23a51782f3e65ecb50639d0cc1b0b32b7d28ad82b9c7b5e0ffcb528911948fbd952ac45aaec0ccace9aecd71 languageName: node linkType: hard @@ -9083,23 +9031,23 @@ __metadata: languageName: node linkType: hard -"@storybook/react-dom-shim@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/react-dom-shim@npm:7.6.19" +"@storybook/react-dom-shim@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/react-dom-shim@npm:7.6.20" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/dfdcb6e7cdfa3f110222252d1b39b68de8211ec49543e0cac7a3870929d090c051ba6a72c973fa11137da75bbe7d0301564f9ee183a2deb916045145940f2036 + checksum: 10/8639816eda50e2ca507a9cb78d5a67b9aaabd26ca03177fb93c5de9d233f0bb3e708524fc8ce14df0c7d3d65347ec581df922c28ceee7df265c2e04bf5b72784 languageName: node linkType: hard -"@storybook/react-webpack5@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/react-webpack5@npm:7.6.19" +"@storybook/react-webpack5@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/react-webpack5@npm:7.6.20" dependencies: - "@storybook/builder-webpack5": "npm:7.6.19" - "@storybook/preset-react-webpack": "npm:7.6.19" - "@storybook/react": "npm:7.6.19" + "@storybook/builder-webpack5": "npm:7.6.20" + "@storybook/preset-react-webpack": "npm:7.6.20" + "@storybook/react": "npm:7.6.20" "@types/node": "npm:^18.0.0" peerDependencies: "@babel/core": ^7.22.0 @@ -9111,21 +9059,21 @@ __metadata: optional: true typescript: optional: true - checksum: 10/42e783250cb97ba1588f7e2eee632d723a0bc200ec653cb6055c98ccbfa05081e2c21cc4b187687277f2d2686d059b46270be8d2275f3b63b2909b3ba84e14e5 + checksum: 10/a6213abdbdc652d7acc045d7aa716f696090f0813b8234acbc2c6fa71282556e0207ebf36aa3d74f6ab1980a0a43bc7b4b431fd9377912b8a253e1ab0ee1c124 languageName: node linkType: hard -"@storybook/react@npm:7.6.19, @storybook/react@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/react@npm:7.6.19" +"@storybook/react@npm:7.6.20, @storybook/react@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/react@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-client": "npm:7.6.19" - "@storybook/docs-tools": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-client": "npm:7.6.20" + "@storybook/docs-tools": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/react-dom-shim": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/preview-api": "npm:7.6.20" + "@storybook/react-dom-shim": "npm:7.6.20" + "@storybook/types": "npm:7.6.20" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" "@types/node": "npm:^18.0.0" @@ -9147,18 +9095,18 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/95a7ba7b3ce4c31d6fbd28d3b87813144a263f847761345ae2da7ac502bc3fbe93a8555238e025e11b010cd4d74cdd0d88327fb888745240b62ba88f37e0a57c + checksum: 10/2a0602c42b91a52fd6247b94933680caa498469104311793613a473f2cb395aa467e837d1094fcf0b4becb2b83b34026bef4a7a1c4e238546c800ab8167f2b06 languageName: node linkType: hard -"@storybook/router@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/router@npm:7.6.19" +"@storybook/router@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/router@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" memoizerific: "npm:^1.11.3" qs: "npm:^6.10.0" - checksum: 10/e213e8b3c5f477b3e4e146cbc903968c544e93dce9b3086c64c9ac72d3c0ef1c089815500e9e017453d08ea3ca316c3ea225a28da58aa85b4116a9c8b46c4259 + checksum: 10/dd7a7ef64efc4d7d133be1f17667b2d8d8a0b6ee8738ce971d783fb4b0c9213d52cacc08513287e36683b3ea93f94e91b5211a458dad466006213cb1bfa12f4a languageName: node linkType: hard @@ -9178,19 +9126,19 @@ __metadata: languageName: node linkType: hard -"@storybook/telemetry@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/telemetry@npm:7.6.19" +"@storybook/telemetry@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/telemetry@npm:7.6.20" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" + "@storybook/core-common": "npm:7.6.20" + "@storybook/csf-tools": "npm:7.6.20" chalk: "npm:^4.1.0" detect-package-manager: "npm:^2.0.1" fetch-retry: "npm:^5.0.2" fs-extra: "npm:^11.1.0" read-pkg-up: "npm:^7.0.1" - checksum: 10/e3d127e6b020b09462f8349289345ba72703a3c738d2df042786b080225d26f3c9fddb02669c7efb70992a9e6cc2b2e26c3d0f393a0dff645cabee7e0539efc7 + checksum: 10/ce679a0b1bf975e7de6ca77f40942ade9f549da156d40c019e9b3bbbdf87cdb5a4ffdea52b80315f6af5354e3a51e7b4241b8d514c78d7403c99648318bc3246 languageName: node linkType: hard @@ -9231,30 +9179,39 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@npm:7.6.19, @storybook/theming@npm:^7.0.0, @storybook/theming@npm:^7.6.19": - version: 7.6.19 - resolution: "@storybook/theming@npm:7.6.19" +"@storybook/theming@npm:7.6.20, @storybook/theming@npm:^7.6.20": + version: 7.6.20 + resolution: "@storybook/theming@npm:7.6.20" dependencies: "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" - "@storybook/client-logger": "npm:7.6.19" + "@storybook/client-logger": "npm:7.6.20" "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/edeedf52b7aa799d0eb3775c0c01c48ae3aa442d75803b792b2286957eda70a0b2e4f83a7eb448f71d7c68a7c7a16824833fed9053ecb14660d57fa30e123327 + checksum: 10/c26ba05d8fa1ba6c9d62b1d690dc55ba56874c493a7dfef5e85df89fc1da2ce8be09d7426071e43dbb3bf16ca4bc579a94f8f1a1ab14cfd29465a6a6eca5b158 languageName: node linkType: hard -"@storybook/types@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/types@npm:7.6.19" +"@storybook/theming@npm:^8.0.0": + version: 8.2.9 + resolution: "@storybook/theming@npm:8.2.9" + peerDependencies: + storybook: ^8.2.9 + checksum: 10/13d71e1b69fb254d5de6349c60c7ac0518cbaec0c26a591c820752dd5b25fe66d8a32e4b081bd9470c0b07648e478eb88ab628d10196918ee2806c9640c2ee2f + languageName: node + linkType: hard + +"@storybook/types@npm:7.6.20": + version: 7.6.20 + resolution: "@storybook/types@npm:7.6.20" dependencies: - "@storybook/channels": "npm:7.6.19" + "@storybook/channels": "npm:7.6.20" "@types/babel__core": "npm:^7.0.0" "@types/express": "npm:^4.7.0" file-system-cache: "npm:2.3.0" - checksum: 10/8930afad00d36531c2194d761efa2e3a66a1efd755f32b12136ba51b798f1489e27408e6a296809ba01a543dcf76342007de45e637201b5c12df6fcac8207a5a + checksum: 10/8da9513f1f34f606b114026af5fad5a7658ce5e2fa7af3363d9f3d481e5e22ed9ae6343f28aa9d14208bff07f489cb7f5ae3adcad5a603f8181e952b2ee29f3f languageName: node linkType: hard @@ -9548,88 +9505,87 @@ __metadata: languageName: node linkType: hard -"@trezor/analytics@npm:1.0.16": - version: 1.0.16 - resolution: "@trezor/analytics@npm:1.0.16" +"@trezor/analytics@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/analytics@npm:1.1.0" dependencies: - "@trezor/env-utils": "npm:1.0.15" - "@trezor/utils": "npm:9.0.23" + "@trezor/env-utils": "npm:1.1.0" + "@trezor/utils": "npm:9.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/4415ee115a53e4390adf25036e51af31324709dbef16620de81e08223451b403b13d64c78009865093908205dbec7d32a404d5fe573f82f0fd3c16fd8d5dcb0a + checksum: 10/6a5b426c12b7ba7bfbbb955ac003733ca0b36a33f52d49c13a37ab341ae6f9c38a5aa0696f60dd31da650b01326a93d27d06ef830190a608159cc833451a413b languageName: node linkType: hard -"@trezor/blockchain-link-types@npm:1.0.15": - version: 1.0.15 - resolution: "@trezor/blockchain-link-types@npm:1.0.15" +"@trezor/blockchain-link-types@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/blockchain-link-types@npm:1.1.0" dependencies: - "@solana/web3.js": "npm:^1.90.0" - "@trezor/type-utils": "npm:1.0.5" - "@trezor/utxo-lib": "npm:2.0.8" + "@solana/web3.js": "npm:^1.91.6" + "@trezor/type-utils": "npm:1.1.0" + "@trezor/utxo-lib": "npm:2.1.0" socks-proxy-agent: "npm:6.1.1" peerDependencies: tslib: ^2.6.2 - checksum: 10/c5aa52ac21e6305ae2cd065e68c47abb23e1c768b51cf01bf9fc0f504e09bc1fabb1b8ff9a0b7f1aed30f22f51837cb1abeb3067c935afdf6fc62ffa77a0ee0f + checksum: 10/d7730bf1cc9e77293d5bf4dc7138d0719f0ae564273b51b1f142dc527269147e7701d8a20dc5f96326cb0a7d8294eb4394d6a0076ef692c78763bcb10633b62d languageName: node linkType: hard -"@trezor/blockchain-link-utils@npm:1.0.16": - version: 1.0.16 - resolution: "@trezor/blockchain-link-utils@npm:1.0.16" +"@trezor/blockchain-link-utils@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/blockchain-link-utils@npm:1.1.0" dependencies: "@mobily/ts-belt": "npm:^3.13.1" - "@solana/web3.js": "npm:^1.90.0" - "@trezor/utils": "npm:9.0.23" - bignumber.js: "npm:^9.1.2" + "@solana/web3.js": "npm:^1.91.6" + "@trezor/env-utils": "npm:1.1.0" + "@trezor/utils": "npm:9.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/282210d3f857d5d7d1f4b5097a2840a96e16067ebeefcba48a66ba7957a29604c0286f3fc2e8a6b73f0a5eca0eda5644fa46bb647102e39fac2ff8e4d989a0ca + checksum: 10/b7866a4a59afc76b60dcd785ad9567cbfae4810a7510b09a7f1e2b0207834677216ce5b9c82c6f9a228cfb51e38ecf4f7e0f7501c67c5f083a4db06a8a9786e5 languageName: node linkType: hard -"@trezor/blockchain-link@npm:2.1.28": - version: 2.1.28 - resolution: "@trezor/blockchain-link@npm:2.1.28" +"@trezor/blockchain-link@npm:2.2.0": + version: 2.2.0 + resolution: "@trezor/blockchain-link@npm:2.2.0" dependencies: "@solana/buffer-layout": "npm:^4.0.1" - "@solana/web3.js": "npm:^1.90.0" - "@trezor/blockchain-link-types": "npm:1.0.15" - "@trezor/blockchain-link-utils": "npm:1.0.16" - "@trezor/utils": "npm:9.0.23" - "@trezor/utxo-lib": "npm:2.0.8" + "@solana/web3.js": "npm:^1.90.2" + "@trezor/blockchain-link-types": "npm:1.1.0" + "@trezor/blockchain-link-utils": "npm:1.1.0" + "@trezor/utils": "npm:9.1.0" + "@trezor/utxo-lib": "npm:2.1.0" "@types/web": "npm:^0.0.138" - bignumber.js: "npm:^9.1.2" events: "npm:^3.3.0" ripple-lib: "npm:^1.10.1" socks-proxy-agent: "npm:6.1.1" - ws: "npm:^8.16.0" + ws: "npm:^8.17.1" peerDependencies: tslib: ^2.6.2 - checksum: 10/4e4c751cd2f912ea3f2cdcda3d16ca6e84f7536bdcaf61be2d6aa2eb757ff2e4b872f06f2a51578629d2e3b8039e0d17512e612d747c4629a0389727927230c9 + checksum: 10/3e0c5ddadb6d66f9c1b87ebecf9ac35729f1929c840bcab512de71cae04cf04d4a3562e6893443e57143adbf4a66de5780e29e95e969103a756bdb9454988313 languageName: node linkType: hard -"@trezor/connect-analytics@npm:1.0.14": - version: 1.0.14 - resolution: "@trezor/connect-analytics@npm:1.0.14" +"@trezor/connect-analytics@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/connect-analytics@npm:1.1.0" dependencies: - "@trezor/analytics": "npm:1.0.16" + "@trezor/analytics": "npm:1.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/2ccc5b0c76a4960bc5ab0bbceafd386d30b123ec45b2631862de49d9b052f1020b84813988a9105e86782216939774fc51725fefa5e08a3241ef0d3067da37bb + checksum: 10/e6beecb036be00d3c62af7f4f4ff96a6756df698ac19807a1b4be3fb0bd50a702780ee9a47e7e64ffebfab353ee532b07d0b5e7efdb3b611f88b9d8f9bb40157 languageName: node linkType: hard -"@trezor/connect-common@npm:0.0.31": - version: 0.0.31 - resolution: "@trezor/connect-common@npm:0.0.31" +"@trezor/connect-common@npm:0.1.0": + version: 0.1.0 + resolution: "@trezor/connect-common@npm:0.1.0" dependencies: - "@trezor/env-utils": "npm:1.0.15" - "@trezor/utils": "npm:9.0.23" + "@trezor/env-utils": "npm:1.1.0" + "@trezor/utils": "npm:9.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/c3eaef87c23f3ecc5eaaa5b08d865a5a9d09fadec010fb0fa33f43b204ec6c4c472fe3380c76a2ca005f4f6861844b63cdf3f447519563bbab529f7601918142 + checksum: 10/a88a2798597bfa876876ad98752fd76dbad6c185f0130127e032279a21c78b1dc3af93a5a7b8e29956acf84645f65843964a5ec2c8ef4dc30cc6cfe8f6507d45 languageName: node linkType: hard @@ -9643,155 +9599,155 @@ __metadata: languageName: node linkType: hard -"@trezor/connect-web@npm:9.2.2, @trezor/connect-web@npm:^9.1.11": - version: 9.2.2 - resolution: "@trezor/connect-web@npm:9.2.2" +"@trezor/connect-web@npm:9.3.0": + version: 9.3.0 + resolution: "@trezor/connect-web@npm:9.3.0" dependencies: - "@trezor/connect": "npm:9.2.2" - "@trezor/connect-common": "npm:0.0.31" - "@trezor/utils": "npm:9.0.23" - events: "npm:^3.3.0" + "@trezor/connect": "npm:9.3.0" + "@trezor/connect-common": "npm:0.1.0" + "@trezor/utils": "npm:9.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/1e0fc62b236c722427e101cceec4e975e38c2dbe73c692c138e4b9ddbde7705ea7b5564525a8ce91eed5acf754a2cb080fc53cc0aab9c7030dfdd6e09636316c + checksum: 10/a09a04f33d44ea2934863650313dda1f255e8e0ce283760e0e9bccbec49234865b9620cf37d2e4e4f5426b32f62bd3e2618f24df6df16248c159baf2fdb1eb0e languageName: node linkType: hard -"@trezor/connect-web@patch:@trezor/connect-web@npm%3A9.2.2#~/.yarn/patches/@trezor-connect-web-npm-9.2.2-a4de8e45fc.patch": - version: 9.2.2 - resolution: "@trezor/connect-web@patch:@trezor/connect-web@npm%3A9.2.2#~/.yarn/patches/@trezor-connect-web-npm-9.2.2-a4de8e45fc.patch::version=9.2.2&hash=36bc80" +"@trezor/connect-web@patch:@trezor/connect-web@npm%3A9.3.0#~/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch": + version: 9.3.0 + resolution: "@trezor/connect-web@patch:@trezor/connect-web@npm%3A9.3.0#~/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch::version=9.3.0&hash=58af97" dependencies: - "@trezor/connect": "npm:9.2.2" - "@trezor/connect-common": "npm:0.0.31" - "@trezor/utils": "npm:9.0.23" - events: "npm:^3.3.0" + "@trezor/connect": "npm:9.3.0" + "@trezor/connect-common": "npm:0.1.0" + "@trezor/utils": "npm:9.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/94f4d20b981fcacf397b8fdf153a21f2fe3e9b5b8f1ca5376b36f8f363c2043ea07135edaeba18f2bdeb2b3dcd85ad4f03b38613c1a2fd807fe4fdea8894cb9b + checksum: 10/63f1c386aa6bb5bbeefe528d2564953e2635c0c549830654d7481dc9130f24593501472d178af2c65577182b2f39928bfd5430e85e836caec3cf74ab666489aa languageName: node linkType: hard -"@trezor/connect@npm:9.2.2": - version: 9.2.2 - resolution: "@trezor/connect@npm:9.2.2" +"@trezor/connect@npm:9.3.0": + version: 9.3.0 + resolution: "@trezor/connect@npm:9.3.0" dependencies: "@babel/preset-typescript": "npm:^7.23.3" "@ethereumjs/common": "npm:^4.2.0" "@ethereumjs/tx": "npm:^5.2.1" "@fivebinaries/coin-selection": "npm:2.2.1" - "@trezor/blockchain-link": "npm:2.1.28" - "@trezor/blockchain-link-types": "npm:1.0.15" - "@trezor/connect-analytics": "npm:1.0.14" - "@trezor/connect-common": "npm:0.0.31" - "@trezor/protobuf": "npm:1.0.11" - "@trezor/protocol": "npm:1.0.7" - "@trezor/schema-utils": "npm:1.0.3" - "@trezor/transport": "npm:1.1.27" - "@trezor/utils": "npm:9.0.23" - "@trezor/utxo-lib": "npm:2.0.8" - bignumber.js: "npm:^9.1.2" + "@trezor/blockchain-link": "npm:2.2.0" + "@trezor/blockchain-link-types": "npm:1.1.0" + "@trezor/connect-analytics": "npm:1.1.0" + "@trezor/connect-common": "npm:0.1.0" + "@trezor/protobuf": "npm:1.1.0" + "@trezor/protocol": "npm:1.1.0" + "@trezor/schema-utils": "npm:1.1.0" + "@trezor/transport": "npm:1.2.0" + "@trezor/utils": "npm:9.1.0" + "@trezor/utxo-lib": "npm:2.1.0" blakejs: "npm:^1.2.1" bs58: "npm:^5.0.0" bs58check: "npm:^3.0.1" cross-fetch: "npm:^4.0.0" - events: "npm:^3.3.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/eee4cf2edd202d6fab91b8a6d0890984e07753dbe10f21dca199cd81669627b1c833e0bc9404eb082d89dbde13b41c0181c8c3e946f2fe1c4347b632a59eeec7 + checksum: 10/4210e5c72d59a3bc3a40597b585aa425967865e5067b51714157f239184ca23f9044e145948dfd4afb2aa0a7405563c8286f0bfe2ef1b9cd947e63eee283f962 languageName: node linkType: hard -"@trezor/env-utils@npm:1.0.15": - version: 1.0.15 - resolution: "@trezor/env-utils@npm:1.0.15" +"@trezor/env-utils@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/env-utils@npm:1.1.0" dependencies: - expo-constants: "npm:15.4.5" ua-parser-js: "npm:^1.0.37" peerDependencies: + expo-constants: "*" expo-localization: "*" react-native: "*" tslib: ^2.6.2 peerDependenciesMeta: + expo-constants: + optional: true expo-localization: optional: true react-native: optional: true - checksum: 10/55ce7e6a93830f9bc3af8d6d646919c7f1315ca55666edd8b69e91794bad62e42239da31f0aeefd4e2a9bc36b9b1fc62b8ca98c3700570fef0ff370f8c83584b + checksum: 10/1b09c9ebc6070396528d5f1f9f44085b0465356cfcb936a7d69cff0b26ee024d90f0bf4e531cc927a5744651d70d3fddbd4d8e5aa771a9b62b86c29d08d2682d languageName: node linkType: hard -"@trezor/protobuf@npm:1.0.11": - version: 1.0.11 - resolution: "@trezor/protobuf@npm:1.0.11" +"@trezor/protobuf@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/protobuf@npm:1.1.0" dependencies: - "@trezor/schema-utils": "npm:1.0.3" - long: "npm:^4.0.0" + "@trezor/schema-utils": "npm:1.1.0" protobufjs: "npm:7.2.6" peerDependencies: tslib: ^2.6.2 - checksum: 10/9a5f30669a69492d900557b69386a0c020f7e932bb37e0210c0feb763ebb78d848281047c20ebd110e84c2b148d65cd6e519178fc4fa64d391846d4a131761ad + checksum: 10/61846d9a236af832834a7d6c3a8f73e81f83effe9c66a37cab6819f4318e019b63749aa450c2c8bf3b24ed745f3897d01dd4b23b144a43c62a6f2359055b8710 languageName: node linkType: hard -"@trezor/protocol@npm:1.0.7": - version: 1.0.7 - resolution: "@trezor/protocol@npm:1.0.7" +"@trezor/protocol@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/protocol@npm:1.1.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/a737e05c76d595f3e98f6e1f35ad3906b7d9723658f10f9f1b2966aef658a6faae1067f9e73f840a482ff23a68217322c88d7fa5e3733e964edbf62fabfa1d30 + checksum: 10/860601a91621561d8e8b5c4004d3d6f6ef5ab34a2c793ce9554ff0989d4a8f57465f5f1d93a8c3f828366449254d8357efa661770d2ed135d70a88de6b7d36c8 languageName: node linkType: hard -"@trezor/schema-utils@npm:1.0.3": - version: 1.0.3 - resolution: "@trezor/schema-utils@npm:1.0.3" +"@trezor/schema-utils@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/schema-utils@npm:1.1.0" dependencies: "@sinclair/typebox": "npm:^0.31.28" ts-mixer: "npm:^6.0.3" peerDependencies: tslib: ^2.6.2 - checksum: 10/17c536268bd14a0c3cd7883aed4b503e06e9d8b09be6a64fe9022b5058021f29473e9f2ca4a64aa620d078a7441bfab1810657bf745d78218cc511baea9c3a3f + checksum: 10/cb0d6fa877f44b10d41b4d5f07e5852776da16b1fb76395f35d3a310701c809bc68f9ffa9c13487a9fcdbbabf0edafe70193b1bedc43329267885857eabaa5e7 languageName: node linkType: hard -"@trezor/transport@npm:1.1.27": - version: 1.1.27 - resolution: "@trezor/transport@npm:1.1.27" +"@trezor/transport@npm:1.2.0": + version: 1.2.0 + resolution: "@trezor/transport@npm:1.2.0" dependencies: - "@trezor/protobuf": "npm:1.0.11" - "@trezor/protocol": "npm:1.0.7" - "@trezor/utils": "npm:9.0.23" + "@trezor/protobuf": "npm:1.1.0" + "@trezor/protocol": "npm:1.1.0" + "@trezor/utils": "npm:9.1.0" + cross-fetch: "npm:^4.0.0" json-stable-stringify: "npm:^1.1.1" long: "npm:^4.0.0" protobufjs: "npm:7.2.6" usb: "npm:^2.11.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/3d5179718b7e5aad6e5fb2940dfa8f0a088ec51305049b92da5d1317fe43b7f2fa4fc025b79c522e94c1d89f38532a034582043549f24f363a2a9fd5e05758c9 + checksum: 10/e3725f98d5fa35956c81d2f9f0cf64149d7747195842654572e40810da94c1e44c8ca021fa55495d3c547f19c130f28fd13b13c051643fecb3c395c01428fc7b languageName: node linkType: hard -"@trezor/type-utils@npm:1.0.5": - version: 1.0.5 - resolution: "@trezor/type-utils@npm:1.0.5" - checksum: 10/c934a566d2067d3da9d2dca47a1e974fde2396e1d5a745f4765ce29d271a7701120f367355e9fa41b7c0a9e14883c32f2ed1bcb1d71c31a85583799949de2927 +"@trezor/type-utils@npm:1.1.0": + version: 1.1.0 + resolution: "@trezor/type-utils@npm:1.1.0" + checksum: 10/382bac3c2a382d42fc5da3edfa0d8a955ca25a5adb165594af4ecaf2ff3a2090108ad53ee2ad75673dd9ebabd5bfcfe036564576a3c62926a44d99ba102d0583 languageName: node linkType: hard -"@trezor/utils@npm:9.0.23": - version: 9.0.23 - resolution: "@trezor/utils@npm:9.0.23" +"@trezor/utils@npm:9.1.0": + version: 9.1.0 + resolution: "@trezor/utils@npm:9.1.0" + dependencies: + bignumber.js: "npm:^9.1.2" peerDependencies: tslib: ^2.6.2 - checksum: 10/e5b2480c7334661b48f7dce7c5fc43e98ff73b620204c047f38e77c1794f7e9b28159abed1a9e76b7a5d420e60a3e7e3234ffce2283d2a3aa6da66e9f404977e + checksum: 10/59590dcbb7c062991cbe0075a1b5e3b683929f2251ade96f90da12b2a01accbe14a12ef8d52e028934c97466aaeeb971b82669f0ecc69c52c42eb25f68ba92b3 languageName: node linkType: hard -"@trezor/utxo-lib@npm:2.0.8": - version: 2.0.8 - resolution: "@trezor/utxo-lib@npm:2.0.8" +"@trezor/utxo-lib@npm:2.1.0": + version: 2.1.0 + resolution: "@trezor/utxo-lib@npm:2.1.0" dependencies: - "@trezor/utils": "npm:9.0.23" + "@trezor/utils": "npm:9.1.0" bchaddrjs: "npm:^0.5.2" bech32: "npm:^2.0.0" bip66: "npm:^1.1.5" @@ -9801,7 +9757,6 @@ __metadata: bn.js: "npm:^5.2.1" bs58: "npm:^5.0.0" bs58check: "npm:^3.0.1" - create-hash: "npm:^1.2.0" create-hmac: "npm:^1.1.7" int64-buffer: "npm:^1.0.1" pushdata-bitcoin: "npm:^1.0.1" @@ -9811,7 +9766,7 @@ __metadata: wif: "npm:^4.0.0" peerDependencies: tslib: ^2.6.2 - checksum: 10/76846be936458cb7deb18c7a90c802bbc23e06c22fe5223127765ddf16bc89f7ed357c299bcdde858a9dbac0a471c9c960255f6a1e1abe43fa2c878b90790075 + checksum: 10/6b57d393c0315e8599a2381b6f09f6df419e8d11e068dd853d6c8556c113fdd6167d696507a5e32e990e09ad3b84645874e15773f83b78e3df7b7bfe040125d3 languageName: node linkType: hard @@ -11576,20 +11531,6 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.8.8": - version: 0.8.10 - resolution: "@xmldom/xmldom@npm:0.8.10" - checksum: 10/62400bc5e0e75b90650e33a5ceeb8d94829dd11f9b260962b71a784cd014ddccec3e603fe788af9c1e839fa4648d8c521ebd80d8b752878d3a40edabc9ce7ccf - languageName: node - linkType: hard - -"@xmldom/xmldom@npm:~0.7.7": - version: 0.7.13 - resolution: "@xmldom/xmldom@npm:0.7.13" - checksum: 10/a359d15fe3c24fe85a1e1b3bc4cfd23d4f014fb8aa382aa445cccaac545e42958b75e386dd4853c76d82036401400b8d5e33cbcbfb6af7cdadeba769eae6122a - languageName: node - linkType: hard - "@xstate/fsm@npm:^2.0.0": version: 2.0.0 resolution: "@xstate/fsm@npm:2.0.0" @@ -12239,7 +12180,7 @@ __metadata: languageName: node linkType: hard -"any-promise@npm:^1.0.0, any-promise@npm:^1.1.0": +"any-promise@npm:^1.1.0": version: 1.3.0 resolution: "any-promise@npm:1.3.0" checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb @@ -13129,7 +13070,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2, base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.0.2, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -13217,7 +13158,7 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:1.6.x, big-integer@npm:^1.6.44, big-integer@npm:^1.6.48": +"big-integer@npm:^1.6.44, big-integer@npm:^1.6.48": version: 1.6.52 resolution: "big-integer@npm:1.6.52" checksum: 10/4bc6ae152a96edc9f95020f5fc66b13d26a9ad9a021225a9f0213f7e3dc44269f423aa8c42e19d6ac4a63bb2b22140b95d10be8f9ca7a6d9aa1b22b330d1f514 @@ -13483,24 +13424,6 @@ __metadata: languageName: node linkType: hard -"bplist-creator@npm:0.1.1": - version: 0.1.1 - resolution: "bplist-creator@npm:0.1.1" - dependencies: - stream-buffers: "npm:2.2.x" - checksum: 10/4f185ee84a97f4b7c7caa73436b9c664e410f8640661a4ae97f0fbe1420aa8fc5db39d9a9d8571c87069665f6d3c5a8a8d2be30db7b64681b7cc366695211913 - languageName: node - linkType: hard - -"bplist-parser@npm:0.3.2": - version: 0.3.2 - resolution: "bplist-parser@npm:0.3.2" - dependencies: - big-integer: "npm:1.6.x" - checksum: 10/6edf4354c32f5661c258422e478be0f5c6a779bb87c2ae15ee92dd1c046368decbff8a28c86c558a3b7007e1381b91d5eed1c4c8e83e86405197777d944abaa8 - languageName: node - linkType: hard - "bplist-parser@npm:^0.2.0": version: 0.2.0 resolution: "bplist-parser@npm:0.2.0" @@ -14893,13 +14816,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.0": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c - languageName: node - linkType: hard - "commander@npm:^5.1.0": version: 5.1.0 resolution: "commander@npm:5.1.0" @@ -18470,17 +18386,6 @@ __metadata: languageName: node linkType: hard -"expo-constants@npm:15.4.5": - version: 15.4.5 - resolution: "expo-constants@npm:15.4.5" - dependencies: - "@expo/config": "npm:~8.5.0" - peerDependencies: - expo: "*" - checksum: 10/9eb256895aa24efd41ca8c48b7dd76c03ecad4662e86c32440ea7d4162397014c80775b73db499add5e9452721f236c6ba333af93d8a277ad964f1fd938305f1 - languageName: node - linkType: hard - "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -19052,7 +18957,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:5.0.0, find-up@npm:^5.0.0, find-up@npm:~5.0.0": +"find-up@npm:5.0.0, find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: @@ -19840,13 +19745,6 @@ __metadata: languageName: node linkType: hard -"getenv@npm:^1.0.0": - version: 1.0.0 - resolution: "getenv@npm:1.0.0" - checksum: 10/0b8f5f6ddc2400712bf584765e0b218a7b9eabe41d3cafaf2b73fc36140248f72f7040a38f852804a321ec9813a6873a7cafd7bf1d3ab43e8b6f9a18aba663ad - languageName: node - linkType: hard - "gh-pages@npm:^5.0.0": version: 5.0.0 resolution: "gh-pages@npm:5.0.0" @@ -21513,13 +21411,6 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.1": - version: 2.0.1 - resolution: "ip@npm:2.0.1" - checksum: 10/d6dd154e1bc5e8725adfdd6fb92218635b9cbe6d873d051bd63b178f009777f751a5eea4c67021723a7056325fc3052f8b6599af0a2d56f042c93e684b4a0349 - languageName: node - linkType: hard - "ipaddr.js@npm:1.9.1": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" @@ -22580,9 +22471,9 @@ __metadata: languageName: node linkType: hard -"jayson@npm:^4.1.0": - version: 4.1.0 - resolution: "jayson@npm:4.1.0" +"jayson@npm:^4.1.1": + version: 4.1.2 + resolution: "jayson@npm:4.1.2" dependencies: "@types/connect": "npm:^3.4.33" "@types/node": "npm:^12.12.54" @@ -22595,10 +22486,10 @@ __metadata: isomorphic-ws: "npm:^4.0.1" json-stringify-safe: "npm:^5.0.1" uuid: "npm:^8.3.2" - ws: "npm:^7.4.5" + ws: "npm:^7.5.10" bin: jayson: bin/jayson.js - checksum: 10/d76b3f220e14388007958b8f79e793009d6bc572b6e5ea65848a0f027b324d1950d836468986d7e38ddfb30b660e8b048b459c8bc8456e9b38dbbebc60a563b4 + checksum: 10/7ad5e80e11ef39b7382509d046546883d2595998aa245768b342bcc0a63843e011e16f02a023d5a78fb74df788b5f97c1e850568fc1b90c138fa4772cc55572c languageName: node linkType: hard @@ -24706,15 +24597,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10/fc1fe2ee205f7c8855fa0f34c1ab0bcf14b6229e35579ec1fd1079f31d6fc8ef8eb6fd17f2f4d99788d7e339f50e047555551ebd5e434dda503696e7c6591825 - languageName: node - linkType: hard - "lru-cache@npm:^7.14.0": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" @@ -25392,7 +25274,7 @@ __metadata: "@metamask/eslint-config-typescript": "npm:^9.0.1" "@metamask/eslint-plugin-design-tokens": "npm:^1.1.0" "@metamask/eth-json-rpc-filters": "npm:^7.0.0" - "@metamask/eth-json-rpc-middleware": "npm:^12.1.1" + "@metamask/eth-json-rpc-middleware": "npm:^14.0.0" "@metamask/eth-ledger-bridge-keyring": "npm:^2.0.1" "@metamask/eth-query": "npm:^4.0.0" "@metamask/eth-sig-util": "npm:^7.0.1" @@ -25459,28 +25341,28 @@ __metadata: "@sentry/cli": "npm:^2.19.4" "@sentry/types": "npm:^8.19.0" "@sentry/utils": "npm:^8.19.0" - "@storybook/addon-a11y": "npm:^7.6.19" - "@storybook/addon-actions": "npm:^7.6.19" + "@storybook/addon-a11y": "npm:^7.6.20" + "@storybook/addon-actions": "npm:^7.6.20" "@storybook/addon-designs": "npm:^7.0.9" - "@storybook/addon-docs": "npm:^7.6.19" - "@storybook/addon-essentials": "npm:^7.6.19" + "@storybook/addon-docs": "npm:^7.6.20" + "@storybook/addon-essentials": "npm:^7.6.20" "@storybook/addon-knobs": "npm:^7.0.2" - "@storybook/addon-mdx-gfm": "npm:^7.6.19" - "@storybook/addons": "npm:^7.6.19" - "@storybook/api": "npm:^7.6.19" - "@storybook/client-api": "npm:^7.6.19" - "@storybook/components": "npm:^7.6.19" - "@storybook/core-events": "npm:^7.6.19" - "@storybook/react": "npm:^7.6.19" - "@storybook/react-webpack5": "npm:^7.6.19" + "@storybook/addon-mdx-gfm": "npm:^7.6.20" + "@storybook/addons": "npm:^7.6.20" + "@storybook/api": "npm:^7.6.20" + "@storybook/client-api": "npm:^7.6.20" + "@storybook/components": "npm:^7.6.20" + "@storybook/core-events": "npm:^7.6.20" + "@storybook/react": "npm:^7.6.20" + "@storybook/react-webpack5": "npm:^7.6.20" "@storybook/storybook-deployer": "npm:^2.8.16" "@storybook/test-runner": "npm:^0.14.1" - "@storybook/theming": "npm:^7.6.19" + "@storybook/theming": "npm:^7.6.20" "@testing-library/jest-dom": "npm:^5.11.10" "@testing-library/react": "npm:^10.4.8" "@testing-library/react-hooks": "npm:^8.0.1" "@testing-library/user-event": "npm:^14.4.3" - "@trezor/connect-web": "patch:@trezor/connect-web@npm%3A9.2.2#~/.yarn/patches/@trezor-connect-web-npm-9.2.2-a4de8e45fc.patch" + "@trezor/connect-web": "patch:@trezor/connect-web@npm%3A9.3.0#~/.yarn/patches/@trezor-connect-web-npm-9.3.0-040ab10d9a.patch" "@tsconfig/node20": "npm:^20.1.2" "@types/babelify": "npm:^7.3.7" "@types/browserify": "npm:^12.0.37" @@ -25678,8 +25560,8 @@ __metadata: source-map: "npm:^0.7.4" source-map-explorer: "npm:^2.4.2" sprintf-js: "npm:^1.1.3" - storybook: "npm:^7.6.19" - storybook-dark-mode: "npm:^3.0.3" + storybook: "npm:^7.6.20" + storybook-dark-mode: "npm:^4.0.2" stream-browserify: "npm:^3.0.0" string.prototype.matchall: "npm:^4.0.2" style-loader: "npm:^0.21.0" @@ -26720,17 +26602,6 @@ __metadata: languageName: node linkType: hard -"mz@npm:^2.7.0": - version: 2.7.0 - resolution: "mz@npm:2.7.0" - dependencies: - any-promise: "npm:^1.0.0" - object-assign: "npm:^4.0.1" - thenify-all: "npm:^1.0.0" - checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 - languageName: node - linkType: hard - "nan@npm:^2.13.2": version: 2.15.0 resolution: "nan@npm:2.15.0" @@ -28359,7 +28230,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.5": +"pirates@npm:^4.0.4, pirates@npm:^4.0.5": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f @@ -28450,17 +28321,6 @@ __metadata: languageName: node linkType: hard -"plist@npm:^3.0.5": - version: 3.1.0 - resolution: "plist@npm:3.1.0" - dependencies: - "@xmldom/xmldom": "npm:^0.8.8" - base64-js: "npm:^1.5.1" - xmlbuilder: "npm:^15.1.1" - checksum: 10/f513beecc01a021b4913d4e5816894580b284335ae437e7ed2d5e78f8b6f0d2e0f874ec57bab9c9d424cc49e77b8347efa75abcfa8ac138dbfb63a045e1ce559 - languageName: node - linkType: hard - "plugin-error@npm:1.0.1": version: 1.0.1 resolution: "plugin-error@npm:1.0.1" @@ -31603,13 +31463,6 @@ __metadata: languageName: node linkType: hard -"sax@npm:>=0.6.0": - version: 1.3.0 - resolution: "sax@npm:1.3.0" - checksum: 10/bb571b31d30ecb0353c2ff5f87b117a03e5fb9eb4c1519141854c1a8fbee0a77ddbe8045f413259e711833aa03da210887df8527d19cdc55f299822dbf4b34de - languageName: node - linkType: hard - "saxes@npm:^5.0.1": version: 5.0.1 resolution: "saxes@npm:5.0.1" @@ -31790,17 +31643,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.3": - version: 7.5.3 - resolution: "semver@npm:7.5.3" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10/80b4b3784abff33bacf200727e012dc66768ed5835441e0a802ba9f3f5dd6b10ee366294711f5e7e13d73b82a6127ea55f11f9884d35e76a6a618dc11bc16ccf - languageName: node - linkType: hard - "semver@npm:7.6.2, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": version: 7.6.2 resolution: "semver@npm:7.6.2" @@ -32113,17 +31955,6 @@ __metadata: languageName: node linkType: hard -"simple-plist@npm:^1.1.0": - version: 1.4.0 - resolution: "simple-plist@npm:1.4.0" - dependencies: - bplist-creator: "npm:0.1.1" - bplist-parser: "npm:0.3.2" - plist: "npm:^3.0.5" - checksum: 10/e03f1619370d8d502543f2f9c6448722456dd2594e34d689eb8706c7c9e328c1ed5bef89280cb9e13426942ec1ab0f5655406ab70550be28b84fcccc304d447b - languageName: node - linkType: hard - "single-call-balance-checker-abi@npm:^1.0.0": version: 1.0.0 resolution: "single-call-balance-checker-abi@npm:1.0.0" @@ -32192,13 +32023,6 @@ __metadata: languageName: node linkType: hard -"slugify@npm:^1.3.4, slugify@npm:^1.6.6": - version: 1.6.6 - resolution: "slugify@npm:1.6.6" - checksum: 10/d0737cdedc834c50f74227bc1a1cf4f449f3575893f031b0e8c59f501c73526c866a23e47261b262c7acdaaaaf30d6f9e8aaae22772b3f56e858ac84c35efa7b - languageName: node - linkType: hard - "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -32628,39 +32452,31 @@ __metadata: languageName: node linkType: hard -"storybook-dark-mode@npm:^3.0.3": - version: 3.0.3 - resolution: "storybook-dark-mode@npm:3.0.3" +"storybook-dark-mode@npm:^4.0.2": + version: 4.0.2 + resolution: "storybook-dark-mode@npm:4.0.2" dependencies: - "@storybook/addons": "npm:^7.0.0" - "@storybook/components": "npm:^7.0.0" - "@storybook/core-events": "npm:^7.0.0" + "@storybook/components": "npm:^8.0.0" + "@storybook/core-events": "npm:^8.0.0" "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:^7.0.0" - "@storybook/theming": "npm:^7.0.0" + "@storybook/icons": "npm:^1.2.5" + "@storybook/manager-api": "npm:^8.0.0" + "@storybook/theming": "npm:^8.0.0" fast-deep-equal: "npm:^3.1.3" memoizerific: "npm:^1.11.3" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 10/59e2f4c69abcf4b65941e7fb4c26d748c9d303e2904ba79def6ad624076a9440e1bdbebf36631c16693bb384703384c3931550680969a4b98589cb9ff458a6e8 + checksum: 10/c9ef7bc6734df7486ff763c9da3c69505269eaf5fd7b5b489553f023b363ea892862241e6d701ad647ca5d1e64fd9a2646b8985c7ea8ac97a3bca87891db6fe5 languageName: node linkType: hard -"storybook@npm:^7.6.19": - version: 7.6.19 - resolution: "storybook@npm:7.6.19" +"storybook@npm:^7.6.20": + version: 7.6.20 + resolution: "storybook@npm:7.6.20" dependencies: - "@storybook/cli": "npm:7.6.19" + "@storybook/cli": "npm:7.6.20" bin: sb: ./index.js storybook: ./index.js - checksum: 10/0fc4043ed8230c5af8985f3464f66af1165b36ad99518a22fbdd630677121eae8e7ddbff189bab7bf5199bc79389c0d0a71bcd066c469ba4b61993d86f0c7022 + checksum: 10/7442d0bf404fafdfa6921d388b7af78e835bd4278ec7cc0c6565d3723cb1cd7d24621a97186abd553f1345ddf78628e517656af64bcb4a3d9e9c6253b01461e8 languageName: node linkType: hard @@ -32674,13 +32490,6 @@ __metadata: languageName: node linkType: hard -"stream-buffers@npm:2.2.x": - version: 2.2.0 - resolution: "stream-buffers@npm:2.2.0" - checksum: 10/79f897cead810383b4181e4ee56f4855a69b51c9da4c96b91ccca6ee6fe90b908bea9b304225bedd1a5e2c41d72bc88d3ada7f897b51f8ffae3593f7460ecbc8 - languageName: node - linkType: hard - "stream-combiner2@npm:^1.1.1": version: 1.1.1 resolution: "stream-combiner2@npm:1.1.1" @@ -33294,24 +33103,6 @@ __metadata: languageName: node linkType: hard -"sucrase@npm:^3.35.0": - version: 3.35.0 - resolution: "sucrase@npm:3.35.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.2" - commander: "npm:^4.0.0" - glob: "npm:^10.3.10" - lines-and-columns: "npm:^1.1.6" - mz: "npm:^2.7.0" - pirates: "npm:^4.0.1" - ts-interface-checker: "npm:^0.1.9" - bin: - sucrase: bin/sucrase - sucrase-node: bin/sucrase-node - checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe - languageName: node - linkType: hard - "sugarss@npm:^2.0.0": version: 2.0.0 resolution: "sugarss@npm:2.0.0" @@ -33337,13 +33128,6 @@ __metadata: languageName: node linkType: hard -"superstruct@npm:^0.14.2": - version: 0.14.2 - resolution: "superstruct@npm:0.14.2" - checksum: 10/81eb2af08f2a5b1c3d4c9a7815fe0decd4eddc305dbd74471b2c29496910dfb1188e54c4bfc8c5b5e64c0f69cd303af554332d1f9d7967eff39144d1a4c4d2e2 - languageName: node - linkType: hard - "superstruct@npm:^1.0.3": version: 1.0.3 resolution: "superstruct@npm:1.0.3" @@ -33351,6 +33135,13 @@ __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:8.1.1, supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" @@ -33652,24 +33443,6 @@ __metadata: languageName: node linkType: hard -"thenify-all@npm:^1.0.0": - version: 1.6.0 - resolution: "thenify-all@npm:1.6.0" - dependencies: - thenify: "npm:>= 3.1.0 < 4" - checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e - languageName: node - linkType: hard - -"thenify@npm:>= 3.1.0 < 4": - version: 3.3.1 - resolution: "thenify@npm:3.3.1" - dependencies: - any-promise: "npm:^1.0.0" - checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d - languageName: node - linkType: hard - "thread-stream@npm:^2.0.0": version: 2.3.0 resolution: "thread-stream@npm:2.3.0" @@ -34043,13 +33816,6 @@ __metadata: languageName: node linkType: hard -"ts-interface-checker@npm:^0.1.9": - version: 0.1.13 - resolution: "ts-interface-checker@npm:0.1.13" - checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 - languageName: node - linkType: hard - "ts-mixer@npm:6.0.4": version: 6.0.4 resolution: "ts-mixer@npm:6.0.4" @@ -34197,13 +33963,6 @@ __metadata: languageName: node linkType: hard -"tweetnacl-util@npm:^0.15.1": - version: 0.15.1 - resolution: "tweetnacl-util@npm:0.15.1" - checksum: 10/ae6aa8a52cdd21a95103a4cc10657d6a2040b36c7a6da7b9d3ab811c6750a2d5db77e8c36969e75fdee11f511aa2b91c552496c6e8e989b6e490e54aca2864fc - languageName: node - linkType: hard - "tweetnacl@npm:^1.0.3": version: 1.0.3 resolution: "tweetnacl@npm:1.0.3" @@ -35150,15 +34909,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^7.0.3": - version: 7.0.3 - resolution: "uuid@npm:7.0.3" - bin: - uuid: dist/bin/uuid - checksum: 10/b2a4d30ecd6581015175487426558aafd7f7b4013a2e30802c128cc28cad9abe46ecd36c02f7fbcde7908fd4672334818d56a441c0871963d6bd89d911bef2ea - languageName: node - linkType: hard - "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -36122,7 +35872,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:*, ws@npm:>=8.14.2, ws@npm:^8.0.0, ws@npm:^8.11.0, ws@npm:^8.16.0, ws@npm:^8.17.1, ws@npm:^8.2.3, ws@npm:^8.5.0, ws@npm:^8.8.0": +"ws@npm:*, ws@npm:>=8.14.2, ws@npm:^8.0.0, ws@npm:^8.11.0, ws@npm:^8.17.1, ws@npm:^8.2.3, ws@npm:^8.5.0, ws@npm:^8.8.0": version: 8.17.1 resolution: "ws@npm:8.17.1" peerDependencies: @@ -36146,7 +35896,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7, ws@npm:^7.2.0, ws@npm:^7.4.5, ws@npm:^7.4.6, ws@npm:^7.5.0, ws@npm:^7.5.10": +"ws@npm:^7, ws@npm:^7.2.0, ws@npm:^7.4.6, ws@npm:^7.5.0, ws@npm:^7.5.10": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: @@ -36161,16 +35911,6 @@ __metadata: languageName: node linkType: hard -"xcode@npm:^3.0.1": - version: 3.0.1 - resolution: "xcode@npm:3.0.1" - dependencies: - simple-plist: "npm:^1.1.0" - uuid: "npm:^7.0.3" - checksum: 10/539d7b808ccce648078c5ceb63c4f9c14a7018a7db688fe0ff55c7d59e685c67392f18e9f531ce524f8d71162e836714b8835fa0a8688e976d4a293b147917c3 - languageName: node - linkType: hard - "xdg-basedir@npm:^3.0.0": version: 3.0.0 resolution: "xdg-basedir@npm:3.0.0" @@ -36199,16 +35939,6 @@ __metadata: languageName: node linkType: hard -"xml2js@npm:0.6.0": - version: 0.6.0 - resolution: "xml2js@npm:0.6.0" - dependencies: - sax: "npm:>=0.6.0" - xmlbuilder: "npm:~11.0.0" - checksum: 10/717f44ceef3f749ac21b381f829ba6525eec78cb9a53638046739565900e505a8e8caa62a6850b0a94cfe57ebe1a29b5367d55c4f642a3d640b9f69ca1fc7c8c - languageName: node - linkType: hard - "xml@npm:^1.0.1": version: 1.0.1 resolution: "xml@npm:1.0.1" @@ -36216,27 +35946,6 @@ __metadata: languageName: node linkType: hard -"xmlbuilder@npm:^14.0.0": - version: 14.0.0 - resolution: "xmlbuilder@npm:14.0.0" - checksum: 10/c134bfd15bd6efe0af0306939a8cd667efb6aeace3779043c6bdf18373c0192146907a4ab442fc24e799419a3033e3c99ce41c43016bdf580d40f8ab0e0dc841 - languageName: node - linkType: hard - -"xmlbuilder@npm:^15.1.1": - version: 15.1.1 - resolution: "xmlbuilder@npm:15.1.1" - checksum: 10/e6f4bab2504afdd5f80491bda948894d2146756532521dbe7db33ae0931cd3000e3b4da19b3f5b3f51bedbd9ee06582144d28136d68bd1df96579ecf4d4404a2 - languageName: node - linkType: hard - -"xmlbuilder@npm:~11.0.0": - version: 11.0.1 - resolution: "xmlbuilder@npm:11.0.1" - checksum: 10/c8c3d208783718db5b285101a736cd8e6b69a5c265199a0739abaa93d1a1b7de5489fd16df4e776e18b2c98cb91f421a7349e99fd8c1ebeb44ecfed72a25091a - languageName: node - linkType: hard - "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" From e883061cec05db67d7ebd2d096ece3f1092c4072 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 30 Aug 2024 16:48:42 -0230 Subject: [PATCH 7/8] chore: Update v12.1.1 changelog (#26824) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** Update changelog for v12.1.1 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26824?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** N/A ## **Screenshots/Recordings** N/A ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7900afd29e8..ce9c4744c03c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ## [12.1.1] +### Changed +- Update Polygon from MATIC to POL ([#26671](https://github.com/MetaMask/metamask-extension/pull/26671)) + +### Fixed +- Fix signature confirmation UI crash ([#26143](https://github.com/MetaMask/metamask-extension/pull/26143)) +- Update current selected account when selected account is removed ([#26573](https://github.com/MetaMask/metamask-extension/pull/26573), [#26742](https://github.com/MetaMask/metamask-extension/pull/26742), [#26773](https://github.com/MetaMask/metamask-extension/pull/26773)) + - This also includes a migration to reset the selected account if it's currently invalid +- Prevent pending confirmations from being inaccessible after attempting to add currently selected chain ([#26726](https://github.com/MetaMask/metamask-extension/pull/26726)) ## [12.1.0] ### Added From 00ebb93cc23cdf1460342913010c1c5afdb42a12 Mon Sep 17 00:00:00 2001 From: Nick Gambino <35090461+gambinish@users.noreply.github.com> Date: Fri, 30 Aug 2024 13:23:48 -0700 Subject: [PATCH 8/8] fix: Swaps UI should show POL not MATIC (#26827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26827?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- shared/constants/swaps.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/constants/swaps.ts b/shared/constants/swaps.ts index 53e1243acaa0..db58e82c4048 100644 --- a/shared/constants/swaps.ts +++ b/shared/constants/swaps.ts @@ -70,8 +70,8 @@ export const BNB_SWAPS_TOKEN_OBJECT: SwapsTokenObject = { } as const; export const MATIC_SWAPS_TOKEN_OBJECT: SwapsTokenObject = { - symbol: CURRENCY_SYMBOLS.MATIC, - name: 'Matic', + symbol: CURRENCY_SYMBOLS.POL, + name: 'Polygon', address: DEFAULT_TOKEN_ADDRESS, decimals: 18, iconUrl: POL_TOKEN_IMAGE_URL,