Skip to content

Commit c7acf1a

Browse files
committed
Merge remote-tracking branch 'origin/main' into cryptodev-2s/messenger/multichain-account-service
2 parents f22848c + c8bcef1 commit c7acf1a

File tree

444 files changed

+39089
-9931
lines changed

Some content is hidden

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

444 files changed

+39089
-9931
lines changed

.github/CODEOWNERS

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
/packages/multichain-transactions-controller @MetaMask/accounts-engineers
1212
/packages/multichain-account-service @MetaMask/accounts-engineers
1313
/packages/account-tree-controller @MetaMask/accounts-engineers
14+
/packages/profile-sync-controller @MetaMask/accounts-engineers
1415

1516
## Assets Team
1617
/packages/assets-controllers @MetaMask/metamask-assets
@@ -39,9 +40,6 @@
3940
## Product Safety Team
4041
/packages/phishing-controller @MetaMask/product-safety
4142

42-
## Snaps Team
43-
/packages/rate-limit-controller @MetaMask/snaps-devs
44-
4543
## Swaps-Bridge Team
4644
/packages/bridge-controller @MetaMask/swaps-engineers
4745
/packages/bridge-status-controller @MetaMask/swaps-engineers
@@ -57,11 +55,11 @@
5755
/packages/delegation-controller @MetaMask/vault
5856

5957
## Wallet API Platform Team
60-
/packages/chain-agnostic-permission @MetaMask/wallet-api-platform-engineers
61-
/packages/eip1193-permission-middleware @MetaMask/wallet-api-platform-engineers
62-
/packages/multichain-api-middleware @MetaMask/wallet-api-platform-engineers
63-
/packages/selected-network-controller @MetaMask/wallet-api-platform-engineers
64-
/packages/eip-5792-middleware @MetaMask/wallet-api-platform-engineers
58+
/packages/chain-agnostic-permission @MetaMask/wallet-integrations
59+
/packages/eip1193-permission-middleware @MetaMask/wallet-integrations
60+
/packages/multichain-api-middleware @MetaMask/wallet-integrations
61+
/packages/selected-network-controller @MetaMask/wallet-integrations
62+
/packages/eip-5792-middleware @MetaMask/wallet-integrations
6563

6664
## Core Platform Team
6765
/packages/base-controller @MetaMask/core-platform
@@ -73,25 +71,25 @@
7371
/packages/sample-controllers @MetaMask/core-platform
7472
/packages/polling-controller @MetaMask/core-platform
7573
/packages/preferences-controller @MetaMask/core-platform
74+
/packages/rate-limit-controller @MetaMask/core-platform
7675

7776
## Wallet UX Team
78-
/packages/announcement-controller @MetaMask/wallet-ux
77+
/packages/announcement-controller @MetaMask/core-extension-ux @MetaMask/mobile-core-ux
7978

8079
## Web3Auth Team
8180
/packages/seedless-onboarding-controller @MetaMask/web3auth
8281
/packages/shield-controller @MetaMask/web3auth
8382
/packages/subscription-controller @MetaMask/web3auth
8483

8584
## Joint team ownership
86-
/packages/eth-json-rpc-provider @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
87-
/packages/json-rpc-engine @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
88-
/packages/json-rpc-middleware-stream @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
85+
/packages/eth-json-rpc-provider @MetaMask/wallet-integrations @MetaMask/core-platform
86+
/packages/json-rpc-engine @MetaMask/wallet-integrations @MetaMask/core-platform
87+
/packages/json-rpc-middleware-stream @MetaMask/wallet-integrations @MetaMask/core-platform
8988
/packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform
9089
/packages/multichain-network-controller @MetaMask/core-platform @MetaMask/accounts-engineers @MetaMask/metamask-assets
9190
/packages/network-controller @MetaMask/core-platform @MetaMask/metamask-assets
92-
/packages/permission-controller @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform @MetaMask/snaps-devs
93-
/packages/permission-log-controller @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
94-
/packages/profile-sync-controller @MetaMask/identity
91+
/packages/permission-controller @MetaMask/wallet-integrations @MetaMask/core-platform
92+
/packages/permission-log-controller @MetaMask/wallet-integrations @MetaMask/core-platform
9593
/packages/remote-feature-flag-controller @MetaMask/extension-platform @MetaMask/mobile-platform
9694
/packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform
9795

