diff --git a/packages/assets-controllers/src/TokenDetectionController.ts b/packages/assets-controllers/src/TokenDetectionController.ts index ad770521e0..b22d404d53 100644 --- a/packages/assets-controllers/src/TokenDetectionController.ts +++ b/packages/assets-controllers/src/TokenDetectionController.ts @@ -35,7 +35,10 @@ import type { TokenListToken, } from './TokenListController'; import type { Token } from './TokenRatesController'; -import type { TokensController, TokensState } from './TokensController'; +import type { + TokensControllerAddDetectedTokensAction, + TokensControllerGetStateAction, +} from './TokensController'; const DEFAULT_INTERVAL = 180000; @@ -80,7 +83,9 @@ export type AllowedActions = | NetworkControllerGetNetworkConfigurationByNetworkClientId | GetTokenListState | KeyringControllerGetStateAction - | PreferencesControllerGetStateAction; + | PreferencesControllerGetStateAction + | TokensControllerGetStateAction + | TokensControllerAddDetectedTokensAction; export type TokenDetectionControllerStateChangeEvent = ControllerStateChangeEvent; @@ -136,12 +141,8 @@ export class TokenDetectionController extends StaticIntervalPollingController< #isDetectionEnabledForNetwork: boolean; - readonly #addDetectedTokens: TokensController['addDetectedTokens']; - readonly #getBalancesInSingleCall: AssetsContractController['getBalancesInSingleCall']; - readonly #getTokensState: () => TokensState; - readonly #trackMetaMetricsEvent: (options: { event: string; category: string; @@ -161,9 +162,7 @@ export class TokenDetectionController extends StaticIntervalPollingController< * @param options.interval - Polling interval used to fetch new token rates * @param options.networkClientId - The selected network client ID of the current network * @param options.selectedAddress - Vault selected address - * @param options.addDetectedTokens - Add a list of detected tokens. * @param options.getBalancesInSingleCall - Gets the balances of a list of tokens for the given address. - * @param options.getTokensState - Gets the current state of the Tokens controller. * @param options.trackMetaMetricsEvent - Sets options for MetaMetrics event tracking. */ constructor({ @@ -172,8 +171,6 @@ export class TokenDetectionController extends StaticIntervalPollingController< interval = DEFAULT_INTERVAL, disabled = true, getBalancesInSingleCall, - addDetectedTokens, - getTokensState, trackMetaMetricsEvent, messenger, }: { @@ -181,9 +178,7 @@ export class TokenDetectionController extends StaticIntervalPollingController< selectedAddress?: string; interval?: number; disabled?: boolean; - addDetectedTokens: TokensController['addDetectedTokens']; getBalancesInSingleCall: AssetsContractController['getBalancesInSingleCall']; - getTokensState: () => TokensState; trackMetaMetricsEvent: (options: { event: string; category: string; @@ -216,9 +211,7 @@ export class TokenDetectionController extends StaticIntervalPollingController< this.#chainId, ); - this.#addDetectedTokens = addDetectedTokens; this.#getBalancesInSingleCall = getBalancesInSingleCall; - this.#getTokensState = getTokensState; this.#trackMetaMetricsEvent = trackMetaMetricsEvent; @@ -449,7 +442,9 @@ export class TokenDetectionController extends StaticIntervalPollingController< ? STATIC_MAINNET_TOKEN_LIST : tokenList; - const { tokens, detectedTokens } = this.#getTokensState(); + const { tokens, detectedTokens } = this.messagingSystem.call( + 'TokensController:getState', + ); const tokensToDetect: string[] = []; const findCaseInsensitiveMatch = (source: string[], target: string) => @@ -496,7 +491,9 @@ export class TokenDetectionController extends StaticIntervalPollingController< for (const tokenAddress of Object.keys(balances)) { let ignored; /* istanbul ignore else */ - const { ignoredTokens } = this.#getTokensState(); + const { ignoredTokens } = this.messagingSystem.call( + 'TokensController:getState', + ); if (ignoredTokens.length) { ignored = ignoredTokens.find( (ignoredTokenAddress) => @@ -535,10 +532,14 @@ export class TokenDetectionController extends StaticIntervalPollingController< asset_type: 'TOKEN', }, }); - await this.#addDetectedTokens(tokensToAdd, { - selectedAddress, - chainId, - }); + await this.messagingSystem.call( + 'TokensController:addDetectedTokens', + tokensToAdd, + { + selectedAddress, + chainId, + }, + ); } }); }