From 8f3db0dbc0bafdc604bd7359bd41370f594c792c Mon Sep 17 00:00:00 2001 From: Kevin Serrano Date: Tue, 1 Nov 2016 22:19:04 -0700 Subject: Add reveal of seed words. --- ui/app/actions.js | 23 +++++++++++++++++++++++ ui/app/app.js | 4 ++++ ui/app/config.js | 16 ++++++++++++++++ 3 files changed, 43 insertions(+) (limited to 'ui/app') diff --git a/ui/app/actions.js b/ui/app/actions.js index 8218e05ef..070ba2da0 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -30,6 +30,10 @@ var actions = { addNewAccount, showNewVaultSeed: showNewVaultSeed, showInfoPage: showInfoPage, + // seed recovery actions + REVEAL_SEED_CONFIRMATION: 'REVEAL_SEED_CONFIRMATION', + revealSeedConfirmation: revealSeedConfirmation, + requestRevealSeed: requestRevealSeed, // unlock screen UNLOCK_IN_PROGRESS: 'UNLOCK_IN_PROGRESS', UNLOCK_FAILED: 'UNLOCK_FAILED', @@ -213,6 +217,25 @@ function createNewVaultAndKeychain (password, entropy) { } } +function revealSeedConfirmation () { + return { + type: this.REVEAL_SEED_CONFIRMATION, + } +} + +function requestRevealSeed (password) { + return (dispatch) => { + dispatch(actions.showLoadingIndication()) + background.submitPassword(password, (err, newState) => { + dispatch(actions.hideLoadingIndication()) + if (err) return dispatch(actions.displayWarning(err.message)) + background.placeSeedWords() + dispatch(actions.showNewVaultSeed()) + }) + } +} + + function addNewKeyring (type, opts) { return (dispatch) => { dispatch(actions.showLoadingIndication()) diff --git a/ui/app/app.js b/ui/app/app.js index 4b1818b93..a2532c153 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -28,6 +28,7 @@ const BuyView = require('./components/buy-button-subview') const QrView = require('./components/qr-code') const HDCreateVaultComplete = require('./keychains/hd/create-vault-complete') const HDRestoreVaultScreen = require('./keychains/hd/restore-vault') +const RevealSeedConfirmation = require('./keychains/hd/recover-seed/confirmation') module.exports = connect(mapStateToProps)(App) @@ -411,6 +412,9 @@ App.prototype.renderPrimary = function () { case 'config': return h(ConfigScreen, {key: 'config'}) + case 'reveal-seed-conf': + return h(RevealSeedConfirmation, {key: 'reveal-seed-conf'}) + case 'info': return h(InfoScreen, {key: 'info'}) diff --git a/ui/app/config.js b/ui/app/config.js index d4730e558..e09a38cd8 100644 --- a/ui/app/config.js +++ b/ui/app/config.js @@ -77,6 +77,22 @@ ConfigScreen.prototype.render = function () { currentConversionInformation(metamaskState, state), h('hr.horizontal-line'), + h('div', { + style: { + marginTop: '20px', + }, + }, [ + h('button', { + style: { + alignSelf: 'center', + }, + onClick (event) { + event.preventDefault() + state.dispatch(actions.revealSeedConfirmation()) + }, + }, 'Reveal Seed Words'), + ]), + ]), ]), ]) -- cgit