diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index eb1afb41bc7..3d23351b3a1 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING:** Added error reporting around account creation with the `ErrorReportingService` ([#7044](https://github.com/MetaMask/core/pull/7044)) - The `@metamask/error-reporting-service` is now a peer dependency. -- Add `MultichainAccountService.resyncAccounts` method and action ([#7087](https://github.com/MetaMask/core/pull/7087)) +- Add `MultichainAccountService.resyncAccounts` method and action ([#7087](https://github.com/MetaMask/core/pull/7087)), ([#7093](https://github.com/MetaMask/core/pull/7093)) - Add `*AccountProvider.resyncAccounts` method ([#7087](https://github.com/MetaMask/core/pull/7087)) ### Changed diff --git a/packages/multichain-account-service/src/MultichainAccountService.test.ts b/packages/multichain-account-service/src/MultichainAccountService.test.ts index 756b6883335..9894408b3ca 100644 --- a/packages/multichain-account-service/src/MultichainAccountService.test.ts +++ b/packages/multichain-account-service/src/MultichainAccountService.test.ts @@ -996,6 +996,16 @@ describe('MultichainAccountService', () => { expect(wallet).toBeDefined(); expect(wallet.entropySource).toBe('abc'); }); + + it('resync accounts with MultichainAccountService:resyncAccounts', async () => { + const { messenger, service } = await setup({ + accounts: [MOCK_HD_ACCOUNT_1], + }); + + const resyncAccountsSpy = jest.spyOn(service, 'resyncAccounts'); + await messenger.call('MultichainAccountService:resyncAccounts'); + expect(resyncAccountsSpy).toHaveBeenCalled(); + }); }); describe('resyncAccounts', () => { diff --git a/packages/multichain-account-service/src/MultichainAccountService.ts b/packages/multichain-account-service/src/MultichainAccountService.ts index 2719d509ec7..d779736c75a 100644 --- a/packages/multichain-account-service/src/MultichainAccountService.ts +++ b/packages/multichain-account-service/src/MultichainAccountService.ts @@ -162,6 +162,10 @@ export class MultichainAccountService { 'MultichainAccountService:createMultichainAccountWallet', (...args) => this.createMultichainAccountWallet(...args), ); + this.#messenger.registerActionHandler( + 'MultichainAccountService:resyncAccounts', + (...args) => this.resyncAccounts(...args), + ); this.#messenger.subscribe('AccountsController:accountAdded', (account) => this.#handleOnAccountAdded(account), diff --git a/packages/multichain-account-service/src/types.ts b/packages/multichain-account-service/src/types.ts index 700bc1d4c12..6c498687fa5 100644 --- a/packages/multichain-account-service/src/types.ts +++ b/packages/multichain-account-service/src/types.ts @@ -83,6 +83,11 @@ export type MultichainAccountServiceCreateMultichainAccountWalletAction = { handler: MultichainAccountService['createMultichainAccountWallet']; }; +export type MultichainAccountServiceResyncAccountsAction = { + type: `${typeof serviceName}:resyncAccounts`; + handler: MultichainAccountService['resyncAccounts']; +}; + /** * All actions that {@link MultichainAccountService} registers so that other * modules can call them. @@ -97,7 +102,8 @@ export type MultichainAccountServiceActions = | MultichainAccountServiceSetBasicFunctionalityAction | MultichainAccountServiceAlignWalletAction | MultichainAccountServiceAlignWalletsAction - | MultichainAccountServiceCreateMultichainAccountWalletAction; + | MultichainAccountServiceCreateMultichainAccountWalletAction + | MultichainAccountServiceResyncAccountsAction; export type MultichainAccountServiceMultichainAccountGroupCreatedEvent = { type: `${typeof serviceName}:multichainAccountGroupCreated`;