@@ -102,22 +100,22 @@
102100
/packages/accounts-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform
103101
/packages/address-book-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
104102
/packages/address-book-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
105-
/packages/announcement-controller/package.json @MetaMask/wallet-ux @MetaMask/core-platform
106-
/packages/announcement-controller/CHANGELOG.md @MetaMask/wallet-ux @MetaMask/core-platform
103+
/packages/announcement-controller/package.json @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform
104+
/packages/announcement-controller/CHANGELOG.md @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform
107105
/packages/approval-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
108106
/packages/approval-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
109107
/packages/assets-controllers/package.json @MetaMask/metamask-assets @MetaMask/core-platform
110108
/packages/assets-controllers/CHANGELOG.md @MetaMask/metamask-assets @MetaMask/core-platform
111-
/packages/chain-agnostic-permission/package.json @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
112-
/packages/chain-agnostic-permission/CHANGELOG.md @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
109+
/packages/chain-agnostic-permission/package.json @MetaMask/wallet-integrations @MetaMask/core-platform
110+
/packages/chain-agnostic-permission/CHANGELOG.md @MetaMask/wallet-integrations @MetaMask/core-platform
113111
/packages/delegation-controller/package.json @MetaMask/vault @MetaMask/core-platform
114112
/packages/delegation-controller/CHANGELOG.md @MetaMask/vault @MetaMask/core-platform
115113
/packages/earn-controller/package.json @MetaMask/earn @MetaMask/core-platform
116114
/packages/earn-controller/CHANGELOG.md @MetaMask/earn @MetaMask/core-platform
117-
/packages/eip-5792-middleware/package.json @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
118-
/packages/eip-5792-middleware/CHANGELOG.md @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
119-
/packages/eip1193-permission-middleware/package.json @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
120-
/packages/eip1193-permission-middleware/CHANGELOG.md @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
115+
/packages/eip-5792-middleware/package.json @MetaMask/wallet-integrations @MetaMask/core-platform
116+
/packages/eip-5792-middleware/CHANGELOG.md @MetaMask/wallet-integrations @MetaMask/core-platform
117+
/packages/eip1193-permission-middleware/package.json @MetaMask/wallet-integrations @MetaMask/core-platform
118+
/packages/eip1193-permission-middleware/CHANGELOG.md @MetaMask/wallet-integrations @MetaMask/core-platform
121119
/packages/ens-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
122120
/packages/ens-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
123121
/packages/gas-fee-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
@@ -132,22 +130,20 @@
132130
/packages/message-manager/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
133131
/packages/multichain-account-service/package.json @MetaMask/accounts-engineers @MetaMask/core-platform
134132
/packages/multichain-account-service/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform
135-
/packages/multichain-api-middleware/package.json @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
136-
/packages/multichain-api-middleware/CHANGELOG.md @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
133+
/packages/multichain-api-middleware/package.json @MetaMask/wallet-integrations @MetaMask/core-platform
134+
/packages/multichain-api-middleware/CHANGELOG.md @MetaMask/wallet-integrations @MetaMask/core-platform
137135
/packages/name-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
138136
/packages/name-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
139137
/packages/notification-services-controller/package.json @MetaMask/notifications @MetaMask/core-platform
140138
/packages/notification-services-controller/CHANGELOG.md @MetaMask/notifications @MetaMask/core-platform
141139
/packages/phishing-controller/package.json @MetaMask/product-safety @MetaMask/core-platform
142140
/packages/phishing-controller/CHANGELOG.md @MetaMask/product-safety @MetaMask/core-platform
143-
/packages/profile-sync-controller/package.json @MetaMask/identity @MetaMask/core-platform
144-
/packages/profile-sync-controller/CHANGELOG.md @MetaMask/identity @MetaMask/core-platform
145-
/packages/selected-network-controller/package.json @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
146-
/packages/selected-network-controller/CHANGELOG.md @MetaMask/wallet-api-platform-engineers @MetaMask/core-platform
141+
/packages/profile-sync-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform
142+
/packages/profile-sync-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform
143+
/packages/selected-network-controller/package.json @MetaMask/wallet-integrations @MetaMask/core-platform
144+
/packages/selected-network-controller/CHANGELOG.md @MetaMask/wallet-integrations @MetaMask/core-platform
147145
/packages/signature-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
148146
/packages/signature-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
149-
/packages/rate-limit-controller/package.json @MetaMask/snaps-devs @MetaMask/core-platform
150-
/packages/rate-limit-controller/CHANGELOG.md @MetaMask/snaps-devs @MetaMask/core-platform
151147
/packages/transaction-controller/package.json @MetaMask/confirmations @MetaMask/core-platform
152148
/packages/transaction-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform
153149
/packages/user-operation-controller/package.json @MetaMask/confirmations @MetaMask/core-platform

