diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts index 59213838bb..79ed8fcfed 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts @@ -240,6 +240,24 @@ describe('MultichainAssetsRatesController', () => { expect(snapHandler).not.toHaveBeenCalled(); }); + it('does not update conversion rates if the assets are empty', async () => { + const { controller, messenger } = setupController(); + + const snapSpy = jest.fn().mockResolvedValue({ conversionRates: {} }); + messenger.registerActionHandler('SnapController:handleRequest', snapSpy); + + // Publish a selectedAccountChange event. + // @ts-expect-error-next-line + messenger.publish('MultichainAssetsController:stateChange', { + accountsAssets: { + account3: [], + }, + }); + + expect(snapSpy).not.toHaveBeenCalled(); + expect(controller.state.conversionRates).toStrictEqual({}); + }); + it('resumes update tokens rates when the keyring is unlocked', async () => { const { controller, messenger } = setupController(); messenger.publish('KeyringController:lock'); diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts index 807931aac9..c5072a8236 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts @@ -288,6 +288,10 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro for (const account of accounts) { const assets = this.#getAssetsForAccount(account.id); + if (assets?.length === 0) { + continue; + } + // Build the conversions array const conversions = this.#buildConversions(assets);