From f7718fd6288c586617d7d31bb7bc4e005927404d Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Thu, 11 Jan 2024 10:56:20 -0500 Subject: [PATCH] Subscribe to `AccountsController:selectedAccountChange` event --- .../src/TokenDetectionController.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/assets-controllers/src/TokenDetectionController.ts b/packages/assets-controllers/src/TokenDetectionController.ts index 429a04f897..5af30e962f 100644 --- a/packages/assets-controllers/src/TokenDetectionController.ts +++ b/packages/assets-controllers/src/TokenDetectionController.ts @@ -1,3 +1,4 @@ +import type { AccountsControllerSelectedAccountChangeEvent } from '@metamask/accounts-controller'; import type { RestrictedControllerMessenger, ControllerGetStateAction, @@ -51,6 +52,7 @@ export type TokenDetectionControllerEvents = TokenDetectionControllerStateChangeEvent; export type AllowedEvents = + | AccountsControllerSelectedAccountChangeEvent | NetworkControllerStateChangeEvent | NetworkControllerNetworkDidChangeEvent | TokenListStateChange; @@ -195,6 +197,18 @@ export class TokenDetectionController extends StaticIntervalPollingController< } }, ); + + this.messagingSystem.subscribe( + 'AccountsController:selectedAccountChange', + async (account) => { + if ( + this.#selectedAddress !== account.address && + this.#isDetectionEnabledFromPreferences + ) { + this.#selectedAddress = account.address; + await this.#restartTokenDetection({ + selectedAddress: this.#selectedAddress, + }); } }, );