README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ linkStyle default opacity:0.5
100100
controller_utils(["@metamask/controller-utils"]);
101101
delegation_controller(["@metamask/delegation-controller"]);
102102
earn_controller(["@metamask/earn-controller"]);
103-
eip-5792-middleware(["@metamask/eip-5792-middleware"])
103+
eip_5792_middleware(["@metamask/eip-5792-middleware"]);
104104
eip1193_permission_middleware(["@metamask/eip1193-permission-middleware"]);
105105
ens_controller(["@metamask/ens-controller"]);
106106
error_reporting_service(["@metamask/error-reporting-service"]);
@@ -142,6 +142,8 @@ linkStyle default opacity:0.5
142142
account_tree_controller --> base_controller;
143143
account_tree_controller --> accounts_controller;
144144
account_tree_controller --> keyring_controller;
145+
account_tree_controller --> multichain_account_service;
146+
account_tree_controller --> profile_sync_controller;
145147
accounts_controller --> base_controller;
146148
accounts_controller --> controller_utils;
147149
accounts_controller --> keyring_controller;
@@ -154,14 +156,17 @@ linkStyle default opacity:0.5
154156
assets_controllers --> base_controller;
155157
assets_controllers --> controller_utils;
156158
assets_controllers --> polling_controller;
159+
assets_controllers --> account_tree_controller;
157160
assets_controllers --> accounts_controller;
158161
assets_controllers --> approval_controller;
159162
assets_controllers --> keyring_controller;
163+
assets_controllers --> multichain_account_service;
160164
assets_controllers --> network_controller;
161165
assets_controllers --> permission_controller;
162166
assets_controllers --> phishing_controller;
163167
assets_controllers --> preferences_controller;
164168
assets_controllers --> transaction_controller;
169+
base_controller --> messenger;
165170
base_controller --> json_rpc_engine;
166171
bridge_controller --> base_controller;
167172
bridge_controller --> controller_utils;
@@ -192,9 +197,11 @@ linkStyle default opacity:0.5
192197
delegation_controller --> keyring_controller;
193198
earn_controller --> base_controller;
194199
earn_controller --> controller_utils;
195-
earn_controller --> accounts_controller;
200+
earn_controller --> account_tree_controller;
196201
earn_controller --> network_controller;
197202
earn_controller --> transaction_controller;
203+
eip_5792_middleware --> transaction_controller;
204+
eip_5792_middleware --> keyring_controller;
198205
eip1193_permission_middleware --> chain_agnostic_permission;
199206
eip1193_permission_middleware --> controller_utils;
200207
eip1193_permission_middleware --> json_rpc_engine;
@@ -244,6 +251,7 @@ linkStyle default opacity:0.5
244251
network_enablement_controller --> controller_utils;
245252
network_enablement_controller --> multichain_network_controller;
246253
network_enablement_controller --> network_controller;
254+
network_enablement_controller --> transaction_controller;
247255
notification_services_controller --> base_controller;
248256
notification_services_controller --> controller_utils;
249257
notification_services_controller --> keyring_controller;
@@ -263,7 +271,7 @@ linkStyle default opacity:0.5
263271
preferences_controller --> controller_utils;
264272
preferences_controller --> keyring_controller;
265273
profile_sync_controller --> base_controller;
266-
profile_sync_controller --> accounts_controller;
274+
profile_sync_controller --> address_book_controller;
267275
profile_sync_controller --> keyring_controller;
268276
rate_limit_controller --> base_controller;
269277
remote_feature_flag_controller --> base_controller;
@@ -277,13 +285,19 @@ linkStyle default opacity:0.5
277285
selected_network_controller --> json_rpc_engine;
278286
selected_network_controller --> network_controller;
279287
selected_network_controller --> permission_controller;
288+
shield_controller --> base_controller;
289+
shield_controller --> signature_controller;
290+
shield_controller --> transaction_controller;
280291
signature_controller --> base_controller;
281292
signature_controller --> controller_utils;
282293
signature_controller --> accounts_controller;
283294
signature_controller --> approval_controller;
284295
signature_controller --> keyring_controller;
285296
signature_controller --> logging_controller;
286297
signature_controller --> network_controller;
298+
subscription_controller --> base_controller;
299+
subscription_controller --> controller_utils;
300+
subscription_controller --> profile_sync_controller;
287301
token_search_discovery_controller --> base_controller;
288302
transaction_controller --> base_controller;
289303
transaction_controller --> controller_utils;

