From 6482848610437330f78fc6254720f07430725c61 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Wed, 11 Jan 2023 15:26:33 -0330 Subject: [PATCH] Fix NetworkController `destroy` before initialization (#17136) The NetworkController `destroy` method has been updated to ensure that it no longer throws if called before initialization. This method was added recently in #17032, but we forgot to handle the case where the controller was not initialized. --- app/scripts/controllers/network/network-controller.js | 2 +- app/scripts/controllers/network/network-controller.test.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/scripts/controllers/network/network-controller.js b/app/scripts/controllers/network/network-controller.js index 4ab8b5fdd..b525d3c3d 100644 --- a/app/scripts/controllers/network/network-controller.js +++ b/app/scripts/controllers/network/network-controller.js @@ -132,7 +132,7 @@ export default class NetworkController extends EventEmitter { * In-progress requests will not be aborted. */ async destroy() { - await this._blockTracker.destroy(); + await this._blockTracker?.destroy(); } async initializeProvider() { diff --git a/app/scripts/controllers/network/network-controller.test.js b/app/scripts/controllers/network/network-controller.test.js index 3296df6dd..b228ecc43 100644 --- a/app/scripts/controllers/network/network-controller.test.js +++ b/app/scripts/controllers/network/network-controller.test.js @@ -91,6 +91,12 @@ describe('NetworkController', () => { }); describe('destroy', () => { + it('should not throw if called before initialization', async () => { + await expect( + async () => await networkController.destroy(), + ).not.toThrow(); + }); + it('should stop the block tracker for the current selected network', async () => { nock('http://localhost:8545') .persist()