aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/metamask-controller.js
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2018-06-13 04:07:19 +0800
committerGitHub <noreply@github.com>2018-06-13 04:07:19 +0800
commit0740dd6a5b89defd5f5ba27fa38c7004243f0ce2 (patch)
tree6643b1457d2e9ef0961c434a885c0c53f0cb9548 /app/scripts/metamask-controller.js
parent77dc75c9b1889699fe44db1fbcda4587d58bd665 (diff)
parent604289c96cde7e5f4634fe5e76a50dfa9174fcbd (diff)
downloadtangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar.gz
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar.bz2
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar.lz
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar.xz
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.tar.zst
tangerine-wallet-browser-0740dd6a5b89defd5f5ba27fa38c7004243f0ce2.zip
Merge pull request #4557 from MetaMask/nonce-tracker-mutex-fix
Bug: Mutex locks not released on error
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r--app/scripts/metamask-controller.js20
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
}
}