Skip to content

Commit 932bbce

Browse files
authored
Release/619.0.0 (#6834)
## Explanation This release includes major version bumps for 4 packages, primarily driven by breaking changes in `@metamask/core-backend` that introduce automatic WebSocket connection management and several API improvements. **Note:** While these are marked as breaking changes, they should not affect MetaMask Extension or MetaMask Mobile at this time, as WebSocket integration has not been implemented in these clients yet. The breaking changes are primarily API improvements that will be relevant once WebSocket functionality is adopted. ### 📦 Packages Included - `@metamask/core-backend`: **1.0.1 → 2.0.0** - `@metamask/assets-controllers`: **80.0.0 → 81.0.0** - `@metamask/bridge-controller`: **51.0.0 → 52.0.0** - `@metamask/bridge-status-controller`: **50.1.0 → 51.0.0** ### Current State and Why It Needs to Change The `@metamask/core-backend` package required several breaking changes to improve WebSocket connection management, type safety, and API consistency. The package needed to automatically manage WebSocket connections based on wallet lock state, and the type definitions needed improvements for better developer experience. ### Solution #### @metamask/core-backend (1.0.1 → 2.0.0) **Breaking Changes:** - Added required `channelType` argument to `BackendWebSocketService.subscribe` method for better subscription management - Updated `Asset` type to require `decimals` field for proper token amount formatting - Implemented automatic WebSocket connection management based on wallet lock state (requires `KeyringController:lock` and `KeyringController:unlock` events) - Renamed `Transaction.hash` to `Transaction.id` for consistency with backend API - Added new peer dependency on `@metamask/keyring-controller` (^23.0.0) - Removed `getSupportedChains` method from `AccountActivityService` (replaced with system notification-driven chain tracking) **Non-Breaking Additions:** - Added optional `traceFn` parameter for performance tracing integration (e.g., Sentry) - Added optional `timestamp` property to various notification types #### @metamask/assets-controllers (80.0.0 → 81.0.0) **Changes:** - **BREAKING:** Bump dependency `@metamask/core-backend` from `^1.0.1` to `^2.0.0` - **BREAKING:** Bump peer dependency `@metamask/core-backend` from `^1.0.1` to `^2.0.0` - **Fixed:** Address casing in WebSocket-based token balance updates to ensure consistency #### @metamask/bridge-controller (51.0.0 → 52.0.0) **Changes:** - **BREAKING:** Bump dependency `@metamask/assets-controllers` from `^80.0.0` to `^81.0.0` - **BREAKING:** Bump peer dependency `@metamask/assets-controllers` from `^80.0.0` to `^81.0.0` #### @metamask/bridge-status-controller (50.1.0 → 51.0.0) **Changes:** - **BREAKING:** Bump dependency `@metamask/bridge-controller` from `^51.0.0` to `^52.0.0` - **BREAKING:** Bump peer dependency `@metamask/bridge-controller` from `^51.0.0` to `^52.0.0` ### Why Cascade Updates Were Necessary The breaking changes in `@metamask/core-backend` required a major version bump. Since `@metamask/assets-controllers` has `@metamask/core-backend` as both a dependency and peer dependency, it needed to be updated to accept the new version. This cascaded to `@metamask/bridge-controller` (which depends on `@metamask/assets-controllers`) and `@metamask/bridge-status-controller` (which depends on `@metamask/bridge-controller`). ### Migration Guide for Consumers 1. **Update `subscribe` calls** to include `channelType`: ```typescript // Before await messenger.call('BackendWebSocketService:subscribe', { account: '0x123...', }); // After await messenger.call('BackendWebSocketService:subscribe', { account: '0x123...', channelType: 'balance', // or 'transaction' }); ``` 2. **Add KeyringController events** to your messenger: ```typescript AllowedEvents: [ 'KeyringController:lock', 'KeyringController:unlock', // ... other events ] ``` 3. **Update Asset type usage** to include `decimals`: ```typescript const asset: Asset = { address: '0x...', symbol: 'TOKEN', decimals: 18, // now required }; ``` 4. **Update Transaction references** from `hash` to `id`: ```typescript // Before: transaction.hash // After: transaction.id ``` 5. **Add @metamask/keyring-controller** peer dependency: ```json { "peerDependencies": { "@metamask/keyring-controller": "^23.0.0" } } ``` 6. **Remove `getSupportedChains` calls** - chain tracking is now automatic via system notifications ## References - Primary PR: #6819 - WebSocket connection management improvements - Related: #6818, #6824 - Release PR: #6834 ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [ ] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Releases core-backend v2 with breaking WebSocket and type changes, and cascades required peer/dependency bumps across assets and bridge packages. > > - **Backend** > - `@metamask/[email protected]` (major): > - Requires `channelType` in `BackendWebSocketService.subscribe` > - Adds required `Asset.decimals`; renames transaction `hash` → `id` > - Auto WebSocket connection management tied to lock/unlock; new peer dep `@metamask/keyring-controller` > - Optional `traceFn`; optional `timestamp` fields in notifications/events > - **Assets** > - `@metamask/[email protected]` (major): bump peer/dev dep `@metamask/core-backend` to `^2.0.0`. > - **Bridge** > - `@metamask/[email protected]` (major): bump peer/dev dep `@metamask/assets-controllers` to `^81.0.0`. > - `@metamask/[email protected]` (major): bump peer/dev dep `@metamask/bridge-controller` to `^52.0.0`. > - **Repo** > - Monorepo version `618.0.0` → `619.0.0`; lockfile updated. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 9e01bed. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 9576f5c commit 932bbce

File tree

10 files changed

+48
-24
lines changed

10 files changed

+48
-24
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/core-monorepo",
3-
"version": "618.0.0",
3+
"version": "619.0.0",
44
"private": true,
55
"description": "Monorepo for packages shared between MetaMask clients",
66
"repository": {

packages/assets-controllers/CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [81.0.0]
11+
12+
### Changed
13+
14+
- **BREAKING:** Bump peer dependency `@metamask/core-backend` from `^1.0.1` to `^2.0.0` ([#6834](https://github.com/MetaMask/core/pull/6834))
15+
1016
### Fixed
1117

1218
- Fix address casing in WebSocket-based token balance updates to ensure consistency ([#6819](https://github.com/MetaMask/core/pull/6819))
@@ -2121,7 +2127,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21212127
21222128
- Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
21232129
2124-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
2130+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
2131+
[81.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
21252132
[80.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
21262133
[79.0.1]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
21272134
[79.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]

packages/assets-controllers/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/assets-controllers",
3-
"version": "80.0.0",
3+
"version": "81.0.0",
44
"description": "Controllers which manage interactions involving ERC-20, ERC-721, and ERC-1155 tokens (including NFTs)",
55
"keywords": [
66
"MetaMask",
@@ -84,7 +84,7 @@
8484
"@metamask/accounts-controller": "^33.1.1",
8585
"@metamask/approval-controller": "^7.2.0",
8686
"@metamask/auto-changelog": "^3.4.4",
87-
"@metamask/core-backend": "^1.0.1",
87+
"@metamask/core-backend": "^2.0.0",
8888
"@metamask/ethjs-provider-http": "^0.3.0",
8989
"@metamask/keyring-controller": "^23.1.1",
9090
"@metamask/keyring-internal-api": "^9.0.0",
@@ -115,7 +115,7 @@
115115
"@metamask/account-tree-controller": "^1.0.0",
116116
"@metamask/accounts-controller": "^33.0.0",
117117
"@metamask/approval-controller": "^7.0.0",
118-
"@metamask/core-backend": "^1.0.0",
118+
"@metamask/core-backend": "^2.0.0",
119119
"@metamask/keyring-controller": "^23.0.0",
120120
"@metamask/network-controller": "^24.0.0",
121121
"@metamask/permission-controller": "^11.0.0",

packages/bridge-controller/CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [52.0.0]
11+
12+
### Changed
13+
14+
- **BREAKING:** Bump peer dependency `@metamask/assets-controllers` from `^80.0.0` to `^81.0.0` ([#6834](https://github.com/MetaMask/core/pull/6834))
15+
1016
## [51.0.0]
1117

1218
### Added
@@ -718,7 +724,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
718724

719725
- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))
720726

721-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
727+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
728+
[52.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
722729
[51.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
723730
[50.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
724731
[49.0.1]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]

packages/bridge-controller/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/bridge-controller",
3-
"version": "51.0.0",
3+
"version": "52.0.0",
44
"description": "Manages bridge-related quote fetching functionality for MetaMask",
55
"keywords": [
66
"MetaMask",
@@ -67,7 +67,7 @@
6767
},
6868
"devDependencies": {
6969
"@metamask/accounts-controller": "^33.1.1",
70-
"@metamask/assets-controllers": "^80.0.0",
70+
"@metamask/assets-controllers": "^81.0.0",
7171
"@metamask/auto-changelog": "^3.4.4",
7272
"@metamask/eth-json-rpc-provider": "^5.0.1",
7373
"@metamask/network-controller": "^24.2.1",
@@ -88,7 +88,7 @@
8888
},
8989
"peerDependencies": {
9090
"@metamask/accounts-controller": "^33.0.0",
91-
"@metamask/assets-controllers": "^80.0.0",
91+
"@metamask/assets-controllers": "^81.0.0",
9292
"@metamask/network-controller": "^24.0.0",
9393
"@metamask/remote-feature-flag-controller": "^1.6.0",
9494
"@metamask/snaps-controllers": "^14.0.0",

packages/bridge-status-controller/CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [51.0.0]
11+
12+
### Changed
13+
14+
- **BREAKING:** Bump peer dependency `@metamask/bridge-controller` from `^51.0.0` to `^52.0.0` ([#6834](https://github.com/MetaMask/core/pull/6834))
15+
1016
## [50.1.0]
1117

1218
### Changed
@@ -660,7 +666,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
660666

661667
- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))
662668

663-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
669+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
670+
[51.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
664671
[50.1.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
665672
[50.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
666673
[49.0.1]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]

packages/bridge-status-controller/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/bridge-status-controller",
3-
"version": "50.1.0",
3+
"version": "51.0.0",
44
"description": "Manages bridge-related status fetching functionality for MetaMask",
55
"keywords": [
66
"MetaMask",
@@ -58,7 +58,7 @@
5858
"devDependencies": {
5959
"@metamask/accounts-controller": "^33.1.1",
6060
"@metamask/auto-changelog": "^3.4.4",
61-
"@metamask/bridge-controller": "^51.0.0",
61+
"@metamask/bridge-controller": "^52.0.0",
6262
"@metamask/gas-fee-controller": "^24.1.0",
6363
"@metamask/network-controller": "^24.2.1",
6464
"@metamask/snaps-controllers": "^14.0.1",
@@ -76,7 +76,7 @@
7676
},
7777
"peerDependencies": {
7878
"@metamask/accounts-controller": "^33.0.0",
79-
"@metamask/bridge-controller": "^51.0.0",
79+
"@metamask/bridge-controller": "^52.0.0",
8080
"@metamask/gas-fee-controller": "^24.0.0",
8181
"@metamask/network-controller": "^24.0.0",
8282
"@metamask/snaps-controllers": "^14.0.0",

packages/core-backend/CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [2.0.0]
11+
1012
### Added
1113

1214
- **BREAKING:** Add required argument `channelType` to `BackendWebSocketService.subscribe` method ([#6819](https://github.com/MetaMask/core/pull/6819))
@@ -66,6 +68,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6668
- **Type definitions** - Comprehensive TypeScript types for transactions, balances, WebSocket messages, and service configurations
6769
- **Logging infrastructure** - Structured logging with module-specific loggers for debugging and monitoring
6870

69-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
71+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/[email protected]
72+
[2.0.0]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
7073
[1.0.1]: https://github.com/MetaMask/core/compare/@metamask/[email protected]...@metamask/[email protected]
7174
[1.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/[email protected]

packages/core-backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/core-backend",
3-
"version": "1.0.1",
3+
"version": "2.0.0",
44
"description": "Core backend services for MetaMask",
55
"keywords": [
66
"MetaMask",

yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2574,7 +2574,7 @@ __metadata:
25742574
languageName: unknown
25752575
linkType: soft
25762576

2577-
"@metamask/assets-controllers@npm:^80.0.0, @metamask/assets-controllers@workspace:packages/assets-controllers":
2577+
"@metamask/assets-controllers@npm:^81.0.0, @metamask/assets-controllers@workspace:packages/assets-controllers":
25782578
version: 0.0.0-use.local
25792579
resolution: "@metamask/assets-controllers@workspace:packages/assets-controllers"
25802580
dependencies:
@@ -2594,7 +2594,7 @@ __metadata:
25942594
"@metamask/base-controller": "npm:^8.4.1"
25952595
"@metamask/contract-metadata": "npm:^2.4.0"
25962596
"@metamask/controller-utils": "npm:^11.14.1"
2597-
"@metamask/core-backend": "npm:^1.0.1"
2597+
"@metamask/core-backend": "npm:^2.0.0"
25982598
"@metamask/eth-query": "npm:^4.0.0"
25992599
"@metamask/ethjs-provider-http": "npm:^0.3.0"
26002600
"@metamask/keyring-api": "npm:^21.0.0"
@@ -2643,7 +2643,7 @@ __metadata:
26432643
"@metamask/account-tree-controller": ^1.0.0
26442644
"@metamask/accounts-controller": ^33.0.0
26452645
"@metamask/approval-controller": ^7.0.0
2646-
"@metamask/core-backend": ^1.0.0
2646+
"@metamask/core-backend": ^2.0.0
26472647
"@metamask/keyring-controller": ^23.0.0
26482648
"@metamask/network-controller": ^24.0.0
26492649
"@metamask/permission-controller": ^11.0.0
@@ -2725,7 +2725,7 @@ __metadata:
27252725
languageName: unknown
27262726
linkType: soft
27272727

2728-
"@metamask/bridge-controller@npm:^51.0.0, @metamask/bridge-controller@workspace:packages/bridge-controller":
2728+
"@metamask/bridge-controller@npm:^52.0.0, @metamask/bridge-controller@workspace:packages/bridge-controller":
27292729
version: 0.0.0-use.local
27302730
resolution: "@metamask/bridge-controller@workspace:packages/bridge-controller"
27312731
dependencies:
@@ -2735,7 +2735,7 @@ __metadata:
27352735
"@ethersproject/contracts": "npm:^5.7.0"
27362736
"@ethersproject/providers": "npm:^5.7.0"
27372737
"@metamask/accounts-controller": "npm:^33.1.1"
2738-
"@metamask/assets-controllers": "npm:^80.0.0"
2738+
"@metamask/assets-controllers": "npm:^81.0.0"
27392739
"@metamask/auto-changelog": "npm:^3.4.4"
27402740
"@metamask/base-controller": "npm:^8.4.1"
27412741
"@metamask/controller-utils": "npm:^11.14.1"
@@ -2767,7 +2767,7 @@ __metadata:
27672767
uuid: "npm:^8.3.2"
27682768
peerDependencies:
27692769
"@metamask/accounts-controller": ^33.0.0
2770-
"@metamask/assets-controllers": ^80.0.0
2770+
"@metamask/assets-controllers": ^81.0.0
27712771
"@metamask/network-controller": ^24.0.0
27722772
"@metamask/remote-feature-flag-controller": ^1.6.0
27732773
"@metamask/snaps-controllers": ^14.0.0
@@ -2782,7 +2782,7 @@ __metadata:
27822782
"@metamask/accounts-controller": "npm:^33.1.1"
27832783
"@metamask/auto-changelog": "npm:^3.4.4"
27842784
"@metamask/base-controller": "npm:^8.4.1"
2785-
"@metamask/bridge-controller": "npm:^51.0.0"
2785+
"@metamask/bridge-controller": "npm:^52.0.0"
27862786
"@metamask/controller-utils": "npm:^11.14.1"
27872787
"@metamask/gas-fee-controller": "npm:^24.1.0"
27882788
"@metamask/network-controller": "npm:^24.2.1"
@@ -2805,7 +2805,7 @@ __metadata:
28052805
uuid: "npm:^8.3.2"
28062806
peerDependencies:
28072807
"@metamask/accounts-controller": ^33.0.0
2808-
"@metamask/bridge-controller": ^51.0.0
2808+
"@metamask/bridge-controller": ^52.0.0
28092809
"@metamask/gas-fee-controller": ^24.0.0
28102810
"@metamask/network-controller": ^24.0.0
28112811
"@metamask/snaps-controllers": ^14.0.0
@@ -2921,7 +2921,7 @@ __metadata:
29212921
languageName: unknown
29222922
linkType: soft
29232923

2924-
"@metamask/core-backend@npm:^1.0.1, @metamask/core-backend@workspace:packages/core-backend":
2924+
"@metamask/core-backend@npm:^2.0.0, @metamask/core-backend@workspace:packages/core-backend":
29252925
version: 0.0.0-use.local
29262926
resolution: "@metamask/core-backend@workspace:packages/core-backend"
29272927
dependencies:

0 commit comments

Comments
 (0)