aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Finlay <somniac@me.com>2016-12-20 08:01:01 +0800
committerGitHub <noreply@github.com>2016-12-20 08:01:01 +0800
commitead8329877c5441f32ab389adb41689086a38608 (patch)
tree6ddf346b7627ea0556db2e94a8164dfa5a34e6ae
parentf7eec0b282de511d54fd50f2c75d7371ca6f399d (diff)
parent9c8345467c871b29193263a13e8e8d3ebb47c7fb (diff)
downloadtangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar.gz
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar.bz2
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar.lz
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar.xz
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.tar.zst
tangerine-wallet-browser-ead8329877c5441f32ab389adb41689086a38608.zip
Merge pull request #937 from MetaMask/i900-forgot-password-flow
I900 forgot password flow
-rw-r--r--CHANGELOG.md1
-rw-r--r--app/scripts/keyring-controller.js3
-rw-r--r--app/scripts/lib/idStore.js4
-rw-r--r--ui/app/actions.js12
-rw-r--r--ui/app/first-time/init-menu.js16
-rw-r--r--ui/app/keychains/hd/restore-vault.js8
-rw-r--r--ui/app/reducers/app.js12
-rw-r--r--ui/app/unlock.js2
8 files changed, 32 insertions, 26 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 44f8567e5..6c9cfc782 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
## 2.13.11 2016-11-23
- Add support for synchronous RPC method "eth_uninstallFilter".
+- Forgotten password prompts now send users directly to seed word restoration.
## 2.13.10 2016-11-22
diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js
index 40c9695dd..ca4c306be 100644
--- a/app/scripts/keyring-controller.js
+++ b/app/scripts/keyring-controller.js
@@ -73,7 +73,7 @@ module.exports = class KeyringController extends EventEmitter {
// or accept a state-resolving promise to consume their results.
//
// Not all methods end with this, that might be a nice refactor.
- fullUpdate() {
+ fullUpdate () {
this.emit('update')
return Promise.resolve(this.getState())
}
@@ -586,7 +586,6 @@ module.exports = class KeyringController extends EventEmitter {
// Attempts to sign the provided @object msgParams.
signMessage (msgParams, cb) {
try {
-
const msgId = msgParams.metamaskId
delete msgParams.metamaskId
const approvalCb = this._unconfMsgCbs[msgId] || noop
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index d36504f13..cf4353e48 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -258,7 +258,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
function estimateGas (cb) {
var estimationParams = extend(txParams)
- query.getBlockByNumber('latest', true, function(err, block){
+ query.getBlockByNumber('latest', true, function (err, block) {
if (err) return cb(err)
// check if gasLimit is already specified
const gasLimitSpecified = Boolean(txParams.gas)
@@ -267,7 +267,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
estimationParams.gas = block.gasLimit
}
// run tx, see if it will OOG
- query.estimateGas(estimationParams, function(err, estimatedGasHex){
+ query.estimateGas(estimationParams, function (err, estimatedGasHex) {
if (err) return cb(err.message || err)
// all gas used - must be an error
if (estimatedGasHex === estimationParams.gas) {
diff --git a/ui/app/actions.js b/ui/app/actions.js
index 58600dd34..1c32c9bb1 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -26,6 +26,8 @@ var actions = {
CREATE_NEW_VAULT_IN_PROGRESS: 'CREATE_NEW_VAULT_IN_PROGRESS',
SHOW_CREATE_VAULT: 'SHOW_CREATE_VAULT',
SHOW_RESTORE_VAULT: 'SHOW_RESTORE_VAULT',
+ FORGOT_PASSWORD: 'FORGOT_PASSWORD',
+ forgotPassword: forgotPassword,
SHOW_INIT_MENU: 'SHOW_INIT_MENU',
SHOW_NEW_VAULT_SEED: 'SHOW_NEW_VAULT_SEED',
SHOW_INFO_PAGE: 'SHOW_INFO_PAGE',
@@ -184,13 +186,13 @@ function tryUnlockMetamask (password) {
}
}
-function transitionForward() {
+function transitionForward () {
return {
type: this.TRANSITION_FORWARD,
}
}
-function transitionBackward() {
+function transitionBackward () {
return {
type: this.TRANSITION_BACKWARD,
}
@@ -387,6 +389,12 @@ function showRestoreVault () {
}
}
+function forgotPassword () {
+ return {
+ type: actions.FORGOT_PASSWORD,
+ }
+}
+
function showInitializeMenu () {
return {
type: actions.SHOW_INIT_MENU,
diff --git a/ui/app/first-time/init-menu.js b/ui/app/first-time/init-menu.js
index c41aecc48..152d28809 100644
--- a/ui/app/first-time/init-menu.js
+++ b/ui/app/first-time/init-menu.js
@@ -21,7 +21,6 @@ function mapStateToProps (state) {
// state from plugin
currentView: state.appState.currentView,
warning: state.appState.warning,
- forgottenPassword: state.metamask.isInitialized,
}
}
@@ -118,17 +117,6 @@ InitializeMenuScreen.prototype.renderMenu = function (state) {
},
}, 'Create'),
- state.forgottenPassword ? h('.flex-row.flex-center.flex-grow', [
- h('p.pointer', {
- onClick: this.backToUnlockView.bind(this),
- style: {
- fontSize: '0.8em',
- color: 'rgb(247, 134, 28)',
- textDecoration: 'underline',
- },
- }, 'Return to Login'),
- ]) : null,
-
h('.flex-row.flex-center.flex-grow', [
h('p.pointer', {
onClick: this.showRestoreVault.bind(this),
@@ -159,10 +147,6 @@ InitializeMenuScreen.prototype.showRestoreVault = function () {
this.props.dispatch(actions.showRestoreVault())
}
-InitializeMenuScreen.prototype.backToUnlockView = function () {
- this.props.dispatch(actions.backToUnlockView())
-}
-
InitializeMenuScreen.prototype.createNewVaultAndKeychain = function () {
var passwordBox = document.getElementById('password-box')
var password = passwordBox.value
diff --git a/ui/app/keychains/hd/restore-vault.js b/ui/app/keychains/hd/restore-vault.js
index 3fa25a2eb..06e51d9b3 100644
--- a/ui/app/keychains/hd/restore-vault.js
+++ b/ui/app/keychains/hd/restore-vault.js
@@ -14,6 +14,7 @@ function RestoreVaultScreen () {
function mapStateToProps (state) {
return {
warning: state.appState.warning,
+ forgottenPassword: state.appState.forgottenPassword,
}
}
@@ -100,14 +101,17 @@ RestoreVaultScreen.prototype.render = function () {
}, 'OK'),
]),
-
])
)
}
RestoreVaultScreen.prototype.showInitializeMenu = function () {
- this.props.dispatch(actions.showInitializeMenu())
+ if (this.props.forgottenPassword) {
+ this.props.dispatch(actions.backToUnlockView())
+ } else {
+ this.props.dispatch(actions.showInitializeMenu())
+ }
}
RestoreVaultScreen.prototype.createOnEnter = function (event) {
diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js
index 719d8c8b9..65a3dba49 100644
--- a/ui/app/reducers/app.js
+++ b/ui/app/reducers/app.js
@@ -72,6 +72,16 @@ function reduceApp (state, action) {
name: 'restoreVault',
},
transForward: true,
+ forgottenPassword: true,
+ })
+
+ case actions.FORGOT_PASSWORD:
+ return extend(appState, {
+ currentView: {
+ name: 'restoreVault',
+ },
+ transForward: false,
+ forgottenPassword: true,
})
case actions.SHOW_INIT_MENU:
@@ -169,7 +179,7 @@ function reduceApp (state, action) {
return extend(appState, {
warning: null,
transForward: true,
- forgottenPassword: !appState.forgottenPassword,
+ forgottenPassword: false,
currentView: {
name: 'UnlockScreen',
},
diff --git a/ui/app/unlock.js b/ui/app/unlock.js
index 17416766d..19f5eaec2 100644
--- a/ui/app/unlock.js
+++ b/ui/app/unlock.js
@@ -70,7 +70,7 @@ UnlockScreen.prototype.render = function () {
h('.flex-row.flex-center.flex-grow', [
h('p.pointer', {
- onClick: () => this.props.dispatch(actions.goBackToInitView()),
+ onClick: () => this.props.dispatch(actions.forgotPassword()),
style: {
fontSize: '0.8em',
color: 'rgb(247, 134, 28)',