88 generateSalt ,
99 isVaultUpdated ,
1010} from '@metamask/browser-passworder' ;
11- import type { Messenger } from '@metamask/messenger' ;
11+ import { Messenger } from '@metamask/messenger' ;
1212import type {
1313 PermissionConstraint ,
1414 SubjectPermissions ,
@@ -465,27 +465,17 @@ export const getSnapControllerMessenger = (
465465 typeof getControllerMessenger
466466 > = getControllerMessenger ( ) ,
467467) => {
468- const snapControllerMessenger = messenger . getRestricted <
468+ const snapControllerMessenger = new Messenger <
469469 'SnapController' ,
470- SnapControllerActions [ 'type' ] | AllowedActions [ 'type' ] ,
471- SnapControllerEvents [ 'type' ] | AllowedEvents [ 'type' ]
470+ SnapControllerActions | AllowedActions ,
471+ SnapControllerEvents | AllowedEvents
472472 > ( {
473- name : 'SnapController' ,
474- allowedEvents : [
475- 'ExecutionService:unhandledError' ,
476- 'ExecutionService:outboundRequest' ,
477- 'ExecutionService:outboundResponse' ,
478- 'SnapController:snapAdded' ,
479- 'SnapController:snapBlocked' ,
480- 'SnapController:snapInstalled' ,
481- 'SnapController:snapUninstalled' ,
482- 'SnapController:snapUnblocked' ,
483- 'SnapController:snapUpdated' ,
484- 'SnapController:stateChange' ,
485- 'SnapController:snapRolledback' ,
486- 'KeyringController:lock' ,
487- ] ,
488- allowedActions : [
473+ namespace : 'SnapController' ,
474+ parent : messenger ,
475+ } ) ;
476+
477+ messenger . delegate ( {
478+ actions : [
489479 'ApprovalController:addRequest' ,
490480 'ApprovalController:updateRequestState' ,
491481 'ExecutionService:executeSnap' ,
@@ -505,35 +495,22 @@ export const getSnapControllerMessenger = (
505495 'PermissionController:getSubjectNames' ,
506496 'PhishingController:testOrigin' ,
507497 'SelectedNetworkController:getNetworkClientIdForDomain' ,
508- 'SnapController:get' ,
509- 'SnapController:handleRequest' ,
510- 'SnapController:getSnapState' ,
511- 'SnapController:has' ,
512- 'SnapController:updateSnapState' ,
513- 'SnapController:clearSnapState' ,
514- 'SnapController:updateBlockedSnaps' ,
515- 'SnapController:enable' ,
516- 'SnapController:disable' ,
517- 'SnapController:remove' ,
518- 'SnapController:getAll' ,
519- 'SnapController:getRunnableSnaps' ,
520- 'SnapController:getPermitted' ,
521- 'SnapController:install' ,
522- 'SnapController:incrementActiveReferences' ,
523- 'SnapController:decrementActiveReferences' ,
524- 'SnapController:getRegistryMetadata' ,
525498 'SubjectMetadataController:getSubjectMetadata' ,
526499 'SubjectMetadataController:addSubjectMetadata' ,
527500 'SnapsRegistry:get' ,
528501 'SnapsRegistry:getMetadata' ,
529502 'SnapsRegistry:update' ,
530- 'SnapController:disconnectOrigin' ,
531- 'SnapController:revokeDynamicPermissions' ,
532- 'SnapController:getFile' ,
533503 'SnapsRegistry:resolveVersion' ,
534504 'SnapInterfaceController:createInterface' ,
535505 'SnapInterfaceController:getInterface' ,
536506 ] ,
507+ events : [
508+ 'ExecutionService:unhandledError' ,
509+ 'ExecutionService:outboundRequest' ,
510+ 'ExecutionService:outboundResponse' ,
511+ 'KeyringController:lock' ,
512+ ] ,
513+ messenger : snapControllerMessenger ,
537514 } ) ;
538515
539516 jest . spyOn ( snapControllerMessenger , 'call' ) ;
@@ -685,20 +662,17 @@ export const getRestrictedCronjobControllerMessenger = (
685662 > = getRootCronjobControllerMessenger ( ) ,
686663 mocked = true ,
687664) => {
688- const cronjobControllerMessenger = messenger . getRestricted <
665+ const cronjobControllerMessenger = new Messenger <
689666 'CronjobController' ,
690- CronjobControllerActions [ 'type' ] | AllowedActions [ 'type' ] ,
691- CronjobControllerEvents [ 'type' ] | AllowedEvents [ 'type' ]
667+ CronjobControllerActions | AllowedActions ,
668+ CronjobControllerEvents | AllowedEvents
692669 > ( {
693- name : 'CronjobController' ,
694- allowedEvents : [
695- 'SnapController:snapInstalled' ,
696- 'SnapController:snapUpdated' ,
697- 'SnapController:snapUninstalled' ,
698- 'SnapController:snapEnabled' ,
699- 'SnapController:snapDisabled' ,
700- ] ,
701- allowedActions : [
670+ namespace : 'CronjobController' ,
671+ parent : messenger ,
672+ } ) ;
673+
674+ messenger . delegate ( {
675+ actions : [
702676 'PermissionController:hasPermission' ,
703677 'PermissionController:getPermissions' ,
704678 'SnapController:getAll' ,
@@ -707,6 +681,14 @@ export const getRestrictedCronjobControllerMessenger = (
707681 'CronjobController:cancelBackgroundEvent' ,
708682 'CronjobController:getBackgroundEvents' ,
709683 ] ,
684+ events : [
685+ 'SnapController:snapInstalled' ,
686+ 'SnapController:snapUpdated' ,
687+ 'SnapController:snapUninstalled' ,
688+ 'SnapController:snapEnabled' ,
689+ 'SnapController:snapDisabled' ,
690+ ] ,
691+ messenger : cronjobControllerMessenger ,
710692 } ) ;
711693
712694 if ( mocked ) {
@@ -751,22 +733,11 @@ export const getRestrictedSnapsRegistryControllerMessenger = (
751733 typeof getRootSnapsRegistryControllerMessenger
752734 > = getRootSnapsRegistryControllerMessenger ( ) ,
753735) => {
754- const controllerMessenger = messenger . getRestricted <
736+ return new Messenger <
755737 'SnapsRegistry' ,
756- SnapsRegistryActions [ 'type' ] ,
757- SnapsRegistryEvents [ 'type' ]
758- > ( {
759- name : 'SnapsRegistry' ,
760- allowedEvents : [ ] ,
761- allowedActions : [
762- 'SnapsRegistry:get' ,
763- 'SnapsRegistry:getMetadata' ,
764- 'SnapsRegistry:update' ,
765- 'SnapsRegistry:resolveVersion' ,
766- ] ,
767- } ) ;
768-
769- return controllerMessenger ;
738+ SnapsRegistryActions ,
739+ SnapsRegistryEvents
740+ > ( { namespace : 'SnapsRegistry' , parent : messenger } ) ;
770741} ;
771742
772743// Mock controller messenger for Interface Controller
@@ -787,13 +758,14 @@ export const getRestrictedSnapInterfaceControllerMessenger = (
787758 > = getRootSnapInterfaceControllerMessenger ( ) ,
788759 mocked = true ,
789760) => {
790- const snapInterfaceControllerMessenger = messenger . getRestricted <
761+ const snapInterfaceControllerMessenger = new Messenger <
791762 'SnapInterfaceController' ,
792- SnapInterfaceControllerAllowedActions [ 'type' ] ,
793- SnapInterfaceControllerEvents [ 'type' ]
794- > ( {
795- name : 'SnapInterfaceController' ,
796- allowedActions : [
763+ SnapInterfaceControllerAllowedActions ,
764+ SnapInterfaceControllerEvents
765+ > ( { namespace : 'SnapInterfaceController' , parent : messenger } ) ;
766+
767+ messenger . delegate ( {
768+ actions : [
797769 'PhishingController:testOrigin' ,
798770 'ApprovalController:hasRequest' ,
799771 'ApprovalController:acceptRequest' ,
@@ -803,10 +775,8 @@ export const getRestrictedSnapInterfaceControllerMessenger = (
803775 'AccountsController:getSelectedMultichainAccount' ,
804776 'AccountsController:listMultichainAccounts' ,
805777 ] ,
806- allowedEvents : [
807- 'NotificationServicesController:notificationsListUpdated' ,
808- 'SnapInterfaceController:stateChange' ,
809- ] ,
778+ events : [ 'NotificationServicesController:notificationsListUpdated' ] ,
779+ messenger : snapInterfaceControllerMessenger ,
810780 } ) ;
811781
812782 if ( mocked ) {
@@ -888,23 +858,28 @@ export const getRestrictedSnapInsightsControllerMessenger = (
888858 typeof getRootSnapInsightsControllerMessenger
889859 > = getRootSnapInsightsControllerMessenger ( ) ,
890860) => {
891- const controllerMessenger = messenger . getRestricted <
861+ const controllerMessenger = new Messenger <
892862 'SnapInsightsController' ,
893- SnapInsightsControllerAllowedActions [ 'type' ] ,
894- SnapInsightsControllerAllowedEvents [ 'type' ]
863+ SnapInsightsControllerAllowedActions ,
864+ SnapInsightsControllerAllowedEvents
895865 > ( {
896- name : 'SnapInsightsController' ,
897- allowedEvents : [
898- 'TransactionController:unapprovedTransactionAdded' ,
899- 'TransactionController:transactionStatusUpdated' ,
900- 'SignatureController:stateChange' ,
901- ] ,
902- allowedActions : [
866+ namespace : 'SnapInsightsController' ,
867+ parent : messenger ,
868+ } ) ;
869+
870+ messenger . delegate ( {
871+ actions : [
903872 'PermissionController:getPermissions' ,
904873 'SnapController:getAll' ,
905874 'SnapController:handleRequest' ,
906875 'SnapInterfaceController:deleteInterface' ,
907876 ] ,
877+ events : [
878+ 'TransactionController:unapprovedTransactionAdded' ,
879+ 'TransactionController:transactionStatusUpdated' ,
880+ 'SignatureController:stateChange' ,
881+ ] ,
882+ messenger : controllerMessenger ,
908883 } ) ;
909884
910885 return controllerMessenger ;
@@ -917,15 +892,7 @@ export const getRestrictedSnapInsightsControllerMessenger = (
917892 * @returns A promise that resolves when the state change event is emitted.
918893 */
919894export async function waitForStateChange (
920- messenger :
921- | Messenger < any , SnapControllerStateChangeEvent >
922- | Messenger <
923- 'SnapController' ,
924- any ,
925- SnapControllerStateChangeEvent ,
926- any ,
927- 'SnapController:stateChange'
928- > ,
895+ messenger : Messenger < 'SnapController' , any , SnapControllerStateChangeEvent > ,
929896) {
930897 return new Promise < void > ( ( resolve ) => {
931898 messenger . subscribe ( 'SnapController:stateChange' , ( ) => {
@@ -951,18 +918,19 @@ export const getRestrictedMultichainRouterMessenger = (
951918 typeof getRootMultichainRouterMessenger
952919 > = getRootMultichainRouterMessenger ( ) ,
953920) => {
954- const controllerMessenger = messenger . getRestricted <
921+ const controllerMessenger = new Messenger <
955922 'MultichainRouter' ,
956- MultichainRouterAllowedActions [ 'type' ]
957- > ( {
958- name : 'MultichainRouter' ,
959- allowedEvents : [ ] ,
960- allowedActions : [
923+ MultichainRouterAllowedActions
924+ > ( { namespace : 'MultichainRouter' , parent : messenger } ) ;
925+
926+ messenger . delegate ( {
927+ actions : [
961928 'PermissionController:getPermissions' ,
962929 'SnapController:getAll' ,
963930 'SnapController:handleRequest' ,
964931 'AccountsController:listMultichainAccounts' ,
965932 ] ,
933+ messenger : controllerMessenger ,
966934 } ) ;
967935
968936 return controllerMessenger ;
@@ -985,18 +953,20 @@ export const getRestrictedWebSocketServiceMessenger = (
985953 typeof getRootWebSocketServiceMessenger
986954 > = getRootWebSocketServiceMessenger ( ) ,
987955) => {
988- const controllerMessenger = messenger . getRestricted <
956+ const controllerMessenger = new Messenger <
989957 'WebSocketService' ,
990- WebSocketServiceAllowedActions [ 'type' ] ,
991- WebSocketServiceEvents [ 'type' ]
992- > ( {
993- name : 'WebSocketService' ,
994- allowedEvents : [
958+ WebSocketServiceAllowedActions ,
959+ WebSocketServiceEvents
960+ > ( { namespace : 'WebSocketService' , parent : messenger } ) ;
961+
962+ messenger . delegate ( {
963+ actions : [ 'SnapController:handleRequest' ] ,
964+ events : [
995965 'SnapController:snapInstalled' ,
996966 'SnapController:snapUpdated' ,
997967 'SnapController:snapUninstalled' ,
998968 ] ,
999- allowedActions : [ 'SnapController:handleRequest' ] ,
969+ messenger : controllerMessenger ,
1000970 } ) ;
1001971
1002972 return controllerMessenger ;
0 commit comments