@@ -82,6 +82,12 @@ import {
82
82
ApprovalControllerEvents ,
83
83
ApprovalControllerState ,
84
84
} from '@metamask/approval-controller' ;
85
+ import {
86
+ METAMASK_DOMAIN ,
87
+ SelectedNetworkController ,
88
+ SelectedNetworkControllerState ,
89
+ createSelectedNetworkMiddleware ,
90
+ } from '@metamask/selected-network-controller' ;
85
91
import {
86
92
PermissionController ,
87
93
PermissionControllerActions ,
@@ -336,6 +342,7 @@ export interface EngineState {
336
342
LoggingController : LoggingControllerState ;
337
343
PPOMController : PPOMState ;
338
344
AccountsController : AccountsControllerState ;
345
+ SelectedNetworkController : SelectedNetworkControllerState ;
339
346
}
340
347
341
348
/**
@@ -898,6 +905,28 @@ class Engine {
898
905
unrestrictedMethods,
899
906
} ) ;
900
907
908
+ const selectedNetworkController = new SelectedNetworkController ( {
909
+ messenger : this . controllerMessenger . getRestricted ( {
910
+ name : 'SelectedNetworkController' ,
911
+ allowedActions : [
912
+ 'NetworkController:getNetworkClientById' ,
913
+ 'NetworkController:getState' ,
914
+ 'NetworkController:getSelectedNetworkClient' ,
915
+ 'PermissionController:hasPermissions' ,
916
+ 'PermissionController:getSubjectNames' ,
917
+ ] ,
918
+ allowedEvents : [
919
+ 'NetworkController:stateChange' ,
920
+ 'PermissionController:stateChange' ,
921
+ ] ,
922
+ } ) ,
923
+ state : initialState . SelectedNetworkController || { domains : { } } ,
924
+ useRequestQueuePreference : ! ! process . env . MULTICHAIN_V1 ,
925
+ // @ts -expect-error TODO: Resolve mismatch between PreferenceController versions.
926
+ onPreferencesStateChange,
927
+ domainProxyMap : new WeakRefObjectMap ( ) ,
928
+ } ) ;
929
+
901
930
///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps)
902
931
const subjectMetadataController = new SubjectMetadataController ( {
903
932
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
0 commit comments