Skip to content

Commit ca683e8

Browse files
authored
fix: update tokens controllers to use selectedAccountId instead of selectedAddress (#4219)
## Explanation This PR updates the `selectedAccount` to `selectedAccountId` in the token controllers ## References Fixes MetaMask/accounts-planning#381 ## Changelog ### `@metamask/assets-controllers` - **BREAKING**: `TokenBalancesController` update `PreferencesConrtollerGetStateAction` to `AccountsControllerGetSelectedAccountAction` - **BREAKING**: `TokenDetectionController` change `selectedAddress` to `selectedAccountId` - **ADDED**: `TokenDetectionController` add `getAccountAction` - **BREAKING**: `TokenRatesController` change `selectedAddress` to `selectedAccountId` - **BREAKING**: `onPreferencesStateChange` arg removed and `getInternalAccount` and `onSelectedAccountChange` added in `TokenRatesController` - **ADDED**: `getAccountAction` added in`TokensController` - **BREAKING**: Changed `selectedAddress` to `selectedAccountId` and `PreferencesControllerStateChangeEvent` to `AccountsControllerSelectedEvmAccountChangeEvent` in the `TokensController` - **ADDED**: `getAccountAction` added in`TokensController` ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've highlighted breaking changes using the "BREAKING" category above as appropriate
1 parent d51609f commit ca683e8

File tree

8 files changed

+1138
-633
lines changed

8 files changed

+1138
-633
lines changed

packages/assets-controllers/src/TokenBalancesController.test.ts

Lines changed: 172 additions & 137 deletions
Large diffs are not rendered by default.

packages/assets-controllers/src/TokenBalancesController.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import { type AccountsControllerGetSelectedAccountAction } from '@metamask/accounts-controller';
12
import {
23
type RestrictedControllerMessenger,
34
type ControllerGetStateAction,
45
type ControllerStateChangeEvent,
56
BaseController,
67
} from '@metamask/base-controller';
78
import { safelyExecute, toHex } from '@metamask/controller-utils';
8-
import type { PreferencesControllerGetStateAction } from '@metamask/preferences-controller';
99

1010
import type { AssetsContractController } from './AssetsContractController';
1111
import type { Token } from './TokenRatesController';
@@ -56,7 +56,7 @@ export type TokenBalancesControllerGetStateAction = ControllerGetStateAction<
5656
export type TokenBalancesControllerActions =
5757
TokenBalancesControllerGetStateAction;
5858

59-
export type AllowedActions = PreferencesControllerGetStateAction;
59+
export type AllowedActions = AccountsControllerGetSelectedAccountAction;
6060

6161
export type TokenBalancesControllerStateChangeEvent =
6262
ControllerStateChangeEvent<
@@ -201,16 +201,18 @@ export class TokenBalancesController extends BaseController<
201201
if (this.#disabled) {
202202
return;
203203
}
204-
205-
const { selectedAddress } = this.messagingSystem.call(
206-
'PreferencesController:getState',
204+
const selectedInternalAccount = this.messagingSystem.call(
205+
'AccountsController:getSelectedAccount',
207206
);
208207

209208
const newContractBalances: ContractBalances = {};
210209
for (const token of this.#tokens) {
211210
const { address } = token;
212211
try {
213-
const balance = await this.#getERC20BalanceOf(address, selectedAddress);
212+
const balance = await this.#getERC20BalanceOf(
213+
address,
214+
selectedInternalAccount.address,
215+
);
214216
newContractBalances[address] = toHex(balance);
215217
token.hasBalanceError = false;
216218
} catch (error) {

0 commit comments

Comments
 (0)