Skip to content

Commit 202b3b4

Browse files
committed
refactor: migrate {AbstractMessage,DecryptMessage,EncryptionPublicKey}Manager to @metamask/messenger
1 parent e5f7fa0 commit 202b3b4

File tree

8 files changed

+31
-45
lines changed

8 files changed

+31
-45
lines changed

packages/message-manager/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changed
1111

12+
- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6545](https://github.com/MetaMask/core/pull/6545))
13+
- Previously, `AbstractMessageManager`, `DecryptMessageManager` and `EncryptionPublicKeyManager` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
1214
- **BREAKING:** `AbstractMessageManager` now expects a `Name extends string` generic parameter to define the name of the message manager ([#6469](https://github.com/MetaMask/core/pull/6469))
1315
- The type is used as namespace for `BaseController` and `Messenger` events and actions.
1416
- Bump `@metamask/base-controller` from `^8.0.1` to `^8.3.0` ([#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465))

packages/message-manager/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"@metamask/base-controller": "^8.3.0",
5151
"@metamask/controller-utils": "^11.12.0",
5252
"@metamask/eth-sig-util": "^8.2.0",
53+
"@metamask/messenger": "^0.2.0",
5354
"@metamask/utils": "^11.4.2",
5455
"@types/uuid": "^8.3.0",
5556
"jsonschema": "^1.4.1",

packages/message-manager/src/AbstractMessageManager.test.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import type { RestrictedMessenger } from '@metamask/base-controller';
21
import { ApprovalType } from '@metamask/controller-utils';
2+
import type { Messenger } from '@metamask/messenger';
33

44
import type {
55
AbstractMessage,
@@ -68,13 +68,7 @@ const MOCK_MESSENGER = {
6868
publish: jest.fn(),
6969
registerActionHandler: jest.fn(),
7070
registerInitialEventPayload: jest.fn(),
71-
} as unknown as RestrictedMessenger<
72-
'TestManager',
73-
never,
74-
never,
75-
string,
76-
string
77-
>;
71+
} as unknown as Messenger<'TestManager', never, never>;
7872

7973
const MOCK_INITIAL_OPTIONS = {
8074
additionalFinishStatuses: undefined,

packages/message-manager/src/AbstractMessageManager.ts

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { BaseController } from '@metamask/base-controller';
1+
import { BaseController } from '@metamask/base-controller/next';
2+
import type { ApprovalType } from '@metamask/controller-utils';
23
import type {
34
ActionConstraint,
45
EventConstraint,
5-
RestrictedMessenger,
6-
} from '@metamask/base-controller';
7-
import type { ApprovalType } from '@metamask/controller-utils';
6+
Messenger,
7+
} from '@metamask/messenger';
88
import type { Json } from '@metamask/utils';
99
// This package purposefully relies on Node's EventEmitter module.
1010
// eslint-disable-next-line import-x/no-nodejs-modules
@@ -127,13 +127,7 @@ export type AbstractMessageManagerOptions<
127127
Event extends EventConstraint,
128128
> = {
129129
additionalFinishStatuses?: string[];
130-
messenger: RestrictedMessenger<
131-
Name,
132-
Action,
133-
Event | UpdateBadgeEvent<Name>,
134-
string,
135-
string
136-
>;
130+
messenger: Messenger<Name, Action, Event | UpdateBadgeEvent<Name>>;
137131
name: Name;
138132
securityProviderRequest?: SecurityProviderRequest;
139133
state?: MessageManagerState<Message>;
@@ -152,13 +146,7 @@ export abstract class AbstractMessageManager<
152146
> extends BaseController<
153147
Name,
154148
MessageManagerState<Message>,
155-
RestrictedMessenger<
156-
Name,
157-
Action,
158-
Event | UpdateBadgeEvent<Name>,
159-
string,
160-
string
161-
>
149+
Messenger<Name, Action, Event | UpdateBadgeEvent<Name>>
162150
> {
163151
protected messages: Message[];
164152

@@ -190,7 +178,7 @@ export abstract class AbstractMessageManager<
190178
}
191179

192180
/**
193-
* Adds request props to the messsage params and returns a new messageParams object.
181+
* Adds request props to the message params and returns a new messageParams object.
194182
* @param messageParams - The messageParams to add the request props to.
195183
* @param req - The original request object.
196184
* @returns The messageParams with the request props added.
@@ -247,7 +235,7 @@ export abstract class AbstractMessageManager<
247235
state.unapprovedMessagesCount = this.getUnapprovedMessagesCount();
248236
});
249237
if (emitUpdateBadge) {
250-
this.messagingSystem.publish(`${this.name}:updateBadge`);
238+
this.messenger.publish(`${this.name}:updateBadge` as const);
251239
}
252240
}
253241

packages/message-manager/src/DecryptMessageManager.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { ApprovalType } from '@metamask/controller-utils';
12
import type {
23
ActionConstraint,
34
EventConstraint,
4-
RestrictedMessenger,
5-
} from '@metamask/base-controller';
6-
import { ApprovalType } from '@metamask/controller-utils';
5+
Messenger,
6+
} from '@metamask/messenger';
77

88
import type {
99
AbstractMessage,
@@ -30,14 +30,12 @@ export type DecryptMessageManagerUpdateBadgeEvent = {
3030
payload: [];
3131
};
3232

33-
export type DecryptMessageManagerMessenger = RestrictedMessenger<
33+
export type DecryptMessageManagerMessenger = Messenger<
3434
typeof managerName,
3535
ActionConstraint,
3636
| EventConstraint
3737
| DecryptMessageManagerUnapprovedMessageAddedEvent
38-
| DecryptMessageManagerUpdateBadgeEvent,
39-
string,
40-
string
38+
| DecryptMessageManagerUpdateBadgeEvent
4139
>;
4240

4341
type DecryptMessageManagerOptions = {
@@ -194,7 +192,7 @@ export class DecryptMessageManager extends AbstractMessageManager<
194192
const messageId = messageData.id;
195193

196194
await this.addMessage(messageData);
197-
this.messagingSystem.publish(`${managerName}:unapprovedMessage`, {
195+
this.messenger.publish(`${managerName}:unapprovedMessage`, {
198196
...updatedMessageParams,
199197
metamaskId: messageId,
200198
});

packages/message-manager/src/EncryptionPublicKeyManager.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { ApprovalType } from '@metamask/controller-utils';
12
import type {
23
ActionConstraint,
34
EventConstraint,
4-
RestrictedMessenger,
5-
} from '@metamask/base-controller';
6-
import { ApprovalType } from '@metamask/controller-utils';
5+
Messenger,
6+
} from '@metamask/messenger';
77

88
import type {
99
AbstractMessage,
@@ -31,14 +31,12 @@ export type EncryptionPublicKeyManagerUpdateBadgeEvent = {
3131
payload: [];
3232
};
3333

34-
export type EncryptionPublicKeyManagerMessenger = RestrictedMessenger<
34+
export type EncryptionPublicKeyManagerMessenger = Messenger<
3535
typeof managerName,
3636
ActionConstraint,
3737
| EventConstraint
3838
| EncryptionPublicKeyManagerUnapprovedMessageAddedEvent
39-
| EncryptionPublicKeyManagerUpdateBadgeEvent,
40-
string,
41-
string
39+
| EncryptionPublicKeyManagerUpdateBadgeEvent
4240
>;
4341

4442
type EncryptionPublicKeyManagerOptions = {
@@ -185,7 +183,7 @@ export class EncryptionPublicKeyManager extends AbstractMessageManager<
185183
const messageId = messageData.id;
186184

187185
await this.addMessage(messageData);
188-
this.messagingSystem.publish(`${this.name}:unapprovedMessage`, {
186+
this.messenger.publish(`${this.name}:unapprovedMessage` as const, {
189187
...updatedMessageParams,
190188
metamaskId: messageId,
191189
});

packages/message-manager/src/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
export * from './AbstractMessageManager';
22
export * from './EncryptionPublicKeyManager';
33
export * from './DecryptMessageManager';
4-
export * from './types';
4+
export type {
5+
SignTypedDataMessageV3V4,
6+
PersonalMessageParams,
7+
TypedMessageParams,
8+
} from './types';

yarn.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3777,6 +3777,7 @@ __metadata:
37773777
"@metamask/base-controller": "npm:^8.3.0"
37783778
"@metamask/controller-utils": "npm:^11.12.0"
37793779
"@metamask/eth-sig-util": "npm:^8.2.0"
3780+
"@metamask/messenger": "npm:^0.2.0"
37803781
"@metamask/utils": "npm:^11.4.2"
37813782
"@types/jest": "npm:^27.4.1"
37823783
"@types/uuid": "npm:^8.3.0"

0 commit comments

Comments
 (0)