Skip to content

Commit 1a83b1f

Browse files
authored
fix: Remove stateless "non-controllers" from background engine state (#12348)
## **Description** The engine context and background state currently include three "non-controllers" with empty/non-existent state: `AssetsContractController`, `NftDetectionController`, `TokenDetectionController`. These should be included in the engine context, but excluded from any representations of background state. This is not a disruptive change, as there are no downstream references to the state objects or state properties of these non-controllers. For more information on non-controllers, see: - https://github.com/MetaMask/decisions/blob/main/decisions/core/0001-messaging-non-controllers.md - https://github.com/MetaMask/decisions/blob/messaging-components-abstraction/decisions/core/0004-messaging-components-abstraction.md#background ## **Related issues** - Blocks #10441 - This ticket will remove non-controller entries from the engine datamodel and state getter method. ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
1 parent f0f851f commit 1a83b1f

File tree

8 files changed

+0
-35
lines changed

8 files changed

+0
-35
lines changed

app/core/Engine/Engine.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,7 +2050,6 @@ export default {
20502050
const {
20512051
AccountTrackerController,
20522052
AddressBookController,
2053-
AssetsContractController,
20542053
NftController,
20552054
TokenListController,
20562055
CurrencyRateController,
@@ -2066,8 +2065,6 @@ export default {
20662065
SwapsController,
20672066
GasFeeController,
20682067
TokensController,
2069-
TokenDetectionController,
2070-
NftDetectionController,
20712068
///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps)
20722069
SnapController,
20732070
SubjectMetadataController,
@@ -2096,7 +2093,6 @@ export default {
20962093
return {
20972094
AccountTrackerController,
20982095
AddressBookController,
2099-
AssetsContractController,
21002096
NftController,
21012097
TokenListController,
21022098
CurrencyRateController: modifiedCurrencyRateControllerState,
@@ -2112,8 +2108,6 @@ export default {
21122108
SmartTransactionsController,
21132109
SwapsController,
21142110
GasFeeController,
2115-
TokenDetectionController,
2116-
NftDetectionController,
21172111
///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps)
21182112
SnapController,
21192113
SubjectMetadataController,

app/core/Engine/types.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ import {
158158
AccountsControllerEvents,
159159
AccountsControllerState,
160160
} from '@metamask/accounts-controller';
161-
import { BaseState } from '@metamask/base-controller';
162161
import { getPermissionSpecifications } from '../Permissions/specifications.js';
163162

164163
/**
@@ -325,7 +324,6 @@ export type EngineContext = RequiredControllers & Partial<OptionalControllers>;
325324
export interface EngineState {
326325
AccountTrackerController: AccountTrackerControllerState;
327326
AddressBookController: AddressBookControllerState;
328-
AssetsContractController: BaseState;
329327
NftController: NftControllerState;
330328
TokenListController: TokenListState;
331329
CurrencyRateController: CurrencyRateState;
@@ -340,8 +338,6 @@ export interface EngineState {
340338
SwapsController: SwapsControllerState;
341339
GasFeeController: GasFeeState;
342340
TokensController: TokensControllerState;
343-
TokenDetectionController: BaseState;
344-
NftDetectionController: BaseState;
345341
///: BEGIN:ONLY_INCLUDE_IF(preinstalled-snaps,external-snaps)
346342
SnapController: PersistedSnapControllerState;
347343
SnapsRegistry: SnapsRegistryState;

app/core/EngineService/EngineService.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,6 @@ class EngineService {
6868
name: 'TokensController',
6969
key: `${engine.context.TokensController.name}:stateChange`,
7070
},
71-
{
72-
name: 'TokenDetectionController',
73-
key: `${engine.context.TokenDetectionController.name}:stateChange`,
74-
},
75-
{
76-
name: 'NftDetectionController',
77-
key: 'NftDetectionController:stateChange',
78-
},
7971
{
8072
name: 'KeyringController',
8173
key: `${engine.context.KeyringController.name}:stateChange`,

app/selectors/types.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import {
22
AccountTrackerControllerState,
33
CurrencyRateState,
4-
NftDetectionController,
54
NftControllerState,
6-
TokenDetectionController,
75
TokenListState,
86
TokenRatesControllerState,
97
TokensControllerState,
@@ -12,7 +10,6 @@ import {
1210
import SwapsController from '@metamask/swaps-controller';
1311
import { NetworkState } from '@metamask/network-controller';
1412
import { AddressBookControllerState } from '@metamask/address-book-controller';
15-
import { BaseState } from '@metamask/base-controller';
1613
import { KeyringControllerMemState } from '@metamask/keyring-controller';
1714
import { PreferencesState } from '@metamask/preferences-controller';
1815
import { PhishingControllerState } from '@metamask/phishing-controller';
@@ -29,7 +26,6 @@ export interface EngineState {
2926
backgroundState: {
3027
AccountTrackerController: AccountTrackerControllerState;
3128
AddressBookController: AddressBookControllerState;
32-
AssetsContractController: BaseState;
3329
NftController: NftControllerState;
3430
TokenListController: TokenListState;
3531
CurrencyRateController: CurrencyRateState;
@@ -47,8 +43,6 @@ export interface EngineState {
4743
///: END:ONLY_INCLUDE_IF
4844
GasFeeController: GasFeeController;
4945
TokensController: TokensControllerState;
50-
TokenDetectionController: TokenDetectionController;
51-
NftDetectionController: NftDetectionController;
5246
ApprovalController: ApprovalControllerState;
5347
AccountsController: AccountsControllerState;
5448
};

app/util/sentry/__snapshots__/utils.test.ts.snap

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ exports[`captureSentryFeedback maskObject masks initial root state fixture 1`] =
4444
"pendingApprovalCount": "number",
4545
"pendingApprovals": "object",
4646
},
47-
"AssetsContractController": {},
4847
"CurrencyRateController": {
4948
"currencyRates": {
5049
"ETH": {
@@ -87,7 +86,6 @@ exports[`captureSentryFeedback maskObject masks initial root state fixture 1`] =
8786
"allNfts": "object",
8887
"ignoredNfts": "object",
8988
},
90-
"NftDetectionController": "object",
9189
"PermissionController": {},
9290
"PreferencesController": {
9391
"displayNftMedia": true,

app/util/sentry/utils.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ export const sentryStateMask = {
4141
ApprovalController: {
4242
[AllProperties]: false,
4343
},
44-
AssetsContractController: {},
4544
CurrencyRateController: {
4645
currencyRates: true,
4746
currentCurrency: true,
@@ -137,9 +136,6 @@ export const sentryStateMask = {
137136
swapsUserFeeLevel: true,
138137
},
139138
},
140-
TokenDetectionController: {
141-
[AllProperties]: false,
142-
},
143139
TokenListController: {
144140
preventPollingOnNetworkRestart: true,
145141
tokensChainsCache: {

app/util/sentry/utils.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ describe('captureSentryFeedback', () => {
192192
pendingApprovalCount: 0,
193193
pendingApprovals: {},
194194
},
195-
AssetsContractController: {},
196195
CurrencyRateController: {
197196
currencyRates: {
198197
ETH: {
@@ -240,7 +239,6 @@ describe('captureSentryFeedback', () => {
240239
allNfts: {},
241240
ignoredNfts: [],
242241
},
243-
NftDetectionController: {},
244242
PermissionController: undefined,
245243
PreferencesController: {
246244
displayNftMedia: true,

e2e/fixtures/fixture-builder.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ class FixtureBuilder {
8282
AddressBookController: {
8383
addressBook: {},
8484
},
85-
AssetsContractController: {},
8685
NftController: {
8786
allNftContracts: {},
8887
allNfts: {},
@@ -411,8 +410,6 @@ class FixtureBuilder {
411410
gasFeeEstimatesByChainId: {},
412411
nonRPCGasFeeApisDisabled: false,
413412
},
414-
TokenDetectionController: {},
415-
NftDetectionController: {},
416413
PermissionController: {
417414
subjects: {},
418415
},

0 commit comments

Comments
 (0)