diff --git a/.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch b/.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch new file mode 100644 index 00000000000..d7e78bc9c02 --- /dev/null +++ b/.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch @@ -0,0 +1,28 @@ +diff --git a/dist/types/LoggingController.d.ts b/dist/types/LoggingController.d.ts +index 4f00c2991dfd20a47944944eacae96c636a2accf..a8a70110d6db24dfa24324369e7f11a96f77e790 100644 +--- a/dist/types/LoggingController.d.ts ++++ b/dist/types/LoggingController.d.ts +@@ -1,4 +1,4 @@ +-import type { RestrictedControllerMessenger } from '@metamask/base-controller'; ++import type { RestrictedControllerMessenger, ControllerGetStateAction, ControllerStateChangeEvent } from '@metamask/base-controller'; + import { BaseController } from '@metamask/base-controller'; + import type { Log } from './logTypes'; + /** +@@ -29,12 +29,15 @@ export declare type AddLog = { + type: `${typeof name}:add`; + handler: LoggingController['add']; + }; ++export declare type LoggingControllerGetStateAction = ControllerGetStateAction; + /** + * Currently only an alias, but the idea here is if future actions are needed + * this can transition easily into a union type. + */ +-export declare type LoggingControllerActions = AddLog; +-export declare type LoggingControllerMessenger = RestrictedControllerMessenger; ++export declare type LoggingControllerActions = LoggingControllerGetStateAction | AddLog; ++export declare type LoggingControllerStateChangeEvent = ControllerStateChangeEvent; ++export declare type LoggingControllerEvents = LoggingControllerStateChangeEvent; ++export declare type LoggingControllerMessenger = RestrictedControllerMessenger; + /** + * Controller that manages a list of logs for signature requests. + */ diff --git a/.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch b/.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch new file mode 100644 index 00000000000..72d7b27efcf --- /dev/null +++ b/.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch @@ -0,0 +1,21 @@ +diff --git a/dist/types/NotificationServicesController/NotificationServicesController.d.ts b/dist/types/NotificationServicesController/NotificationServicesController.d.ts +index 601da4f67dddf0da7d6fc00328d90ad29b6d92b3..965be3196681b666315a786dd16b46190e34950b 100644 +--- a/dist/types/NotificationServicesController/NotificationServicesController.d.ts ++++ b/dist/types/NotificationServicesController/NotificationServicesController.d.ts +@@ -82,11 +82,13 @@ export type NotificationServicesControllerSelectIsNotificationServicesEnabled = + type: `${typeof controllerName}:selectIsNotificationServicesEnabled`; + handler: NotificationServicesController['selectIsNotificationServicesEnabled']; + }; +-export type Actions = NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices | NotificationServicesControllerSelectIsNotificationServicesEnabled | ControllerGetStateAction<'state', NotificationServicesControllerState>; ++export type NotificationServicesControllerGetStateAction = ControllerGetStateAction; ++export type NotificationServicesControllerActions = NotificationServicesControllerGetStateAction | NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices | NotificationServicesControllerSelectIsNotificationServicesEnabled; + export type AllowedActions = KeyringControllerGetAccountsAction | AuthenticationController.AuthenticationControllerGetBearerToken | AuthenticationController.AuthenticationControllerIsSignedIn | UserStorageController.UserStorageControllerEnableProfileSyncing | UserStorageController.UserStorageControllerGetStorageKey | UserStorageController.UserStorageControllerPerformGetStorage | UserStorageController.UserStorageControllerPerformSetStorage | NotificationServicesPushControllerEnablePushNotifications | NotificationServicesPushControllerDisablePushNotifications | NotificationServicesPushControllerUpdateTriggerPushNotifications; +-export type NotificationServicesControllerMessengerEvents = ControllerStateChangeEvent; ++export type NotificationServicesControllerStateChangeEvent = ControllerStateChangeEvent ++export type NotificationServicesControllerEvents = NotificationServicesControllerStateChangeEvent; + export type AllowedEvents = KeyringControllerStateChangeEvent | NotificationServicesPushControllerOnNewNotification; +-export type NotificationServicesControllerMessenger = RestrictedControllerMessenger; ++export type NotificationServicesControllerMessenger = RestrictedControllerMessenger; + type FeatureAnnouncementEnv = { + spaceId: string; + accessToken: string; diff --git a/.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch b/.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch new file mode 100644 index 00000000000..fb2dfe353c5 --- /dev/null +++ b/.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch @@ -0,0 +1,22 @@ +diff --git a/dist/types/PhishingController.d.ts b/dist/types/PhishingController.d.ts +index 866e53b5b7bc447b2434b73a2b5a7b14dbb21145..e2624b79f8428152251196db1fd36d002f646e98 100644 +--- a/dist/types/PhishingController.d.ts ++++ b/dist/types/PhishingController.d.ts +@@ -1,4 +1,4 @@ +-import type { RestrictedControllerMessenger } from '@metamask/base-controller'; ++import type { RestrictedControllerMessenger, ControllerGetStateAction, ControllerStateChangeEvent } from '@metamask/base-controller'; + import { BaseController } from '@metamask/base-controller'; + export declare const PHISHING_CONFIG_BASE_URL = "https://phishing-detection.api.cx.metamask.io"; + export declare const METAMASK_STALELIST_FILE = "/v1/stalelist"; +@@ -172,7 +172,10 @@ export type TestOrigin = { + type: `${typeof controllerName}:testOrigin`; + handler: PhishingController['test']; + }; +-export type PhishingControllerActions = MaybeUpdateState | TestOrigin; ++export type PhishingControllerGetStateAction = ControllerGetStateAction; ++export type PhishingControllerActions = PhishingControllerGetStateAction | MaybeUpdateState | TestOrigin; ++export type PhishingControllerStateChangeEvent = ControllerStateChangeEvent; ++export type PhishingControllerEvents = PhishingControllerStateChangeEvent; + export type PhishingControllerMessenger = RestrictedControllerMessenger; + /** + * Controller that manages community-maintained lists of approved and unapproved website origins. diff --git a/.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch b/.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch new file mode 100644 index 00000000000..01b130ecfcd --- /dev/null +++ b/.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch @@ -0,0 +1,60 @@ +diff --git a/dist/types/controllers/authentication/AuthenticationController.d.ts b/dist/types/controllers/authentication/AuthenticationController.d.ts +index 03de3c60c5ce203ba45d316d42fe28827cca435c..e8634e9cc9faabec8c1190bce3980dcf46a7287f 100644 +--- a/dist/types/controllers/authentication/AuthenticationController.d.ts ++++ b/dist/types/controllers/authentication/AuthenticationController.d.ts +@@ -1,4 +1,4 @@ +-import type { RestrictedControllerMessenger } from '@metamask/base-controller'; ++import type { RestrictedControllerMessenger, ControllerGetStateAction, ControllerStateChangeEvent } from '@metamask/base-controller'; + import { BaseController } from '@metamask/base-controller'; + import type { HandleSnapRequest } from '@metamask/snaps-controllers'; + import type { UserStorageControllerDisableProfileSyncing } from '../user-storage/UserStorageController'; +@@ -35,14 +35,17 @@ type CreateActionsObj = { + }; + }; + type ActionsObj = CreateActionsObj<'performSignIn' | 'performSignOut' | 'getBearerToken' | 'getSessionProfile' | 'isSignedIn'>; +-export type Actions = ActionsObj[keyof ActionsObj]; ++export type AuthenticationControllerGetStateAction = ControllerGetStateAction; ++export type AuthenticationControllerActions = ActionsObj[keyof ActionsObj]; + export type AuthenticationControllerPerformSignIn = ActionsObj['performSignIn']; + export type AuthenticationControllerPerformSignOut = ActionsObj['performSignOut']; + export type AuthenticationControllerGetBearerToken = ActionsObj['getBearerToken']; + export type AuthenticationControllerGetSessionProfile = ActionsObj['getSessionProfile']; + export type AuthenticationControllerIsSignedIn = ActionsObj['isSignedIn']; + export type AllowedActions = HandleSnapRequest | UserStorageControllerDisableProfileSyncing; +-export type AuthenticationControllerMessenger = RestrictedControllerMessenger; ++export type AuthenticationControllerStateChangeEvent = ControllerStateChangeEvent ++export type AuthenticationControllerEvents = AuthenticationControllerStateChangeEvent; ++export type AuthenticationControllerMessenger = RestrictedControllerMessenger; + /** + * Controller that enables authentication for restricted endpoints. + * Used for Global Profile Syncing and Notifications +diff --git a/dist/types/controllers/user-storage/UserStorageController.d.ts b/dist/types/controllers/user-storage/UserStorageController.d.ts +index b0e10b67c70a9e9c4ea7a5412c922b9d67cd01aa..74fb153105d798987a9cf3ec851e4cc362614da7 100644 +--- a/dist/types/controllers/user-storage/UserStorageController.d.ts ++++ b/dist/types/controllers/user-storage/UserStorageController.d.ts +@@ -1,4 +1,4 @@ +-import type { RestrictedControllerMessenger } from '@metamask/base-controller'; ++import type { RestrictedControllerMessenger, ControllerGetStateAction, ControllerStateChangeEvent } from '@metamask/base-controller'; + import { BaseController } from '@metamask/base-controller'; + import type { HandleSnapRequest } from '@metamask/snaps-controllers'; + import type { AuthenticationControllerGetBearerToken, AuthenticationControllerGetSessionProfile, AuthenticationControllerIsSignedIn, AuthenticationControllerPerformSignIn, AuthenticationControllerPerformSignOut } from '../authentication/AuthenticationController'; +@@ -30,14 +30,17 @@ type CreateActionsObj = { + }; + }; + type ActionsObj = CreateActionsObj<'performGetStorage' | 'performSetStorage' | 'getStorageKey' | 'enableProfileSyncing' | 'disableProfileSyncing'>; +-export type Actions = ActionsObj[keyof ActionsObj]; ++export type UserStorageControllerGetStateAction = ControllerGetStateAction; ++export type UserStorageControllerActions = ActionsObj[keyof ActionsObj]; + export type UserStorageControllerPerformGetStorage = ActionsObj['performGetStorage']; + export type UserStorageControllerPerformSetStorage = ActionsObj['performSetStorage']; + export type UserStorageControllerGetStorageKey = ActionsObj['getStorageKey']; + export type UserStorageControllerEnableProfileSyncing = ActionsObj['enableProfileSyncing']; + export type UserStorageControllerDisableProfileSyncing = ActionsObj['disableProfileSyncing']; + export type AllowedActions = HandleSnapRequest | AuthenticationControllerGetBearerToken | AuthenticationControllerGetSessionProfile | AuthenticationControllerPerformSignIn | AuthenticationControllerIsSignedIn | AuthenticationControllerPerformSignOut | NotificationServicesControllerDisableNotificationServices | NotificationServicesControllerSelectIsNotificationServicesEnabled; +-export type UserStorageControllerMessenger = RestrictedControllerMessenger; ++export type UserStorageControllerStateChangeEvent = ControllerStateChangeEvent; ++export type UserStorageControllerEvents = UserStorageControllerStateChangeEvent; ++export type UserStorageControllerMessenger = RestrictedControllerMessenger; + /** + * Reusable controller that allows any team to store synchronized data for a given user. + * These can be settings shared cross MetaMask clients, or data we want to persist when uninstalling/reinstalling. diff --git a/.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch b/.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch new file mode 100644 index 00000000000..df4b66befba --- /dev/null +++ b/.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch @@ -0,0 +1,23 @@ +diff --git a/dist/types/snaps/registry/json.d.ts b/dist/types/snaps/registry/json.d.ts +index 4d36ce09af223f423de71b1ffff5afc285ca6c99..27a00b395ef7d1d0f13ebe6424086a07fce314ba 100644 +--- a/dist/types/snaps/registry/json.d.ts ++++ b/dist/types/snaps/registry/json.d.ts +@@ -1,4 +1,4 @@ +-import type { RestrictedControllerMessenger } from '@metamask/base-controller'; ++import type { RestrictedControllerMessenger, ControllerGetStateAction, ControllerStateChangeEvent } from '@metamask/base-controller'; + import { BaseController } from '@metamask/base-controller'; + import type { SnapsRegistryDatabase } from '@metamask/snaps-registry'; + import type { Hex } from '@metamask/utils'; +@@ -32,8 +32,11 @@ export declare type Update = { + type: `${typeof controllerName}:update`; + handler: SnapsRegistry['update']; + }; ++ ++export declare type SnapsRegistryGetStateAction = ControllerGetStateAction; + export declare type SnapsRegistryActions = GetResult | GetMetadata | Update | ResolveVersion; +-export declare type SnapsRegistryEvents = never; ++export declare type SnapsRegistryStateChangeEvent = ControllerStateChangeEvent; ++export declare type SnapsRegistryEvents = SnapsRegistryStateChangeEvent; + export declare type SnapsRegistryMessenger = RestrictedControllerMessenger<'SnapsRegistry', SnapsRegistryActions, SnapsRegistryEvents, SnapsRegistryActions['type'], SnapsRegistryEvents['type']>; + export declare type SnapsRegistryState = { + database: SnapsRegistryDatabase | null; diff --git a/app/core/Engine.ts b/app/core/Engine.ts index 1f7c07e92c4..70cbe4a0519 100644 --- a/app/core/Engine.ts +++ b/app/core/Engine.ts @@ -2,7 +2,7 @@ import Crypto from 'react-native-quick-crypto'; import { AccountTrackerController, - AccountTrackerState, + AccountTrackerControllerState, AssetsContractController, CurrencyRateController, CurrencyRateState, @@ -11,22 +11,30 @@ import { GetTokenListState, NftController, NftDetectionController, - NftState, + NftControllerState, TokenBalancesController, TokenDetectionController, TokenListController, TokenListState, TokenListStateChange, TokenRatesController, - TokenRatesState, + TokenRatesControllerState, TokensController, - TokensState, + TokensControllerState, CodefiTokenPricesServiceV2, TokensControllerActions, TokensControllerEvents, TokenListControllerActions, TokenListControllerEvents, TokenBalancesControllerState, + TokenBalancesControllerActions, + TokenBalancesControllerEvents, + TokenRatesControllerActions, + TokenRatesControllerEvents, + AccountTrackerControllerActions, + AccountTrackerControllerEvents, + NftControllerActions, + NftControllerEvents, } from '@metamask/assets-controllers'; ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) import { AppState } from 'react-native'; @@ -34,7 +42,9 @@ import PREINSTALLED_SNAPS from '../lib/snaps/preinstalled-snaps'; ///: END:ONLY_INCLUDE_IF import { AddressBookController, - AddressBookState, + AddressBookControllerActions, + AddressBookControllerEvents, + AddressBookControllerState, } from '@metamask/address-book-controller'; import { BaseState } from '@metamask/base-controller'; import { ComposableController } from '@metamask/composable-controller'; @@ -56,6 +66,7 @@ import { } from '@metamask/network-controller'; import { PhishingController, + PhishingControllerEvents, PhishingControllerState, } from '@metamask/phishing-controller'; import { @@ -66,6 +77,7 @@ import { } from '@metamask/preferences-controller'; import { TransactionController, + TransactionControllerActions, TransactionControllerEvents, TransactionControllerState, } from '@metamask/transaction-controller'; @@ -111,6 +123,8 @@ import { SnapControllerActions, PersistedSnapControllerState, SnapsRegistryMessenger, + SnapsRegistryActions, + SnapsRegistryEvents, } from '@metamask/snaps-controllers'; import { WebViewExecutionService } from '@metamask/snaps-controllers/react-native'; @@ -129,6 +143,7 @@ import { LoggingController, LoggingControllerState, LoggingControllerActions, + LoggingControllerEvents, } from '@metamask/logging-controller'; import { LedgerKeyring, @@ -219,6 +234,8 @@ import { getPermittedAccounts } from './Permissions'; import { ExtendedControllerMessenger } from './ExtendedControllerMessenger'; import EthQuery from '@metamask/eth-query'; import { TransactionControllerOptions } from '@metamask/transaction-controller/dist/types/TransactionController'; +import { AuthenticationControllerEvents } from '@metamask/profile-sync-controller/dist/types/controllers/authentication'; +import { UserStorageControllerEvents } from '@metamask/profile-sync-controller/dist/types/controllers/user-storage'; const NON_EMPTY = 'NON_EMPTY'; @@ -260,43 +277,63 @@ type SnapsGlobalEvents = ///: END:ONLY_INCLUDE_IF type GlobalActions = + | AddressBookControllerActions | ApprovalControllerActions | GetCurrencyRateState | GetGasFeeState | GetTokenListState | KeyringControllerActions | NetworkControllerActions + | NftControllerActions | PermissionControllerActions + | PhishingControllerActions | SignatureControllerActions + | TransactionControllerActions | LoggingControllerActions ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) | SnapsGlobalActions + | SnapsRegistryActions | AuthenticationControllerActions | UserStorageControllerActions | NotificationsServicesControllerActions ///: END:ONLY_INCLUDE_IF | KeyringControllerActions | AccountsControllerActions + | AccountTrackerControllerActions | PreferencesControllerActions + | TokenBalancesControllerActions + | TokenRatesControllerActions | TokensControllerActions | TokenListControllerActions; type GlobalEvents = + | AddressBookControllerEvents | ApprovalControllerEvents | CurrencyRateStateChange | GasFeeStateChange | KeyringControllerEvents | TokenListStateChange + | TransactionControllerEvents + | LoggingControllerEvents | NetworkControllerEvents + | NftControllerEvents | PermissionControllerEvents + | PhishingControllerEvents ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) | SnapsGlobalEvents + | SnapsRegistryEvents + | AuthenticationControllerEvents + | NotificationServicesController.NotificationServicesControllerEvents + | UserStorageControllerEvents ///: END:ONLY_INCLUDE_IF | SignatureControllerEvents | KeyringControllerEvents | PPOMControllerEvents | AccountsControllerEvents + | AccountTrackerControllerEvents | PreferencesControllerEvents + | TokenBalancesControllerEvents + | TokenRatesControllerEvents | TokensControllerEvents | TokenListControllerEvents | TransactionControllerEvents; @@ -308,10 +345,10 @@ type Permissions = PermissionsByRpcMethod[keyof PermissionsByRpcMethod]; // Adding an index signature fixes this, but at the cost of widening the type unnecessarily. // eslint-disable-next-line @typescript-eslint/consistent-type-definitions export type EngineState = { - AccountTrackerController: AccountTrackerState; - AddressBookController: AddressBookState; + AccountTrackerController: AccountTrackerControllerState; + AddressBookController: AddressBookControllerState; AssetsContractController: BaseState; - NftController: NftState; + NftController: NftControllerState; TokenListController: TokenListState; CurrencyRateController: CurrencyRateState; KeyringController: KeyringControllerState; @@ -319,12 +356,12 @@ export type EngineState = { PreferencesController: PreferencesState; PhishingController: PhishingControllerState; TokenBalancesController: TokenBalancesControllerState; - TokenRatesController: TokenRatesState; + TokenRatesController: TokenRatesControllerState; TransactionController: TransactionControllerState; SmartTransactionsController: SmartTransactionsControllerState; SwapsController: SwapsState; GasFeeController: GasFeeState; - TokensController: TokensState; + TokensController: TokensControllerState; TokenDetectionController: BaseState; NftDetectionController: BaseState; ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) @@ -396,6 +433,13 @@ type RequiredControllers = Omit; */ type OptionalControllers = Pick; +type NonControllers = Pick< + Controllers, + | 'AssetsContractController' + | 'NftDetectionController' + | 'TokenDetectionController' +>; + /** * Core controller responsible for composing other metamask controllers together * and exposing convenience methods for common wallet operations. @@ -416,7 +460,10 @@ class Engine { /** * ComposableController reference containing all child controllers */ - datamodel: ComposableController; + datamodel: ComposableController< + EngineState, + Controllers[Exclude] + >; /** * Object containing the info for the latest incoming tx block @@ -461,7 +508,6 @@ class Engine { }; const approvalController = new ApprovalController({ - // @ts-expect-error TODO: Resolve/patch mismatch between base-controller versions. Before: never, never. Now: string, string, which expects 3rd and 4th args to be informed for restrictedControllerMessengers messenger: this.controllerMessenger.getRestricted({ name: 'ApprovalController', allowedEvents: [], @@ -655,7 +701,6 @@ class Engine { networkController.state.selectedNetworkClientId, ); const gasFeeController = new GasFeeController({ - // @ts-expect-error TODO: Resolve mismatch between base-controller versions. messenger: this.controllerMessenger.getRestricted({ name: 'GasFeeController', allowedActions: [ @@ -895,8 +940,6 @@ class Engine { ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) const subjectMetadataController = new SubjectMetadataController({ - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between base-controller versions. Before: never, never. Now: string, string, which expects 3rd and 4th args to be informed for restrictedControllerMessengers messenger: this.controllerMessenger.getRestricted({ name: 'SubjectMetadataController', allowedActions: [`${permissionController.name}:hasPermissions`], @@ -946,8 +989,6 @@ class Engine { const requireAllowlist = process.env.METAMASK_BUILD_TYPE === 'main'; const disableSnapInstallation = process.env.METAMASK_BUILD_TYPE === 'main'; const allowLocalSnaps = process.env.METAMASK_BUILD_TYPE === 'flask'; - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between base-controller versions. const snapsRegistryMessenger: SnapsRegistryMessenger = this.controllerMessenger.getRestricted({ name: 'SnapsRegistry', @@ -967,8 +1008,6 @@ class Engine { }); this.snapExecutionService = new WebViewExecutionService({ - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between base-controller versions. messenger: this.controllerMessenger.getRestricted({ name: 'ExecutionService', allowedActions: [], @@ -1050,8 +1089,6 @@ class Engine { const authenticationController = new AuthenticationController.Controller({ state: initialState.AuthenticationController, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between messenger types messenger: this.controllerMessenger.getRestricted({ name: 'AuthenticationController', allowedActions: [ @@ -1070,8 +1107,6 @@ class Engine { const userStorageController = new UserStorageController.Controller({ getMetaMetricsState: () => MetaMetrics.getInstance().isEnabled(), state: initialState.UserStorageController, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between messenger types messenger: this.controllerMessenger.getRestricted({ name: 'UserStorageController', allowedActions: [ @@ -1090,8 +1125,6 @@ class Engine { const notificationServicesController = new NotificationServicesController.Controller({ - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore TODO: Resolve/patch mismatch between messenger types messenger: this.controllerMessenger.getRestricted({ name: 'NotificationServicesController', allowedActions: [ @@ -1175,8 +1208,6 @@ class Engine { }, isSimulationEnabled: () => preferencesController.state.useTransactionSimulations, - // @ts-expect-error TransactionController is using later BaseController version - // but only breaking change is Node version messenger: this.controllerMessenger.getRestricted({ name: 'TransactionController', allowedActions: [ @@ -1426,7 +1457,6 @@ class Engine { chainId: networkController.state.providerConfig.chainId, blockaidPublicKey: process.env.BLOCKAID_PUBLIC_KEY as string, cdnBaseUrl: process.env.BLOCKAID_FILE_CDN as string, - // @ts-expect-error TODO: Resolve/patch mismatch between base-controller versions. Before: never, never. Now: string, string, which expects 3rd and 4th args to be informed for restrictedControllerMessengers messenger: this.controllerMessenger.getRestricted({ name: 'PPOMController', allowedActions: [], @@ -1478,74 +1508,53 @@ class Engine { } this.datamodel = new ComposableController< - EngineState, - Controllers[keyof Controllers] + Exclude, + Controllers[Exclude] >({ - controllers, - // @ts-expect-error Resolve/patch mismatch between base-controller versions - // ts(2322) - Property '#private' in type 'RestrictedControllerMessenger' refers to a different member that cannot be accessed from within type 'RestrictedControllerMessenger' + controllers: controllers.filter( + ( + controller, + ): controller is Controllers[Exclude< + keyof Controllers, + keyof NonControllers + >] => + 'state' in controller && + controller.state !== undefined && + Object.keys(controller.state).length > 0, + ), messenger: this.controllerMessenger.getRestricted({ name: 'ComposableController', allowedActions: [], + // Exclude non-controllers with empty state and V1 controllers with no messagingSystem. allowedEvents: [ - /** - * V1/V2 controllers with correctly defined messengers and `stateChange` events. - */ 'AccountsController:stateChange', + 'AccountTrackerController:stateChange', + 'AddressBookController:stateChange', 'ApprovalController:stateChange', + 'AuthenticationController:stateChange', 'CurrencyRateController:stateChange', 'GasFeeController:stateChange', 'KeyringController:stateChange', + 'LoggingController:stateChange', 'NetworkController:stateChange', + 'NftController:stateChange', + 'NotificationServicesController:stateChange', 'PermissionController:stateChange', + 'PhishingController:stateChange', + 'PPOMController:stateChange', 'PreferencesController:stateChange', 'SignatureController:stateChange', + // 'SmartTransactionsController:stateChange', // TODO: uncomment once controller is migrated to V2. 'SnapController:stateChange', + 'SnapsRegistry:stateChange', 'SubjectMetadataController:stateChange', + // 'SwapsController:stateChange', // TODO: uncomment once controller is migrated to V2. + 'TokenBalancesController:stateChange', + 'TokenRatesController:stateChange', 'TokenListController:stateChange', 'TokensController:stateChange', 'TransactionController:stateChange', - - /** - * V1/V2 controllers incorrectly defined with a `messagingSystem` that is missing its `stateChange` event. - * ! These `stateChange` events must be included in the datamodel's events allowlist. - * TODO: Upstream fixes in the source packages are required for the following controllers. - */ - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'AuthenticationController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'LoggingController:stateChange', - // @ts-expect-error BaseControllerV1, has `messagingSystem` but as private field, messenger defined without `stateChange` event type - 'NftController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'NotificationServicesController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'PhishingController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'PPOMController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type - 'SnapsRegistry:stateChange', - // @ts-expect-error BaseControllerV2, `TokenBalancesControllerState` import error - 'TokenBalancesController:stateChange', - // @ts-expect-error BaseControllerV2, messenger defined without `stateChange` event type 'UserStorageController:stateChange', - - /** - * V1 controllers that should be excluded from the datamodel's events allowlist for now. - * TODO: Each of these events should be added to the allowlist once its controller is migrated to V2. - */ - // 'AccountTrackerController:stateChange', // StaticIntervalPollingControllerV1, no `messagingSystem` - // 'AddressBookController:stateChange', // BaseControllerV1, no `messagingSystem` - // 'SmartTransactionsController:stateChange', // StaticIntervalPollingControllerV1, no `messagingSystem` - // 'SwapsController:stateChange', // BaseControllerV1, no `messagingSystem` - // 'TokenRatesController:stateChange', // StaticIntervalPollingControllerV1, no `messagingSystem` - - /** - * Non-controllers that should always be excluded from the datamodel's events allowlist. - */ - // 'AssetsContractController:stateChange', // BaseControllerV1, no `messagingSystem` - // 'NftDetectionController:stateChange', // StaticIntervalPollingControllerV1, no `messagingSystem` - // 'TokenDetectionController:stateChange', // StaticIntervalPollingController, empty state ], }), }); @@ -2001,7 +2010,6 @@ export default { const { AccountTrackerController, AddressBookController, - AssetsContractController, NftController, TokenListController, CurrencyRateController, @@ -2017,8 +2025,6 @@ export default { SwapsController, GasFeeController, TokensController, - TokenDetectionController, - NftDetectionController, ///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps) SnapController, SubjectMetadataController, diff --git a/package.json b/package.json index 635720d2ddf..3b68733fac6 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,7 @@ ] }, "resolutions": { + "@metamask/base-controller": "npm:@metamask-previews/base-controller@6.0.2-preview-b42590f", "@metamask/contract-metadata": "^2.1.0", "@metamask/react-native-payments/validator": "^13.7.0", "d3-color": "3.1.0", @@ -120,7 +121,16 @@ "redux-persist-filesystem-storage/react-native-blob-util": "^0.19.9", "xmldom": "npm:@xmldom/xmldom@0.7.13", "@metamask/metamask-eth-abis": "3.1.1", - "react-native/ws": "^6.2.3" + "react-native/ws": "^6.2.3", + "@metamask/snaps-controllers@^9.3.1": "patch:@metamask/snaps-controllers@npm%3A9.3.1#./.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch", + "@metamask/snaps-controllers@^8.1.1": "patch:@metamask/snaps-controllers@npm%3A9.3.1#./.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch", + "@metamask/phishing-controller@^9.0.0": "patch:@metamask/phishing-controller@npm%3A10.1.1#./.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch", + "@metamask/phishing-controller@^10.1.1": "patch:@metamask/phishing-controller@npm%3A10.1.1#./.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch", + "@metamask/notification-services-controller@^0.1.1": "patch:@metamask/notification-services-controller@npm%3A0.1.1#./.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch", + "@metamask/profile-sync-controller@^0.1.3": "patch:@metamask/profile-sync-controller@npm%3A0.1.3#./.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch", + "@metamask/profile-sync-controller@^0.1.1": "patch:@metamask/profile-sync-controller@npm%3A0.1.3#./.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch", + "@metamask/logging-controller@^3.0.0": "patch:@metamask/logging-controller@npm%3A3.0.1#./.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch", + "@metamask/logging-controller@^3.0.1": "patch:@metamask/logging-controller@npm%3A3.0.1#./.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch" }, "dependencies": { "@consensys/on-ramp-sdk": "1.28.1", @@ -132,11 +142,11 @@ "@keystonehq/ur-decoder": "^0.12.2", "@ledgerhq/react-native-hw-transport-ble": "^6.32.3", "@metamask/accounts-controller": "^14.0.0", - "@metamask/address-book-controller": "^4.0.1", + "@metamask/address-book-controller": "npm:@metamask-previews/address-book-controller@5.0.0-preview-aaea6b5", "@metamask/approval-controller": "^7.0.1", - "@metamask/assets-controllers": "^30.0.0", + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@37.0.0-preview-aaea6b5", "@metamask/base-controller": "^5.0.0", - "@metamask/composable-controller": "npm:@metamask-previews/composable-controller@7.0.0-preview-2ca9038", + "@metamask/composable-controller": "npm:@metamask-previews/composable-controller@7.0.0-preview-b42590f", "@metamask/contract-metadata": "^2.1.0", "@metamask/controller-utils": "^10.0.0", "@metamask/design-tokens": "^4.0.0", @@ -153,9 +163,9 @@ "@metamask/network-controller": "^18.1.0", "@metamask/notification-services-controller": "^0.1.1", "@metamask/permission-controller": "^9.0.0", - "@metamask/phishing-controller": "^9.0.0", + "@metamask/phishing-controller": "^10.1.1", "@metamask/post-message-stream": "^8.0.0", - "@metamask/ppom-validator": "0.32.0", + "@metamask/ppom-validator": "github:MetaMask/ppom-validator#bump-base-controller-to-6.0.2-expose-build", "@metamask/preferences-controller": "^11.0.0", "@metamask/profile-sync-controller": "^0.1.3", "@metamask/react-native-actionsheet": "2.4.2", @@ -170,7 +180,7 @@ "@metamask/signature-controller": "^16.0.0", "@metamask/slip44": "3.1.0", "@metamask/smart-transactions-controller": "10.1.1", - "@metamask/snaps-controllers": "^9.2.0", + "@metamask/snaps-controllers": "^9.3.1", "@metamask/snaps-execution-environments": "^6.5.0", "@metamask/snaps-rpc-methods": "^9.1.4", "@metamask/snaps-sdk": "^6.0.0", diff --git a/yarn.lock b/yarn.lock index 0152dc5c676..b5eb0ca2d1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5507,6 +5507,16 @@ __metadata: languageName: node linkType: hard +"@metamask/abi-utils@npm:^2.0.3": + version: 2.0.4 + resolution: "@metamask/abi-utils@npm:2.0.4" + dependencies: + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.0.0 + checksum: 85b15419248ddec1ab59ec5f3e41276f7509dadd9ced871658fa3cc04805ad35ace96986416aaecd24e3630e92b0ed078328966c92383ffa9b1cc3f0f357ad6c + languageName: node + linkType: hard + "@metamask/accounts-controller@npm:^14.0.0": version: 14.0.0 resolution: "@metamask/accounts-controller@npm:14.0.0" @@ -5552,14 +5562,14 @@ __metadata: languageName: node linkType: hard -"@metamask/address-book-controller@npm:^4.0.1": - version: 4.0.1 - resolution: "@metamask/address-book-controller@npm:4.0.1" +"@metamask/address-book-controller@npm:@metamask-previews/address-book-controller@5.0.0-preview-aaea6b5": + version: 5.0.0-preview-aaea6b5 + resolution: "@metamask-previews/address-book-controller@npm:5.0.0-preview-aaea6b5" dependencies: - "@metamask/base-controller": ^5.0.1 - "@metamask/controller-utils": ^9.0.1 - "@metamask/utils": ^8.3.0 - checksum: f35b77232f3e1c41f86cc4355ba389af1db8cafd6b3a112f9679a09f5d54c375bbcea98a97dfbfd4a826e57a8c44284ea639d43f94e2d1dd6da2ce78acfeb612 + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 + "@metamask/utils": ^9.1.0 + checksum: 0493ee28c74161bb5f4e3faa4bb811300ede92e7d9d9deee9eae40cde64b61d3b78d2f6cda1bd55afa08191c590c5861d1034b84f5acb0635dc2b05439a3e261 languageName: node linkType: hard @@ -5587,85 +5597,63 @@ __metadata: languageName: node linkType: hard -"@metamask/assets-controllers@npm:^30.0.0": - version: 30.0.0 - resolution: "@metamask/assets-controllers@npm:30.0.0" +"@metamask/approval-controller@npm:^7.0.2": + version: 7.0.2 + resolution: "@metamask/approval-controller@npm:7.0.2" + dependencies: + "@metamask/base-controller": ^6.0.2 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/utils": ^9.0.0 + nanoid: ^3.1.31 + checksum: 027b0f1871626095356bd9999a4a80fc8db13e8dc85748e9a2c59efc32743e49522c908bb860c315b948555c15528bd0c3f3d0e90a50ba7f6c9aaa4d800aa18f + languageName: node + linkType: hard + +"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@37.0.0-preview-aaea6b5": + version: 37.0.0-preview-aaea6b5 + resolution: "@metamask-previews/assets-controllers@npm:37.0.0-preview-aaea6b5" dependencies: "@ethereumjs/util": ^8.1.0 "@ethersproject/address": ^5.7.0 "@ethersproject/bignumber": ^5.7.0 "@ethersproject/contracts": ^5.7.0 "@ethersproject/providers": ^5.7.0 - "@metamask/abi-utils": ^2.0.2 - "@metamask/accounts-controller": ^14.0.0 - "@metamask/approval-controller": ^6.0.2 - "@metamask/base-controller": ^5.0.2 + "@metamask/abi-utils": ^2.0.3 + "@metamask/base-controller": ^6.0.2 "@metamask/contract-metadata": ^2.4.0 - "@metamask/controller-utils": ^10.0.0 + "@metamask/controller-utils": ^11.0.2 "@metamask/eth-query": ^4.0.0 - "@metamask/keyring-controller": ^16.0.0 "@metamask/metamask-eth-abis": ^3.1.1 - "@metamask/network-controller": ^18.1.2 - "@metamask/polling-controller": ^6.0.2 - "@metamask/preferences-controller": ^11.0.0 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/utils": ^8.3.0 + "@metamask/polling-controller": ^9.0.1 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/utils": ^9.1.0 "@types/bn.js": ^5.1.5 "@types/uuid": ^8.3.0 - async-mutex: ^0.2.6 + async-mutex: ^0.5.0 bn.js: ^5.2.1 cockatiel: ^3.1.2 + immer: ^9.0.6 lodash: ^4.17.21 - multiformats: ^9.5.2 + multiformats: ^13.1.0 single-call-balance-checker-abi: ^1.0.0 uuid: ^8.3.2 peerDependencies: - "@metamask/accounts-controller": ^14.0.0 - "@metamask/approval-controller": ^6.0.0 - "@metamask/keyring-controller": ^16.0.0 - "@metamask/network-controller": ^18.1.2 - "@metamask/preferences-controller": ^11.0.0 - checksum: 23cbbd9761c051d16841de636450d22c0f5fd6c1d5bbe9771ba70257576311d5c7b2a91ddd2ff376f74743d3cb8fa136859a3b2c59d469ce244cc2795e588ece - languageName: node - linkType: hard - -"@metamask/base-controller@npm:^3.0.0": - version: 3.2.3 - resolution: "@metamask/base-controller@npm:3.2.3" - dependencies: - "@metamask/utils": ^8.1.0 - immer: ^9.0.6 - checksum: f49fcf2bf892ec25657c2d72a50b3c4f3cad59acb1b74d9fdcdf564107b8f38f73647c696aaa9699d94828b5797d8f1479dab44a2dbcda987c268b0088bb3b76 - languageName: node - linkType: hard - -"@metamask/base-controller@npm:^4.0.1, @metamask/base-controller@npm:^4.1.1": - version: 4.1.1 - resolution: "@metamask/base-controller@npm:4.1.1" - dependencies: - "@metamask/utils": ^8.3.0 - immer: ^9.0.6 - checksum: adfbc9815506f41342036743b481236179ffd8378e58dad4ffd5b55158d1a5d5509b113d17af5fe1de35d02c448a7c92fffd5234da1893374aab498356585f76 + "@metamask/accounts-controller": ^18.0.0 + "@metamask/approval-controller": ^7.0.0 + "@metamask/keyring-controller": ^17.0.0 + "@metamask/network-controller": ^20.0.0 + "@metamask/preferences-controller": ^13.0.0 + checksum: cbe49e22420c04ca472031c280fca33fa1d3095806c5f870b20bcb81d3e0bc690dc53df75ce0cb5ce6d7a37f28584a56c8c6748298d12dd523680332bfd179fd languageName: node linkType: hard -"@metamask/base-controller@npm:^5.0.0, @metamask/base-controller@npm:^5.0.1, @metamask/base-controller@npm:^5.0.2": - version: 5.0.2 - resolution: "@metamask/base-controller@npm:5.0.2" - dependencies: - "@metamask/utils": ^8.3.0 - immer: ^9.0.6 - checksum: 22c43c3147c7da1c1b87de4d41948e275f8e0adcdb1210a55a62aa497db4fa82399750901729d9dc6285d89e68f18e5bd15095ee4d4c6cfc169035173e69a1d2 - languageName: node - linkType: hard - -"@metamask/base-controller@npm:^6.0.0, @metamask/base-controller@npm:^6.0.1, @metamask/base-controller@npm:^6.0.2": - version: 6.0.2 - resolution: "@metamask/base-controller@npm:6.0.2" +"@metamask/base-controller@npm:@metamask-previews/base-controller@6.0.2-preview-b42590f": + version: 6.0.2-preview-b42590f + resolution: "@metamask-previews/base-controller@npm:6.0.2-preview-b42590f" dependencies: "@metamask/utils": ^9.1.0 immer: ^9.0.6 - checksum: 2cdd0310850d7a5ead05248b79ba94bbaee368ea1a99c999ff38e2d16630a7f12d2e4c781d0fe1d7b349f8a0b3651a831ceccd03b376cb7cc451154867fd5668 + checksum: bd0961722b5538ad8aa94d65c6409f1815c0dae0dc196a7a24ca6cd757fdd36bb3ff0535b150f317580e2bf407b9ea20bf50686d3545c874753ecbbabe17a852 languageName: node linkType: hard @@ -5697,12 +5685,12 @@ __metadata: languageName: node linkType: hard -"@metamask/composable-controller@npm:@metamask-previews/composable-controller@7.0.0-preview-2ca9038": - version: 7.0.0-preview-2ca9038 - resolution: "@metamask-previews/composable-controller@npm:7.0.0-preview-2ca9038" +"@metamask/composable-controller@npm:@metamask-previews/composable-controller@7.0.0-preview-b42590f": + version: 7.0.0-preview-b42590f + resolution: "@metamask-previews/composable-controller@npm:7.0.0-preview-b42590f" dependencies: "@metamask/base-controller": ^6.0.2 - checksum: 679158f407165547d77582726027bcdecb4733c8b667dce3517b98702080b4c2fa2f5af02428d7a853ebc2da99cfc66354792bd7461ae40f68442cf3a7edb7e0 + checksum: 0d328b34b1e997bd55994ea37a1adcf291278c2481f64c9c32801a53f44636ad8f6748543381883e7063c2310330fcef5cc8100c2e2983fd8c85028787678467 languageName: node linkType: hard @@ -5747,6 +5735,23 @@ __metadata: languageName: node linkType: hard +"@metamask/controller-utils@npm:^11.0.2": + version: 11.0.2 + resolution: "@metamask/controller-utils@npm:11.0.2" + dependencies: + "@ethereumjs/util": ^8.1.0 + "@metamask/eth-query": ^4.0.0 + "@metamask/ethjs-unit": ^0.3.0 + "@metamask/utils": ^9.1.0 + "@spruceid/siwe-parser": 2.1.0 + "@types/bn.js": ^5.1.5 + bn.js: ^5.2.1 + eth-ens-namehash: ^2.0.8 + fast-deep-equal: ^3.1.3 + checksum: 21a760f68270318a9f31c35878cdbeae3c093e1aeea45b838c9359ced621f7c9fdd969f6b751f9bc3112bfc8f110da3e75b6990daabd815841e99479fe798a2c + languageName: node + linkType: hard + "@metamask/controller-utils@npm:^8.0.1, @metamask/controller-utils@npm:^8.0.2, @metamask/controller-utils@npm:^8.0.4": version: 8.0.4 resolution: "@metamask/controller-utils@npm:8.0.4" @@ -5909,7 +5914,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-json-rpc-provider@npm:^4.0.0, @metamask/eth-json-rpc-provider@npm:^4.1.0": +"@metamask/eth-json-rpc-provider@npm:^4.0.0": version: 4.1.1 resolution: "@metamask/eth-json-rpc-provider@npm:4.1.1" dependencies: @@ -5922,6 +5927,19 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-json-rpc-provider@npm:^4.1.2": + version: 4.1.2 + resolution: "@metamask/eth-json-rpc-provider@npm:4.1.2" + dependencies: + "@metamask/json-rpc-engine": ^9.0.2 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^9.1.0 + uuid: ^8.3.2 + checksum: d7092ce64fc185796a0be3f339da1718e280159f06e8fdf29a002b4573abd0903219a527a4c5890952d5e66dbe56b5c3e53d42aa8a4bbc25acbdf6efadcff6ea + languageName: node + linkType: hard + "@metamask/eth-ledger-bridge-keyring@npm:^4.1.0": version: 4.1.0 resolution: "@metamask/eth-ledger-bridge-keyring@npm:4.1.0" @@ -6201,7 +6219,7 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-engine@npm:^9.0.0, @metamask/json-rpc-engine@npm:^9.0.1": +"@metamask/json-rpc-engine@npm:^9.0.0": version: 9.0.1 resolution: "@metamask/json-rpc-engine@npm:9.0.1" dependencies: @@ -6212,6 +6230,17 @@ __metadata: languageName: node linkType: hard +"@metamask/json-rpc-engine@npm:^9.0.1, @metamask/json-rpc-engine@npm:^9.0.2": + version: 9.0.2 + resolution: "@metamask/json-rpc-engine@npm:9.0.2" + dependencies: + "@metamask/rpc-errors": ^6.3.1 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^9.1.0 + checksum: 4c852c9f30d05706ee497a2aca3ef6df12aabcff4a71a7426a27d95829f20cf2ff45c774eb9d95224bf16c9555a8cd7e44dccaea1bd44eda4dc43bf298885272 + languageName: node + linkType: hard + "@metamask/json-rpc-middleware-stream@npm:^7.0.1": version: 7.0.1 resolution: "@metamask/json-rpc-middleware-stream@npm:7.0.1" @@ -6224,15 +6253,15 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-middleware-stream@npm:^8.0.0": - version: 8.0.0 - resolution: "@metamask/json-rpc-middleware-stream@npm:8.0.0" +"@metamask/json-rpc-middleware-stream@npm:^8.0.1, @metamask/json-rpc-middleware-stream@npm:^8.0.2": + version: 8.0.2 + resolution: "@metamask/json-rpc-middleware-stream@npm:8.0.2" dependencies: - "@metamask/json-rpc-engine": ^9.0.0 + "@metamask/json-rpc-engine": ^9.0.2 "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.3.0 + "@metamask/utils": ^9.1.0 readable-stream: ^3.6.2 - checksum: 4bf809366da41744c841dd50d68cf126e1cccda0d78a812154489faa2b0a56bbd511a7bb4e9ccc7c68f2a9a6437f00561bc9423a5b5596badd511a4ff6244c9e + checksum: 0aa44b98e5832c158594e5b616d351c7c8da8f7bc8de0a14f91a043b92fd81f1a63eecac9b11f7ef4729f54d2f1ad1ae5b82db6188368cefac1ca31011b84730 languageName: node linkType: hard @@ -6249,6 +6278,19 @@ __metadata: languageName: node linkType: hard +"@metamask/key-tree@npm:^9.1.2": + version: 9.1.2 + resolution: "@metamask/key-tree@npm:9.1.2" + dependencies: + "@metamask/scure-bip39": ^2.1.1 + "@metamask/utils": ^9.0.0 + "@noble/curves": ^1.2.0 + "@noble/hashes": ^1.3.2 + "@scure/base": ^1.0.0 + checksum: eb60bdbfa1806c2f248bf2602cd242e21b0fbe8bbb00ec97c3891739956a81e26c0dae125282a6207dbbe0643e727ff3574067b48210a0b01f12aae7b3159b77 + languageName: node + linkType: hard + "@metamask/keyring-api@npm:^6.0.0": version: 6.2.1 resolution: "@metamask/keyring-api@npm:6.2.1" @@ -6323,7 +6365,7 @@ __metadata: languageName: node linkType: hard -"@metamask/logging-controller@npm:^3.0.0, @metamask/logging-controller@npm:^3.0.1": +"@metamask/logging-controller@npm:3.0.1": version: 3.0.1 resolution: "@metamask/logging-controller@npm:3.0.1" dependencies: @@ -6334,6 +6376,17 @@ __metadata: languageName: node linkType: hard +"@metamask/logging-controller@patch:@metamask/logging-controller@npm%3A3.0.1#./.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch::locator=metamask%40workspace%3A.": + version: 3.0.1 + resolution: "@metamask/logging-controller@patch:@metamask/logging-controller@npm%3A3.0.1#./.yarn/patches/@metamask-logging-controller-npm-3.0.1-dc772bba77.patch::version=3.0.1&hash=54377f&locator=metamask%40workspace%3A." + dependencies: + "@metamask/base-controller": ^5.0.1 + "@metamask/controller-utils": ^9.0.1 + uuid: ^8.3.2 + checksum: affb19556f91334da7f9e9c53f81c405152b0b6b0448350f30ca5bc1df8c1ff33a5d179c9a8e787296ffbba889df50a39e591050fd0be2d430d04f9305cebf25 + languageName: node + linkType: hard + "@metamask/message-manager@npm:^10.0.1": version: 10.0.1 resolution: "@metamask/message-manager@npm:10.0.1" @@ -6393,7 +6446,7 @@ __metadata: languageName: node linkType: hard -"@metamask/network-controller@npm:^17.0.0, @metamask/network-controller@npm:^17.1.0": +"@metamask/network-controller@npm:^17.1.0": version: 17.2.1 resolution: "@metamask/network-controller@npm:17.2.1" dependencies: @@ -6460,25 +6513,25 @@ __metadata: linkType: hard "@metamask/network-controller@npm:^20.0.0": - version: 20.0.0 - resolution: "@metamask/network-controller@npm:20.0.0" + version: 20.1.0 + resolution: "@metamask/network-controller@npm:20.1.0" dependencies: - "@metamask/base-controller": ^6.0.0 - "@metamask/controller-utils": ^11.0.0 + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 "@metamask/eth-block-tracker": ^9.0.3 "@metamask/eth-json-rpc-infura": ^9.1.0 "@metamask/eth-json-rpc-middleware": ^12.1.1 - "@metamask/eth-json-rpc-provider": ^4.1.0 + "@metamask/eth-json-rpc-provider": ^4.1.2 "@metamask/eth-query": ^4.0.0 - "@metamask/json-rpc-engine": ^9.0.0 - "@metamask/rpc-errors": ^6.2.1 + "@metamask/json-rpc-engine": ^9.0.2 + "@metamask/rpc-errors": ^6.3.1 "@metamask/swappable-obj-proxy": ^2.2.0 - "@metamask/utils": ^8.3.0 + "@metamask/utils": ^9.1.0 async-mutex: ^0.5.0 immer: ^9.0.6 loglevel: ^1.8.1 uuid: ^8.3.2 - checksum: 27a4b669655d4566045de5489d9bc8fee8454f2e74ddc844c0c978a5af6b821c0bdf020b9b649db32f07a298006c021e33e6d29ccf64a6f6301a8e80de21000c + checksum: 41aa7f2cd693850b3f3ce3a0937b67bdca482bf573b1b96fa36cbf75728c3593c2082b2cd99497cf2cb182912f73e784a6cc8c4db0357bf452caa2d5890329c7 languageName: node linkType: hard @@ -6494,7 +6547,7 @@ __metadata: languageName: node linkType: hard -"@metamask/notification-services-controller@npm:^0.1.1": +"@metamask/notification-services-controller@npm:0.1.1": version: 0.1.1 resolution: "@metamask/notification-services-controller@npm:0.1.1" dependencies: @@ -6515,6 +6568,27 @@ __metadata: languageName: node linkType: hard +"@metamask/notification-services-controller@patch:@metamask/notification-services-controller@npm%3A0.1.1#./.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch::locator=metamask%40workspace%3A.": + version: 0.1.1 + resolution: "@metamask/notification-services-controller@patch:@metamask/notification-services-controller@npm%3A0.1.1#./.yarn/patches/@metamask-notification-services-controller-npm-0.1.1-6e91f27363.patch::version=0.1.1&hash=5b051c&locator=metamask%40workspace%3A." + dependencies: + "@contentful/rich-text-html-renderer": ^16.5.2 + "@metamask/base-controller": ^6.0.0 + "@metamask/controller-utils": ^11.0.0 + "@metamask/keyring-controller": ^17.1.0 + "@metamask/profile-sync-controller": ^0.1.1 + bignumber.js: ^4.1.0 + contentful: ^10.3.6 + firebase: ^10.11.0 + loglevel: ^1.8.1 + uuid: ^8.3.2 + peerDependencies: + "@metamask/keyring-controller": ^17.0.0 + "@metamask/profile-sync-controller": ^0.1.1 + checksum: 22f704ca567022e41312c9fa4fb5cdf65d6593cbc4a466adedb010e737612c01afeed9b02496e6d7f6493573714446e2693f1a46dda9c65ee323dce5b1e8a56f + languageName: node + linkType: hard + "@metamask/number-to-bn@npm:^1.7.1": version: 1.7.1 resolution: "@metamask/number-to-bn@npm:1.7.1" @@ -6585,7 +6659,26 @@ __metadata: languageName: node linkType: hard -"@metamask/permission-controller@npm:^9.0.0, @metamask/permission-controller@npm:^9.0.2": +"@metamask/permission-controller@npm:^11.0.0": + version: 11.0.0 + resolution: "@metamask/permission-controller@npm:11.0.0" + dependencies: + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 + "@metamask/json-rpc-engine": ^9.0.2 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/utils": ^9.1.0 + "@types/deep-freeze-strict": ^1.1.0 + deep-freeze-strict: ^1.1.1 + immer: ^9.0.6 + nanoid: ^3.1.31 + peerDependencies: + "@metamask/approval-controller": ^7.0.0 + checksum: 3038d6ddfff65fc4d5b32c49413f09c3c1522a34b990fb9990915534ef959c5112b517d683825d78a5c11d1669c160b7efe432b2f2e40289e079d617c2a4acf1 + languageName: node + linkType: hard + +"@metamask/permission-controller@npm:^9.0.0": version: 9.1.1 resolution: "@metamask/permission-controller@npm:9.1.1" dependencies: @@ -6604,29 +6697,31 @@ __metadata: languageName: node linkType: hard -"@metamask/phishing-controller@npm:^10.0.0": - version: 10.0.0 - resolution: "@metamask/phishing-controller@npm:10.0.0" +"@metamask/phishing-controller@npm:10.1.1": + version: 10.1.1 + resolution: "@metamask/phishing-controller@npm:10.1.1" dependencies: - "@metamask/base-controller": ^6.0.0 - "@metamask/controller-utils": ^11.0.0 + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 "@types/punycode": ^2.1.0 eth-phishing-detect: ^1.2.0 + fastest-levenshtein: ^1.0.16 punycode: ^2.1.1 - checksum: c9da583e8620dc0bb82e799305cccd1b0f54501c9a5b9321295049d08d16fff3bf4111d4c81c76c5d0f292d4c8e1113b3baef18d011bd09e6c2b2404c3d43557 + checksum: 9bd1ea299a721b4106d25475bdda7ab696ebd72ace6eaf2328c7c357f586a38ea200b7e92ba8cb34c42be7061eebadb463b14af52517c994a4d993483b0d9545 languageName: node linkType: hard -"@metamask/phishing-controller@npm:^9.0.0, @metamask/phishing-controller@npm:^9.0.1": - version: 9.0.2 - resolution: "@metamask/phishing-controller@npm:9.0.2" +"@metamask/phishing-controller@patch:@metamask/phishing-controller@npm%3A10.1.1#./.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch::locator=metamask%40workspace%3A.": + version: 10.1.1 + resolution: "@metamask/phishing-controller@patch:@metamask/phishing-controller@npm%3A10.1.1#./.yarn/patches/@metamask-phishing-controller-npm-10.1.1-0005d84315.patch::version=10.1.1&hash=edd4cc&locator=metamask%40workspace%3A." dependencies: - "@metamask/base-controller": ^5.0.2 - "@metamask/controller-utils": ^9.1.0 + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 "@types/punycode": ^2.1.0 eth-phishing-detect: ^1.2.0 + fastest-levenshtein: ^1.0.16 punycode: ^2.1.1 - checksum: 546838ca49a5e98eefc88c86ac703bf0b41d75496752b3eda4048abcc61bab8ff4b9fed3f5c45aaa89b708eabf2ce442e041f2b42c4acdc8e85d856085311aad + checksum: 86572f49d5c0eccab430581db3134b7c232a4aa936306ea6577c89d51fcf3982789f2cf4998e8a7da1d07aecdeb16cf4ad93ee435dcc18f7c465ed2cbfe60261 languageName: node linkType: hard @@ -6698,6 +6793,22 @@ __metadata: languageName: node linkType: hard +"@metamask/polling-controller@npm:^9.0.1": + version: 9.0.1 + resolution: "@metamask/polling-controller@npm:9.0.1" + dependencies: + "@metamask/base-controller": ^6.0.2 + "@metamask/controller-utils": ^11.0.2 + "@metamask/utils": ^9.1.0 + "@types/uuid": ^8.3.0 + fast-json-stable-stringify: ^2.1.0 + uuid: ^8.3.2 + peerDependencies: + "@metamask/network-controller": ^20.0.0 + checksum: 12a294901fb8cde333353741e483110b8627b9ba872ef6f0197df8654bed0cb2e8bba23ad69e36a93b322ebf43c312fe071b8fc496e1708fd364532e9650265a + languageName: node + linkType: hard + "@metamask/post-message-stream@npm:^8.0.0, @metamask/post-message-stream@npm:^8.1.0": version: 8.1.0 resolution: "@metamask/post-message-stream@npm:8.1.0" @@ -6708,20 +6819,21 @@ __metadata: languageName: node linkType: hard -"@metamask/ppom-validator@npm:0.32.0": +"@metamask/ppom-validator@github:MetaMask/ppom-validator#bump-base-controller-to-6.0.2-expose-build": version: 0.32.0 - resolution: "@metamask/ppom-validator@npm:0.32.0" + resolution: "@metamask/ppom-validator@https://github.com/MetaMask/ppom-validator.git#commit=114cfceedded7bdf85faa4699b4efb8d5621f2d1" dependencies: - "@metamask/base-controller": ^3.0.0 + "@metamask/base-controller": ^6.0.2 "@metamask/controller-utils": ^8.0.1 - "@metamask/network-controller": ^17.0.0 + "@metamask/network-controller": ^20.0.0 + "@metamask/rpc-errors": ^6.3.1 "@metamask/utils": ^8.3.0 await-semaphore: ^0.1.3 crypto-js: ^4.2.0 elliptic: ^6.5.4 eslint-plugin-n: ^16.6.2 json-rpc-random-id: ^1.0.1 - checksum: 697eac141f8816c6cff52b942ff57ff7f3880be3d83082cdbc2ba360629d497c2b3903e0cf3c14b89e030c9dcf4e4dca692ce0f100756a79765204e301180c0a + checksum: bb135e2df1c1fafc6211125443b014124837a3e1e1d92fe48c0b188543628ebb84a683a32c21f926afe30df88162e2b14f15566b429b99fe5c4273bbb0fb05dc languageName: node linkType: hard @@ -6737,7 +6849,7 @@ __metadata: languageName: node linkType: hard -"@metamask/profile-sync-controller@npm:^0.1.1, @metamask/profile-sync-controller@npm:^0.1.3": +"@metamask/profile-sync-controller@npm:0.1.3": version: 0.1.3 resolution: "@metamask/profile-sync-controller@npm:0.1.3" dependencies: @@ -6756,6 +6868,25 @@ __metadata: languageName: node linkType: hard +"@metamask/profile-sync-controller@patch:@metamask/profile-sync-controller@npm%3A0.1.3#./.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch::locator=metamask%40workspace%3A.": + version: 0.1.3 + resolution: "@metamask/profile-sync-controller@patch:@metamask/profile-sync-controller@npm%3A0.1.3#./.yarn/patches/@metamask-profile-sync-controller-npm-0.1.3-111e75acee.patch::version=0.1.3&hash=2dba9a&locator=metamask%40workspace%3A." + dependencies: + "@metamask/base-controller": ^6.0.1 + "@metamask/snaps-controllers": ^8.1.1 + "@metamask/snaps-sdk": ^4.2.0 + "@metamask/snaps-utils": ^7.4.0 + "@noble/ciphers": ^0.5.2 + "@noble/hashes": ^1.4.0 + immer: ^9.0.6 + loglevel: ^1.8.1 + siwe: ^2.3.2 + peerDependencies: + "@metamask/snaps-controllers": ^8.1.1 + checksum: f12ab86fadfcd293d6d783aebb8c1965f80bdf96c99e08aef647ef3b966a6d5c4ad55710976069b94ca5df1642706117d2f5a81b35c11286e0bfd4d9a6c9d71f + languageName: node + linkType: hard + "@metamask/providers@npm:^13.1.0": version: 13.1.0 resolution: "@metamask/providers@npm:13.1.0" @@ -6816,6 +6947,27 @@ __metadata: languageName: node linkType: hard +"@metamask/providers@npm:^17.1.2": + version: 17.1.2 + resolution: "@metamask/providers@npm:17.1.2" + dependencies: + "@metamask/json-rpc-engine": ^9.0.1 + "@metamask/json-rpc-middleware-stream": ^8.0.1 + "@metamask/object-multiplex": ^2.0.0 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/safe-event-emitter": ^3.1.1 + "@metamask/utils": ^9.0.0 + detect-browser: ^5.2.0 + extension-port-stream: ^4.1.0 + fast-deep-equal: ^3.1.3 + is-stream: ^2.0.0 + readable-stream: ^3.6.2 + peerDependencies: + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + checksum: 4cfe612649120049abd5d496e02facd86d0851c10e810a3e1289629857da027d77524e6cb8706d38b993bc5fd696bce6f1d33c93bb7d15169b6422e063f205ea + languageName: node + linkType: hard + "@metamask/react-native-actionsheet@npm:2.4.2": version: 2.4.2 resolution: "@metamask/react-native-actionsheet@npm:2.4.2" @@ -6984,24 +7136,24 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-controllers@npm:^8.1.1": - version: 8.3.1 - resolution: "@metamask/snaps-controllers@npm:8.3.1" +"@metamask/snaps-controllers@npm:9.3.1": + version: 9.3.1 + resolution: "@metamask/snaps-controllers@npm:9.3.1" dependencies: - "@metamask/approval-controller": ^6.0.2 - "@metamask/base-controller": ^5.0.2 - "@metamask/json-rpc-engine": ^8.0.1 - "@metamask/json-rpc-middleware-stream": ^7.0.1 + "@metamask/approval-controller": ^7.0.2 + "@metamask/base-controller": ^6.0.2 + "@metamask/json-rpc-engine": ^9.0.2 + "@metamask/json-rpc-middleware-stream": ^8.0.2 "@metamask/object-multiplex": ^2.0.0 - "@metamask/permission-controller": ^9.0.2 - "@metamask/phishing-controller": ^9.0.1 + "@metamask/permission-controller": ^11.0.0 + "@metamask/phishing-controller": ^10.1.1 "@metamask/post-message-stream": ^8.1.0 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/snaps-registry": ^3.1.0 - "@metamask/snaps-rpc-methods": ^9.1.2 - "@metamask/snaps-sdk": ^4.4.1 - "@metamask/snaps-utils": ^7.4.1 - "@metamask/utils": ^8.3.0 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/snaps-registry": ^3.2.1 + "@metamask/snaps-rpc-methods": ^10.0.1 + "@metamask/snaps-sdk": ^6.1.0 + "@metamask/snaps-utils": ^7.8.1 + "@metamask/utils": ^9.1.0 "@xstate/fsm": ^2.0.0 browserify-zlib: ^0.2.0 concat-stream: ^2.0.0 @@ -7013,32 +7165,32 @@ __metadata: readable-web-to-node-stream: ^3.0.2 tar-stream: ^3.1.7 peerDependencies: - "@metamask/snaps-execution-environments": ^6.3.0 + "@metamask/snaps-execution-environments": ^6.6.2 peerDependenciesMeta: "@metamask/snaps-execution-environments": optional: true - checksum: d2fccfc9a4fdea68c89755a0e93e292eafdbe28515fcf1f5ba761d4fb057ae2f1732d242f776cd089ea8dfbd0f84d9d2151778ba529fd9b5b4c7b00460a612ab + checksum: d539cc0ae9f3018ee4f051b2624e3e1383776d25646a2588307380a71e5e2618de0fede64af6646935906b1035485d6cd62179c7bf8e857b1627a2909c110e60 languageName: node linkType: hard -"@metamask/snaps-controllers@npm:^9.2.0": - version: 9.2.0 - resolution: "@metamask/snaps-controllers@npm:9.2.0" +"@metamask/snaps-controllers@patch:@metamask/snaps-controllers@npm%3A9.3.1#./.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch::locator=metamask%40workspace%3A.": + version: 9.3.1 + resolution: "@metamask/snaps-controllers@patch:@metamask/snaps-controllers@npm%3A9.3.1#./.yarn/patches/@metamask-snaps-controllers-npm-9.3.1-6a141c6563.patch::version=9.3.1&hash=994f5a&locator=metamask%40workspace%3A." dependencies: - "@metamask/approval-controller": ^7.0.0 - "@metamask/base-controller": ^6.0.0 - "@metamask/json-rpc-engine": ^9.0.0 - "@metamask/json-rpc-middleware-stream": ^8.0.0 + "@metamask/approval-controller": ^7.0.2 + "@metamask/base-controller": ^6.0.2 + "@metamask/json-rpc-engine": ^9.0.2 + "@metamask/json-rpc-middleware-stream": ^8.0.2 "@metamask/object-multiplex": ^2.0.0 - "@metamask/permission-controller": ^10.0.0 - "@metamask/phishing-controller": ^10.0.0 + "@metamask/permission-controller": ^11.0.0 + "@metamask/phishing-controller": ^10.1.1 "@metamask/post-message-stream": ^8.1.0 - "@metamask/rpc-errors": ^6.2.1 - "@metamask/snaps-registry": ^3.1.0 - "@metamask/snaps-rpc-methods": ^9.1.4 - "@metamask/snaps-sdk": ^6.0.0 - "@metamask/snaps-utils": ^7.7.0 - "@metamask/utils": ^8.3.0 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/snaps-registry": ^3.2.1 + "@metamask/snaps-rpc-methods": ^10.0.1 + "@metamask/snaps-sdk": ^6.1.0 + "@metamask/snaps-utils": ^7.8.1 + "@metamask/utils": ^9.1.0 "@xstate/fsm": ^2.0.0 browserify-zlib: ^0.2.0 concat-stream: ^2.0.0 @@ -7050,11 +7202,11 @@ __metadata: readable-web-to-node-stream: ^3.0.2 tar-stream: ^3.1.7 peerDependencies: - "@metamask/snaps-execution-environments": ^6.5.0 + "@metamask/snaps-execution-environments": ^6.6.2 peerDependenciesMeta: "@metamask/snaps-execution-environments": optional: true - checksum: 8b5c3fbd9dbb6054e07a666cf639bfc7bcd325ddae95ca2dd13f1dc46ed2d22931758c60116980ebc26d907e89fe235dd7003b1a7e8a743b01fcac9ea6cbbc3d + checksum: 371e1ce4858847d03894b4f3c51c24189a80dedd10da8620743efd31e865a72fae8616a95e8f13aa5c67de923095deddec9a48f6f462cfac84d8c82f899a9cd5 languageName: node linkType: hard @@ -7089,7 +7241,35 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-rpc-methods@npm:^9.1.2, @metamask/snaps-rpc-methods@npm:^9.1.4": +"@metamask/snaps-registry@npm:^3.2.1": + version: 3.2.1 + resolution: "@metamask/snaps-registry@npm:3.2.1" + dependencies: + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.0.0 + "@noble/curves": ^1.2.0 + "@noble/hashes": ^1.3.2 + checksum: d91f71ea1c8284b728c469adce60b771e683a5bd189f26742839e7948bc9a3bb1e9414275c579e0cab4042850122b78fcbd83c4a558fea6a3682eef4cc653b67 + languageName: node + linkType: hard + +"@metamask/snaps-rpc-methods@npm:^10.0.1": + version: 10.0.1 + resolution: "@metamask/snaps-rpc-methods@npm:10.0.1" + dependencies: + "@metamask/key-tree": ^9.1.2 + "@metamask/permission-controller": ^11.0.0 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/snaps-sdk": ^6.1.0 + "@metamask/snaps-utils": ^7.8.1 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.1.0 + "@noble/hashes": ^1.3.1 + checksum: ddf542d29a649f535f2eae274c892c41131d74d93fcd2b2608498eff2075096d069a9609d3a52806f091a2a19f5efa104e3e4c05c07499450b6568cff5af448e + languageName: node + linkType: hard + +"@metamask/snaps-rpc-methods@npm:^9.1.4": version: 9.1.4 resolution: "@metamask/snaps-rpc-methods@npm:9.1.4" dependencies: @@ -7119,7 +7299,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^4.0.1, @metamask/snaps-sdk@npm:^4.2.0, @metamask/snaps-sdk@npm:^4.4.1": +"@metamask/snaps-sdk@npm:^4.0.1, @metamask/snaps-sdk@npm:^4.2.0": version: 4.4.1 resolution: "@metamask/snaps-sdk@npm:4.4.1" dependencies: @@ -7146,7 +7326,20 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-utils@npm:^7.1.0, @metamask/snaps-utils@npm:^7.4.0, @metamask/snaps-utils@npm:^7.4.1, @metamask/snaps-utils@npm:^7.7.0": +"@metamask/snaps-sdk@npm:^6.1.0": + version: 6.1.1 + resolution: "@metamask/snaps-sdk@npm:6.1.1" + dependencies: + "@metamask/key-tree": ^9.1.2 + "@metamask/providers": ^17.1.2 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.1.0 + checksum: 24e5468e46cf597e21140f3877e27e06705e1f8976794a0e9fa56af43c2869f506218d309699cb80607fea78a193453bf36a5a45ae056b508909fdd77d82e8d8 + languageName: node + linkType: hard + +"@metamask/snaps-utils@npm:^7.1.0, @metamask/snaps-utils@npm:^7.4.0, @metamask/snaps-utils@npm:^7.7.0": version: 7.7.0 resolution: "@metamask/snaps-utils@npm:7.7.0" dependencies: @@ -7177,6 +7370,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": ^7.23.2 + "@babel/types": ^7.23.0 + "@metamask/base-controller": ^6.0.2 + "@metamask/key-tree": ^9.1.2 + "@metamask/permission-controller": ^11.0.0 + "@metamask/rpc-errors": ^6.3.1 + "@metamask/slip44": ^3.1.0 + "@metamask/snaps-registry": ^3.2.1 + "@metamask/snaps-sdk": ^6.1.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^9.1.0 + "@noble/hashes": ^1.3.1 + "@scure/base": ^1.1.1 + chalk: ^4.1.2 + cron-parser: ^4.5.0 + fast-deep-equal: ^3.1.3 + fast-json-stable-stringify: ^2.1.0 + fast-xml-parser: ^4.3.4 + marked: ^12.0.1 + rfdc: ^1.3.0 + semver: ^7.5.4 + ses: ^1.1.0 + validate-npm-package-name: ^5.0.0 + checksum: 707c0012af870bd5793ac7cec88fd7f3d90cda4249a756cf725d7026bed3874959fb43682cfee06995a92751ca1dadc5f3eaf7ab497c94413fb790cbbc02d394 + languageName: node + linkType: hard + "@metamask/superstruct@npm:^3.1.0": version: 3.1.0 resolution: "@metamask/superstruct@npm:3.1.0" @@ -23594,6 +23818,17 @@ __metadata: languageName: node linkType: hard +"extension-port-stream@npm:^4.1.0": + version: 4.2.0 + resolution: "extension-port-stream@npm:4.2.0" + dependencies: + readable-stream: ^3.6.2 || ^4.4.2 + peerDependencies: + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + checksum: 85559c82e3f3aa21462e234b30b7d53872708893664cd03f2f848af556cf0730cf2243b089efc9d40bbe9a4f73bd8fd19684db5a985329b0c4402b4f2fe26358 + languageName: node + linkType: hard + "external-editor@npm:^3.0.3": version: 3.1.0 resolution: "external-editor@npm:3.1.0" @@ -23781,7 +24016,7 @@ __metadata: languageName: node linkType: hard -"fastest-levenshtein@npm:^1.0.12": +"fastest-levenshtein@npm:^1.0.12, fastest-levenshtein@npm:^1.0.16": version: 1.0.16 resolution: "fastest-levenshtein@npm:1.0.16" checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 @@ -29530,13 +29765,13 @@ __metadata: "@lavamoat/allow-scripts": ^3.0.4 "@ledgerhq/react-native-hw-transport-ble": ^6.32.3 "@metamask/accounts-controller": ^14.0.0 - "@metamask/address-book-controller": ^4.0.1 + "@metamask/address-book-controller": "npm:@metamask-previews/address-book-controller@5.0.0-preview-aaea6b5" "@metamask/approval-controller": ^7.0.1 - "@metamask/assets-controllers": ^30.0.0 + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@37.0.0-preview-aaea6b5" "@metamask/base-controller": ^5.0.0 "@metamask/browser-passworder": ^5.0.0 "@metamask/build-utils": ^1.0.0 - "@metamask/composable-controller": "npm:@metamask-previews/composable-controller@7.0.0-preview-2ca9038" + "@metamask/composable-controller": "npm:@metamask-previews/composable-controller@7.0.0-preview-b42590f" "@metamask/contract-metadata": ^2.1.0 "@metamask/controller-utils": ^10.0.0 "@metamask/design-tokens": ^4.0.0 @@ -29558,9 +29793,9 @@ __metadata: "@metamask/notification-services-controller": ^0.1.1 "@metamask/object-multiplex": ^1.1.0 "@metamask/permission-controller": ^9.0.0 - "@metamask/phishing-controller": ^9.0.0 + "@metamask/phishing-controller": ^10.1.1 "@metamask/post-message-stream": ^8.0.0 - "@metamask/ppom-validator": 0.32.0 + "@metamask/ppom-validator": "github:MetaMask/ppom-validator#bump-base-controller-to-6.0.2-expose-build" "@metamask/preferences-controller": ^11.0.0 "@metamask/profile-sync-controller": ^0.1.3 "@metamask/providers": ^13.1.0 @@ -29576,7 +29811,7 @@ __metadata: "@metamask/signature-controller": ^16.0.0 "@metamask/slip44": 3.1.0 "@metamask/smart-transactions-controller": 10.1.1 - "@metamask/snaps-controllers": ^9.2.0 + "@metamask/snaps-controllers": ^9.3.1 "@metamask/snaps-execution-environments": ^6.5.0 "@metamask/snaps-rpc-methods": ^9.1.4 "@metamask/snaps-sdk": ^6.0.0 @@ -30701,7 +30936,14 @@ __metadata: languageName: node linkType: hard -"multiformats@npm:^9.4.2, multiformats@npm:^9.5.2": +"multiformats@npm:^13.1.0": + version: 13.2.1 + resolution: "multiformats@npm:13.2.1" + checksum: 922b4231391219140330f199b3bc99bd93fc99c22f6882a318511968b594d09380c5b82e23c695397715a9f15f98f70836fde8905c872adfbb4ee0d4c0675caa + languageName: node + linkType: hard + +"multiformats@npm:^9.4.2": version: 9.9.0 resolution: "multiformats@npm:9.9.0" checksum: d3e8c1be400c09a014f557ea02251a2710dbc9fca5aa32cc702ff29f636c5471e17979f30bdcb0a9cbb556f162a8591dc2e1219c24fc21394a56115b820bb84e