Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e38749c
refactor: migrate `AppMetadataController` to `@metamask/messenger`
mikesposito Aug 26, 2025
ff3989c
update changelog
mikesposito Aug 26, 2025
0f6f360
add `AppMetadataControllerActions` and `AppMetadataControllerEvents` …
mikesposito Aug 26, 2025
09643f5
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Aug 26, 2025
7822550
mark import as types
mikesposito Aug 26, 2025
0ef6439
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Sep 22, 2025
fd010ee
update messenger to 0.3.0
mikesposito Sep 22, 2025
5a79b84
rename `anonymous` to `includeInDebugSnapshot`
mikesposito Sep 22, 2025
5b0c7c8
update tsconfig and README
mikesposito Sep 22, 2025
ededeb6
use `MockAnyNamespace`
mikesposito Sep 22, 2025
e40037f
run prettier
mikesposito Sep 23, 2025
32502e2
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Sep 23, 2025
a1a938c
update README
mikesposito Sep 23, 2025
9da8ed2
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 8, 2025
b653b8d
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 13, 2025
d46ec31
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 15, 2025
b9e6f2f
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 20, 2025
18f3c88
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 24, 2025
8232827
Merge branch 'main' into mikesposito/messenger/app-metadata-controller
mikesposito Oct 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 6 additions & 0 deletions packages/app-metadata-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion packages/app-metadata-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
@@ -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', () => {
Expand Down Expand Up @@ -128,7 +135,7 @@ describe('AppMetadataController', () => {
deriveStateFromMetadata(
controller.state,
controller.metadata,
'anonymous',
'includeInDebugSnapshot',
),
).toMatchInlineSnapshot(`
Object {
Expand Down Expand Up @@ -219,12 +226,20 @@ function withController<ReturnValue>(
): ReturnValue {
const [options = {}, fn] = args.length === 2 ? args : [{}, args[0]];

const messenger = new Messenger<never, never>();

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({
Expand Down
20 changes: 9 additions & 11 deletions packages/app-metadata-controller/src/AppMetadataController.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -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
>;

/**
Expand All @@ -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<AppMetadataControllerState>;
Expand Down
5 changes: 4 additions & 1 deletion packages/app-metadata-controller/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
}
2 changes: 1 addition & 1 deletion packages/app-metadata-controller/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"compilerOptions": {
"baseUrl": "./"
},
"references": [{ "path": "../base-controller" }],
"references": [{ "path": "../base-controller" }, { "path": "../messenger" }],
"include": ["../../types", "./src"]
}
1 change: 1 addition & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading