diff options
author | kumavis <aaron@kumavis.me> | 2018-06-13 02:51:35 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2018-06-13 02:51:35 +0800 |
commit | 177cc3f280f26c5fb4cfc1b934e95b9d16def1a6 (patch) | |
tree | 0fa8848870d2db943f23efa21973cf30808fd33d /app/scripts/metamask-controller.js | |
parent | 8f93e341750b99b8ff0e66f2a6831799c7d9ab58 (diff) | |
download | tangerine-wallet-browser-177cc3f280f26c5fb4cfc1b934e95b9d16def1a6.tar.gz tangerine-wallet-browser-177cc3f280f26c5fb4cfc1b934e95b9d16def1a6.tar.zst tangerine-wallet-browser-177cc3f280f26c5fb4cfc1b934e95b9d16def1a6.zip |
metamask - ensure all nonce locks are released
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r-- | app/scripts/metamask-controller.js | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index a362e3826..e444180cc 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -436,28 +436,24 @@ module.exports = class MetamaskController extends EventEmitter { * @returns {Object} vault */ async createNewVaultAndKeychain (password) { - const release = await this.createVaultMutex.acquire() - let vault - + const releaseLock = await this.createVaultMutex.acquire() try { + let vault const accounts = await this.keyringController.getAccounts() - if (accounts.length > 0) { vault = await this.keyringController.fullUpdate() - } else { vault = await this.keyringController.createNewVaultAndKeychain(password) const accounts = await this.keyringController.getAccounts() this.preferencesController.setAddresses(accounts) this.selectFirstIdentity() } - release() + releaseLock() + return vault } catch (err) { - release() + releaseLock() throw err } - - return vault } /** @@ -466,7 +462,7 @@ module.exports = class MetamaskController extends EventEmitter { * @param {} seed */ async createNewVaultAndRestore (password, seed) { - const release = await this.createVaultMutex.acquire() + const releaseLock = await this.createVaultMutex.acquire() try { // clear known identities this.preferencesController.setAddresses([]) @@ -476,10 +472,10 @@ module.exports = class MetamaskController extends EventEmitter { const accounts = await this.keyringController.getAccounts() this.preferencesController.setAddresses(accounts) this.selectFirstIdentity() - release() + releaseLock() return vault } catch (err) { - release() + releaseLock() throw err } } |