Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions eslint-suppressions.json
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,6 @@
}
},
"packages/assets-controller/src/__fixtures__/MockAssetControllerMessenger.ts": {
"import-x/no-relative-packages": {
"count": 1
},
"no-restricted-syntax": {
"count": 4
}
Expand All @@ -188,7 +185,7 @@
},
"packages/assets-controller/src/data-sources/RpcDataSource.ts": {
"no-restricted-syntax": {
"count": 3
"count": 2
}
},
"packages/assets-controller/src/data-sources/SnapDataSource.ts": {
Expand Down
4 changes: 4 additions & 0 deletions packages/assets-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- `TokenDetector` now fetches the token list directly from the Tokens API (`/v3/chains/{chain}/assets`) via a new `TokensApiClient` instead of reading from `TokenListController:getState` ([#8385](https://github.com/MetaMask/core/pull/8385))
- `TokenDetectorMessenger` type has been removed; `TokenDetector` constructor now takes a `TokensApiClient` instance as its second argument
- `RpcDataSource` no longer requires `TokenListController:getState` — `GetTokenListState` has been removed from `RpcDataSourceAllowedActions` and `AssetsControllerAllowedActions`
- Unknown ERC-20 metadata is no longer looked up from the token list as a fallback in `RpcDataSource`; `TokenDataSource` handles enrichment downstream
- Split `getAssets` fetch pipeline into a fast awaited path and a parallel fire-and-forget background path to reduce perceived latency on unlock and onboarding ([#8383](https://github.com/MetaMask/core/pull/8383))
- Fast pipeline: AccountsApi + StakedBalance → Detection → Token + Price (awaited, committed to state immediately)
- Background pipeline: Snap + RPC run in parallel → Detection → Token + Price when basic functionality is enabled; when disabled (RPC-only mode), Token + Price are omitted (fire-and-forget merge)
Expand Down
21 changes: 0 additions & 21 deletions packages/assets-controller/src/AssetsController.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,13 +178,6 @@ async function withController<ReturnValue>(
).registerActionHandler('NetworkController:getNetworkClientById', () => ({
provider: {},
}));
(
messenger as {
registerActionHandler: (a: string, h: () => unknown) => void;
}
).registerActionHandler('TokenListController:getState', () => ({
tokensChainsCache: {},
}));

if (clientControllerState !== undefined) {
(
Expand Down Expand Up @@ -292,13 +285,6 @@ describe('AssetsController', () => {
).registerActionHandler('NetworkController:getNetworkClientById', () => ({
provider: {},
}));
(
messenger as {
registerActionHandler: (a: string, h: () => unknown) => void;
}
).registerActionHandler('TokenListController:getState', () => ({
tokensChainsCache: {},
}));

const controller = new AssetsController({
messenger: messenger as unknown as AssetsControllerMessenger,
Expand Down Expand Up @@ -393,13 +379,6 @@ describe('AssetsController', () => {
).registerActionHandler('NetworkController:getNetworkClientById', () => ({
provider: {},
}));
(
messenger as {
registerActionHandler: (a: string, h: () => unknown) => void;
}
).registerActionHandler('TokenListController:getState', () => ({
tokensChainsCache: {},
}));

expect(
() =>
Expand Down
2 changes: 0 additions & 2 deletions packages/assets-controller/src/AssetsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import type {
AccountTreeControllerGetAccountsFromSelectedAccountGroupAction,
AccountTreeControllerSelectedAccountGroupChangeEvent,
} from '@metamask/account-tree-controller';
import type { GetTokenListState } from '@metamask/assets-controllers';
import { BaseController } from '@metamask/base-controller';
import type {
ControllerGetStateAction,
Expand Down Expand Up @@ -267,7 +266,6 @@ type AllowedActions =
// AssetsController
| AccountTreeControllerGetAccountsFromSelectedAccountGroupAction
// RpcDataSource
| GetTokenListState
| NetworkControllerGetStateAction
| NetworkControllerGetNetworkClientByIdAction
// RpcDataSource, StakedBalanceDataSource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import {
MockAnyNamespace,
} from '@metamask/messenger';
import { NetworkStatus } from '@metamask/network-controller';

import {
NetworkState,
RpcEndpoint,
RpcEndpointType,
} from '../../../network-controller/src/NetworkController';
} from '@metamask/network-controller/src/NetworkController';

import {
AssetsControllerMessenger,
getDefaultAssetsControllerState,
Expand Down Expand Up @@ -53,7 +53,6 @@ export function createMockAssetControllerMessenger(): {
'AccountTreeController:getAccountsFromSelectedAccountGroup',
'AssetsController:getState',
// RpcDataSource
'TokenListController:getState',
'NetworkController:getState',
'NetworkController:getNetworkClientById',
// RpcDataSource, StakedBalanceDataSource
Expand Down Expand Up @@ -173,10 +172,6 @@ export function registerRpcDataSourceActions(
getDefaultAssetsControllerState(),
);

rootMessenger.registerActionHandler('TokenListController:getState', () => ({
tokensChainsCache: {},
}));

rootMessenger.registerActionHandler(
'NetworkEnablementController:getState',
() => ({
Expand Down
Loading
Loading