Skip to content

Commit

Permalink
Migrate to new controller packages
Browse files Browse the repository at this point in the history
`@metamask/controllers` is deprecated, and most of the controllers that
lived here are now located in their own package ([1]). This commit
replaces `@metamask/controllers` in `package.json` with references to
these packages and updates `import` lines to match.

[1]: MetaMask/core#831
  • Loading branch information
mcmire committed Nov 16, 2022
1 parent a523636 commit cbebe2f
Show file tree
Hide file tree
Showing 24 changed files with 2,483 additions and 1,847 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Expand Up @@ -55,4 +55,7 @@ notes.txt
tsout/

# Test results
test-results/
test-results/

# Test @metamask package publishing
.npmrc
4 changes: 2 additions & 2 deletions app/scripts/controllers/detect-tokens.test.js
Expand Up @@ -3,12 +3,12 @@ import sinon from 'sinon';
import nock from 'nock';
import { ObservableStore } from '@metamask/obs-store';
import BigNumber from 'bignumber.js';
import { ControllerMessenger } from '@metamask/base-controller';
import {
ControllerMessenger,
TokenListController,
TokensController,
AssetsContractController,
} from '@metamask/controllers';
} from '@metamask/assets-controllers';
import { NETWORK_TYPES } from '../../../shared/constants/network';
import { toChecksumHexAddress } from '../../../shared/modules/hexstring-utils';
import DetectTokensController from './detect-tokens';
Expand Down
2 changes: 1 addition & 1 deletion app/scripts/controllers/permissions/caveat-mutators.js
@@ -1,4 +1,4 @@
import { CaveatMutatorOperation } from '@metamask/controllers';
import { CaveatMutatorOperation } from '@metamask/permission-controller';
import { CaveatTypes } from '../../../../shared/constants/permissions';

/**
Expand Down
@@ -1,4 +1,4 @@
import { CaveatMutatorOperation } from '@metamask/controllers';
import { CaveatMutatorOperation } from '@metamask/permission-controller';
import { CaveatTypes } from '../../../../shared/constants/permissions';
import { CaveatMutatorFactories } from './caveat-mutators';

Expand Down
5 changes: 4 additions & 1 deletion app/scripts/controllers/permissions/specifications.js
@@ -1,4 +1,7 @@
import { constructPermission, PermissionType } from '@metamask/controllers';
import {
constructPermission,
PermissionType,
} from '@metamask/permission-controller';
///: BEGIN:ONLY_INCLUDE_IN(flask)
import { endowmentCaveatSpecifications as snapsEndowmentCaveatSpecifications } from '@metamask/snap-controllers';
import { caveatSpecifications as snapsCaveatsSpecifications } from '@metamask/rpc-methods';
Expand Down
6 changes: 2 additions & 4 deletions app/scripts/controllers/preferences.test.js
@@ -1,9 +1,7 @@
import { strict as assert } from 'assert';
import sinon from 'sinon';
import {
ControllerMessenger,
TokenListController,
} from '@metamask/controllers';
import { ControllerMessenger } from '@metamask/base-controller';
import { TokenListController } from '@metamask/assets-controllers';
import { CHAIN_IDS } from '../../../shared/constants/network';
import PreferencesController from './preferences';
import NetworkController from './network';
Expand Down
8 changes: 4 additions & 4 deletions app/scripts/lib/ComposableObservableStore.js
@@ -1,8 +1,8 @@
import { ObservableStore } from '@metamask/obs-store';
import { getPersistentState } from '@metamask/controllers';
import { getPersistentState } from '@metamask/base-controller';

/**
* @typedef {import('@metamask/controllers').ControllerMessenger} ControllerMessenger
* @typedef {import('@metamask/base-controller').ControllerMessenger} ControllerMessenger
*/

/**
Expand All @@ -13,7 +13,7 @@ export default class ComposableObservableStore extends ObservableStore {
/**
* Describes which stores are being composed. The key is the name of the
* store, and the value is either an ObserableStore, or a controller that
* extends one of the two base controllers in the `@metamask/controllers`
* extends one of the two base controllers in the `@metamask/base-controller`
* package.
*
* @type {Record<string, object>}
Expand Down Expand Up @@ -46,7 +46,7 @@ export default class ComposableObservableStore extends ObservableStore {
* @param {Record<string, object>} config - Describes which stores are being
* composed. The key is the name of the store, and the value is either an
* ObserableStore, or a controller that extends one of the two base
* controllers in the `@metamask/controllers` package.
* controllers in the `@metamask/base-controller` package.
*/
updateStructure(config) {
this.config = config;
Expand Down
2 changes: 1 addition & 1 deletion app/scripts/lib/ComposableObservableStore.test.js
Expand Up @@ -3,7 +3,7 @@ import {
BaseController,
BaseControllerV2,
ControllerMessenger,
} from '@metamask/controllers';
} from '@metamask/base-controller';
import ComposableObservableStore from './ComposableObservableStore';

