Skip to content

Commit 9bf4d14

Browse files
committed
stash
1 parent 34df597 commit 9bf4d14

File tree

2 files changed

+46
-41
lines changed

2 files changed

+46
-41
lines changed

app/scripts/controllers/detect-tokens.test.js

+17-19
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import nock from 'nock';
77
import BigNumber from 'bignumber.js';
88
import { ControllerMessenger } from '@metamask/base-controller';
99
import {
10+
TokenDetectionController,
1011
TokenListController,
1112
TokensController,
1213
AssetsContractController,
@@ -17,14 +18,13 @@ import { NetworkController } from '@metamask/network-controller';
1718
import { AccountsController } from '@metamask/accounts-controller';
1819
import { NETWORK_TYPES } from '../../../shared/constants/network';
1920
import { toChecksumHexAddress } from '../../../shared/modules/hexstring-utils';
20-
import DetectTokensController from './detect-tokens';
2121
import PreferencesController from './preferences';
2222

2323
const flushPromises = () => {
2424
return new Promise(jest.requireActual('timers').setImmediate);
2525
};
2626

27-
describe('DetectTokensController', function () {
27+
describe('TokenDetectionController', function () {
2828
let sandbox,
2929
interval,
3030
assetsContractController,
@@ -35,15 +35,13 @@ describe('DetectTokensController', function () {
3535
tokenListController,
3636
accountsController,
3737
preferencesControllerMessenger,
38-
getCurrentSelectedAccount,
39-
getNetworkClientById,
4038
messenger;
4139

4240
const noop = () => undefined;
4341

4442
const getRestrictedMessenger = () => {
4543
return messenger.getRestricted({
46-
name: 'DetectTokensController',
44+
name: 'TokenDetectionController',
4745
allowedActions: ['KeyringController:getState'],
4846
allowedEvents: [
4947
'NetworkController:stateChange',
@@ -361,7 +359,7 @@ describe('DetectTokensController', function () {
361359
it('should poll on correct interval', async function () {
362360
const stub = sinon.stub(global, 'setInterval');
363361
// eslint-disable-next-line no-new
364-
new DetectTokensController({
362+
new TokenDetectionController({
365363
messenger: getRestrictedMessenger(),
366364
interval: 1337,
367365
getCurrentSelectedAccount:
@@ -374,7 +372,7 @@ describe('DetectTokensController', function () {
374372
it('should be called on every polling period', async function () {
375373
const clock = sandbox.useFakeTimers();
376374
await network.setProviderType(NETWORK_TYPES.MAINNET);
377-
const controller = new DetectTokensController({
375+
const controller = new TokenDetectionController({
378376
messenger: getRestrictedMessenger(),
379377
preferences,
380378
network,
@@ -412,7 +410,7 @@ describe('DetectTokensController', function () {
412410
messenger: tokenListMessengerSepolia,
413411
});
414412
await tokenListController.start();
415-
const controller = new DetectTokensController({
413+
const controller = new TokenDetectionController({
416414
messenger: getRestrictedMessenger(),
417415
preferences,
418416
network,
@@ -437,7 +435,7 @@ describe('DetectTokensController', function () {
437435
it('should skip adding tokens listed in ignoredTokens array', async function () {
438436
sandbox.useFakeTimers();
439437
await network.setProviderType(NETWORK_TYPES.MAINNET);
440-
const controller = new DetectTokensController({
438+
const controller = new TokenDetectionController({
441439
messenger: getRestrictedMessenger(),
442440
preferences,
443441
network,
@@ -491,7 +489,7 @@ describe('DetectTokensController', function () {
491489
it('should check and add tokens while on supported networks', async function () {
492490
sandbox.useFakeTimers();
493491
await network.setProviderType(NETWORK_TYPES.MAINNET);
494-
const controller = new DetectTokensController({
492+
const controller = new TokenDetectionController({
495493
messenger: getRestrictedMessenger(),
496494
preferences,
497495
network,
@@ -568,7 +566,7 @@ describe('DetectTokensController', function () {
568566

569567
it('should trigger detect new tokens when change address', async function () {
570568
sandbox.useFakeTimers();
571-
const controller = new DetectTokensController({
569+
const controller = new TokenDetectionController({
572570
messenger: getRestrictedMessenger(),
573571
preferences,
574572
network,
@@ -591,7 +589,7 @@ describe('DetectTokensController', function () {
591589

592590
it('should trigger detect new tokens when submit password', async function () {
593591
sandbox.useFakeTimers();
594-
const controller = new DetectTokensController({
592+
const controller = new TokenDetectionController({
595593
messenger: getRestrictedMessenger(),
596594
preferences,
597595
network,
@@ -613,7 +611,7 @@ describe('DetectTokensController', function () {
613611

614612
it('should not be active after lock event is emitted', async function () {
615613
sandbox.useFakeTimers();
616-
const controller = new DetectTokensController({
614+
const controller = new TokenDetectionController({
617615
messenger: getRestrictedMessenger(),
618616
preferences,
619617
network,
@@ -634,7 +632,7 @@ describe('DetectTokensController', function () {
634632
it('should not trigger detect new tokens when not unlocked', async function () {
635633
const clock = sandbox.useFakeTimers();
636634
await network.setProviderType(NETWORK_TYPES.MAINNET);
637-
const controller = new DetectTokensController({
635+
const controller = new TokenDetectionController({
638636
messenger: getRestrictedMessenger(),
639637
preferences,
640638
network,
@@ -657,7 +655,7 @@ describe('DetectTokensController', function () {
657655
it('should not trigger detect new tokens when not open', async function () {
658656
const clock = sandbox.useFakeTimers();
659657
await network.setProviderType(NETWORK_TYPES.MAINNET);
660-
const controller = new DetectTokensController({
658+
const controller = new TokenDetectionController({
661659
messenger: getRestrictedMessenger(),
662660
preferences,
663661
network,
@@ -682,7 +680,7 @@ describe('DetectTokensController', function () {
682680

683681
it('should poll on the correct interval by networkClientId', async function () {
684682
jest.useFakeTimers();
685-
const controller = new DetectTokensController({
683+
const controller = new TokenDetectionController({
686684
messenger: getRestrictedMessenger(),
687685
preferences,
688686
network,
@@ -721,7 +719,7 @@ describe('DetectTokensController', function () {
721719
});
722720

723721
it('should restart token detection on selected account change', async () => {
724-
const controller = new DetectTokensController({
722+
const controller = new TokenDetectionController({
725723
messenger,
726724
interval,
727725
preferences,
@@ -749,7 +747,7 @@ describe('DetectTokensController', function () {
749747
});
750748

751749
it('should restart token detection on useTokenDetection change', async () => {
752-
const controller = new DetectTokensController({
750+
const controller = new TokenDetectionController({
753751
messenger,
754752
interval,
755753
preferences,
@@ -771,7 +769,7 @@ describe('DetectTokensController', function () {
771769
});
772770

773771
it('should restart token detection on network state change', async () => {
774-
const controller = new DetectTokensController({
772+
const controller = new TokenDetectionController({
775773
messenger,
776774
interval,
777775
preferences,

app/scripts/metamask-controller.js

+29-22
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
CurrencyRateController,
66
NftController,
77
NftDetectionController,
8+
TokenDetectionController,
89
TokenListController,
910
TokenRatesController,
1011
TokensController,
@@ -261,7 +262,6 @@ import AlertController from './controllers/alert';
261262
import OnboardingController from './controllers/onboarding';
262263
import Backup from './lib/backup';
263264
import DecryptMessageController from './controllers/decrypt-message';
264-
import DetectTokensController from './controllers/detect-tokens';
265265
import SwapsController from './controllers/swaps';
266266
import MetaMetricsController from './controllers/metametrics';
267267
import { segment } from './lib/segment';
@@ -1348,35 +1348,40 @@ export default class MetamaskController extends EventEmitter {
13481348
});
13491349
///: END:ONLY_INCLUDE_IF
13501350

1351-
const detectTokensControllerMessenger =
1351+
const tokenDetectionControllerMessenger =
13521352
this.controllerMessenger.getRestricted({
1353-
name: 'DetectTokensController',
1354-
allowedActions: ['KeyringController:getState'],
1353+
name: 'tokenDetectionController',
1354+
allowedActions: [
1355+
'KeyringController:getState',
1356+
'NetworkController:getNetworkConfigurationByClientId',
1357+
'PreferencesController:getState',
1358+
'TokenListController:getState',
1359+
'TokensController:getState',
1360+
'TokensController:addDetectedTokens',
1361+
],
13551362
allowedEvents: [
1356-
'NetworkController:stateChange',
1363+
'AccountsController:selectedAccountChange',
13571364
'KeyringController:lock',
13581365
'KeyringController:unlock',
1359-
'AccountsController:selectedAccountChange',
1366+
'NetworkController:networkDidChange',
1367+
'PreferencesController:stateChange',
13601368
'TokenListController:stateChange',
13611369
],
13621370
});
1363-
this.detectTokensController = new DetectTokensController({
1364-
messenger: detectTokensControllerMessenger,
1365-
preferences: this.preferencesController,
1366-
tokensController: this.tokensController,
1371+
this.tokenDetectionController = new TokenDetectionController({
1372+
messenger: tokenDetectionControllerMessenger,
1373+
networkClientId: this.networkController.state.selectedNetworkClientId,
1374+
getBalancesInSingleCall:
1375+
this.assetsContractController.getBalancesInSingleCall.bind(
1376+
this.assetsContractController,
1377+
),
13671378
getCurrentSelectedAccount:
13681379
this.accountsController.getSelectedAccount.bind(
13691380
this.accountsController,
13701381
),
1371-
assetsContractController: this.assetsContractController,
1372-
network: this.networkController,
1373-
tokenList: this.tokenListController,
13741382
trackMetaMetricsEvent: this.metaMetricsController.trackEvent.bind(
13751383
this.metaMetricsController,
13761384
),
1377-
getNetworkClientById: this.networkController.getNetworkClientById.bind(
1378-
this.networkController,
1379-
),
13801385
});
13811386

13821387
this.addressBookController = new AddressBookController(
@@ -2653,7 +2658,7 @@ export default class MetamaskController extends EventEmitter {
26532658
nftController,
26542659
nftDetectionController,
26552660
currencyRateController,
2656-
detectTokensController,
2661+
tokenDetectionController,
26572662
ensController,
26582663
gasFeeController,
26592664
metaMetricsController,
@@ -3318,9 +3323,9 @@ export default class MetamaskController extends EventEmitter {
33183323
backupUserData: backup.backupUserData.bind(backup),
33193324
restoreUserData: backup.restoreUserData.bind(backup),
33203325

3321-
// DetectTokenController
3322-
detectNewTokens: detectTokensController.detectNewTokens.bind(
3323-
detectTokensController,
3326+
// TokenDetectionController
3327+
detectTokens: tokenDetectionController.detectTokens.bind(
3328+
tokenDetectionController,
33243329
),
33253330

33263331
// DetectCollectibleController
@@ -3549,7 +3554,7 @@ export default class MetamaskController extends EventEmitter {
35493554

35503555
if (balance === '0x0') {
35513556
// This account has no balance, so check for tokens
3552-
await this.detectTokensController.detectNewTokens({
3557+
await this.tokenDetectionController.detectTokens({
35533558
selectedAddress: address,
35543559
});
35553560

@@ -5431,7 +5436,9 @@ export default class MetamaskController extends EventEmitter {
54315436
*/
54325437
set isClientOpen(open) {
54335438
this._isClientOpen = open;
5434-
this.detectTokensController.isOpen = open;
5439+
(open
5440+
? this.tokenDetectionController.enable()
5441+
: this.tokenDetectionController.disable())();
54355442
}
54365443
/* eslint-enable accessor-pairs */
54375444

0 commit comments

Comments
 (0)