diff --git a/packages/core-backend/CHANGELOG.md b/packages/core-backend/CHANGELOG.md index 93ba11b934..5873cbfeb1 100644 --- a/packages/core-backend/CHANGELOG.md +++ b/packages/core-backend/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/messenger` from `^1.2.0` to `^2.0.0` ([#9392](https://github.com/MetaMask/core/pull/9392)) +### Fixed + +- `AccountActivityService` subscribes to all supported scopes for a given account ([#9379](https://github.com/MetaMask/core/pull/9379)) + ## [6.5.0] ### Added diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index a3fb2b39e7..b4a04eeff1 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -57,6 +57,7 @@ "@metamask/controller-utils": "^12.3.0", "@metamask/keyring-controller": "^27.1.0", "@metamask/messenger": "^2.0.0", + "@metamask/multichain-account-service": "^10.0.3", "@metamask/profile-sync-controller": "^28.2.0", "@metamask/utils": "^11.11.0", "@tanstack/query-core": "^5.62.16", diff --git a/packages/core-backend/src/ws/AccountActivityService.ts b/packages/core-backend/src/ws/AccountActivityService.ts index 88b97f1729..590f3ecee5 100644 --- a/packages/core-backend/src/ws/AccountActivityService.ts +++ b/packages/core-backend/src/ws/AccountActivityService.ts @@ -9,6 +9,7 @@ import type { AccountsControllerGetSelectedAccountAction, AccountsControllerSelectedAccountChangeEvent, } from '@metamask/accounts-controller'; +import type { MultichainAccountServiceGetMultichainAccountGroupAction } from '@metamask/multichain-account-service'; import type { TraceCallback } from '@metamask/controller-utils'; import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { Messenger } from '@metamask/messenger'; @@ -52,6 +53,8 @@ const MESSENGER_EXPOSED_METHODS = ['subscribe', 'unsubscribe'] as const; const SUBSCRIPTION_NAMESPACE = 'account-activity.v1'; +const SUPPORTED_CHAIN_PREFIXES = ['eip155', 'solana'] as const; + /** * Account subscription options */ @@ -88,6 +91,7 @@ export const ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS = [ 'BackendWebSocketService:findSubscriptionsByChannelPrefix', 'BackendWebSocketService:addChannelCallback', 'BackendWebSocketService:removeChannelCallback', + 'MultichainAccountService:getMultichainAccountGroup', ] as const; // Allowed events that AccountActivityService can listen to @@ -98,7 +102,8 @@ export const ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS = [ export type AllowedActions = | AccountsControllerGetSelectedAccountAction - | BackendWebSocketServiceMethodActions; + | BackendWebSocketServiceMethodActions + | MultichainAccountServiceGetMultichainAccountGroupAction; // Event types for the messaging system @@ -404,14 +409,15 @@ export class AccountActivityService { } try { - // Convert new account to CAIP-10 format - const newAddress = this.#convertToCaip10Address(newAccount); - // First, unsubscribe from all current account activity subscriptions to avoid multiple subscriptions await this.#unsubscribeFromAllAccountActivity(); - // Then, subscribe to the new selected account - await this.subscribe({ address: newAddress }); + for (const address of this.#getSupportedMultichainCaip10Addresses( + newAccount, + )) { + // Subscribe to the new selected account in CAIP-10 format + await this.subscribe({ address }); + } } catch (error) { log('Account change failed', { error }); } @@ -514,9 +520,11 @@ export class AccountActivityService { return; } - // Convert to CAIP-10 format and subscribe - const address = this.#convertToCaip10Address(selectedAccount); - await this.subscribe({ address }); + for (const address of this.#getSupportedMultichainCaip10Addresses( + selectedAccount, + )) { + await this.subscribe({ address }); + } } /** @@ -543,9 +551,14 @@ export class AccountActivityService { * Convert an InternalAccount address to CAIP-10 format or raw address * * @param account - The internal account to convert + * @param account.address - The raw address of the account + * @param account.scopes - The scopes of the account (used to determine chain type) * @returns The CAIP-10 formatted address or raw address */ - #convertToCaip10Address(account: InternalAccount): string { + #convertToCaip10Address(account: { + address: InternalAccount['address']; + scopes: InternalAccount['scopes']; + }): string { // Check if account has EVM scopes if (account.scopes.some((scope) => scope.startsWith('eip155:'))) { // CAIP-10 format: eip155:0:address (subscribe to all EVM chains) @@ -562,6 +575,30 @@ export class AccountActivityService { return account.address; } + /** + * Get all supported multichain CAIP-10 addresses for a given account + * This is used to determine which accounts to subscribe to for activity updates + * + * @param account - The internal account to get supported addresses for + * @returns An array of CAIP-10 formatted addresses that are supported for subscription + */ + #getSupportedMultichainCaip10Addresses(account: InternalAccount): string[] { + const multichainAccounts = + account.options.entropy?.type === 'mnemonic' + ? this.#messenger + .call('MultichainAccountService:getMultichainAccountGroup', { + entropySource: account.options.entropy.id, + groupIndex: account.options.entropy.groupIndex, + }) + .getAccounts() + : [account]; + return multichainAccounts + .map((acct) => this.#convertToCaip10Address(acct)) + .filter((address) => + SUPPORTED_CHAIN_PREFIXES.some((prefix) => address.startsWith(prefix)), + ); + } + /** * Force WebSocket reconnection to clean up subscription state */ diff --git a/packages/core-backend/tsconfig.build.json b/packages/core-backend/tsconfig.build.json index e386c7a5ec..e765fd37f2 100644 --- a/packages/core-backend/tsconfig.build.json +++ b/packages/core-backend/tsconfig.build.json @@ -10,6 +10,7 @@ { "path": "../controller-utils/tsconfig.build.json" }, { "path": "../keyring-controller/tsconfig.build.json" }, { "path": "../messenger/tsconfig.build.json" }, + { "path": "../multichain-account-service/tsconfig.build.json" }, { "path": "../profile-sync-controller/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/core-backend/tsconfig.json b/packages/core-backend/tsconfig.json index b44a91d630..f9dfd1a0df 100644 --- a/packages/core-backend/tsconfig.json +++ b/packages/core-backend/tsconfig.json @@ -20,6 +20,9 @@ }, { "path": "../profile-sync-controller" + }, + { + "path": "../multichain-account-service" } ], "include": ["../../types", "./src"] diff --git a/packages/multichain-transactions-controller/CHANGELOG.md b/packages/multichain-transactions-controller/CHANGELOG.md index 8224c4ace2..6e9627c207 100644 --- a/packages/multichain-transactions-controller/CHANGELOG.md +++ b/packages/multichain-transactions-controller/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- **BREAKING:** `MultichainTransactionController` now requires a messenger with the `AccountActivityService:transactionUpdated` delegate event ([#0000](https://github.com/MetaMask/core/pull/0000)] + - The `MultichainTransactionsController` now relies on the `AccountActivityService:transactionUpdated` event to receive transaction updates. - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074)) - Bump `@metamask/accounts-controller` from `^39.0.0` to `^39.0.4` ([#9058](https://github.com/MetaMask/core/pull/9058), [#9218](https://github.com/MetaMask/core/pull/9218), [#9231](https://github.com/MetaMask/core/pull/9231), [#9349](https://github.com/MetaMask/core/pull/9349)) - Bump `@metamask/polling-controller` from `^16.0.6` to `^16.0.8` ([#9218](https://github.com/MetaMask/core/pull/9218), [#9349](https://github.com/MetaMask/core/pull/9349)) diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 2b197c625c..ae53f4d09e 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -55,6 +55,7 @@ "dependencies": { "@metamask/accounts-controller": "^39.0.4", "@metamask/base-controller": "^9.1.0", + "@metamask/core-backend": "^6.3.3", "@metamask/keyring-api": "^23.5.0", "@metamask/keyring-internal-api": "^11.0.1", "@metamask/keyring-snap-client": "^9.2.0", diff --git a/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts b/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts index cf1ac2319d..0a533d4fb1 100644 --- a/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts +++ b/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts @@ -197,6 +197,7 @@ const setupController = ({ 'AccountsController:accountAdded', 'AccountsController:accountRemoved', 'AccountsController:accountTransactionsUpdated', + 'AccountActivityService:transactionUpdated', ], }); @@ -615,6 +616,66 @@ describe('MultichainTransactionsController', () => { }); }); + it('flips a pending non-EVM transaction to terminal on AccountActivityService:transactionUpdated', async () => { + const accountId = 'sol-account-id'; + const chain = + 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' as unknown as CaipChainId; + const pending = { + id: 'sig-1', + account: accountId, + chain, + type: 'send' as const, + status: 'submitted' as const, + timestamp: 1, + from: [{ address: 'a', asset: null }], + to: [], + fees: [], + events: [{ status: 'submitted' as const, timestamp: 1 }], + }; + const { controller, rootMessenger } = setupController({ + state: { + nonEvmTransactions: { + [accountId]: { + [chain]: { + transactions: [pending], + next: null, + lastUpdated: Date.now(), + }, + }, + }, + }, + }); + + // Non-terminal / unknown updates are ignored. + rootMessenger.publish('AccountActivityService:transactionUpdated', { + id: 'sig-1', + chain, + status: 'submitted', + }); + rootMessenger.publish('AccountActivityService:transactionUpdated', { + id: 'does-not-exist', + chain, + status: 'confirmed', + }); + await waitForAllPromises(); + expect( + controller.state.nonEvmTransactions[accountId][chain].transactions[0] + .status, + ).toBe('submitted'); + + // A terminal update for a known pending tx flips its status. + rootMessenger.publish('AccountActivityService:transactionUpdated', { + id: 'sig-1', + chain, + status: 'confirmed', + }); + await waitForAllPromises(); + expect( + controller.state.nonEvmTransactions[accountId][chain].transactions[0] + .status, + ).toBe('confirmed'); + }); + it('initializes new accounts with empty transactions array when receiving updates', async () => { const { chain } = mockTransactionResult.data[0]; diff --git a/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts b/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts index d51575beb8..f13db9435e 100644 --- a/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts +++ b/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts @@ -9,6 +9,10 @@ import type { ControllerGetStateAction, ControllerStateChangeEvent, } from '@metamask/base-controller'; +import { + AccountActivityServiceTransactionUpdatedEvent, + Transaction as BackendTransactionUpdate, +} from '@metamask/core-backend'; import { isEvmAccountType, TransactionStatus } from '@metamask/keyring-api'; import type { Transaction, @@ -30,6 +34,24 @@ const controllerName = 'MultichainTransactionsController'; const MESSENGER_EXPOSED_METHODS = ['updateTransactionsForAccount'] as const; +/** + * Maps a backend WebSocket status string to a terminal keyring status, or + * `undefined` for non-terminal / unknown statuses (which are ignored). + * + * @param status - The status reported by the account-activity WebSocket. + * @returns The terminal {@link TransactionStatus}, or `undefined`. + */ +function toTerminalStatus(status: string): TransactionStatus | undefined { + const normalized = status.toLowerCase(); + if (normalized === TransactionStatus.Confirmed) { + return TransactionStatus.Confirmed; + } + if (normalized === TransactionStatus.Failed) { + return TransactionStatus.Failed; + } + return undefined; +} + /** * PaginationOptions * @@ -136,7 +158,8 @@ type AllowedActions = type AllowedEvents = | AccountsControllerAccountAddedEvent | AccountsControllerAccountRemovedEvent - | AccountsControllerAccountTransactionsUpdatedEvent; + | AccountsControllerAccountTransactionsUpdatedEvent + | AccountActivityServiceTransactionUpdatedEvent; /** * {@link MultichainTransactionsController}'s metadata. @@ -217,6 +240,13 @@ export class MultichainTransactionsController extends BaseController< (transactionsUpdate: AccountTransactionsUpdatedEventPayload) => this.#handleOnAccountTransactionsUpdated(transactionsUpdate), ); + // Client-owned terminal tracking: flip pending (Submitted) non-EVM entries to + // Confirmed/Failed from the account-activity WebSocket, replacing the snap's + // former confirmation tracking (see snap-transactions offload, ticket 5). + this.messenger.subscribe( + 'AccountActivityService:transactionUpdated', + (update) => this.#handleOnBackendTransactionUpdated(update), + ); } /** @@ -471,6 +501,60 @@ export class MultichainTransactionsController extends BaseController< }); } + /** + * Handles a transaction status update from the account-activity WebSocket. + * + * Finds the matching pending entry (by chain-specific id) and flips it to the + * reported terminal status. Non-terminal updates and unknown transactions are + * ignored. + * + * @param update - The backend transaction update. + */ + #handleOnBackendTransactionUpdated(update: BackendTransactionUpdate): void { + const terminalStatus = toTerminalStatus(update.status); + if (!terminalStatus) { + return; + } + + let location: + | { accountId: string; chain: CaipChainId; existing: Transaction } + | undefined; + for (const [accountId, chains] of Object.entries( + this.state.nonEvmTransactions, + )) { + for (const [chain, entry] of Object.entries(chains)) { + const existing = entry.transactions.find((tx) => tx.id === update.id); + if (existing) { + location = { accountId, chain: chain as CaipChainId, existing }; + break; + } + } + if (location) { + break; + } + } + + if (!location || location.existing.status === terminalStatus) { + return; + } + + const { accountId, chain } = location; + const updatedTransaction: Transaction = { + ...location.existing, + status: terminalStatus, + }; + + this.update((state) => { + const entry = state.nonEvmTransactions[accountId][chain]; + entry.transactions = entry.transactions.map((tx) => + tx.id === update.id ? updatedTransaction : tx, + ); + entry.lastUpdated = Date.now(); + }); + + this.#publishTransactionUpdateEvent(updatedTransaction); + } + /** * Gets a `KeyringClient` for a Snap. * diff --git a/packages/multichain-transactions-controller/tsconfig.build.json b/packages/multichain-transactions-controller/tsconfig.build.json index 695c01cd3d..53ae13938f 100644 --- a/packages/multichain-transactions-controller/tsconfig.build.json +++ b/packages/multichain-transactions-controller/tsconfig.build.json @@ -8,6 +8,7 @@ "references": [ { "path": "../accounts-controller/tsconfig.build.json" }, { "path": "../base-controller/tsconfig.build.json" }, + { "path": "../core-backend/tsconfig.build.json" }, { "path": "../keyring-controller/tsconfig.build.json" }, { "path": "../polling-controller/tsconfig.build.json" }, { "path": "../messenger/tsconfig.build.json" } diff --git a/packages/multichain-transactions-controller/tsconfig.json b/packages/multichain-transactions-controller/tsconfig.json index ce215a7394..a56f71cb08 100644 --- a/packages/multichain-transactions-controller/tsconfig.json +++ b/packages/multichain-transactions-controller/tsconfig.json @@ -6,6 +6,7 @@ "references": [ { "path": "../accounts-controller" }, { "path": "../base-controller" }, + { "path": "../core-backend" }, { "path": "../keyring-controller" }, { "path": "../polling-controller" }, { "path": "../messenger" } diff --git a/yarn.lock b/yarn.lock index ba1a636241..ce7bb9929e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19,15 +19,15 @@ __metadata: languageName: node linkType: hard -"@algolia/abtesting@npm:1.18.1": - version: 1.18.1 - resolution: "@algolia/abtesting@npm:1.18.1" +"@algolia/abtesting@npm:1.19.0": + version: 1.19.0 + resolution: "@algolia/abtesting@npm:1.19.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/0b5d0015533166009327b986739388874bc397e42e946819fe237a477cabde9f2ffa56e9b3b45a5f0936d13db5b02cefbf2a054b3c27be36a38c10e666d94544 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/eaa3183c5ee2ceb77e4b658c9656917d59e9ce363526e9fd4a58c63cb8ed445d9413b64aa488b3ed021d22a29d9e734bd2c508dd6ec57b9eeada44d3d75b2333 languageName: node linkType: hard @@ -93,82 +93,82 @@ __metadata: languageName: node linkType: hard -"@algolia/client-abtesting@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-abtesting@npm:5.52.1" +"@algolia/client-abtesting@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-abtesting@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/93ebca8f5949856fdfda251e42d5935c9f80e155756c3f8708d1f0e5ba63022ae8c9cda7355a10f71b553a196e59f594729b17e014fa3e54017504c153c8e15f + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/2087f9c60eec1ace58bb800993dc58a91d595257d3352a8a6f2e83104a92427209ed2a65418228f7c2fabe03b321ab1cbe0f1615edfc9676893556e696a4ed8a languageName: node linkType: hard -"@algolia/client-analytics@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-analytics@npm:5.52.1" +"@algolia/client-analytics@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-analytics@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/0949701da07d842d94b0987a12ea7006f6c39a4f5f401e739b26bfbfc9ea071b17bb80f4463f9aec50b994cdd01f8cbda9065f22c2feb3965f8e637af3ce9439 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/432feaab007b5cdde216b4ddfed08631558ba91e3139cfd065619c6301ab7d321df82c6a5f3e615e9c8d399720ed53407ca32531937e362003e78c7991a5009c languageName: node linkType: hard -"@algolia/client-common@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-common@npm:5.52.1" - checksum: 10/3efacea327d7167fc1af404df066683ecf0380c3e437c1ab8dd172697ca69c78978ceeb9d5179d596565188597407e54ce61e44ddd25d7dec7c7545a766207ce +"@algolia/client-common@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-common@npm:5.53.0" + checksum: 10/bcef6d69d6340f16021da1a07602a282e03871867f2f22bd38026832b16721fa5e2d8c3a45472106ec833735dff0756c8d8b2e1a31f7fa2d7fe53c5eb0bc57ee languageName: node linkType: hard -"@algolia/client-insights@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-insights@npm:5.52.1" +"@algolia/client-insights@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-insights@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/36d33b01f843ece3c8a894c855f78cb1a0eda1f94ee6c6286be9edfd7c2772a46dfba20f083bd0a4e9a7dcc625acd4e711750a65b48f76b65b88c80c382bdc8b + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/bb949a2460b759177873da3f470d4590a7370732192ba4b62f9f5f246018e31c7458ebf93747b951108e52a779346cb68a1c3d2fddd6515b373e83477d9683f3 languageName: node linkType: hard -"@algolia/client-personalization@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-personalization@npm:5.52.1" +"@algolia/client-personalization@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-personalization@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/ff2b40e8220d545dbbc275f04c5d5a45884a9ce07d13d06bcb7ef1635828ac42acd1f9a3c439177f2b1baa9b63f7ca33f997a8a755099c2850aa18937f7bf355 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/6043eee231d1c12274ac2f449a98fb001d0f11682fa5a2409df7ce713b86b54df3fe1c3065163127fee66686cee14e15556b8dedc39efe0bdb06b25d7e2ce4a6 languageName: node linkType: hard -"@algolia/client-query-suggestions@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-query-suggestions@npm:5.52.1" +"@algolia/client-query-suggestions@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-query-suggestions@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/3f17139b29e4133bc14d917b4317cc9f65e0b060328df526c0dafc9000a565a26725315a54630b057f6cd125cd88f9817e880c27e153e243c335b3a9fc60a98b + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/2bab41df5b76060504964c7210f4f32b2cd35b7a85352032f4b3126a12cd5aecc671d0b79d5bada75c6fedb968fe7fb2bec8c56798ef59aab0b3410cc3314423 languageName: node linkType: hard -"@algolia/client-search@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/client-search@npm:5.52.1" +"@algolia/client-search@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/client-search@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/cb691b3e995dd09fdd2f1b9f337c9e2038033ae53175f1ae62a6186991c6c0088b67f8bb638bcd7f20e8c3c07d44289bfb1717d84cdebbf7e94a29a80411a5b0 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/8c40a36edd5ebdf438e90bb9ee1dbe27689027747c66c4901b6684149c4f5a2da26e72f11a1583542db60503c8e28a69d7d06f856139a0c356274ee8024216ca languageName: node linkType: hard @@ -179,66 +179,66 @@ __metadata: languageName: node linkType: hard -"@algolia/ingestion@npm:1.52.1": - version: 1.52.1 - resolution: "@algolia/ingestion@npm:1.52.1" +"@algolia/ingestion@npm:1.53.0": + version: 1.53.0 + resolution: "@algolia/ingestion@npm:1.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/4bfb3f64ceb5b369544c73a2bbbd8e2bd3fe33afa244ce839ddd989da4cf88eb309722932fbded2a35da2f9e007c0dd8f7e53033bdbe1634db90b684c4788dd1 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/639e4e5575e854f3aa421afaa0fa45e4d98f14d825edc9a88ec3d72e87167b8c748d267ca1da8fe34f6b961df4cdca30ea49bad961aded5605e4f93c1e474374 languageName: node linkType: hard -"@algolia/monitoring@npm:1.52.1": - version: 1.52.1 - resolution: "@algolia/monitoring@npm:1.52.1" +"@algolia/monitoring@npm:1.53.0": + version: 1.53.0 + resolution: "@algolia/monitoring@npm:1.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/7c3c8c083884f7d1212c36c5ec0d06106db18dbb466097682c3419a18500aeca8fb176ec91c5532067c01ec6c10378b0acb14b3497134a356ba12e083c661f24 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/ac8e18761392872d44d67d5a897daf25a277e4628a542e1c57ac2fdc793b9b4a658485002a3627829608a592d02b97cc59d1bac44b2ecdaa417cddaf5e06fc3c languageName: node linkType: hard -"@algolia/recommend@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/recommend@npm:5.52.1" +"@algolia/recommend@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/recommend@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/9debba40d349e6173fabbb24c95eed39b43bd56c03e8829327766a86d9c04e8d2b1ab369da0e160360a280b509e00e8586e8dae29858813608bbd677d146db01 + "@algolia/client-common": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/ae04821435339d9474edce61c74975a938f128fce6410d72d50d9d31d40125823605c01da3d5c1f97598331cbdd8cf25001d453446a083553630fb9cc683eb4f languageName: node linkType: hard -"@algolia/requester-browser-xhr@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/requester-browser-xhr@npm:5.52.1" +"@algolia/requester-browser-xhr@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/requester-browser-xhr@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - checksum: 10/6446631d19866f781570adaba883e987f538391e66e96ed2fc7449df4b90d557461d5ad733b3c4e96162b7774429bcad0e03643deb0e5cc2f4a90e739073a024 + "@algolia/client-common": "npm:5.53.0" + checksum: 10/bddcf5bdf14cbcbb8a5f9b0f834f0f708d7074653222e608efed12d837bfe88fd8df4eb116aff354cac2a3e13389717e2832518139bcf422da1609fa35f5792f languageName: node linkType: hard -"@algolia/requester-fetch@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/requester-fetch@npm:5.52.1" +"@algolia/requester-fetch@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/requester-fetch@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - checksum: 10/f5d7f6e55a381f46afcfdcba583a6f4e9789ba9cc8b40e4ee74ba1d5edc9bfc6032927dd690821b70122816606f8ecd68cc78fc3ed33e0c89877d52ad5e4edfa + "@algolia/client-common": "npm:5.53.0" + checksum: 10/60f333ba7c45d36b24d9b0a3991fdff3a1d40b59c3b3fc6424b34bf9c89dc0c4ec920d3475b2bdd5eb3bc888195f9c7d3ca44f1424d032c94e30e5ea9efe4702 languageName: node linkType: hard -"@algolia/requester-node-http@npm:5.52.1": - version: 5.52.1 - resolution: "@algolia/requester-node-http@npm:5.52.1" +"@algolia/requester-node-http@npm:5.53.0": + version: 5.53.0 + resolution: "@algolia/requester-node-http@npm:5.53.0" dependencies: - "@algolia/client-common": "npm:5.52.1" - checksum: 10/18068056cfe8f3756c3e549714b35a708a39e35fb8f6ba3e67a9c6ce7d7b28d31a8f54babf9ee7556c12478e636c5ce7e6f129491bd3e0a581b115fbdaee9bc8 + "@algolia/client-common": "npm:5.53.0" + checksum: 10/5cadb77179b812ab29e55bc56de1f45df138093b28e57369ac08e0e0f8ec02f4fec62777bc679663a97cda44b321aa150c9547772e7beb82caaa3bc2b6e0ae38 languageName: node linkType: hard @@ -5101,106 +5101,106 @@ __metadata: languageName: node linkType: hard -"@jsonjoy.com/fs-core@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-core@npm:4.57.2" +"@jsonjoy.com/fs-core@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-core@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" thingies: "npm:^2.5.0" peerDependencies: tslib: 2 - checksum: 10/6db8b3a7fb874229c7991bbdc094d752adbde7d774e5ef70df5a787130c7c8ed4ac2d34eaac079383c527269feaa91d1cb4f5c1504af995cca95070af769a0bd + checksum: 10/4a8c30f690080dc2d189b3461f1c2102082a890a822e109e8c51b6306ea5db897de6da0a48ff01675eb0da8fd95c3fd7c19b937eac8b7702322d054b2294bf48 languageName: node linkType: hard -"@jsonjoy.com/fs-fsa@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-fsa@npm:4.57.2" +"@jsonjoy.com/fs-fsa@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-fsa@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-core": "npm:4.57.2" - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" + "@jsonjoy.com/fs-core": "npm:4.57.3" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" thingies: "npm:^2.5.0" peerDependencies: tslib: 2 - checksum: 10/0edf3b73d06a27e81f8a8e3b042022b9440c4794bb21d9957c15cd5c87f629e7e2f6695d464f82bb52d16e08fb3e682090ced5e712cc5bb05b41cbe99ce6e393 + checksum: 10/e503defb49fccb92d9d683b7a901de646d499accc2fa561e161cc3bb9ec5f8bcf7c7c2acf185e6ed5d87330203ac4bd3b3c196cc20280343b46cec036e28ee64 languageName: node linkType: hard -"@jsonjoy.com/fs-node-builtins@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-node-builtins@npm:4.57.2" +"@jsonjoy.com/fs-node-builtins@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-node-builtins@npm:4.57.3" peerDependencies: tslib: 2 - checksum: 10/3284f0f0a989ad2bc0abc485748b2f3581648401c7d86be9b4541374f65050d384b61b5e44eff9b463d43fd1764bead1251783681105962ba5954b5e64b42480 + checksum: 10/de320725c525259647e76a9b6f6a0b4aadf04d5d2db403a89fe51dc7af09438f52c48125084324d8b9b5cbd283b8a50429d9c7f9a54c926e3593dcecc793ec45 languageName: node linkType: hard -"@jsonjoy.com/fs-node-to-fsa@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-node-to-fsa@npm:4.57.2" +"@jsonjoy.com/fs-node-to-fsa@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-node-to-fsa@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-fsa": "npm:4.57.2" - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" + "@jsonjoy.com/fs-fsa": "npm:4.57.3" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" peerDependencies: tslib: 2 - checksum: 10/8d6e7447c640c02eb89c03e6a565af13b30607402a83ab462f0e16cced95d1cf0a09cc43fe297c379e51e905e0a6f7e14e65a65d19ece0756c3ae888e618e88c + checksum: 10/475b006543025723e25f097300e47cb2c502f60584ee9ca92616ecbafe66b66e4330c3d1e75ce51d9c33dd0fac93cb374cd5e1c34154d7dd81440758b965a16b languageName: node linkType: hard -"@jsonjoy.com/fs-node-utils@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-node-utils@npm:4.57.2" +"@jsonjoy.com/fs-node-utils@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-node-utils@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" peerDependencies: tslib: 2 - checksum: 10/f63c7c8fd5a63a163a01bc70dac262419bcc1ae182186f249e038703b04a401e49eab9043514384555177e9385929b58a76cab945e8c7cdc6809efc2ea50bf31 + checksum: 10/91622fa99246c3dee82af934cde74f6ee9e9161b91ad8a96a4b9b2af948c96b4e914f4a4fdcf8f21c047a40ea4ca2dc7e9721b89e71f05b1335a3e0b924464cf languageName: node linkType: hard -"@jsonjoy.com/fs-node@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-node@npm:4.57.2" +"@jsonjoy.com/fs-node@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-node@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-core": "npm:4.57.2" - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" - "@jsonjoy.com/fs-print": "npm:4.57.2" - "@jsonjoy.com/fs-snapshot": "npm:4.57.2" + "@jsonjoy.com/fs-core": "npm:4.57.3" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" + "@jsonjoy.com/fs-print": "npm:4.57.3" + "@jsonjoy.com/fs-snapshot": "npm:4.57.3" glob-to-regex.js: "npm:^1.0.0" thingies: "npm:^2.5.0" peerDependencies: tslib: 2 - checksum: 10/2e7777874624035b5503a6d7cbefa82c06adcf3ad63140cd8ce83082b46dace5f8981f98121cb27c79f5755b3790623fbc9facf2b27b00aca28498d4d33df611 + checksum: 10/405f6212c93a4c3c5120a3bd662c32d3339bbc564e77aff577ea1b577ab639786a04787b9ae0dc6108aeffc197fde13984d04444361da844bdbd61371308dda8 languageName: node linkType: hard -"@jsonjoy.com/fs-print@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-print@npm:4.57.2" +"@jsonjoy.com/fs-print@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-print@npm:4.57.3" dependencies: - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" tree-dump: "npm:^1.1.0" peerDependencies: tslib: 2 - checksum: 10/4931c8de684a655ab11ba2285016c35f3558f1f8f3444ac42fe7f5ea417556661b6f88d238c107f30c30b2d131eb2e0ecb1bb8626a7f6e0440996f42ea31dd7b + checksum: 10/fc01aa6945b28c559912949edd882ac29d217d09e2d2f4a87eb52221aa714b85654e64392d3efcbc241b854dac4b265c1ef8d0e170f4b3c7237a9ce012991334 languageName: node linkType: hard -"@jsonjoy.com/fs-snapshot@npm:4.57.2": - version: 4.57.2 - resolution: "@jsonjoy.com/fs-snapshot@npm:4.57.2" +"@jsonjoy.com/fs-snapshot@npm:4.57.3": + version: 4.57.3 + resolution: "@jsonjoy.com/fs-snapshot@npm:4.57.3" dependencies: "@jsonjoy.com/buffers": "npm:^17.65.0" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" "@jsonjoy.com/json-pack": "npm:^17.65.0" "@jsonjoy.com/util": "npm:^17.65.0" peerDependencies: tslib: 2 - checksum: 10/191b9d9a63f0ad30342da7ab37a45bbe84c935ae204e3780d69acf2fb12fdf07f7da8c3ade38255207de72fdb3b64a30e8dcc2ad93cfe424e77697d3cd419166 + checksum: 10/a45d533bf4c5f5fed1f676b199c470acd43fa33e81e86ce0ecc8c6561032c24a995691568b348bf6f9ec362a399ebdd0d2cf0452dbf07931928b7c8b88c5866d languageName: node linkType: hard @@ -5419,7 +5419,7 @@ __metadata: languageName: node linkType: hard -"@metamask/account-tree-controller@npm:^7.5.4, @metamask/account-tree-controller@workspace:packages/account-tree-controller": +"@metamask/account-tree-controller@npm:^7.5.2, @metamask/account-tree-controller@npm:^7.5.4, @metamask/account-tree-controller@workspace:packages/account-tree-controller": version: 0.0.0-use.local resolution: "@metamask/account-tree-controller@workspace:packages/account-tree-controller" dependencies: @@ -5456,7 +5456,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/accounts-controller@npm:^39.0.4, @metamask/accounts-controller@workspace:packages/accounts-controller": +"@metamask/accounts-controller@npm:^39.0.1, @metamask/accounts-controller@npm:^39.0.4, @metamask/accounts-controller@workspace:packages/accounts-controller": version: 0.0.0-use.local resolution: "@metamask/accounts-controller@workspace:packages/accounts-controller" dependencies: @@ -6304,7 +6304,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/core-backend@npm:^6.5.0, @metamask/core-backend@workspace:packages/core-backend": +"@metamask/core-backend@npm:^6.3.3, @metamask/core-backend@npm:^6.5.0, @metamask/core-backend@workspace:packages/core-backend": version: 0.0.0-use.local resolution: "@metamask/core-backend@workspace:packages/core-backend" dependencies: @@ -6313,6 +6313,7 @@ __metadata: "@metamask/controller-utils": "npm:^12.3.0" "@metamask/keyring-controller": "npm:^27.1.0" "@metamask/messenger": "npm:^2.0.0" + "@metamask/multichain-account-service": "npm:^10.0.3" "@metamask/profile-sync-controller": "npm:^28.2.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" @@ -6821,6 +6822,32 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-snap-keyring@npm:^22.0.1": + version: 22.4.0 + resolution: "@metamask/eth-snap-keyring@npm:22.4.0" + dependencies: + "@ethereumjs/tx": "npm:^5.4.0" + "@metamask/eth-sig-util": "npm:^8.2.0" + "@metamask/keyring-internal-api": "npm:^11.0.1" + "@metamask/keyring-internal-snap-client": "npm:^10.0.4" + "@metamask/keyring-sdk": "npm:^2.2.0" + "@metamask/keyring-snap-sdk": "npm:^9.1.0" + "@metamask/keyring-utils": "npm:^3.3.1" + "@metamask/messenger": "npm:^1.1.1" + "@metamask/snaps-controllers": "npm:^19.0.1" + "@metamask/snaps-sdk": "npm:^11.0.0" + "@metamask/snaps-utils": "npm:^12.2.1" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^11.11.0" + "@types/uuid": "npm:^9.0.8" + async-mutex: "npm:^0.5.0" + uuid: "npm:^9.0.1" + peerDependencies: + "@metamask/keyring-api": ^23.0.0 + checksum: 10/16cdf47083d5feed3346ae19a507ff491e4d9c53e15c943670b25441bdcfc71ff8d99f25c6bdb56035942e65fec77087582ee1fdf786cc2380de3144a5fa41b0 + languageName: node + linkType: hard + "@metamask/eth-snap-keyring@npm:^23.0.0": version: 23.0.0 resolution: "@metamask/eth-snap-keyring@npm:23.0.0" @@ -7197,7 +7224,7 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-controller@npm:^27.1.0, @metamask/keyring-controller@workspace:packages/keyring-controller": +"@metamask/keyring-controller@npm:^27.0.0, @metamask/keyring-controller@npm:^27.1.0, @metamask/keyring-controller@workspace:packages/keyring-controller": version: 0.0.0-use.local resolution: "@metamask/keyring-controller@workspace:packages/keyring-controller" dependencies: @@ -7248,7 +7275,7 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-internal-snap-client@npm:^10.0.5": +"@metamask/keyring-internal-snap-client@npm:^10.0.4, @metamask/keyring-internal-snap-client@npm:^10.0.5": version: 10.0.5 resolution: "@metamask/keyring-internal-snap-client@npm:10.0.5" dependencies: @@ -7279,7 +7306,7 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-snap-client@npm:^9.2.0": +"@metamask/keyring-snap-client@npm:^9.0.2, @metamask/keyring-snap-client@npm:^9.2.0": version: 9.2.0 resolution: "@metamask/keyring-snap-client@npm:9.2.0" dependencies: @@ -7295,7 +7322,7 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-snap-sdk@npm:^9.2.0": +"@metamask/keyring-snap-sdk@npm:^9.0.1, @metamask/keyring-snap-sdk@npm:^9.1.0, @metamask/keyring-snap-sdk@npm:^9.2.0": version: 9.2.0 resolution: "@metamask/keyring-snap-sdk@npm:9.2.0" dependencies: @@ -7311,7 +7338,7 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-utils@npm:^3.2.0, @metamask/keyring-utils@npm:^3.3.1": +"@metamask/keyring-utils@npm:^3.2.0, @metamask/keyring-utils@npm:^3.2.1, @metamask/keyring-utils@npm:^3.3.1": version: 3.3.1 resolution: "@metamask/keyring-utils@npm:3.3.1" dependencies: @@ -7565,6 +7592,37 @@ __metadata: languageName: unknown linkType: soft +"@metamask/multichain-account-service@npm:^10.0.3": + version: 10.0.3 + resolution: "@metamask/multichain-account-service@npm:10.0.3" + dependencies: + "@ethereumjs/util": "npm:^9.1.0" + "@metamask/accounts-controller": "npm:^39.0.1" + "@metamask/base-controller": "npm:^9.1.0" + "@metamask/eth-snap-keyring": "npm:^22.0.1" + "@metamask/key-tree": "npm:^10.1.1" + "@metamask/keyring-api": "npm:^23.1.0" + "@metamask/keyring-controller": "npm:^27.0.0" + "@metamask/keyring-internal-api": "npm:^11.0.1" + "@metamask/keyring-snap-client": "npm:^9.0.2" + "@metamask/keyring-utils": "npm:^3.2.1" + "@metamask/messenger": "npm:^1.2.0" + "@metamask/snap-account-service": "npm:^0.3.1" + "@metamask/snaps-controllers": "npm:^19.0.0" + "@metamask/snaps-sdk": "npm:^11.0.0" + "@metamask/snaps-utils": "npm:^12.1.2" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^11.9.0" + async-mutex: "npm:^0.5.0" + lodash: "npm:^4.17.21" + peerDependencies: + "@metamask/account-api": ^1.0.4 + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + checksum: 10/ed945f17e571b96baab959c29e5bdc68573de6e613d79834fbd9eb55025e7c85d3e92ae4cf8454ccefdb45e6331ecfe9f859feb4217cbe1b3083086166128057 + languageName: node + linkType: hard + "@metamask/multichain-account-service@npm:^12.0.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" @@ -7684,6 +7742,7 @@ __metadata: "@metamask/accounts-controller": "npm:^39.0.4" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" + "@metamask/core-backend": "npm:^6.3.3" "@metamask/keyring-api": "npm:^23.5.0" "@metamask/keyring-controller": "npm:^27.1.0" "@metamask/keyring-internal-api": "npm:^11.0.1" @@ -8579,6 +8638,25 @@ __metadata: languageName: unknown linkType: soft +"@metamask/snap-account-service@npm:^0.3.1": + version: 0.3.1 + resolution: "@metamask/snap-account-service@npm:0.3.1" + dependencies: + "@metamask/account-api": "npm:^1.0.4" + "@metamask/account-tree-controller": "npm:^7.5.2" + "@metamask/eth-snap-keyring": "npm:^22.0.1" + "@metamask/keyring-api": "npm:^23.1.0" + "@metamask/keyring-controller": "npm:^27.0.0" + "@metamask/keyring-snap-sdk": "npm:^9.0.1" + "@metamask/messenger": "npm:^1.2.0" + "@metamask/snaps-controllers": "npm:^19.0.0" + "@metamask/snaps-sdk": "npm:^11.0.0" + "@metamask/utils": "npm:^11.9.0" + lodash: "npm:^4.17.21" + checksum: 10/de442502dd59910e991dd57b0c107bdc8fd5b027a2190350f2d6a1a68913f0e65d0e46a3f3cc47aee8a824c5e6dc8062a9f5ecadb4f8b62b92efe71cb4404094 + languageName: node + linkType: hard + "@metamask/snap-account-service@npm:^2.0.0, @metamask/snap-account-service@workspace:packages/snap-account-service": version: 0.0.0-use.local resolution: "@metamask/snap-account-service@workspace:packages/snap-account-service" @@ -12239,24 +12317,24 @@ __metadata: linkType: hard "algoliasearch@npm:^5.37.0": - version: 5.52.1 - resolution: "algoliasearch@npm:5.52.1" - dependencies: - "@algolia/abtesting": "npm:1.18.1" - "@algolia/client-abtesting": "npm:5.52.1" - "@algolia/client-analytics": "npm:5.52.1" - "@algolia/client-common": "npm:5.52.1" - "@algolia/client-insights": "npm:5.52.1" - "@algolia/client-personalization": "npm:5.52.1" - "@algolia/client-query-suggestions": "npm:5.52.1" - "@algolia/client-search": "npm:5.52.1" - "@algolia/ingestion": "npm:1.52.1" - "@algolia/monitoring": "npm:1.52.1" - "@algolia/recommend": "npm:5.52.1" - "@algolia/requester-browser-xhr": "npm:5.52.1" - "@algolia/requester-fetch": "npm:5.52.1" - "@algolia/requester-node-http": "npm:5.52.1" - checksum: 10/c7f4d39079caad9ebe9487bc112c3fce4a9321f6140f6b2b55b92f17068e8613312163799f073a3493c19eb954389c4c3f4f584c35535824be89a594bf7cc3d2 + version: 5.53.0 + resolution: "algoliasearch@npm:5.53.0" + dependencies: + "@algolia/abtesting": "npm:1.19.0" + "@algolia/client-abtesting": "npm:5.53.0" + "@algolia/client-analytics": "npm:5.53.0" + "@algolia/client-common": "npm:5.53.0" + "@algolia/client-insights": "npm:5.53.0" + "@algolia/client-personalization": "npm:5.53.0" + "@algolia/client-query-suggestions": "npm:5.53.0" + "@algolia/client-search": "npm:5.53.0" + "@algolia/ingestion": "npm:1.53.0" + "@algolia/monitoring": "npm:1.53.0" + "@algolia/recommend": "npm:5.53.0" + "@algolia/requester-browser-xhr": "npm:5.53.0" + "@algolia/requester-fetch": "npm:5.53.0" + "@algolia/requester-node-http": "npm:5.53.0" + checksum: 10/0e87f7c87bde32963c3d83f514775abc2242b9a958150b1c72b94b3b39fb086e84a8745dbe7bfa49c32e7578d4311dcdabf28f457e1e07556df460cb35e84e09 languageName: node linkType: hard @@ -12951,11 +13029,11 @@ __metadata: linkType: hard "brace-expansion@npm:^2.0.1, brace-expansion@npm:^2.0.2": - version: 2.1.1 - resolution: "brace-expansion@npm:2.1.1" + version: 2.1.0 + resolution: "brace-expansion@npm:2.1.0" dependencies: balanced-match: "npm:^1.0.0" - checksum: 10/4681c533dc4e6c77b3ad795b38683d297fd03c739a17bfb2a338529fa7dcf4540683a79dcd662905f4c5b0db7cfda18daafcd18dd1bbf7c3b076fe0c9c3487eb + checksum: 10/c77a7a64aabf94b8d5913955adb4f36957917565374461355bb4276830c027a313d981f32410cea9e38f52573e7eb776d02fe05091c3a79a061958d97e4d2b43 languageName: node linkType: hard @@ -14768,9 +14846,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.328": - version: 1.5.361 - resolution: "electron-to-chromium@npm:1.5.361" - checksum: 10/1144dc40c7e0588c179fbc64ac97215a9af897f95137191a857961f2ea889126a8ccc412bab35990906cf65645251b45245403f91a7cd293a970c22cbb58a905 + version: 1.5.364 + resolution: "electron-to-chromium@npm:1.5.364" + checksum: 10/2d498239abc5f9891eb8b6a7c872e5ace9c1aa6094f42a4adf5a2b386cadd4e1a0ee93b5ffe042db5b6320562e9a07fa83adb435f3ed580d8a2fafff580025d2 languageName: node linkType: hard @@ -14867,12 +14945,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.22.0": - version: 5.22.0 - resolution: "enhanced-resolve@npm:5.22.0" + version: 5.22.1 + resolution: "enhanced-resolve@npm:5.22.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.3.3" - checksum: 10/faf794fe6edbad45beee2f50418be98507de7d961e7d8c65e0e3d3fcf30fc39ca467e55f4b02ed0a9a65a58d0ca7b17cc3f5c11f574c36acc47a53b16c6f0825 + checksum: 10/2124366118c1e93836b23b4aad933352ba8d404c2c50129388b5d83520bfea1021169e975967e048bfca3a82cbf07756ba76a26e1eab305ef06b2ab1a384e6c0 languageName: node linkType: hard @@ -16770,11 +16848,11 @@ __metadata: linkType: hard "hasown@npm:^2.0.2, hasown@npm:^2.0.3": - version: 2.0.3 - resolution: "hasown@npm:2.0.3" + version: 2.0.4 + resolution: "hasown@npm:2.0.4" dependencies: function-bind: "npm:^1.1.2" - checksum: 10/619526379cda755409d856cbf3c65b82ea342151719a0a550920cf7d6a7f58f7cf079e5a78f3acd162324fc784a3d3d6f6f61aff613b47a0163c16fbe09ea89f + checksum: 10/13823863ae48161068b4c51606a3128451c66f14545a5169d667fe9fca168dcd38c27570c7a299e32ef844b8da3d55def7fe88602f8970d4311fb543ee88001a languageName: node linkType: hard @@ -18787,12 +18865,12 @@ __metadata: linkType: hard "launch-editor@npm:^2.6.1": - version: 2.13.2 - resolution: "launch-editor@npm:2.13.2" + version: 2.14.0 + resolution: "launch-editor@npm:2.14.0" dependencies: picocolors: "npm:^1.1.1" - shell-quote: "npm:^1.8.3" - checksum: 10/2b718ae4d3494526c9493a8c8f32e3824a79885e3b3be2e7e0db5ff74811b12af41760c4b904692cb43ddbd815ce65be245910e7ae84c3cc8ecbad4923657115 + shell-quote: "npm:^1.8.4" + checksum: 10/d5eb75c6463f95af5c14d4d8b534e7ae4178d6f4043e0c239fe7e442c59028ddcb7dbca1b1708407accb683fe07f35d49bc94b019d45b88d62aa0a0209bcd354 languageName: node linkType: hard @@ -19405,17 +19483,17 @@ __metadata: linkType: hard "memfs@npm:^4.43.1": - version: 4.57.2 - resolution: "memfs@npm:4.57.2" - dependencies: - "@jsonjoy.com/fs-core": "npm:4.57.2" - "@jsonjoy.com/fs-fsa": "npm:4.57.2" - "@jsonjoy.com/fs-node": "npm:4.57.2" - "@jsonjoy.com/fs-node-builtins": "npm:4.57.2" - "@jsonjoy.com/fs-node-to-fsa": "npm:4.57.2" - "@jsonjoy.com/fs-node-utils": "npm:4.57.2" - "@jsonjoy.com/fs-print": "npm:4.57.2" - "@jsonjoy.com/fs-snapshot": "npm:4.57.2" + version: 4.57.3 + resolution: "memfs@npm:4.57.3" + dependencies: + "@jsonjoy.com/fs-core": "npm:4.57.3" + "@jsonjoy.com/fs-fsa": "npm:4.57.3" + "@jsonjoy.com/fs-node": "npm:4.57.3" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.3" + "@jsonjoy.com/fs-node-to-fsa": "npm:4.57.3" + "@jsonjoy.com/fs-node-utils": "npm:4.57.3" + "@jsonjoy.com/fs-print": "npm:4.57.3" + "@jsonjoy.com/fs-snapshot": "npm:4.57.3" "@jsonjoy.com/json-pack": "npm:^1.11.0" "@jsonjoy.com/util": "npm:^1.9.0" glob-to-regex.js: "npm:^1.0.1" @@ -19424,7 +19502,7 @@ __metadata: tslib: "npm:^2.0.0" peerDependencies: tslib: 2 - checksum: 10/872b08504889b616a2ec28655509632112d80f8f0fd6d8c23219f4f62b4ff7d6a890205e3127379d985f3bdcaf82909a9f2c3a17867495f98b4678bc2af8a458 + checksum: 10/b2cf357688585e3db9786fd51a519deeb8af18ccf2d82d183df9ef5faf2a2d0c9d32d88408de2750f97e9a9c9aa0e987e9ccbd3aca89d4ecc4181e9e5edea670 languageName: node linkType: hard @@ -22484,11 +22562,9 @@ __metadata: linkType: hard "psl@npm:^1.1.33": - version: 1.15.0 - resolution: "psl@npm:1.15.0" - dependencies: - punycode: "npm:^2.3.1" - checksum: 10/5e7467eb5196eb7900d156783d12907d445c0122f76c73203ce96b148a6ccf8c5450cc805887ffada38ff92d634afcf33720c24053cb01d5b6598d1c913c5caf + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 10/d07879d4bfd0ac74796306a8e5a36a93cfb9c4f4e8ee8e63fbb909066c192fe1008cd8f12abd8ba2f62ca28247949a20c8fb32e1d18831d9e71285a1569720f9 languageName: node linkType: hard @@ -22509,7 +22585,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": +"punycode@npm:^2.1.0, punycode@npm:^2.1.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 @@ -23699,7 +23775,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.8.3": +"shell-quote@npm:^1.8.4": version: 1.8.4 resolution: "shell-quote@npm:1.8.4" checksum: 10/a3e3796385f2cd5cf0b78207a4439f0c7395c0833fc75b2473084b5d298c109c5c0fa687fcd1c04e4b4484866e5bb8eaae7efae443b80fff71ea7e29baf11f0c @@ -24476,8 +24552,8 @@ __metadata: linkType: hard "terser-webpack-plugin@npm:^5.3.9, terser-webpack-plugin@npm:^5.5.0": - version: 5.6.0 - resolution: "terser-webpack-plugin@npm:5.6.0" + version: 5.6.1 + resolution: "terser-webpack-plugin@npm:5.6.1" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" @@ -24510,7 +24586,7 @@ __metadata: optional: true uglify-js: optional: true - checksum: 10/15cae5c297146c6909a1c2daf2e3f4f6c1893416a3d19c388363bc963f1a3fd720803aceed44330bc52775434c85aa6df8d80f9524860568673195bafb600316 + checksum: 10/75e5ebb6759ccd85f34a5af04c2f1693f61d7691a4a1614f0892a1d2caf29c12395d1d04d4f4014d4c4a77b63f9f7f36ac9241fcbcc24085a7575d4a4310d70f languageName: node linkType: hard