Merge branch 'i2577-SeedPhraseBug' into i2577-SeedPhraseBug-Test
This commit is contained in:
commit
d19aa016aa
|
@ -31,6 +31,7 @@ const ConfigManager = require('./lib/config-manager')
|
|||
const nodeify = require('./lib/nodeify')
|
||||
const accountImporter = require('./account-import-strategies')
|
||||
const getBuyEthUrl = require('./lib/buy-eth-url')
|
||||
const Mutex = require('await-semaphore').Mutex
|
||||
const version = require('../manifest.json').version
|
||||
|
||||
module.exports = class MetamaskController extends EventEmitter {
|
||||
|
@ -38,6 +39,7 @@ module.exports = class MetamaskController extends EventEmitter {
|
|||
constructor (opts) {
|
||||
super()
|
||||
|
||||
|
||||
this.sendUpdate = debounce(this.privateSendUpdate.bind(this), 200)
|
||||
|
||||
this.opts = opts
|
||||
|
@ -49,6 +51,9 @@ module.exports = class MetamaskController extends EventEmitter {
|
|||
// observable state store
|
||||
this.store = new ObservableStore(initState)
|
||||
|
||||
// lock to ensure only one vault created at once
|
||||
this.createVaultMutex = new Mutex()
|
||||
|
||||
// network store
|
||||
this.networkController = new NetworkController(initState.NetworkController)
|
||||
|
||||
|
@ -467,15 +472,34 @@ module.exports = class MetamaskController extends EventEmitter {
|
|||
// Vault Management
|
||||
//
|
||||
|
||||
async createNewVaultAndKeychain (password, cb) {
|
||||
const vault = await this.keyringController.createNewVaultAndKeychain(password)
|
||||
async createNewVaultAndKeychain (password) {
|
||||
const release = await this.createVaultMutex.acquire()
|
||||
let vault
|
||||
|
||||
try {
|
||||
const accounts = await this.keyringController.getAccounts()
|
||||
|
||||
if (accounts.length > 0) {
|
||||
vault = await this.keyringController.fullUpdate()
|
||||
|
||||
} else {
|
||||
let vault = await this.keyringController.createNewVaultAndKeychain(password)
|
||||
this.selectFirstIdentity(vault)
|
||||
}
|
||||
release()
|
||||
} catch (err) {
|
||||
release()
|
||||
throw err
|
||||
}
|
||||
|
||||
return vault
|
||||
}
|
||||
|
||||
async createNewVaultAndRestore (password, seed, cb) {
|
||||
async createNewVaultAndRestore (password, seed) {
|
||||
const release = await this.createVaultMutex.acquire()
|
||||
const vault = await this.keyringController.createNewVaultAndRestore(password, seed)
|
||||
this.selectFirstIdentity(vault)
|
||||
release()
|
||||
return vault
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ const actions = require('../actions')
|
|||
const Tooltip = require('../components/tooltip')
|
||||
const getCaretCoordinates = require('textarea-caret')
|
||||
|
||||
let isSubmitting = false
|
||||
|
||||
module.exports = connect(mapStateToProps)(InitializeMenuScreen)
|
||||
|
||||
inherits(InitializeMenuScreen, Component)
|
||||
|
@ -164,8 +166,11 @@ InitializeMenuScreen.prototype.createNewVaultAndKeychain = function () {
|
|||
return
|
||||
}
|
||||
|
||||
if (!isSubmitting) {
|
||||
isSubmitting = true
|
||||
this.props.dispatch(actions.createNewVaultAndKeychain(password))
|
||||
}
|
||||
}
|
||||
|
||||
InitializeMenuScreen.prototype.inputChanged = function (event) {
|
||||
// tell mascot to look at page action
|
||||
|
|
Loading…
Reference in New Issue