From 246dcf689c7e14bd9eab997fd81fc7b4a8914007 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 6 Dec 2018 16:12:57 -0330 Subject: Fix race condition in network controller lookup() method. --- app/scripts/controllers/network/network.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'app/scripts/controllers') diff --git a/app/scripts/controllers/network/network.js b/app/scripts/controllers/network/network.js index b459b8013..1a251bce1 100644 --- a/app/scripts/controllers/network/network.js +++ b/app/scripts/controllers/network/network.js @@ -105,12 +105,18 @@ module.exports = class NetworkController extends EventEmitter { if (!this._provider) { return log.warn('NetworkController - lookupNetwork aborted due to missing provider') } - var { type } = this.providerStore.getState() + const { type } = this.providerStore.getState() const ethQuery = new EthQuery(this._provider) + const initialNetwork = this.getNetworkState() ethQuery.sendAsync({ method: 'net_version' }, (err, network) => { - if (err) return this.setNetworkState('loading') - log.info('web3.getNetwork returned ' + network) - this.setNetworkState(network, type) + const currentNetwork = this.getNetworkState() + if (initialNetwork === currentNetwork) { + if (err) { + return this.setNetworkState('loading') + } + log.info('web3.getNetwork returned ' + network) + this.setNetworkState(network, type) + } }) } -- cgit v1.2.3