Browse Source

Merge pull request #571 from mrfelton/fix/remove-seed-password

fix(onboarding): remove seed password
renovate/lint-staged-8.x
Ben Woosley 7 years ago
committed by GitHub
parent
commit
73f8002233
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 49
      app/components/Onboarding/NewAezeedPassword.js
  2. 37
      app/components/Onboarding/NewAezeedPassword.scss
  3. 39
      app/components/Onboarding/Onboarding.js
  4. 16
      app/containers/Root.js
  5. 2
      app/lnd/methods/walletController.js
  6. 34
      app/reducers/onboarding.js

49
app/components/Onboarding/NewAezeedPassword.js

@ -1,49 +0,0 @@
import React from 'react'
import PropTypes from 'prop-types'
import styles from './NewAezeedPassword.scss'
const NewAezeedPassword = ({
aezeedPassword,
aezeedPasswordConfirmation,
showAezeedPasswordConfirmationError,
updateAezeedPassword,
updateAezeedPasswordConfirmation
}) => (
<div className={styles.container}>
<section className={styles.input}>
<input
type="password"
placeholder="Password"
className={styles.password}
value={aezeedPassword}
onChange={event => updateAezeedPassword(event.target.value)}
/>
</section>
<section className={styles.input}>
<input
type="password"
placeholder="Confirm Password"
className={`${styles.password} ${showAezeedPasswordConfirmationError && styles.error}`}
value={aezeedPasswordConfirmation}
onChange={event => updateAezeedPasswordConfirmation(event.target.value)}
/>
<p
className={`${styles.errorMessage} ${showAezeedPasswordConfirmationError &&
styles.visible}`}
>
Passwords do not match
</p>
</section>
</div>
)
NewAezeedPassword.propTypes = {
aezeedPassword: PropTypes.string.isRequired,
aezeedPasswordConfirmation: PropTypes.string.isRequired,
showAezeedPasswordConfirmationError: PropTypes.bool.isRequired,
updateAezeedPassword: PropTypes.func.isRequired,
updateAezeedPasswordConfirmation: PropTypes.func.isRequired
}
export default NewAezeedPassword

37
app/components/Onboarding/NewAezeedPassword.scss

@ -1,37 +0,0 @@
@import '../../styles/variables.scss';
.input:nth-child(2) {
margin-top: 30px;
}
.password {
background: transparent;
outline: none;
border: 1px solid #404040;
border-radius: 4px;
padding: 15px;
color: $gold;
-webkit-text-fill-color: $white;
font-size: 22px;
transition: all 0.25s;
&.error {
border: 1px solid $red;
}
}
.password::-webkit-input-placeholder {
text-shadow: none;
-webkit-text-fill-color: initial;
}
.errorMessage {
color: $red;
margin-top: 10px;
font-size: 10px;
visibility: hidden;
&.visible {
visibility: visible;
}
}

39
app/components/Onboarding/Onboarding.js

