1- import type { RestrictedMessenger } from '@metamask/base-controller' ;
2- import { BaseController } from '@metamask/base-controller' ;
1+ import {
2+ BaseController ,
3+ type ControllerGetStateAction ,
4+ type ControllerStateChangeEvent ,
5+ } from '@metamask/base-controller/next' ;
6+ import type { Messenger } from '@metamask/messenger' ;
37import type {
48 BlockTrackerProxy ,
59 NetworkClientId ,
@@ -16,15 +20,14 @@ import type {
1620} from '@metamask/permission-controller' ;
1721import { createEventEmitterProxy } from '@metamask/swappable-obj-proxy' ;
1822import type { Hex } from '@metamask/utils' ;
19- import type { Patch } from 'immer' ;
2023
21- export const controllerName = 'SelectedNetworkController' ;
24+ const controllerName = 'SelectedNetworkController' ;
2225
2326const stateMetadata = {
2427 domains : {
2528 includeInStateLogs : true ,
2629 persist : true ,
27- anonymous : false ,
30+ includeInDebugSnapshot : false ,
2831 usedInUi : true ,
2932 } ,
3033} ;
@@ -51,15 +54,17 @@ export type SelectedNetworkControllerState = {
5154 domains : Record < Domain , NetworkClientId > ;
5255} ;
5356
54- export type SelectedNetworkControllerStateChangeEvent = {
55- type : typeof SelectedNetworkControllerEventTypes . stateChange ;
56- payload : [ SelectedNetworkControllerState , Patch [ ] ] ;
57- } ;
57+ export type SelectedNetworkControllerStateChangeEvent =
58+ ControllerStateChangeEvent <
59+ typeof controllerName ,
60+ SelectedNetworkControllerState
61+ > ;
5862
59- export type SelectedNetworkControllerGetSelectedNetworkStateAction = {
60- type : typeof SelectedNetworkControllerActionTypes . getState ;
61- handler : ( ) => SelectedNetworkControllerState ;
62- } ;
63+ export type SelectedNetworkControllerGetSelectedNetworkStateAction =
64+ ControllerGetStateAction <
65+ typeof controllerName ,
66+ SelectedNetworkControllerState
67+ > ;
6368
6469export type SelectedNetworkControllerGetNetworkClientIdForDomainAction = {
6570 type : typeof SelectedNetworkControllerActionTypes . getNetworkClientIdForDomain ;
@@ -76,7 +81,7 @@ export type SelectedNetworkControllerActions =
7681 | SelectedNetworkControllerGetNetworkClientIdForDomainAction
7782 | SelectedNetworkControllerSetNetworkClientIdForDomainAction ;
7883
79- export type AllowedActions =
84+ type AllowedActions =
8085 | NetworkControllerGetNetworkClientByIdAction
8186 | NetworkControllerGetSelectedNetworkClientAction
8287 | NetworkControllerGetStateAction
@@ -86,16 +91,14 @@ export type AllowedActions =
8691export type SelectedNetworkControllerEvents =
8792 SelectedNetworkControllerStateChangeEvent ;
8893
89- export type AllowedEvents =
94+ type AllowedEvents =
9095 | NetworkControllerStateChangeEvent
9196 | PermissionControllerStateChange ;
9297
93- export type SelectedNetworkControllerMessenger = RestrictedMessenger <
98+ export type SelectedNetworkControllerMessenger = Messenger <
9499 typeof controllerName ,
95100 SelectedNetworkControllerActions | AllowedActions ,
96- SelectedNetworkControllerEvents | AllowedEvents ,
97- AllowedActions [ 'type' ] ,
98- AllowedEvents [ 'type' ]
101+ SelectedNetworkControllerEvents | AllowedEvents
99102> ;
100103
101104export type SelectedNetworkControllerOptions = {
@@ -123,7 +126,7 @@ export class SelectedNetworkController extends BaseController<
123126 * Construct a SelectedNetworkController controller.
124127 *
125128 * @param options - The controller options.
126- * @param options.messenger - The restricted messenger for the EncryptionPublicKey controller.
129+ * @param options.messenger - The messenger for the SelectedNetworkController controller.
127130 * @param options.state - The controllers initial state.
128131 * @param options.domainProxyMap - A map for storing domain-specific proxies that are held in memory only during use.
129132 */
@@ -142,18 +145,18 @@ export class SelectedNetworkController extends BaseController<
142145 this . #registerMessageHandlers( ) ;
143146
144147 // this is fetching all the dapp permissions from the PermissionsController and looking for any domains that are not in domains state in this controller. Then we take any missing domains and add them to state here, setting it with the globally selected networkClientId (fetched from the NetworkController)
145- this . messagingSystem
148+ this . messenger
146149 . call ( 'PermissionController:getSubjectNames' )
147150 . filter ( ( domain ) => this . state . domains [ domain ] === undefined )
148151 . forEach ( ( domain ) =>
149152 this . setNetworkClientIdForDomain (
150153 domain ,
151- this . messagingSystem . call ( 'NetworkController:getState' )
154+ this . messenger . call ( 'NetworkController:getState' )
152155 . selectedNetworkClientId ,
153156 ) ,
154157 ) ;
155158
156- this . messagingSystem . subscribe (
159+ this . messenger . subscribe (
157160 'PermissionController:stateChange' ,
158161 ( _ , patches ) => {
159162 patches . forEach ( ( { op, path } ) => {
@@ -164,7 +167,7 @@ export class SelectedNetworkController extends BaseController<
164167 if ( op === 'add' && this . state . domains [ domain ] === undefined ) {
165168 this . setNetworkClientIdForDomain (
166169 domain ,
167- this . messagingSystem . call ( 'NetworkController:getState' )
170+ this . messenger . call ( 'NetworkController:getState' )
168171 . selectedNetworkClientId ,
169172 ) ;
170173 } else if (
@@ -178,7 +181,7 @@ export class SelectedNetworkController extends BaseController<
178181 } ,
179182 ) ;
180183
181- this . messagingSystem . subscribe (
184+ this . messenger . subscribe (
182185 'NetworkController:stateChange' ,
183186 (
184187 { selectedNetworkClientId, networkConfigurationsByChainId } ,
@@ -242,11 +245,11 @@ export class SelectedNetworkController extends BaseController<
242245 }
243246
244247 #registerMessageHandlers( ) : void {
245- this . messagingSystem . registerActionHandler (
248+ this . messenger . registerActionHandler (
246249 SelectedNetworkControllerActionTypes . getNetworkClientIdForDomain ,
247250 this . getNetworkClientIdForDomain . bind ( this ) ,
248251 ) ;
249- this . messagingSystem . registerActionHandler (
252+ this . messenger . registerActionHandler (
250253 SelectedNetworkControllerActionTypes . setNetworkClientIdForDomain ,
251254 this . setNetworkClientIdForDomain . bind ( this ) ,
252255 ) ;
@@ -256,7 +259,7 @@ export class SelectedNetworkController extends BaseController<
256259 domain : Domain ,
257260 networkClientId : NetworkClientId ,
258261 ) {
259- const networkClient = this . messagingSystem . call (
262+ const networkClient = this . messenger . call (
260263 'NetworkController:getNetworkClientById' ,
261264 networkClientId ,
262265 ) ;
@@ -279,7 +282,7 @@ export class SelectedNetworkController extends BaseController<
279282 * @param domain - The domain for which to unset the network client ID.
280283 */
281284 #unsetNetworkClientIdForDomain( domain : Domain ) {
282- const globallySelectedNetworkClient = this . messagingSystem . call (
285+ const globallySelectedNetworkClient = this . messenger . call (
283286 'NetworkController:getSelectedNetworkClient' ,
284287 ) ;
285288 const networkProxy = this . #domainProxyMap. get ( domain ) ;
@@ -297,10 +300,7 @@ export class SelectedNetworkController extends BaseController<
297300 }
298301
299302 #domainHasPermissions( domain : Domain ) : boolean {
300- return this . messagingSystem . call (
301- 'PermissionController:hasPermissions' ,
302- domain ,
303- ) ;
303+ return this . messenger . call ( 'PermissionController:hasPermissions' , domain ) ;
304304 }
305305
306306 setNetworkClientIdForDomain (
@@ -324,7 +324,7 @@ export class SelectedNetworkController extends BaseController<
324324
325325 getNetworkClientIdForDomain ( domain : Domain ) : NetworkClientId {
326326 const { selectedNetworkClientId : metamaskSelectedNetworkClientId } =
327- this . messagingSystem . call ( 'NetworkController:getState' ) ;
327+ this . messenger . call ( 'NetworkController:getState' ) ;
328328
329329 return this . state . domains [ domain ] ?? metamaskSelectedNetworkClientId ;
330330 }
@@ -338,7 +338,7 @@ export class SelectedNetworkController extends BaseController<
338338 getProviderAndBlockTracker ( domain : Domain ) : NetworkProxy {
339339 // If the domain is 'metamask', return the NetworkController's globally selected network client proxy
340340 if ( domain === METAMASK_DOMAIN ) {
341- const networkClient = this . messagingSystem . call (
341+ const networkClient = this . messenger . call (
342342 'NetworkController:getSelectedNetworkClient' ,
343343 ) ;
344344 if ( networkClient === undefined ) {
@@ -352,12 +352,12 @@ export class SelectedNetworkController extends BaseController<
352352 let networkClient ;
353353 if ( this . #domainHasPermissions( domain ) ) {
354354 const networkClientId = this . getNetworkClientIdForDomain ( domain ) ;
355- networkClient = this . messagingSystem . call (
355+ networkClient = this . messenger . call (
356356 'NetworkController:getNetworkClientById' ,
357357 networkClientId ,
358358 ) ;
359359 } else {
360- networkClient = this . messagingSystem . call (
360+ networkClient = this . messenger . call (
361361 'NetworkController:getSelectedNetworkClient' ,
362362 ) ;
363363 if ( networkClient === undefined ) {
0 commit comments