From 3651dbed65a1680d6b2e3b104238d1977cdfd6d2 Mon Sep 17 00:00:00 2001 From: Mathieu Artu Date: Thu, 2 Oct 2025 12:40:44 +0200 Subject: [PATCH 1/3] feat(multichain-account-service): add option to decide what to await for when creating group (#6759) ## Explanation ```md - Add an optional `options` parameter to `MultichainAccountWallet.createMultichainAccountGroup()` - Introduces `options.waitForAllProvidersToFinishCreatingAccounts`, that will make `createMultichainAccountGroup` await either only the EVM provider or all the providers to have created their accounts depending on the value. Defaults to `false` (only awaits for EVM accounts creation by default). ``` ## References ## 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 --- > [!NOTE] > Adds an `options.waitForAllProvidersToFinishCreatingAccounts` flag to `createMultichainAccountGroup`, defaulting to awaiting only EVM, and updates `createNextMultichainAccountGroup` to await all. > > - **Multichain Account Service**: > - **`createMultichainAccountGroup`**: > - Add optional `options` with `waitForAllProvidersToFinishCreatingAccounts` (default `false`). > - If `true`: await all providers via `Promise.allSettled`; throw on any failure with aggregated warnings. > - If `false` (default): await EVM provider; start other providers in background, log but ignore their errors. > - Update JSDoc for parameters and error semantics. > - **`createNextMultichainAccountGroup`**: now calls `createMultichainAccountGroup` with `waitForAllProvidersToFinishCreatingAccounts: true`. > - **Tests**: add coverage for failure when waiting for all providers; adjust non-EVM background behavior test. > - **Changelog**: document new `options` parameter and behavior. > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 403d744d5c9890ea967898e50202dfb07dc7cca9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --------- Co-authored-by: Charly Chevalier --- .../multichain-account-service/CHANGELOG.md | 5 + .../src/MultichainAccountWallet.test.ts | 25 +++- .../src/MultichainAccountWallet.ts | 108 ++++++++++++------ 3 files changed, 105 insertions(+), 33 deletions(-) diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index e43524b063b..a4af631e045 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Add an optional `options` parameter to `MultichainAccountWallet.createMultichainAccountGroup()` ([#6759](https://github.com/MetaMask/core/pull/6759)) + - Introduces `options.waitForAllProvidersToFinishCreatingAccounts`, that will make `createMultichainAccountGroup` await either only the EVM provider or all the providers to have created their accounts depending on the value. Defaults to `false` (only awaits for EVM accounts creation by default). + ## [1.4.0] ### Changed diff --git a/packages/multichain-account-service/src/MultichainAccountWallet.test.ts b/packages/multichain-account-service/src/MultichainAccountWallet.test.ts index 239b7068c5f..09d1b0e9420 100644 --- a/packages/multichain-account-service/src/MultichainAccountWallet.test.ts +++ b/packages/multichain-account-service/src/MultichainAccountWallet.test.ts @@ -347,9 +347,32 @@ describe('MultichainAccountWallet', () => { expect( await wallet.createMultichainAccountGroup(groupIndex), ).toBeDefined(); - await new Promise(process.nextTick); expect(mockSolProviderError).toHaveBeenCalled(); }); + + it('fails to create an account group if any of the provider fails to create its account and waitForAllProvidersToFinishCreatingAccounts is true', async () => { + const groupIndex = 1; + + const mockEvmAccount = MockAccountBuilder.from(MOCK_HD_ACCOUNT_1) + .withEntropySource(MOCK_HD_KEYRING_1.metadata.id) + .withGroupIndex(0) + .get(); + const { wallet, providers } = setup({ + accounts: [[mockEvmAccount]], // 1 provider + }); + const [provider] = providers; + provider.createAccounts.mockRejectedValueOnce( + new Error('Unable to create accounts'), + ); + + await expect( + wallet.createMultichainAccountGroup(groupIndex, { + waitForAllProvidersToFinishCreatingAccounts: true, + }), + ).rejects.toThrow( + 'Unable to create multichain account group for index: 1', + ); + }); }); describe('createNextMultichainAccountGroup', () => { diff --git a/packages/multichain-account-service/src/MultichainAccountWallet.ts b/packages/multichain-account-service/src/MultichainAccountWallet.ts index 99d5093f30c..f90c0a73694 100644 --- a/packages/multichain-account-service/src/MultichainAccountWallet.ts +++ b/packages/multichain-account-service/src/MultichainAccountWallet.ts @@ -296,11 +296,22 @@ export class MultichainAccountWallet< * NOTE: This operation WILL lock the wallet's mutex. * * @param groupIndex - The group index to use. - * @throws If any of the account providers fails to create their accounts. + * @param options - Options to configure the account creation. + * @param options.waitForAllProvidersToFinishCreatingAccounts - Whether to wait for all + * account providers to finish creating their accounts before returning. If `false`, only + * the EVM provider will be awaited, while all other providers will create their accounts + * in the background. Defaults to `false`. + * @throws If any of the account providers fails to create their accounts and + * the `waitForAllProvidersToFinishCreatingAccounts` option is set to `true`. If `false`, + * errors from non-EVM providers will be logged but ignored, and only errors from the + * EVM provider will be thrown. * @returns The multichain account group for this group index. */ async createMultichainAccountGroup( groupIndex: number, + options: { + waitForAllProvidersToFinishCreatingAccounts?: boolean; + } = { waitForAllProvidersToFinishCreatingAccounts: false }, ): Promise> { return await this.#withLock('in-progress:create-accounts', async () => { const nextGroupIndex = this.getNextGroupIndex(); @@ -324,41 +335,72 @@ export class MultichainAccountWallet< this.#log(`Creating new group for index ${groupIndex}...`); - // Extract the EVM provider from the list of providers. - // We will only await the EVM provider to create its accounts, while - // all other providers will be started in the background. - const [evmProvider, ...otherProviders] = this.#providers; - assert( - evmProvider instanceof EvmAccountProvider, - 'EVM account provider must be first', - ); + if (options?.waitForAllProvidersToFinishCreatingAccounts) { + // Create account with all providers and await them. + const results = await Promise.allSettled( + this.#providers.map((provider) => + provider.createAccounts({ + entropySource: this.#entropySource, + groupIndex, + }), + ), + ); - // Create account with the EVM provider first and await it. - // If it fails, we don't start creating accounts with other providers. - try { - await evmProvider.createAccounts({ - entropySource: this.#entropySource, - groupIndex, - }); - } catch (error) { - const errorMessage = `Unable to create multichain account group for index: ${groupIndex} with provider "${evmProvider.getName()}". Error: ${(error as Error).message}`; - this.#log(`${ERROR_PREFIX} ${errorMessage}:`, error); - throw new Error(errorMessage); - } + // If any of the provider failed to create their accounts, then we consider the + // multichain account group to have failed too. + if (results.some((result) => result.status === 'rejected')) { + // NOTE: Some accounts might still have been created on other account providers. We + // don't rollback them. + const error = `Unable to create multichain account group for index: ${groupIndex}`; + + let message = `${error}:`; + for (const result of results) { + if (result.status === 'rejected') { + message += `\n- ${result.reason}`; + } + } + this.#log(`${WARNING_PREFIX} ${message}`); + console.warn(message); + + throw new Error(error); + } + } else { + // Extract the EVM provider from the list of providers. + // We will only await the EVM provider to create its accounts, while + // all other providers will be started in the background. + const [evmProvider, ...otherProviders] = this.#providers; + assert( + evmProvider instanceof EvmAccountProvider, + 'EVM account provider must be first', + ); - // Create account with other providers in the background - otherProviders.forEach((provider) => { - provider - .createAccounts({ + // Create account with the EVM provider first and await it. + // If it fails, we don't start creating accounts with other providers. + try { + await evmProvider.createAccounts({ entropySource: this.#entropySource, groupIndex, - }) - .catch((error) => { - // Log errors from background providers but don't fail the operation - const errorMessage = `Could not to create account with provider "${provider.getName()}" for multichain account group index: ${groupIndex}`; - this.#log(`${WARNING_PREFIX} ${errorMessage}:`, error); }); - }); + } catch (error) { + const errorMessage = `Unable to create multichain account group for index: ${groupIndex} with provider "${evmProvider.getName()}". Error: ${(error as Error).message}`; + this.#log(`${ERROR_PREFIX} ${errorMessage}:`, error); + throw new Error(errorMessage); + } + + // Create account with other providers in the background + otherProviders.forEach((provider) => { + provider + .createAccounts({ + entropySource: this.#entropySource, + groupIndex, + }) + .catch((error) => { + // Log errors from background providers but don't fail the operation + const errorMessage = `Could not to create account with provider "${provider.getName()}" for multichain account group index: ${groupIndex}`; + this.#log(`${WARNING_PREFIX} ${errorMessage}:`, error); + }); + }); + } // -------------------------------------------------------------------------------- // READ THIS CAREFULLY: @@ -419,7 +461,9 @@ export class MultichainAccountWallet< async createNextMultichainAccountGroup(): Promise< MultichainAccountGroup > { - return this.createMultichainAccountGroup(this.getNextGroupIndex()); + return this.createMultichainAccountGroup(this.getNextGroupIndex(), { + waitForAllProvidersToFinishCreatingAccounts: true, + }); } /** From 23afdd107afe51d9b92d9a9955bd7a9aee05f477 Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Thu, 2 Oct 2025 11:48:58 +0100 Subject: [PATCH 2/3] Release/597.0.0 (#6771) ## Explanation ## References ## Checklist - [ ] I've updated the test suite for new or updated code as appropriate - [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [ ] 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 --- > [!NOTE] > Bumps monorepo to 597.0.0 and upgrades `@metamask/transaction-controller` to `60.6.0` (new messenger actions and shield subscription tx type), propagating the bump across dependent packages. > > - **Versioning** > - Bump root `version` to `597.0.0`. > - **Transaction Controller `60.6.0`** > - Add messenger actions: expose `addTransaction` and `addTransactionBatch`. > - Add new `shieldSubscriptionApprove` transaction type. > - Update `CHANGELOG.md` links and release entry. > - **Dependency updates** > - Upgrade `@metamask/transaction-controller` to `^60.6.0` in: `packages/assets-controllers`, `packages/bridge-controller`, `packages/bridge-status-controller`, `packages/earn-controller`, `packages/eip-5792-middleware`, `packages/network-enablement-controller`, `packages/phishing-controller`, `packages/shield-controller`, `packages/user-operation-controller`. > - Update `yarn.lock` accordingly. > - **Docs** > - Update `packages/eip-5792-middleware/CHANGELOG.md` to reflect `transaction-controller` bump. > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ec4f40a2916b9a05949909f4f19a187ce425d778. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --------- Co-authored-by: cryptodev-2s <109512101+cryptodev-2s@users.noreply.github.com> --- package.json | 2 +- packages/assets-controllers/package.json | 2 +- packages/bridge-controller/package.json | 2 +- .../bridge-status-controller/package.json | 2 +- packages/earn-controller/package.json | 2 +- packages/eip-5792-middleware/CHANGELOG.md | 2 +- packages/eip-5792-middleware/package.json | 2 +- .../package.json | 2 +- packages/phishing-controller/package.json | 2 +- packages/shield-controller/package.json | 2 +- packages/transaction-controller/CHANGELOG.md | 5 ++++- packages/transaction-controller/package.json | 2 +- .../user-operation-controller/package.json | 2 +- yarn.lock | 20 +++++++++---------- 14 files changed, 26 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index d44656eb95e..154dbda1737 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/core-monorepo", - "version": "596.0.0", + "version": "597.0.0", "private": true, "description": "Monorepo for packages shared between MetaMask clients", "repository": { diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 007bd969e23..57cc613cc56 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -95,7 +95,7 @@ "@metamask/preferences-controller": "^20.0.1", "@metamask/providers": "^22.1.0", "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.191", "@types/node": "^16.18.54", diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index dc206caa83d..299275b7e98 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -73,7 +73,7 @@ "@metamask/remote-feature-flag-controller": "^1.7.0", "@metamask/snaps-controllers": "^14.0.1", "@metamask/superstruct": "^3.1.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index 22630436c55..e3b941cf7c4 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -62,7 +62,7 @@ "@metamask/gas-fee-controller": "^24.0.0", "@metamask/network-controller": "^24.2.0", "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index a3eeaf3b238..7a270378d72 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -59,7 +59,7 @@ "@metamask/account-tree-controller": "^1.4.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/network-controller": "^24.2.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/packages/eip-5792-middleware/CHANGELOG.md b/packages/eip-5792-middleware/CHANGELOG.md index 4b9a0dd57d1..80e8b753b90 100644 --- a/packages/eip-5792-middleware/CHANGELOG.md +++ b/packages/eip-5792-middleware/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `@metamask/utils` from `^11.8.0` to `^11.8.1` ([#6708](https://github.com/MetaMask/core/pull/6708)) -- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.5.0` ([#6708](https://github.com/MetaMask/core/pull/6733)) +- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.6.0` ([#6708](https://github.com/MetaMask/core/pull/6733), [#6771](https://github.com/MetaMask/core/pull/6771)) ## [1.2.0] diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index f9910aab9cd..fd67b404b38 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -49,7 +49,7 @@ "dependencies": { "@metamask/eth-json-rpc-middleware": "^17.0.1", "@metamask/superstruct": "^3.1.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@metamask/utils": "^11.8.1", "lodash": "^4.17.21", "uuid": "^8.3.2" diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 53e8e4b3a8f..7bef3c50e3f 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -50,7 +50,7 @@ "@metamask/auto-changelog": "^3.4.4", "@metamask/multichain-network-controller": "^1.0.0", "@metamask/network-controller": "^24.2.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index e94270fb91b..9a63a2d3da4 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -57,7 +57,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index c2595fb4827..775f4f31671 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -56,7 +56,7 @@ "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/signature-controller": "^34.0.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@ts-bridge/cli": "^0.6.1", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", diff --git a/packages/transaction-controller/CHANGELOG.md b/packages/transaction-controller/CHANGELOG.md index 1ca0ff647dc..f1c52468d8d 100644 --- a/packages/transaction-controller/CHANGELOG.md +++ b/packages/transaction-controller/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [60.6.0] + ### Added - Expose `addTransaction` and `addTransactionBatch` methods through the messenger ([#6749](https://github.com/MetaMask/core/pull/6749)) @@ -1841,7 +1843,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 All changes listed after this point were applied to this package following the monorepo conversion. -[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.5.0...HEAD +[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.0...HEAD +[60.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.5.0...@metamask/transaction-controller@60.6.0 [60.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.4.0...@metamask/transaction-controller@60.5.0 [60.4.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.3.0...@metamask/transaction-controller@60.4.0 [60.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.2.0...@metamask/transaction-controller@60.3.0 diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 46dd8497549..d75e413c6cb 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/transaction-controller", - "version": "60.5.0", + "version": "60.6.0", "description": "Stores transactions alongside their periodically updated statuses and manages interactions such as approval and cancellation", "keywords": [ "MetaMask", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index a0c033dd5eb..c3637f7a652 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -67,7 +67,7 @@ "@metamask/gas-fee-controller": "^24.0.0", "@metamask/keyring-controller": "^23.1.0", "@metamask/network-controller": "^24.2.0", - "@metamask/transaction-controller": "^60.5.0", + "@metamask/transaction-controller": "^60.6.0", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", "jest": "^27.5.1", diff --git a/yarn.lock b/yarn.lock index 0bb4c9c41a0..c3d8fe02929 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2612,7 +2612,7 @@ __metadata: "@metamask/snaps-controllers": "npm:^14.0.1" "@metamask/snaps-sdk": "npm:^9.0.0" "@metamask/snaps-utils": "npm:^11.0.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^27.4.1" @@ -2747,7 +2747,7 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^1.7.0" "@metamask/snaps-controllers": "npm:^14.0.1" "@metamask/superstruct": "npm:^3.1.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/jest": "npm:^27.4.1" bignumber.js: "npm:^9.1.2" @@ -2786,7 +2786,7 @@ __metadata: "@metamask/polling-controller": "npm:^14.0.0" "@metamask/snaps-controllers": "npm:^14.0.1" "@metamask/superstruct": "npm:^3.1.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/jest": "npm:^27.4.1" bignumber.js: "npm:^9.1.2" @@ -3057,7 +3057,7 @@ __metadata: "@metamask/keyring-api": "npm:^21.0.0" "@metamask/network-controller": "npm:^24.2.0" "@metamask/stake-sdk": "npm:^3.2.1" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" jest: "npm:^27.5.1" @@ -3081,7 +3081,7 @@ __metadata: "@metamask/keyring-controller": "npm:^23.1.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" @@ -4057,7 +4057,7 @@ __metadata: "@metamask/keyring-api": "npm:^21.0.0" "@metamask/multichain-network-controller": "npm:^1.0.0" "@metamask/network-controller": "npm:^24.2.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/jest": "npm:^27.4.1" deepmerge: "npm:^4.2.2" @@ -4213,7 +4213,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.4.0" "@metamask/controller-utils": "npm:^11.14.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@noble/hashes": "npm:^1.8.0" "@types/jest": "npm:^27.4.1" "@types/punycode": "npm:^2.1.0" @@ -4513,7 +4513,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^8.4.0" "@metamask/signature-controller": "npm:^34.0.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@ts-bridge/cli": "npm:^0.6.1" "@types/jest": "npm:^27.4.1" @@ -4764,7 +4764,7 @@ __metadata: languageName: node linkType: hard -"@metamask/transaction-controller@npm:^60.5.0, @metamask/transaction-controller@workspace:packages/transaction-controller": +"@metamask/transaction-controller@npm:^60.6.0, @metamask/transaction-controller@workspace:packages/transaction-controller": version: 0.0.0-use.local resolution: "@metamask/transaction-controller@workspace:packages/transaction-controller" dependencies: @@ -4837,7 +4837,7 @@ __metadata: "@metamask/polling-controller": "npm:^14.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" - "@metamask/transaction-controller": "npm:^60.5.0" + "@metamask/transaction-controller": "npm:^60.6.0" "@metamask/utils": "npm:^11.8.1" "@types/jest": "npm:^27.4.1" bn.js: "npm:^5.2.1" From 5f58199c29a88b660e0aa348a08e1ece7c7eb963 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Thu, 2 Oct 2025 13:14:04 +0200 Subject: [PATCH 3/3] Release/598.0.0 (#6772) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Minor release of the `multichain-account-service` to introduce a new optional option when creating multichain account groups. --- > [!NOTE] > Release multichain-account-service v1.5.0 with a new optional options param for createMultichainAccountGroup, update dependents, and bump monorepo version. > > - **multichain-account-service**: > - Version bump: `1.4.0` → `1.5.0` in `packages/multichain-account-service/package.json`. > - Changelog: add `1.5.0` entry documenting optional `options` for `MultichainAccountWallet.createMultichainAccountGroup()` and update compare links in `CHANGELOG.md`. > - **Dependents**: > - Update devDependency `@metamask/multichain-account-service` to `^1.5.0` in `packages/account-tree-controller/package.json` and `packages/assets-controllers/package.json`. > - **Repo**: > - Bump root `package.json` version to `598.0.0`. > - Update `yarn.lock` to reflect new `@metamask/multichain-account-service@^1.5.0`. > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 84ff221d33076e33dfe179ca209bf880e1f77a08. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --- package.json | 2 +- packages/account-tree-controller/package.json | 2 +- packages/assets-controllers/package.json | 2 +- packages/multichain-account-service/CHANGELOG.md | 5 ++++- packages/multichain-account-service/package.json | 2 +- yarn.lock | 6 +++--- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 154dbda1737..ad9f1ac0a9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/core-monorepo", - "version": "597.0.0", + "version": "598.0.0", "private": true, "description": "Monorepo for packages shared between MetaMask clients", "repository": { diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 002165103bd..5bc18d0523c 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -61,7 +61,7 @@ "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-api": "^21.0.0", "@metamask/keyring-controller": "^23.1.0", - "@metamask/multichain-account-service": "^1.4.0", + "@metamask/multichain-account-service": "^1.5.0", "@metamask/profile-sync-controller": "^25.1.0", "@metamask/providers": "^22.1.0", "@metamask/snaps-controllers": "^14.0.1", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 57cc613cc56..d605c337f41 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -88,7 +88,7 @@ "@metamask/keyring-controller": "^23.1.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-snap-client": "^8.0.0", - "@metamask/multichain-account-service": "^1.4.0", + "@metamask/multichain-account-service": "^1.5.0", "@metamask/network-controller": "^24.2.0", "@metamask/permission-controller": "^11.0.6", "@metamask/phishing-controller": "^14.0.0", diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index a4af631e045..a1e7006119d 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.5.0] + ### Added - Add an optional `options` parameter to `MultichainAccountWallet.createMultichainAccountGroup()` ([#6759](https://github.com/MetaMask/core/pull/6759)) @@ -213,7 +215,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add `MultichainAccountService` ([#6141](https://github.com/MetaMask/core/pull/6141)), ([#6165](https://github.com/MetaMask/core/pull/6165)) - This service manages multichain accounts/wallets. -[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.4.0...HEAD +[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.5.0...HEAD +[1.5.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.4.0...@metamask/multichain-account-service@1.5.0 [1.4.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.3.0...@metamask/multichain-account-service@1.4.0 [1.3.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.2.0...@metamask/multichain-account-service@1.3.0 [1.2.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-account-service@1.1.0...@metamask/multichain-account-service@1.2.0 diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 8225364e001..242e9b95853 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/multichain-account-service", - "version": "1.4.0", + "version": "1.5.0", "description": "Service to manage multichain accounts", "keywords": [ "MetaMask", diff --git a/yarn.lock b/yarn.lock index c3d8fe02929..6b667497f20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2413,7 +2413,7 @@ __metadata: "@metamask/base-controller": "npm:^8.4.0" "@metamask/keyring-api": "npm:^21.0.0" "@metamask/keyring-controller": "npm:^23.1.0" - "@metamask/multichain-account-service": "npm:^1.4.0" + "@metamask/multichain-account-service": "npm:^1.5.0" "@metamask/profile-sync-controller": "npm:^25.1.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^14.0.1" @@ -2601,7 +2601,7 @@ __metadata: "@metamask/keyring-internal-api": "npm:^9.0.0" "@metamask/keyring-snap-client": "npm:^8.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" - "@metamask/multichain-account-service": "npm:^1.4.0" + "@metamask/multichain-account-service": "npm:^1.5.0" "@metamask/network-controller": "npm:^24.2.0" "@metamask/permission-controller": "npm:^11.0.6" "@metamask/phishing-controller": "npm:^14.0.0" @@ -3845,7 +3845,7 @@ __metadata: languageName: node linkType: hard -"@metamask/multichain-account-service@npm:^1.4.0, @metamask/multichain-account-service@workspace:packages/multichain-account-service": +"@metamask/multichain-account-service@npm:^1.5.0, @metamask/multichain-account-service@workspace:packages/multichain-account-service": version: 0.0.0-use.local resolution: "@metamask/multichain-account-service@workspace:packages/multichain-account-service" dependencies: