1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Fix parsing of seed phrases on import and restore (#8721)

This commit is contained in:
Whymarrh Whitby 2020-06-03 14:37:07 -02:30 committed by GitHub
parent c6b77c9734
commit b9028397cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 24 deletions

View File

@ -31,23 +31,7 @@ export default class ImportWithSeedPhrase extends PureComponent {
termsChecked: false, termsChecked: false,
} }
parseSeedPhrase = (seedPhrase) => { parseSeedPhrase = (seedPhrase) => (seedPhrase || '').trim().toLowerCase().match(/\w+/gu)?.join(' ') || ''
if (!seedPhrase) {
return ''
}
const trimmed = seedPhrase.trim()
if (!trimmed) {
return ''
}
const words = trimmed.toLowerCase().match(/\w+/g)
if (!words) {
return ''
}
return words.join(' ')
}
UNSAFE_componentWillMount () { UNSAFE_componentWillMount () {
this._onBeforeUnload = () => this.context.metricsEvent({ this._onBeforeUnload = () => this.context.metricsEvent({
@ -73,7 +57,7 @@ export default class ImportWithSeedPhrase extends PureComponent {
if (seedPhrase) { if (seedPhrase) {
const parsedSeedPhrase = this.parseSeedPhrase(seedPhrase) const parsedSeedPhrase = this.parseSeedPhrase(seedPhrase)
const wordCount = parsedSeedPhrase.split(new RegExp('\\s')).length const wordCount = parsedSeedPhrase.split(/\s/u).length
if (wordCount % 3 !== 0 || wordCount > 24 || wordCount < 12) { if (wordCount % 3 !== 0 || wordCount > 24 || wordCount < 12) {
seedPhraseError = this.context.t('seedPhraseReq') seedPhraseError = this.context.t('seedPhraseReq')
} else if (!validateMnemonic(parsedSeedPhrase)) { } else if (!validateMnemonic(parsedSeedPhrase)) {

View File

@ -33,16 +33,12 @@ class RestoreVaultPage extends Component {
confirmPasswordError: null, confirmPasswordError: null,
} }
parseSeedPhrase = (seedPhrase) => { parseSeedPhrase = (seedPhrase) => (seedPhrase || '').trim().toLowerCase().match(/\w+/gu)?.join(' ') || ''
return seedPhrase
.match(/\w+/g)
.join(' ')
}
handleSeedPhraseChange (seedPhrase) { handleSeedPhraseChange (seedPhrase) {
let seedPhraseError = null let seedPhraseError = null
const wordCount = this.parseSeedPhrase(seedPhrase).split(new RegExp('\\s')).length const wordCount = this.parseSeedPhrase(seedPhrase).split(/\s/u).length
if (seedPhrase && (wordCount % 3 !== 0 || wordCount < 12 || wordCount > 24)) { if (seedPhrase && (wordCount % 3 !== 0 || wordCount < 12 || wordCount > 24)) {
seedPhraseError = this.context.t('seedPhraseReq') seedPhraseError = this.context.t('seedPhraseReq')
} }