diff options
author | Thomas Huang <tmashuang@users.noreply.github.com> | 2018-12-08 06:49:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-08 06:49:00 +0800 |
commit | 575fb607c3b8deea831aa28293303991b3f6be29 (patch) | |
tree | 390699ef8c6b6ad617c094729de9adc65b23bc11 | |
parent | 347b26f02850093cec6d3c1a29ea2d09bf5e5c93 (diff) | |
parent | 246dcf689c7e14bd9eab997fd81fc7b4a8914007 (diff) | |
download | tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar.gz tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar.bz2 tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar.lz tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar.xz tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.tar.zst tangerine-wallet-browser-575fb607c3b8deea831aa28293303991b3f6be29.zip |
Merge pull request #5892 from MetaMask/fix-net-version-race-condition
Fix race condition in network controller lookup() method.
-rw-r--r-- | app/scripts/controllers/network/network.js | 14 |
1 files changed, 10 insertions, 4 deletions
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) + } }) } |