Skip to content

Commit b5ab756

Browse files
committed
refactor: migrate PermissionLogController to @metamask/messenger
1 parent 273e522 commit b5ab756

File tree

6 files changed

+87
-14
lines changed

6 files changed

+87
-14
lines changed

packages/permission-log-controller/CHANGELOG.md

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

88
## [Unreleased]
99

10+
### Added
11+
12+
- Export `PermissionLogControllerGetStateAction` messenger action and `PermissionLogControllerStateChangeEvent` messenger event ([#6536](https://github.com/MetaMask/core/pull/6536))
13+
1014
### Changed
1115

16+
- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6536](https://github.com/MetaMask/core/pull/6536))
17+
- Previously, `PermissionLogController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
1218
- 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))
1319

1420
## [4.0.0]

packages/permission-log-controller/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"dependencies": {
5050
"@metamask/base-controller": "^8.3.0",
5151
"@metamask/json-rpc-engine": "^10.0.3",
52+
"@metamask/messenger": "^0.2.0",
5253
"@metamask/utils": "^11.4.2"
5354
},
5455
"devDependencies": {

packages/permission-log-controller/src/PermissionLogController.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import {
22
BaseController,
3-
type RestrictedMessenger,
4-
} from '@metamask/base-controller';
3+
type ControllerGetStateAction,
4+
type ControllerStateChangeEvent,
5+
} from '@metamask/base-controller/next';
56
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';
7+
import type { Messenger } from '@metamask/messenger';
68
import {
79
type Json,
810
type JsonRpcRequest,
@@ -70,12 +72,24 @@ export type PermissionLogControllerOptions = {
7072
messenger: PermissionLogControllerMessenger;
7173
};
7274

73-
export type PermissionLogControllerMessenger = RestrictedMessenger<
75+
export type PermissionLogControllerGetStateAction = ControllerGetStateAction<
7476
typeof name,
75-
never,
76-
never,
77-
never,
78-
never
77+
PermissionLogControllerState
78+
>;
79+
80+
export type PermissionLogControllerActions =
81+
PermissionLogControllerGetStateAction;
82+
83+
export type PermissionLogControllerStateChangeEvent =
84+
ControllerStateChangeEvent<typeof name, PermissionLogControllerState>;
85+
86+
export type PermissionLogControllerEvents =
87+
PermissionLogControllerStateChangeEvent;
88+
89+
export type PermissionLogControllerMessenger = Messenger<
90+
typeof name,
91+
PermissionLogControllerActions,
92+
PermissionLogControllerEvents
7993
>;
8094

8195
const defaultState: PermissionLogControllerState = {
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
export * from './PermissionLogController';
1+
export { PermissionLogController } from './PermissionLogController';
2+
export type {
3+
JsonRpcRequestWithOrigin,
4+
Caveat,
5+
Permission,
6+
PermissionActivityLog,
7+
PermissionLog,
8+
PermissionEntry,
9+
PermissionHistory,
10+
PermissionLogControllerActions,
11+
PermissionLogControllerGetStateAction,
12+
PermissionLogControllerStateChangeEvent,
13+
PermissionLogControllerEvents,
14+
PermissionLogControllerMessenger,
15+
PermissionLogControllerState,
16+
PermissionLogControllerOptions,
17+
} from './PermissionLogController';

packages/permission-log-controller/tests/PermissionLogController.test.ts

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
import { Messenger } from '@metamask/base-controller';
21
import type {
32
JsonRpcEngineReturnHandler,
43
JsonRpcEngineNextCallback,
54
} from '@metamask/json-rpc-engine';
5+
import {
6+
Messenger,
7+
MOCK_ANY_NAMESPACE,
8+
type MessengerActions,
9+
type MessengerEvents,
10+
type MockAnyNamespace,
11+
} from '@metamask/messenger';
612
import {
713
type PendingJsonRpcResponse,
814
type JsonRpcRequest,
@@ -13,9 +19,10 @@ import { nanoid } from 'nanoid';
1319
import { constants, getters, noop } from './helpers';
1420
import { LOG_LIMIT, LOG_METHOD_TYPES } from '../src/enums';
1521
import {
22+
PermissionLogController,
1623
type Permission,
1724
type PermissionLogControllerState,
18-
PermissionLogController,
25+
type PermissionLogControllerMessenger,
1926
} from '../src/PermissionLogController';
2027

2128
const { PERMS, RPC_REQUESTS } = getters;
@@ -33,17 +40,45 @@ class CustomError extends Error {
3340

3441
const name = 'PermissionLogController';
3542

43+
type AllPermissionLogControllerActions =
44+
MessengerActions<PermissionLogControllerMessenger>;
45+
46+
type AllPermissionLogControllerEvents =
47+
MessengerEvents<PermissionLogControllerMessenger>;
48+
49+
type RootMessenger = Messenger<
50+
MockAnyNamespace,
51+
AllPermissionLogControllerActions,
52+
AllPermissionLogControllerEvents
53+
>;
54+
55+
/**
56+
* Creates and returns a root messenger for testing
57+
*
58+
* @returns A messenger instance
59+
*/
60+
function getRootMessenger(): RootMessenger {
61+
return new Messenger({
62+
namespace: MOCK_ANY_NAMESPACE,
63+
});
64+
}
65+
3666
const initController = ({
3767
restrictedMethods,
3868
state,
3969
}: {
4070
restrictedMethods: Set<string>;
4171
state?: Partial<PermissionLogControllerState>;
4272
}): PermissionLogController => {
43-
const messenger = new Messenger().getRestricted({
44-
name,
45-
allowedActions: [],
46-
allowedEvents: [],
73+
const rootMessenger = getRootMessenger();
74+
const messenger = new Messenger<
75+
typeof name,
76+
AllPermissionLogControllerActions,
77+
AllPermissionLogControllerEvents,
78+
RootMessenger
79+
>({
80+
namespace: name,
81+
parent: rootMessenger,
4782
});
4883
return new PermissionLogController({
4984
messenger,

yarn.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4138,6 +4138,7 @@ __metadata:
41384138
"@metamask/auto-changelog": "npm:^3.4.4"
41394139
"@metamask/base-controller": "npm:^8.3.0"
41404140
"@metamask/json-rpc-engine": "npm:^10.0.3"
4141+
"@metamask/messenger": "npm:^0.2.0"
41414142
"@metamask/utils": "npm:^11.4.2"
41424143
"@types/deep-freeze-strict": "npm:^1.1.0"
41434144
"@types/jest": "npm:^27.4.1"

0 commit comments

Comments
 (0)