Skip to content

Commit d9969d2

Browse files
Merge branch 'main' into feat/transaction-controller-intent-complete
2 parents b6da756 + b4c76ed commit d9969d2

File tree

165 files changed

+2683
-1841
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+2683
-1841
lines changed

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ linkStyle default opacity:0.5
187187
bridge_controller --> base_controller;
188188
bridge_controller --> controller_utils;
189189
bridge_controller --> gas_fee_controller;
190+
bridge_controller --> messenger;
190191
bridge_controller --> multichain_network_controller;
191192
bridge_controller --> polling_controller;
192193
bridge_controller --> accounts_controller;
@@ -209,8 +210,8 @@ linkStyle default opacity:0.5
209210
composable_controller --> base_controller;
210211
composable_controller --> messenger;
211212
composable_controller --> json_rpc_engine;
212-
core_backend --> base_controller;
213213
core_backend --> controller_utils;
214+
core_backend --> messenger;
214215
core_backend --> profile_sync_controller;
215216
core_backend --> accounts_controller;
216217
core_backend --> keyring_controller;
@@ -261,6 +262,7 @@ linkStyle default opacity:0.5
261262
message_manager --> controller_utils;
262263
message_manager --> messenger;
263264
multichain_account_service --> base_controller;
265+
multichain_account_service --> messenger;
264266
multichain_account_service --> accounts_controller;
265267
multichain_account_service --> keyring_controller;
266268
multichain_api_middleware --> chain_agnostic_permission;
@@ -271,15 +273,18 @@ linkStyle default opacity:0.5
271273
multichain_api_middleware --> multichain_transactions_controller;
272274
multichain_network_controller --> base_controller;
273275
multichain_network_controller --> controller_utils;
276+
multichain_network_controller --> messenger;
274277
multichain_network_controller --> accounts_controller;
275278
multichain_network_controller --> keyring_controller;
276279
multichain_network_controller --> network_controller;
277280
multichain_transactions_controller --> base_controller;
281+
multichain_transactions_controller --> messenger;
278282
multichain_transactions_controller --> polling_controller;
279283
multichain_transactions_controller --> accounts_controller;
280284
multichain_transactions_controller --> keyring_controller;
281285
name_controller --> base_controller;
282286
name_controller --> controller_utils;
287+
name_controller --> messenger;
283288
network_controller --> base_controller;
284289
network_controller --> controller_utils;
285290
network_controller --> eth_block_tracker;
@@ -290,19 +295,23 @@ linkStyle default opacity:0.5
290295
network_controller --> error_reporting_service;
291296
network_enablement_controller --> base_controller;
292297
network_enablement_controller --> controller_utils;
298+
network_enablement_controller --> messenger;
293299
network_enablement_controller --> multichain_network_controller;
294300
network_enablement_controller --> network_controller;
295301
network_enablement_controller --> transaction_controller;
296302
notification_services_controller --> base_controller;
297303
notification_services_controller --> controller_utils;
304+
notification_services_controller --> messenger;
298305
notification_services_controller --> keyring_controller;
299306
notification_services_controller --> profile_sync_controller;
300307
permission_controller --> base_controller;
301308
permission_controller --> controller_utils;
302309
permission_controller --> json_rpc_engine;
310+
permission_controller --> messenger;
303311
permission_controller --> approval_controller;
304312
permission_log_controller --> base_controller;
305313
permission_log_controller --> json_rpc_engine;
314+
permission_log_controller --> messenger;
306315
phishing_controller --> base_controller;
307316
phishing_controller --> controller_utils;
308317
phishing_controller --> messenger;
@@ -312,25 +321,30 @@ linkStyle default opacity:0.5
312321
polling_controller --> network_controller;
313322
preferences_controller --> base_controller;
314323
preferences_controller --> controller_utils;
324+
preferences_controller --> messenger;
315325
preferences_controller --> keyring_controller;
316326
profile_sync_controller --> base_controller;
327+
profile_sync_controller --> messenger;
317328
profile_sync_controller --> address_book_controller;
318329
profile_sync_controller --> keyring_controller;
319330
rate_limit_controller --> base_controller;
320331
rate_limit_controller --> messenger;
321332
remote_feature_flag_controller --> base_controller;
322333
remote_feature_flag_controller --> controller_utils;
334+
remote_feature_flag_controller --> messenger;
323335
sample_controllers --> base_controller;
324336
sample_controllers --> controller_utils;
325337
sample_controllers --> network_controller;
326338
seedless_onboarding_controller --> base_controller;
339+
seedless_onboarding_controller --> messenger;
327340
seedless_onboarding_controller --> keyring_controller;
328341
selected_network_controller --> base_controller;
329342
selected_network_controller --> json_rpc_engine;
330343
selected_network_controller --> messenger;
331344
selected_network_controller --> network_controller;
332345
selected_network_controller --> permission_controller;
333346
shield_controller --> base_controller;
347+
shield_controller --> messenger;
334348
shield_controller --> signature_controller;
335349
shield_controller --> transaction_controller;
336350
signature_controller --> base_controller;
@@ -344,9 +358,11 @@ linkStyle default opacity:0.5
344358
signature_controller --> network_controller;
345359
subscription_controller --> base_controller;
346360
subscription_controller --> controller_utils;
361+
subscription_controller --> messenger;
347362
subscription_controller --> polling_controller;
348363
subscription_controller --> profile_sync_controller;
349364
token_search_discovery_controller --> base_controller;
365+
token_search_discovery_controller --> messenger;
350366
transaction_controller --> base_controller;
351367
transaction_controller --> controller_utils;
352368
transaction_controller --> messenger;

