diff --git a/README.md b/README.md index dd554f4015f..75517b4265e 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,7 @@ linkStyle default opacity:0.5 announcement_controller --> base_controller; announcement_controller --> messenger; app_metadata_controller --> base_controller; + app_metadata_controller --> messenger; approval_controller --> base_controller; assets_controllers --> base_controller; assets_controllers --> controller_utils; diff --git a/packages/app-metadata-controller/CHANGELOG.md b/packages/app-metadata-controller/CHANGELOG.md index 8d781a8776f..ec54d3a6843 100644 --- a/packages/app-metadata-controller/CHANGELOG.md +++ b/packages/app-metadata-controller/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6385](https://github.com/MetaMask/core/pull/6385)) + - Previously, `AppMetadataController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`. +- **BREAKING:** Metadata property `anonymous` renamed to `includeInDebugSnapshot` ([#6385](https://github.com/MetaMask/core/pull/6385)) + ## [1.1.1] ### Changed diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index 06c2cbac699..17ce8732b34 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -47,7 +47,8 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { - "@metamask/base-controller": "^8.4.2" + "@metamask/base-controller": "^8.4.2", + "@metamask/messenger": "^0.3.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", diff --git a/packages/app-metadata-controller/src/AppMetadataController.test.ts b/packages/app-metadata-controller/src/AppMetadataController.test.ts index 16c379b1a51..25722e514fd 100644 --- a/packages/app-metadata-controller/src/AppMetadataController.test.ts +++ b/packages/app-metadata-controller/src/AppMetadataController.test.ts @@ -1,9 +1,16 @@ -import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller'; +import { deriveStateFromMetadata } from '@metamask/base-controller/next'; +import { + Messenger, + MOCK_ANY_NAMESPACE, + type MockAnyNamespace, +} from '@metamask/messenger'; import { AppMetadataController, getDefaultAppMetadataControllerState, type AppMetadataControllerOptions, + type AppMetadataControllerActions, + type AppMetadataControllerEvents, } from './AppMetadataController'; describe('AppMetadataController', () => { @@ -128,7 +135,7 @@ describe('AppMetadataController', () => { deriveStateFromMetadata( controller.state, controller.metadata, - 'anonymous', + 'includeInDebugSnapshot', ), ).toMatchInlineSnapshot(` Object { @@ -219,12 +226,20 @@ function withController( ): ReturnValue { const [options = {}, fn] = args.length === 2 ? args : [{}, args[0]]; - const messenger = new Messenger(); - - const appMetadataControllerMessenger = messenger.getRestricted({ - name: 'AppMetadataController', - allowedActions: [], - allowedEvents: [], + const rootMessenger = new Messenger< + MockAnyNamespace, + AppMetadataControllerActions, + AppMetadataControllerEvents + >({ namespace: MOCK_ANY_NAMESPACE }); + + const appMetadataControllerMessenger = new Messenger< + 'AppMetadataController', + AppMetadataControllerActions, + AppMetadataControllerEvents, + typeof rootMessenger + >({ + namespace: 'AppMetadataController', + parent: rootMessenger, }); return fn({ diff --git a/packages/app-metadata-controller/src/AppMetadataController.ts b/packages/app-metadata-controller/src/AppMetadataController.ts index b71818b7fd6..ffd346aea48 100644 --- a/packages/app-metadata-controller/src/AppMetadataController.ts +++ b/packages/app-metadata-controller/src/AppMetadataController.ts @@ -1,10 +1,10 @@ -import { BaseController } from '@metamask/base-controller'; import type { StateMetadata, ControllerGetStateAction, ControllerStateChangeEvent, - RestrictedMessenger, -} from '@metamask/base-controller'; +} from '@metamask/base-controller/next'; +import { BaseController } from '@metamask/base-controller/next'; +import type { Messenger } from '@metamask/messenger'; // Unique name for the controller const controllerName = 'AppMetadataController'; @@ -88,12 +88,10 @@ type AllowedEvents = never; * @returns A restricted messenger type that defines the allowed actions and events * for the AppMetadataController */ -export type AppMetadataControllerMessenger = RestrictedMessenger< +export type AppMetadataControllerMessenger = Messenger< typeof controllerName, AppMetadataControllerActions | AllowedActions, - AppMetadataControllerEvents | AllowedEvents, - AllowedActions['type'], - AllowedEvents['type'] + AppMetadataControllerEvents | AllowedEvents >; /** @@ -105,25 +103,25 @@ const controllerMetadata = { currentAppVersion: { includeInStateLogs: true, persist: true, - anonymous: true, + includeInDebugSnapshot: true, usedInUi: false, }, previousAppVersion: { includeInStateLogs: true, persist: true, - anonymous: true, + includeInDebugSnapshot: true, usedInUi: false, }, previousMigrationVersion: { includeInStateLogs: true, persist: true, - anonymous: true, + includeInDebugSnapshot: true, usedInUi: false, }, currentMigrationVersion: { includeInStateLogs: true, persist: true, - anonymous: true, + includeInDebugSnapshot: true, usedInUi: false, }, } satisfies StateMetadata; diff --git a/packages/app-metadata-controller/tsconfig.build.json b/packages/app-metadata-controller/tsconfig.build.json index e5fd7422b9a..931c4d6594b 100644 --- a/packages/app-metadata-controller/tsconfig.build.json +++ b/packages/app-metadata-controller/tsconfig.build.json @@ -5,6 +5,9 @@ "outDir": "./dist", "rootDir": "./src" }, - "references": [{ "path": "../base-controller/tsconfig.build.json" }], + "references": [ + { "path": "../base-controller/tsconfig.build.json" }, + { "path": "../messenger/tsconfig.build.json" } + ], "include": ["../../types", "./src"] } diff --git a/packages/app-metadata-controller/tsconfig.json b/packages/app-metadata-controller/tsconfig.json index 34354c4b09d..68c3ddfc2cd 100644 --- a/packages/app-metadata-controller/tsconfig.json +++ b/packages/app-metadata-controller/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../base-controller" }], + "references": [{ "path": "../base-controller" }, { "path": "../messenger" }], "include": ["../../types", "./src"] } diff --git a/yarn.lock b/yarn.lock index e66e07bcf00..1305279b509 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2710,6 +2710,7 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.4.2" + "@metamask/messenger": "npm:^0.3.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1"