Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ linkStyle default opacity:0.5
earn_controller --> transaction_controller;
eip_5792_middleware --> transaction_controller;
eip_5792_middleware --> keyring_controller;
eip_7702_internal_rpc_middleware --> controller_utils;
eip1193_permission_middleware --> chain_agnostic_permission;
eip1193_permission_middleware --> controller_utils;
eip1193_permission_middleware --> json_rpc_engine;
Expand Down Expand Up @@ -285,6 +286,7 @@ linkStyle default opacity:0.5
permission_controller --> approval_controller;
permission_log_controller --> base_controller;
permission_log_controller --> json_rpc_engine;
permission_log_controller --> messenger;
phishing_controller --> base_controller;
phishing_controller --> controller_utils;
phishing_controller --> transaction_controller;
Expand Down
10 changes: 10 additions & 0 deletions packages/permission-log-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Export new messenger action and event types: `PermissionLogControllerActions`, `PermissionLogControllerGetStateAction`, `PermissionLogControllerEvents`, and `PermissionLogControllerStateChangeEvent` ([#6536](https://github.com/MetaMask/core/pull/6536))

### Changed

- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6536](https://github.com/MetaMask/core/pull/6536))
- Previously, `PermissionLogController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
- **BREAKING:** Metadata property `anonymous` renamed to `includeInDebugSnapshot` ([#6536](https://github.com/MetaMask/core/pull/6536))

## [4.1.1]

### Changed
Expand Down
1 change: 1 addition & 0 deletions packages/permission-log-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"dependencies": {
"@metamask/base-controller": "^8.4.2",
"@metamask/json-rpc-engine": "^10.1.1",
"@metamask/messenger": "^0.3.0",
"@metamask/utils": "^11.8.1"
},
"devDependencies": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import {
BaseController,
type RestrictedMessenger,
} from '@metamask/base-controller';
type ControllerGetStateAction,
type ControllerStateChangeEvent,
} from '@metamask/base-controller/next';
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';
import type { Messenger } from '@metamask/messenger';
import {
type Json,
type JsonRpcRequest,
Expand Down Expand Up @@ -70,12 +72,24 @@ export type PermissionLogControllerOptions = {
messenger: PermissionLogControllerMessenger;
};

export type PermissionLogControllerMessenger = RestrictedMessenger<
export type PermissionLogControllerGetStateAction = ControllerGetStateAction<
typeof name,
never,
never,
never,
never
PermissionLogControllerState
>;

export type PermissionLogControllerActions =
PermissionLogControllerGetStateAction;

export type PermissionLogControllerStateChangeEvent =
ControllerStateChangeEvent<typeof name, PermissionLogControllerState>;

export type PermissionLogControllerEvents =
PermissionLogControllerStateChangeEvent;

export type PermissionLogControllerMessenger = Messenger<
typeof name,
PermissionLogControllerActions,
PermissionLogControllerEvents
>;

const defaultState: PermissionLogControllerState = {
Expand Down Expand Up @@ -108,13 +122,13 @@ export class PermissionLogController extends BaseController<
permissionHistory: {
includeInStateLogs: true,
persist: true,
anonymous: false,
includeInDebugSnapshot: false,
usedInUi: true,
},
permissionActivityLog: {
includeInStateLogs: true,
persist: false,
anonymous: false,
includeInDebugSnapshot: false,
usedInUi: false,
},
},
Expand Down
18 changes: 17 additions & 1 deletion packages/permission-log-controller/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,17 @@
export * from './PermissionLogController';
export { PermissionLogController } from './PermissionLogController';
export type {
JsonRpcRequestWithOrigin,
Caveat,
Permission,
PermissionActivityLog,
PermissionLog,
PermissionEntry,
PermissionHistory,
PermissionLogControllerActions,
PermissionLogControllerGetStateAction,
PermissionLogControllerStateChangeEvent,
PermissionLogControllerEvents,
PermissionLogControllerMessenger,
PermissionLogControllerState,
PermissionLogControllerOptions,
} from './PermissionLogController';
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller';
import { deriveStateFromMetadata } from '@metamask/base-controller/next';
import type {
JsonRpcEngineReturnHandler,
JsonRpcEngineNextCallback,
} from '@metamask/json-rpc-engine';
import {
Messenger,
MOCK_ANY_NAMESPACE,
type MessengerActions,
type MessengerEvents,
type MockAnyNamespace,
} from '@metamask/messenger';
import {
type PendingJsonRpcResponse,
type JsonRpcRequest,
Expand All @@ -13,9 +20,10 @@ import { nanoid } from 'nanoid';
import { constants, getters, noop } from './helpers';
import { LOG_LIMIT, LOG_METHOD_TYPES } from '../src/enums';
import {
PermissionLogController,
type Permission,
type PermissionLogControllerState,
PermissionLogController,
type PermissionLogControllerMessenger,
} from '../src/PermissionLogController';

const { PERMS, RPC_REQUESTS } = getters;
Expand All @@ -33,17 +41,45 @@ class CustomError extends Error {

const name = 'PermissionLogController';

type AllPermissionLogControllerActions =
MessengerActions<PermissionLogControllerMessenger>;

type AllPermissionLogControllerEvents =
MessengerEvents<PermissionLogControllerMessenger>;

type RootMessenger = Messenger<
MockAnyNamespace,
AllPermissionLogControllerActions,
AllPermissionLogControllerEvents
>;

/**
* Creates and returns a root messenger for testing
*
* @returns A messenger instance
*/
function getRootMessenger(): RootMessenger {
return new Messenger({
namespace: MOCK_ANY_NAMESPACE,
});
}

const initController = ({
restrictedMethods,
state,
}: {
restrictedMethods: Set<string>;
state?: Partial<PermissionLogControllerState>;
}): PermissionLogController => {
const messenger = new Messenger().getRestricted({
name,
allowedActions: [],
allowedEvents: [],
const rootMessenger = getRootMessenger();
const messenger = new Messenger<
typeof name,
AllPermissionLogControllerActions,
AllPermissionLogControllerEvents,
RootMessenger
>({
namespace: name,
parent: rootMessenger,
});
return new PermissionLogController({
messenger,
Expand Down Expand Up @@ -824,7 +860,7 @@ describe('PermissionLogController', () => {
deriveStateFromMetadata(
controller.state,
controller.metadata,
'anonymous',
'includeInDebugSnapshot',
),
).toMatchInlineSnapshot(`Object {}`);
});
Expand Down
3 changes: 2 additions & 1 deletion packages/permission-log-controller/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
},
"references": [
{ "path": "../base-controller/tsconfig.build.json" },
{ "path": "../json-rpc-engine/tsconfig.build.json" }
{ "path": "../json-rpc-engine/tsconfig.build.json" },
{ "path": "../messenger/tsconfig.build.json" }
],
"include": ["../../types", "./src"]
}
3 changes: 2 additions & 1 deletion packages/permission-log-controller/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
},
"references": [
{ "path": "../base-controller" },
{ "path": "../json-rpc-engine" }
{ "path": "../json-rpc-engine" },
{ "path": "../messenger" }
],
"include": ["../../types", "./src", "./tests"]
}
1 change: 1 addition & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4392,6 +4392,7 @@ __metadata:
"@metamask/auto-changelog": "npm:^3.4.4"
"@metamask/base-controller": "npm:^8.4.2"
"@metamask/json-rpc-engine": "npm:^10.1.1"
"@metamask/messenger": "npm:^0.3.0"
"@metamask/utils": "npm:^11.8.1"
"@types/deep-freeze-strict": "npm:^1.1.0"
"@types/jest": "npm:^27.4.1"
Expand Down
Loading