Skip to content

Commit

Permalink
Update ControllerMessenger to Messenger
Browse files Browse the repository at this point in the history
  • Loading branch information
Mrtenz committed Feb 4, 2025
1 parent 9d32ac3 commit 35fe54f
Show file tree
Hide file tree
Showing 26 changed files with 117 additions and 147 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CronjobController, GetAllSnaps } from '@metamask/snaps-controllers';
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import { ControllerInitRequest } from '../types';
import { buildControllerInitRequestMock } from '../test/utils';
import { CronjobControllerInit } from './cronjob-controller-init';
Expand All @@ -11,16 +11,16 @@ import {
function getInitRequestMock(): jest.Mocked<
ControllerInitRequest<CronjobControllerMessenger>
> {
const baseControllerMessenger = new ControllerMessenger<GetAllSnaps, never>();
const baseMessenger = new Messenger<GetAllSnaps, never>();

baseControllerMessenger.registerActionHandler(
baseMessenger.registerActionHandler(
'SnapController:getAll',
jest.fn().mockReturnValue([]),
);

const requestMock = {
...buildControllerInitRequestMock(),
controllerMessenger: getCronjobControllerMessenger(baseControllerMessenger),
controllerMessenger: getCronjobControllerMessenger(baseMessenger),
};

return requestMock;
Expand Down
3 changes: 1 addition & 2 deletions app/scripts/controller-init/snaps/cronjob-controller-init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { CronjobControllerMessenger } from './cronjob-controller-messenger';
* Initialize the cronjob controller.
*
* @param request - The request object.
* @param request.controllerMessenger - The controller messenger to use for the
* controller.
* @param request.controllerMessenger - The messenger to use for the controller.
* @param request.persistedState - The persisted state of the extension.
* @returns The initialized controller.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import {
ControllerMessenger,
RestrictedMessenger,
} from '@metamask/base-controller';
import { Messenger, RestrictedMessenger } from '@metamask/base-controller';
import { getCronjobControllerMessenger } from './cronjob-controller-messenger';

describe('getCronjobControllerMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
const controllerMessenger = new Messenger<never, never>();
const cronjobControllerMessenger =
getCronjobControllerMessenger(controllerMessenger);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import {
SnapInstalled,
SnapUpdated,
Expand All @@ -24,17 +24,16 @@ export type CronjobControllerMessenger = ReturnType<
>;

/**
* Get a restricted controller messenger for the cronjob controller. This is
* scoped to the actions and events that the cronjob controller is allowed to
* handle.
* Get a restricted messenger for the cronjob controller. This is scoped to the
* actions and events that the cronjob controller is allowed to handle.
*
* @param controllerMessenger - The controller messenger to restrict.
* @param messenger - The controller messenger to restrict.
* @returns The restricted controller messenger.
*/
export function getCronjobControllerMessenger(
controllerMessenger: ControllerMessenger<Actions, Events>,
messenger: Messenger<Actions, Events>,
) {
return controllerMessenger.getRestricted({
return messenger.getRestricted({
name: 'CronjobController',
allowedEvents: [
'SnapController:snapInstalled',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import { RateLimitController } from '@metamask/rate-limit-controller';
import { ControllerInitRequest } from '../types';
import { buildControllerInitRequestMock } from '../test/utils';
import { RateLimitControllerInit } from './rate-limit-controller-init';
import { RateLimitController } from '@metamask/rate-limit-controller';
import {
getRateLimitControllerInitMessenger,
getRateLimitControllerMessenger,
Expand All @@ -13,14 +13,17 @@ import {
jest.mock('@metamask/rate-limit-controller');

function getInitRequestMock(): jest.Mocked<
ControllerInitRequest<RateLimitControllerMessenger, RateLimitControllerInitMessenger>
ControllerInitRequest<
RateLimitControllerMessenger,
RateLimitControllerInitMessenger
>
> {
const baseControllerMessenger = new ControllerMessenger<never, never>();
const baseMessenger = new Messenger<never, never>();

const requestMock = {
...buildControllerInitRequestMock(),
controllerMessenger: getRateLimitControllerMessenger(baseControllerMessenger),
initMessenger: getRateLimitControllerInitMessenger(baseControllerMessenger),
controllerMessenger: getRateLimitControllerMessenger(baseMessenger),
initMessenger: getRateLimitControllerInitMessenger(baseMessenger),
};

return requestMock;
Expand Down Expand Up @@ -48,8 +51,8 @@ describe('RateLimitController', () => {
method: expect.any(Function),
rateLimitCount: 2,
rateLimitTimeout: 300_000,
}
}
},
},
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ export const RateLimitControllerInit: ControllerInitFunction<
}) => {
const controller = new RateLimitController({
state: persistedState.RateLimitController,
// @ts-expect-error: Property `#private` in type` RestrictedMessenger`
// refers to a different member that cannot be accessed from within type
// `RestrictedControllerMessenger`.
// TODO: Remove this when switched to `RestrictedMessenger`.
messenger: controllerMessenger,

implementations: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
import {
ControllerMessenger,
RestrictedMessenger,
} from '@metamask/base-controller';
import { Messenger, RestrictedMessenger } from '@metamask/base-controller';
import {
getRateLimitControllerInitMessenger,
getRateLimitControllerMessenger,
} from './rate-limit-controller-messenger';

describe('getRateLimitControllerMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
const messenger = new Messenger<never, never>();
const rateLimitControllerMessenger =
getRateLimitControllerMessenger(controllerMessenger);
getRateLimitControllerMessenger(messenger);

expect(rateLimitControllerMessenger).toBeInstanceOf(RestrictedMessenger);
});
});

describe('getRateLimitControllerInitMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
const messenger = new Messenger<never, never>();
const rateLimitControllerInitMessenger =
getRateLimitControllerInitMessenger(controllerMessenger);
getRateLimitControllerInitMessenger(messenger);

expect(rateLimitControllerInitMessenger).toBeInstanceOf(RestrictedMessenger);
expect(rateLimitControllerInitMessenger).toBeInstanceOf(
RestrictedMessenger,
);
});
});
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import {
SnapInstalled,
SnapUpdated,
Expand Down Expand Up @@ -32,13 +32,13 @@ export type RateLimitControllerMessenger = ReturnType<
* scoped to the actions and events that the rate limit controller is allowed to
* handle.
*
* @param controllerMessenger - The controller messenger to restrict.
* @param messenger - The messenger to restrict.
* @returns The restricted controller messenger.
*/
export function getRateLimitControllerMessenger(
controllerMessenger: ControllerMessenger<Actions, Events>,
messenger: Messenger<Actions, Events>,
) {
return controllerMessenger.getRestricted({
return messenger.getRestricted({
name: 'RateLimitController',
allowedEvents: [],
allowedActions: [],
Expand All @@ -58,13 +58,13 @@ export type RateLimitControllerInitMessenger = ReturnType<
* scoped to the actions and events that the rate limit controller is allowed to
* handle.
*
* @param controllerMessenger - The controller messenger to restrict.
* @param messenger - The messenger to restrict.
* @returns The restricted controller messenger.
*/
export function getRateLimitControllerInitMessenger(
controllerMessenger: ControllerMessenger<InitActions, never>,
messenger: Messenger<InitActions, never>,
) {
return controllerMessenger.getRestricted({
return messenger.getRestricted({
name: 'RateLimitController',
allowedActions: [
'SubjectMetadataController:getState',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { SnapController } from '@metamask/snaps-controllers';
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import { ControllerInitRequest } from '../types';
import { buildControllerInitRequestMock } from '../test/utils';
import { SnapControllerInit } from './snap-controller-init';
Expand All @@ -15,12 +15,12 @@ jest.mock('@metamask/snaps-controllers');
function getInitRequestMock(): jest.Mocked<
ControllerInitRequest<SnapControllerMessenger, SnapControllerInitMessenger>
> {
const baseControllerMessenger = new ControllerMessenger<never, never>();
const baseMessenger = new Messenger<never, never>();

const requestMock = {
...buildControllerInitRequestMock(),
controllerMessenger: getSnapControllerMessenger(baseControllerMessenger),
initMessenger: getSnapControllerInitMessenger(baseControllerMessenger),
controllerMessenger: getSnapControllerMessenger(baseMessenger),
initMessenger: getSnapControllerInitMessenger(baseMessenger),
};

return requestMock;
Expand Down
3 changes: 1 addition & 2 deletions app/scripts/controller-init/snaps/snap-controller-init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ import {
* @param request.initMessenger - The init messenger. This has access to
* different functions than the controller messenger, and should be used for
* initialization purposes only.
* @param request.controllerMessenger - The controller messenger to use for the
* controller.
* @param request.controllerMessenger - The messenger to use for the controller.
* @param request.persistedState - The persisted state of the extension.
* @param request.removeAllConnections - Function to remove all connections for
* a given origin.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import {
ControllerMessenger,
RestrictedMessenger,
} from '@metamask/base-controller';
import { Messenger, RestrictedMessenger } from '@metamask/base-controller';
import {
getSnapControllerInitMessenger,
getSnapControllerMessenger,
} from './snap-controller-messenger';

describe('getSnapControllerMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
it('returns a restricted messenger', () => {
const controllerMessenger = new Messenger<never, never>();
const snapControllerMessenger =
getSnapControllerMessenger(controllerMessenger);

Expand All @@ -18,8 +15,8 @@ describe('getSnapControllerMessenger', () => {
});

describe('getSnapControllerInitMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
it('returns a restricted messenger', () => {
const controllerMessenger = new Messenger<never, never>();
const snapControllerMessenger =
getSnapControllerInitMessenger(controllerMessenger);

Expand Down
28 changes: 13 additions & 15 deletions app/scripts/controller-init/snaps/snap-controller-messenger.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import {
ExecuteSnapAction,
TerminateSnapAction,
Expand Down Expand Up @@ -77,17 +77,16 @@ export type SnapControllerMessenger = ReturnType<
>;

/**
* Get a restricted controller messenger for the Snap controller. This is
* scoped to the actions and events that the Snap controller is allowed to
* handle.
* Get a restricted messenger for the Snap controller. This is scoped to the
* actions and events that the Snap controller is allowed to handle.
*
* @param controllerMessenger - The controller messenger to restrict.
* @returns The restricted controller messenger.
* @param messenger - The messenger to restrict.
* @returns The restricted messenger.
*/
export function getSnapControllerMessenger(
controllerMessenger: ControllerMessenger<Actions, Events>,
messenger: Messenger<Actions, Events>,
) {
return controllerMessenger.getRestricted({
return messenger.getRestricted({
name: 'SnapController',
allowedEvents: [
'ExecutionService:unhandledError',
Expand Down Expand Up @@ -134,17 +133,16 @@ export type SnapControllerInitMessenger = ReturnType<
>;

/**
* Get a restricted controller messenger for the Snap controller init. This is
* scoped to the actions and events that the Snap controller init is allowed to
* handle.
* Get a restricted messenger for the Snap controller init. This is scoped to
* the actions and events that the Snap controller init is allowed to handle.
*
* @param controllerMessenger - The controller messenger to restrict.
* @returns The restricted controller messenger.
* @param messenger - The messenger to restrict.
* @returns The restricted messenger.
*/
export function getSnapControllerInitMessenger(
controllerMessenger: ControllerMessenger<InitActions, never>,
messenger: Messenger<InitActions, never>,
) {
return controllerMessenger.getRestricted({
return messenger.getRestricted({
name: 'SnapControllerInit',
allowedEvents: [],
allowedActions: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { SnapInsightsController } from '@metamask/snaps-controllers';
import { ControllerMessenger } from '@metamask/base-controller';
import { Messenger } from '@metamask/base-controller';
import { ControllerInitRequest } from '../types';
import { buildControllerInitRequestMock } from '../test/utils';
import {
Expand All @@ -13,13 +13,11 @@ jest.mock('@metamask/snaps-controllers');
function getInitRequestMock(): jest.Mocked<
ControllerInitRequest<SnapInsightsControllerMessenger>
> {
const baseControllerMessenger = new ControllerMessenger<never, never>();
const baseMessenger = new Messenger<never, never>();

const requestMock = {
...buildControllerInitRequestMock(),
controllerMessenger: getSnapInsightsControllerMessenger(
baseControllerMessenger,
),
controllerMessenger: getSnapInsightsControllerMessenger(baseMessenger),
};

return requestMock;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { SnapInsightsControllerMessenger } from './snap-insights-controller-mess
* Initialize the Snap insights controller.
*
* @param request - The request object.
* @param request.controllerMessenger - The controller messenger to use for the
* controller.
* @param request.controllerMessenger - The messenger to use for the controller.
* @param request.persistedState - The persisted state of the extension.
* @returns The initialized controller.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import {
ControllerMessenger,
RestrictedMessenger,
} from '@metamask/base-controller';
import { Messenger, RestrictedMessenger } from '@metamask/base-controller';
import { getSnapInsightsControllerMessenger } from './snap-insights-controller-messenger';

describe('getSnapInsightsControllerMessenger', () => {
it('returns a restricted controller messenger', () => {
const controllerMessenger = new ControllerMessenger<never, never>();
it('returns a restricted messenger', () => {
const messenger = new Messenger<never, never>();
const snapInsightsControllerMessenger =
getSnapInsightsControllerMessenger(controllerMessenger);
getSnapInsightsControllerMessenger(messenger);

expect(snapInsightsControllerMessenger).toBeInstanceOf(RestrictedMessenger);
});
Expand Down
Loading

0 comments on commit 35fe54f

Please sign in to comment.