eslint-warning-thresholds.json

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
},
5757
"packages/assets-controllers/src/TokenListController.test.ts": {
5858
"import-x/namespace": 7,
59-
"import-x/order": 3,
59+
"import-x/order": 2,
6060
"jest/no-conditional-in-test": 2
6161
},
6262
"packages/assets-controllers/src/TokenRatesController.test.ts": {
@@ -375,8 +375,14 @@
375375
"@typescript-eslint/no-unused-vars": 1,
376376
"@typescript-eslint/prefer-promise-reject-errors": 1
377377
},
378-
"packages/permission-controller/src/Permission.ts": {
379-
"prettier/prettier": 11
378+
"packages/network-controller/tests/create-network-client.test.ts": {
379+
"import-x/order": 1
380+
},
381+
"packages/network-controller/tests/provider-api-tests/helpers.ts": {
382+
"@typescript-eslint/prefer-promise-reject-errors": 1,
383+
"import-x/namespace": 1,
384+
"import-x/no-named-as-default-member": 1,
385+
"promise/catch-or-return": 1
380386
},
381387
"packages/permission-controller/src/PermissionController.test.ts": {
382388
"jest/no-conditional-in-test": 4

packages/accounts-controller/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6426](https://github.com/MetaMask/core/pull/6426))
1313
- Previously, `AccountsController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
14+
- Bump `@metamask/eth-snap-keyring` from `^17.0.0` to `^18.0.0` ([#6951](https://github.com/MetaMask/core/pull/6951))
1415

1516
## [33.2.0]
1617

packages/accounts-controller/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"dependencies": {
5050
"@ethereumjs/util": "^9.1.0",
5151
"@metamask/base-controller": "^8.4.2",
52-
"@metamask/eth-snap-keyring": "^17.0.0",
52+
"@metamask/eth-snap-keyring": "^18.0.0",
5353
"@metamask/keyring-api": "^21.0.0",
5454
"@metamask/keyring-internal-api": "^9.0.0",
5555
"@metamask/keyring-utils": "^3.1.0",

packages/assets-controllers/CHANGELOG.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- Add export for `CurrencyRateMessenger` ([#6444](https://github.com/MetaMask/core/pull/6444))
13+
1014
### Changed
1115

16+
- **BREAKING:** Migrate the following controllers to the new `Messenger` from `@metamask/messenger` ([#6444](https://github.com/MetaMask/core/pull/6444))
17+
- `AccountTrackerController`
18+
- `CurrencyRateController`
19+
- `DeFiPositionController`
20+
- `MultichainAssetsRatesController`
21+
- `TokenBalancesController`
22+
- `TokenDetectionController`
23+
- `TokenListController`
24+
- `TokenRatesController`
1225
- **BREAKING:** Migrate `AssetsContractController`, `NftController`, and `TokensController` to new `Messenger` from `@metamask/messenger` ([#6386](https://github.com/MetaMask/core/pull/6386))
1326
- Previously, the controllers accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
1427
- Bump `@metamask/polling-controller` from `^14.0.1` to `^14.0.2` ([#6940](https://github.com/MetaMask/core/pull/6940))
@@ -40,7 +53,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4053
### Added
4154

4255
- **BREAKING:** Add new event listeners to refresh balances on `TransactionControllerUnapprovedTransactionAddedEvent` and `TransactionControllerTransactionConfirmedEvent` ([#6903](https://github.com/MetaMask/core/pull/6903))
43-
4456
- Add multicall addresses in `MULTICALL_CONTRACT_BY_CHAINID` ([#6896](https://github.com/MetaMask/core/pull/6896))
4557
- Add multicall address for Chains: `Injective`, `Hemi`, `Plasma`, `Nonmia`, `XRPL`, `Soneium`, `Genesys`, `EDU`, `Abstract`, `Berachain`, `MegaETH Testnet`, `Apechain`, `Matchain`, `Monad Testnet`, `Monad`, `Katana`, `Lens`, `Plume`, `XDC`
4658

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

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller';
1+
import { deriveStateFromMetadata } from '@metamask/base-controller/next';
22
import { query, toChecksumHexAddress } from '@metamask/controller-utils';
33
import type { InternalAccount } from '@metamask/keyring-internal-api';
4+
import {
5+
MOCK_ANY_NAMESPACE,
6+
Messenger,
7+
type MessengerActions,
8+
type MessengerEvents,
9+
type MockAnyNamespace,
10+
} from '@metamask/messenger';
411
import {
512
type NetworkClientId,
613
type NetworkClientConfiguration,
@@ -14,26 +21,30 @@ import {
1421
import BN from 'bn.js';
1522
import { useFakeTimers, type SinonFakeTimers } from 'sinon';
1623

17-
import type {
18-
AccountTrackerControllerMessenger,
19-
AllowedActions,
20-
AllowedEvents,
21-
} from './AccountTrackerController';
24+
import type { AccountTrackerControllerMessenger } from './AccountTrackerController';
2225
import { AccountTrackerController } from './AccountTrackerController';
2326
import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher';
2427
import { getTokenBalancesForMultipleAddresses } from './multicall';
2528
import { FakeProvider } from '../../../tests/fake-provider';
2629
import { advanceTime } from '../../../tests/helpers';
2730
import { createMockInternalAccount } from '../../accounts-controller/src/tests/mocks';
28-
import type {
29-
ExtractAvailableAction,
30-
ExtractAvailableEvent,
31-
} from '../../base-controller/tests/helpers';
3231
import {
3332
buildCustomNetworkClientConfiguration,
3433
buildMockGetNetworkClientById,
3534
} from '../../network-controller/tests/helpers';
3635

36+
type AllAccountTrackerControllerActions =
37+
MessengerActions<AccountTrackerControllerMessenger>;
38+
39+
type AllAccountTrackerControllerEvents =
40+
MessengerEvents<AccountTrackerControllerMessenger>;
41+
42+
type RootMessenger = Messenger<
43+
MockAnyNamespace,
44+
AllAccountTrackerControllerActions,
45+
AllAccountTrackerControllerEvents
46+
>;
47+
3748
jest.mock('@metamask/controller-utils', () => {
3849
return {
3950
...jest.requireActual('@metamask/controller-utils'),
@@ -1368,7 +1379,7 @@ describe('AccountTrackerController', () => {
13681379
deriveStateFromMetadata(
13691380
controller.state,
13701381
controller.metadata,
1371-
'anonymous',
1382+
'includeInDebugSnapshot',
13721383
),
13731384
).toMatchInlineSnapshot(`Object {}`);
13741385
});
@@ -1428,10 +1439,7 @@ type WithControllerCallback<ReturnValue> = ({
14281439
controller,
14291440
}: {
14301441
controller: AccountTrackerController;
1431-
messenger: Messenger<
1432-
ExtractAvailableAction<AccountTrackerControllerMessenger> | AllowedActions,
1433-
ExtractAvailableEvent<AccountTrackerControllerMessenger> | AllowedEvents
1434-
>;
1442+
messenger: RootMessenger;
14351443
triggerSelectedAccountChange: (account: InternalAccount) => void;
14361444
refresh: (
14371445
clock: SinonFakeTimers,
@@ -1475,10 +1483,9 @@ async function withController<ReturnValue>(
14751483
testFunction,
14761484
] = args.length === 2 ? args : [{}, args[0]];
14771485

1478-
const messenger = new Messenger<
1479-
ExtractAvailableAction<AccountTrackerControllerMessenger> | AllowedActions,
1480-
ExtractAvailableEvent<AccountTrackerControllerMessenger> | AllowedEvents
1481-
>();
1486+
const messenger: RootMessenger = new Messenger({
1487+
namespace: MOCK_ANY_NAMESPACE,
1488+
});
14821489

14831490
const mockGetSelectedAccount = jest.fn().mockReturnValue(selectedAccount);
14841491
messenger.registerActionHandler(
@@ -1584,16 +1591,25 @@ async function withController<ReturnValue>(
15841591
mockNetworkState,
15851592
);
15861593

1587-
const accountTrackerMessenger = messenger.getRestricted({
1588-
name: 'AccountTrackerController',
1589-
allowedActions: [
1594+
const accountTrackerMessenger = new Messenger<
1595+
'AccountTrackerController',
1596+
AllAccountTrackerControllerActions,
1597+
AllAccountTrackerControllerEvents,
1598+
RootMessenger
1599+
>({
1600+
namespace: 'AccountTrackerController',
1601+
parent: messenger,
1602+
});
1603+
messenger.delegate({
1604+
messenger: accountTrackerMessenger,
1605+
actions: [
15901606
'NetworkController:getNetworkClientById',
15911607
'NetworkController:getState',
15921608
'PreferencesController:getState',
15931609
'AccountsController:getSelectedAccount',
15941610
'AccountsController:listAccounts',
15951611
],
1596-
allowedEvents: [
1612+
events: [
15971613
'AccountsController:selectedEvmAccountChange',
15981614
'TransactionController:unapprovedTransactionAdded',
15991615
'TransactionController:transactionConfirmed',

0 commit comments

Comments
 (0)