@ -14,7 +14,6 @@ import RecoverForm from './RecoverForm'
import NewWalletSeed from './NewWalletSeed'
import ReEnterSeed from './ReEnterSeed'
import NewWalletPassword from './NewWalletPassword'
import NewAezeedPassword from './NewAezeedPassword'
import styles from './Onboarding.scss'
const Onboarding = ({
@ -29,7 +28,6 @@ const Onboarding = ({
startingLnd,
createWalletPassword,
seed,
aezeedPassword,
fetchingSeed
},
connectionTypeProps,
@ -43,7 +41,6 @@ const Onboarding = ({
recoverFormProps,
newWalletSeedProps,
newWalletPasswordProps,
newAezeedPasswordProps,
reEnterSeedProps
}) => {
const renderStep = () => {
@ -167,24 +164,13 @@ const Onboarding = ({
title="Import your seed"
description="Recovering a wallet, nice. You don't need anyone else, you got yourself :)"
back={() => changeStep(5)}
next={() => changeStep(5.2)}
>
<RecoverForm {...recoverFormProps} />
</FormContainer>
)
case 5.2:
return (
<FormContainer
title="Seed passphrase"
description="Enter your cipherseed passphrase (or just submit if you don't have one)"
back={() => changeStep(5)}
next={() => {
const recoverySeed = recoverFormProps.recoverSeedInput.map(input => input.word)
submitNewWallet(createWalletPassword, recoverySeed, aezeedPassword)
submitNewWallet(createWalletPassword, recoverySeed)
}}
>
<NewAezeedPassword {...newAezeedPasswordProps} />
<RecoverForm {...recoverFormProps} />
</FormContainer>
)
case 6:
@ -213,30 +199,12 @@ const Onboarding = ({
return
}
changeStep(8)
submitNewWallet(createWalletPassword, seed)
}}
>
<ReEnterSeed {...reEnterSeedProps} />
</FormContainer>
)
case 8:
return (
<FormContainer
title="Encrypt your seed"
description="Totally optional, but we encourage it. Set a password that will be used to encrypt your wallet seed" // eslint-disable-line max-len
back={() => changeStep(6)}
next={() => {
// dont allow the user to move on if the confirmation password doesnt match the original password
if (newAezeedPasswordProps.showAezeedPasswordConfirmationError) {
return
}
submitNewWallet(createWalletPassword, seed, aezeedPassword)
}}
>
<NewAezeedPassword {...newAezeedPasswordProps} />
</FormContainer>
)
default:
return <LoadingBolt />
}
@ -261,7 +229,6 @@ Onboarding.propTypes = {
initWalletProps: PropTypes.object.isRequired,
newWalletSeedProps: PropTypes.object.isRequired,
newWalletPasswordProps: PropTypes.object.isRequired,
newAezeedPasswordProps: PropTypes.object.isRequired,
recoverFormProps: PropTypes.object.isRequired,
reEnterSeedProps: PropTypes.object.isRequired,
changeStep: PropTypes.func.isRequired,

16
app/containers/Root.js

@ -20,8 +20,6 @@ import {
createWallet,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
updateAezeedPassword,
updateAezeedPasswordConfirmation,
submitNewWallet,
onboardingSelectors,
unlockWallet,
@ -44,8 +42,6 @@ const mapDispatchToProps = {
updatePassword,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
updateAezeedPassword,
updateAezeedPasswordConfirmation,
setAutopilot,
changeStep,
startLnd,
@ -72,9 +68,6 @@ const mapStateToProps = state => ({
showCreateWalletPasswordConfirmationError: onboardingSelectors.showCreateWalletPasswordConfirmationError(
state
),
showAezeedPasswordConfirmationError: onboardingSelectors.showAezeedPasswordConfirmationError(
state
),
reEnterSeedChecker: onboardingSelectors.reEnterSeedChecker(state)
})
@ -151,14 +144,6 @@ const mergeProps = (stateProps, dispatchProps, ownProps) => {
updateCreateWalletPasswordConfirmation: dispatchProps.updateCreateWalletPasswordConfirmation
}
const newAezeedPasswordProps = {
aezeedPassword: stateProps.onboarding.aezeedPassword,
aezeedPasswordConfirmation: stateProps.onboarding.aezeedPasswordConfirmation,
showAezeedPasswordConfirmationError: stateProps.showAezeedPasswordConfirmationError,
updateAezeedPassword: dispatchProps.updateAezeedPassword,
updateAezeedPasswordConfirmation: dispatchProps.updateAezeedPasswordConfirmation
}
const recoverFormProps = {
recoverSeedInput: stateProps.onboarding.recoverSeedInput,
updateRecoverSeedInput: dispatchProps.updateRecoverSeedInput
@ -185,7 +170,6 @@ const mergeProps = (stateProps, dispatchProps, ownProps) => {
initWalletProps,
newWalletSeedProps,
newWalletPasswordProps,
newAezeedPasswordProps,
recoverFormProps,
reEnterSeedProps
}

2
app/lnd/methods/walletController.js

@ -140,7 +140,7 @@ export function unlockWallet(walletUnlocker, { wallet_password }) {
*/
export function initWallet(
walletUnlocker,
{ wallet_password, cipher_seed_mnemonic, aezeed_passphrase }
{ wallet_password, cipher_seed_mnemonic, aezeed_passphrase = '' }
) {
return new Promise((resolve, reject) => {
walletUnlocker.initWallet(

34
app/reducers/onboarding.js

@ -17,8 +17,6 @@ export const UPDATE_PASSWORD = 'UPDATE_PASSWORD'
export const UPDATE_CREATE_WALLET_PASSWORD = 'UPDATE_CREATE_WALLET_PASSWORD'
export const UPDATE_CREATE_WALLET_PASSWORD_CONFIRMATION =
'UPDATE_CREATE_WALLET_PASSWORD_CONFIRMATION'
export const UPDATE_AEZEED_PASSWORD = 'UPDATE_AEZEED_PASSWORD'
export const UPDATE_AEZEED_PASSWORD_CONFIRMATION = 'UPDATE_AEZEED_PASSWORD_CONFIRMATION'
export const UPDATE_RE_ENTER_SEED_INPUT = 'UPDATE_RE_ENTER_SEED_INPUT'
export const UPDATE_RECOVER_SEED_INPUT = 'UPDATE_RECOVER_SEED_INPUT'
@ -104,20 +102,6 @@ export function updateCreateWalletPasswordConfirmation(createWalletPasswordConfi
}
}
export function updateAezeedPassword(aezeedPassword) {
return {
type: UPDATE_AEZEED_PASSWORD,
aezeedPassword
}
}
export function updateAezeedPasswordConfirmation(aezeedPasswordConfirmation) {
return {
type: UPDATE_AEZEED_PASSWORD_CONFIRMATION,
aezeedPasswordConfirmation
}
}
export function updateReEnterSeedInput(inputSeedObj) {
return {
type: UPDATE_RE_ENTER_SEED_INPUT,
@ -271,11 +255,6 @@ const ACTION_HANDLERS = {
...state,
createWalletPasswordConfirmation
}),
[UPDATE_AEZEED_PASSWORD]: (state, { aezeedPassword }) => ({ ...state, aezeedPassword }),
[UPDATE_AEZEED_PASSWORD_CONFIRMATION]: (state, { aezeedPasswordConfirmation }) => ({
...state,
aezeedPasswordConfirmation
}),
[UPDATE_RE_ENTER_SEED_INPUT]: (state, { inputSeedObj }) => ({
...state,
reEnterSeedInput: { ...state.reEnterSeedInput, [inputSeedObj.index]: inputSeedObj.word }
@ -333,9 +312,6 @@ const createWalletPasswordSelector = state => state.onboarding.createWalletPassw
const createWalletPasswordConfirmationSelector = state =>
state.onboarding.createWalletPasswordConfirmation
const aezeedPasswordSelector = state => state.onboarding.aezeedPassword
const aezeedPasswordConfirmationSelector = state => state.onboarding.aezeedPasswordConfirmation
const seedSelector = state => state.onboarding.seed
const seedIndexesArrSelector = state => state.onboarding.seedIndexesArr
const reEnterSeedInputSelector = state => state.onboarding.reEnterSeedInput
@ -357,12 +333,6 @@ onboardingSelectors.showCreateWalletPasswordConfirmationError = createSelector(
(pass1, pass2) => pass1 !== pass2 && pass2.length > 0
)
onboardingSelectors.showAezeedPasswordConfirmationError = createSelector(
aezeedPasswordSelector,
aezeedPasswordConfirmationSelector,
(pass1, pass2) => pass1 !== pass2 && pass2.length > 0
)
onboardingSelectors.reEnterSeedChecker = createSelector(
seedSelector,
seedIndexesArrSelector,
@ -403,10 +373,6 @@ const initialState = {
createWalletPasswordConfirmation: '',
creatingNewWallet: false,
// seed password. this is optional and used to encrypt the seed
aezeedPassword: '',
aezeedPasswordConfirmation: '',
unlockingWallet: false,
unlockWalletError: {
isError: false,

Loading…
Cancel
Save