class OldExampleController extends BaseController {
Expand Down
@@ -1,7 +1,7 @@
///: BEGIN:ONLY_INCLUDE_IN(flask)
import { handlers as permittedSnapMethods } from '@metamask/rpc-methods/dist/permitted';
///: END:ONLY_INCLUDE_IN
import { permissionRpcMethods } from '@metamask/controllers';
import { permissionRpcMethods } from '@metamask/permission-controller';
import { selectHooks } from '@metamask/rpc-methods/dist/utils';
import { ethErrors } from 'eth-rpc-errors';
import { flatten } from 'lodash';
Expand Down
6 changes: 2 additions & 4 deletions app/scripts/metamask-controller.actions.test.js
Expand Up @@ -2,10 +2,8 @@ import { strict as assert } from 'assert';
import sinon from 'sinon';
import proxyquire from 'proxyquire';

import {
ApprovalRequestNotFoundError,
PermissionsRequestNotFoundError,
} from '@metamask/controllers';
import { ApprovalRequestNotFoundError } from '@metamask/approval-controller';
import { PermissionsRequestNotFoundError } from '@metamask/permission-controller';
import { ORIGIN_METAMASK } from '../../shared/constants/app';

const Ganache = require('../../test/e2e/ganache');
Expand Down
34 changes: 19 additions & 15 deletions app/scripts/metamask-controller.js
Expand Up @@ -23,29 +23,33 @@ import { MetaMaskKeyring as QRHardwareKeyring } from '@keystonehq/metamask-airga
import EthQuery from 'eth-query';
import nanoid from 'nanoid';
import { captureException } from '@sentry/browser';
import { AddressBookController } from '@metamask/address-book-controller';
import {
AddressBookController,
ApprovalController,
ControllerMessenger,
ApprovalRequestNotFoundError,
} from '@metamask/approval-controller';
import { ControllerMessenger } from '@metamask/base-controller';
import {
CurrencyRateController,
PhishingController,
AnnouncementController,
GasFeeController,
TokenListController,
TokensController,
TokenRatesController,
NftController,
AssetsContractController,
NftDetectionController,
} from '@metamask/assets-controllers';
import { PhishingController } from '@metamask/phishing-controller';
import { AnnouncementController } from '@metamask/announcement-controller';
import { GasFeeController } from '@metamask/gas-fee-controller';
import {
PermissionController,
SubjectMetadataController,
PermissionsRequestNotFoundError,
ApprovalRequestNotFoundError,
///: BEGIN:ONLY_INCLUDE_IN(flask)
RateLimitController,
NotificationController,
///: END:ONLY_INCLUDE_IN
} from '@metamask/controllers';
} from '@metamask/permission-controller';
import { SubjectMetadataController } from '@metamask/subject-metadata-controller';
///: BEGIN:ONLY_INCLUDE_IN(flask)
import { RateLimitController } from '@metamask/rate-limit-controller';
import { NotificationController } from '@metamask/notification-controller';
///: END:ONLY_INCLUDE_IN
import SmartTransactionsController from '@metamask/smart-transactions-controller';
///: BEGIN:ONLY_INCLUDE_IN(flask)
import {
Expand Down Expand Up @@ -166,7 +170,7 @@ export const METAMASK_CONTROLLER_EVENTS = {
// Fired after state changes that impact the extension badge (unapproved msg count)
// The process of updating the badge happens in app/scripts/background.js.
UPDATE_BADGE: 'updateBadge',
// TODO: Add this and similar enums to @metamask/controllers and export them
// TODO: Add this and similar enums to the `controllers` repo and export them
APPROVAL_STATE_CHANGE: 'ApprovalController:stateChange',
};

Expand Down Expand Up @@ -1223,8 +1227,8 @@ export default class MetamaskController extends EventEmitter {
* changes.
*
* Some of the subscriptions in this method are ControllerMessenger selector
* event subscriptions. See the relevant @metamask/controllers documentation
* for more information.
* event subscriptions. See the relevant documentation for
* `@metamask/base-controller` for more information.
*
* Note that account-related notifications emitted when the extension
* becomes unlocked are handled in MetaMaskController._onUnlock.
Expand Down
4 changes: 2 additions & 2 deletions app/scripts/migrations/037.js
@@ -1,5 +1,5 @@
import { cloneDeep } from 'lodash';
import { util } from '@metamask/controllers';
import { normalizeEnsName } from '@metamask/controller-utils';

const version = 37;

Expand Down Expand Up @@ -38,7 +38,7 @@ function transformState(state) {
for (const address in ab) {
if (ab[address].chainId === id) {
ab[address].isEns = false;
if (util.normalizeEnsName(ab[address].name)) {
if (normalizeEnsName(ab[address].name)) {
ab[address].isEns = true;
}
newAddressBook[id][address] = ab[address];
Expand Down

0 comments on commit cbebe2f

Please sign in to comment.