docs/controller-guidelines.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,27 @@ A variable named `${controllerName}Metadata` should be defined (there is no need
116116
```typescript
117117
const keyringControllerMetadata = {
118118
vault: {
119+
// We don't want to include this in state logs because it contains sensitive key material.
120+
includeInStateLogs: false,
119121
// We want to persist this property so it's restored automatically, as we
120122
// cannot reconstruct it otherwise.
121123
persist: true,
122124
// This property can be used to identify a user, so we want to make sure we
123125
// do not include it in Sentry.
124126
anonymous: false,
127+
// This property is only used in the controller, not in the UI.
128+
usedInUi: false,
125129
},
126130
isUnlocked: {
131+
// This value is not sensitive, and is useful for diagnosing errors reported through support.
132+
includeInStateLogs: true
127133
// We do not need to persist this property in state, as we want to
128134
// initialize state with the wallet unlocked.
129135
persist: false,
130136
// This property has no PII, so it is safe to send to Sentry.
131137
anonymous: true,
138+
// This is used in the UI
139+
usedInUi: true,
132140
},
133141
};
134142

eslint-warning-thresholds.json

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
"import-x/namespace": 9,
2626
"jest/no-conditional-in-test": 6
2727
},
28-
"packages/assets-controllers/src/NftController.ts": {
29-
"@typescript-eslint/prefer-readonly": 1,
30-
"jsdoc/check-tag-names": 46
31-
},
3228
"packages/assets-controllers/src/NftDetectionController.test.ts": {
3329
"import-x/namespace": 6,
3430
"import-x/order": 4
@@ -107,10 +103,10 @@
107103
"jsdoc/tag-lines": 2
108104
},
109105
"packages/base-controller/src/BaseController.test.ts": {
110-
"import-x/namespace": 18
106+
"import-x/namespace": 15
111107
},
112108
"packages/base-controller/src/next/BaseController.test.ts": {
113-
"import-x/namespace": 18
109+
"import-x/namespace": 13
114110
},
115111
"packages/build-utils/src/transforms/remove-fenced-code.test.ts": {
116112
"import-x/order": 1
@@ -187,7 +183,6 @@
187183
"n/no-unsupported-features/node-builtins": 1
188184
},
189185
"packages/keyring-controller/src/KeyringController.test.ts": {
190-
"import-x/namespace": 5,
191186
"jest/no-conditional-in-test": 2
192187
},
193188
"packages/keyring-controller/src/KeyringController.ts": {
@@ -286,9 +281,6 @@
286281
"packages/permission-controller/src/PermissionController.test.ts": {
287282
"jest/no-conditional-in-test": 4
288283
},
289-
"packages/permission-controller/src/PermissionController.ts": {
290-
"prettier/prettier": 12
291-
},
292284
"packages/permission-controller/src/rpc-methods/getPermissions.test.ts": {
293285
"import-x/order": 1
294286
},
@@ -301,23 +293,13 @@
301293
"jsdoc/tag-lines": 1
302294
},
303295
"packages/phishing-controller/src/PhishingController.ts": {
304-
"jsdoc/check-tag-names": 38,
305-
"jsdoc/tag-lines": 1
306-
},
307-
"packages/phishing-controller/src/PhishingDetector.ts": {
308-
"@typescript-eslint/no-unused-vars": 1,
309-
"@typescript-eslint/prefer-readonly": 2,
310-
"jsdoc/tag-lines": 2
311-
},
312-
"packages/phishing-controller/src/tests/utils.ts": {
313-
"@typescript-eslint/no-unused-vars": 1
296+
"jsdoc/check-tag-names": 32
314297
},
315298
"packages/phishing-controller/src/utils.test.ts": {
316299
"import-x/namespace": 5
317300
},
318301
"packages/phishing-controller/src/utils.ts": {
319-
"@typescript-eslint/no-unsafe-enum-comparison": 1,
320-
"@typescript-eslint/no-unused-vars": 1
302+
"@typescript-eslint/no-unsafe-enum-comparison": 1
321303
},
322304
"packages/polling-controller/src/AbstractPollingController.ts": {
323305
"@typescript-eslint/prefer-readonly": 1
@@ -338,8 +320,7 @@
338320
},
339321
"packages/remote-feature-flag-controller/src/remote-feature-flag-controller.ts": {
340322
"@typescript-eslint/prefer-readonly": 1,
341-
"jsdoc/check-tag-names": 2,
342-
"prettier/prettier": 1
323+
"jsdoc/check-tag-names": 2
343324
},
344325
"packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.ts": {
345326
"jsdoc/tag-lines": 2
@@ -350,29 +331,14 @@
350331
"packages/seedless-onboarding-controller/src/errors.ts": {
351332
"@typescript-eslint/no-unsafe-enum-comparison": 1
352333
},
353-
"packages/selected-network-controller/src/SelectedNetworkController.ts": {
354-
"@typescript-eslint/prefer-readonly": 1,
355-
"prettier/prettier": 6
356-
},
357334
"packages/selected-network-controller/tests/SelectedNetworkController.test.ts": {
358335
"jest/no-conditional-in-test": 1
359336
},
360337
"packages/signature-controller/src/SignatureController.ts": {
361-
"@typescript-eslint/no-unsafe-enum-comparison": 4
362-
},
363-
"packages/signature-controller/src/utils/decoding-api.test.ts": {
364-
"import-x/order": 1,
365-
"jsdoc/tag-lines": 1
366-
},
367-
"packages/signature-controller/src/utils/decoding-api.ts": {
368-
"import-x/order": 1
369-
},
370-
"packages/signature-controller/src/utils/normalize.test.ts": {
371-
"import-x/order": 1
338+
"@typescript-eslint/no-unsafe-enum-comparison": 3
372339
},
373340
"packages/signature-controller/src/utils/normalize.ts": {
374-
"@typescript-eslint/no-unused-vars": 1,
375-
"jsdoc/tag-lines": 2
341+
"@typescript-eslint/no-unused-vars": 1
376342
},
377343
"packages/signature-controller/src/utils/validation.ts": {
378344
"@typescript-eslint/no-base-to-string": 1,

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/core-monorepo",
3-
"version": "539.0.0",
3+
"version": "603.0.0",
44
"private": true,
55
"description": "Monorepo for packages shared between MetaMask clients",
66
"repository": {
@@ -61,9 +61,9 @@
6161
"@metamask/eslint-config-nodejs": "^14.0.0",
6262
"@metamask/eslint-config-typescript": "^14.0.0",
6363
"@metamask/eth-block-tracker": "^12.0.1",
64-
"@metamask/eth-json-rpc-provider": "^4.1.8",
65-
"@metamask/json-rpc-engine": "^10.0.3",
66-
"@metamask/utils": "^11.4.2",
64+
"@metamask/eth-json-rpc-provider": "^5.0.0",
65+
"@metamask/json-rpc-engine": "^10.1.0",
66+
"@metamask/utils": "^11.8.1",
6767
"@ts-bridge/cli": "^0.6.1",
6868
"@types/jest": "^27.4.1",
6969
"@types/lodash": "^4.14.191",

0 commit comments

Comments
 (0)