mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #2851 from MetaMask/i2812-seedworderrorfix
Fix condition where failing seed word checks would infinite-spin future attempts.
This commit is contained in:
commit
0cf5c22178
@ -7,6 +7,7 @@
|
||||
- Fix bug that prevented updating custom token details.
|
||||
- No longer mark long-pending transactions as failed, since we now have button to retry with higher gas.
|
||||
- Fix rounding error when specifying an ether amount that has too much precision.
|
||||
- Fix bug where incorrectly inputting seed phrase would prevent any future attempts from succeeding.
|
||||
|
||||
## 3.13.3 2017-12-14
|
||||
|
||||
|
@ -536,10 +536,15 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
|
||||
async createNewVaultAndRestore (password, seed) {
|
||||
const release = await this.createVaultMutex.acquire()
|
||||
try {
|
||||
const vault = await this.keyringController.createNewVaultAndRestore(password, seed)
|
||||
this.selectFirstIdentity(vault)
|
||||
release()
|
||||
return vault
|
||||
} catch (err) {
|
||||
release()
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
selectFirstIdentity (vault) {
|
||||
|
@ -41,10 +41,12 @@ describe('MetaMaskController', function () {
|
||||
|
||||
beforeEach(function () {
|
||||
sinon.spy(metamaskController.keyringController, 'createNewVaultAndKeychain')
|
||||
sinon.spy(metamaskController.keyringController, 'createNewVaultAndRestore')
|
||||
})
|
||||
|
||||
afterEach(function () {
|
||||
metamaskController.keyringController.createNewVaultAndKeychain.restore()
|
||||
metamaskController.keyringController.createNewVaultAndRestore.restore()
|
||||
})
|
||||
|
||||
describe('#getGasPrice', function () {
|
||||
@ -74,9 +76,9 @@ describe('MetaMaskController', function () {
|
||||
|
||||
describe('#createNewVaultAndKeychain', function () {
|
||||
it('can only create new vault on keyringController once', async function () {
|
||||
|
||||
const selectStub = sinon.stub(metamaskController, 'selectFirstIdentity')
|
||||
|
||||
|
||||
const password = 'a-fake-password'
|
||||
|
||||
const first = await metamaskController.createNewVaultAndKeychain(password)
|
||||
@ -87,6 +89,22 @@ describe('MetaMaskController', function () {
|
||||
selectStub.reset()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('#createNewVaultAndRestore', function () {
|
||||
it('should be able to call newVaultAndRestore despite a mistake.', async function () {
|
||||
// const selectStub = sinon.stub(metamaskController, 'selectFirstIdentity')
|
||||
|
||||
const password = 'what-what-what'
|
||||
const wrongSeed = 'debris dizzy just program just float decrease vacant alarm reduce speak stadiu'
|
||||
const rightSeed = 'debris dizzy just program just float decrease vacant alarm reduce speak stadium'
|
||||
const first = await metamaskController.createNewVaultAndRestore(password, wrongSeed)
|
||||
.catch((e) => {
|
||||
return
|
||||
})
|
||||
const second = await metamaskController.createNewVaultAndRestore(password, rightSeed)
|
||||
|
||||
assert(metamaskController.keyringController.createNewVaultAndRestore.calledTwice)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
@ -149,4 +149,8 @@ RestoreVaultScreen.prototype.createNewVaultAndRestore = function () {
|
||||
this.warning = null
|
||||
this.props.dispatch(actions.displayWarning(this.warning))
|
||||
this.props.dispatch(actions.createNewVaultAndRestore(password, seed))
|
||||
.catch((err) => {
|
||||
log.error(err.message)
|
||||
})
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user