@@ -113,7 +113,7 @@ export class SelectedNetworkController extends BaseController<
113113 SelectedNetworkControllerState ,
114114 SelectedNetworkControllerMessenger
115115> {
116- #proxies = new Map < Domain , NetworkProxy > ( ) ;
116+ #proxies = new Map < Domain , WeakRef < NetworkProxy > > ( ) ;
117117
118118 #getUseRequestQueue: GetUseRequestQueue ;
119119
@@ -218,18 +218,9 @@ export class SelectedNetworkController extends BaseController<
218218 'NetworkController:getNetworkClientById' ,
219219 networkClientId ,
220220 ) ;
221- const networkProxy = this . #proxies. get ( domain ) ;
222- if ( networkProxy === undefined ) {
223- this . #proxies. set ( domain , {
224- provider : createEventEmitterProxy ( networkClient . provider ) ,
225- blockTracker : createEventEmitterProxy ( networkClient . blockTracker , {
226- eventFilter : 'skipInternal' ,
227- } ) ,
228- } ) ;
229- } else {
230- networkProxy . provider . setTarget ( networkClient . provider ) ;
231- networkProxy . blockTracker . setTarget ( networkClient . blockTracker ) ;
232- }
221+ const networkProxy = this . getProviderAndBlockTracker ( domain )
222+ networkProxy . provider . setTarget ( networkClient . provider ) ;
223+ networkProxy . blockTracker . setTarget ( networkClient . blockTracker ) ;
233224
234225 this . update ( ( state ) => {
235226 state . domains [ domain ] = networkClientId ;
@@ -240,7 +231,7 @@ export class SelectedNetworkController extends BaseController<
240231 const globallySelectedNetworkClient = this . messagingSystem . call (
241232 'NetworkController:getSelectedNetworkClient' ,
242233 ) ;
243- const networkProxy = this . #proxies . get ( domain ) ;
234+ const networkProxy = this . #getProxy ( domain )
244235 if ( networkProxy && globallySelectedNetworkClient ) {
245236 networkProxy . provider . setTarget ( globallySelectedNetworkClient . provider ) ;
246237 networkProxy . blockTracker . setTarget (
@@ -297,7 +288,7 @@ export class SelectedNetworkController extends BaseController<
297288 */
298289 getProviderAndBlockTracker ( domain : Domain ) : NetworkProxy {
299290 const networkClientId = this . state . domains [ domain ] ;
300- let networkProxy = this . #proxies . get ( domain ) ;
291+ let networkProxy = this . #getProxy ( domain )
301292 if ( networkProxy === undefined ) {
302293 let networkClient ;
303294 if ( networkClientId === undefined ) {
@@ -319,9 +310,20 @@ export class SelectedNetworkController extends BaseController<
319310 eventFilter : 'skipInternal' ,
320311 } ) ,
321312 } ;
322- this . #proxies . set ( domain , networkProxy ) ;
313+ this . #setProxy ( domain , networkProxy ) ;
323314 }
324315
325316 return networkProxy ;
326317 }
318+
319+ #getProxy( domain : Domain ) : NetworkProxy | undefined {
320+ if ( this . #proxies. has ( domain ) ) {
321+ return this . #proxies. get ( domain ) ! . deref ( ) ;
322+ }
323+ return undefined
324+ }
325+
326+ #setProxy( domain : Domain , networkProxy : NetworkProxy ) {
327+ this . #proxies. set ( domain , new WeakRef ( networkProxy ) ) ;
328+ }
327329}
0 commit comments