diff --git a/web/cashtab/src/hooks/useWallet.js b/web/cashtab/src/hooks/useWallet.js --- a/web/cashtab/src/hooks/useWallet.js +++ b/web/cashtab/src/hooks/useWallet.js @@ -19,7 +19,6 @@ isValidCashtabCache, isValidContactList, parseInvalidSettingsForMigration, - validateMnemonicWordList, } from 'utils/validation'; import localforage from 'localforage'; import { currency } from 'components/Common/Ticker'; @@ -839,34 +838,16 @@ }; const validateMnemonic = (mnemonic, wordlist = bip39.wordlists.english) => { - let mnemonicTestOutput; - - // temporary validation of wordlist exclusion - // to be removed in next diff in stack - console.log('english: ' + bip39.wordlists.english); - if ( - !bip39.wordlists.japanese && - !bip39.wordlists.spanish && - !bip39.wordlists.italian && - !bip39.wordlists.french && - !bip39.wordlists.korean && - !bip39.wordlists.czech && - !bip39.wordlists.portuguese && - !bip39.wordlists.chinese_traditional - ) { - console.log( - 'bip39 wordlist is excluding japanese, spanish, italian, french, korean, czech, portuguese and chinese', - ); - } - try { - mnemonicTestOutput = validateMnemonicWordList(mnemonic, wordlist); + if (!mnemonic || !wordlist) return false; - if (mnemonicTestOutput === 'Valid mnemonic') { - return true; - } else { - return false; - } + // Preprocess the words + const words = mnemonic.split(' '); + // Detect blank phrase + if (words.length === 0) return false; + + // Check the words are valid + return bip39.validateMnemonic(mnemonic, wordlist); } catch (err) { console.log(err); return false; diff --git a/web/cashtab/src/utils/__tests__/validation.test.js b/web/cashtab/src/utils/__tests__/validation.test.js --- a/web/cashtab/src/utils/__tests__/validation.test.js +++ b/web/cashtab/src/utils/__tests__/validation.test.js @@ -21,7 +21,6 @@ isValidContactList, parseInvalidSettingsForMigration, isValidCashtabCache, - validateMnemonicWordList, } from '../validation'; import { currency } from 'components/Common/Ticker.js'; import { fromSatoshisToXec } from 'utils/cashMethods'; @@ -49,28 +48,8 @@ cashtabCacheWithTokenNameNotString, cashtabCacheWithMissingTokenName, } from 'utils/__mocks__/mockCashtabCache'; -import * as bip39 from 'bip39'; describe('Validation utils', () => { - it(`validateMnemonicWordList() returns a success message for a valid mnemonic`, () => { - const validMnemonic = - 'labor tail bulb distance estate collect lecture into smile differ yard legal'; - expect( - validateMnemonicWordList(validMnemonic, bip39.wordlists.english), - ).toBe('Valid mnemonic'); - }); - it(`validateMnemonicWordList() returns an error message for an invalid mnemonic`, () => { - const validMnemonic = - 'labor tail bulb not valid collect lecture into smile differ yard legal'; - expect( - validateMnemonicWordList(validMnemonic, bip39.wordlists.english), - ).toBe('Invalid mnemonic'); - }); - it(`validateMnemonicWordList() returns an error message for an empty mnemonic`, () => { - expect(validateMnemonicWordList('', bip39.wordlists.english)).toBe( - 'Invalid mnemonic', - ); - }); it(`Returns 'false' if ${currency.ticker} send amount is a valid send amount`, () => { expect(shouldRejectAmountInput('10', currency.ticker, 20.0, 300)).toBe( false, diff --git a/web/cashtab/src/utils/validation.js b/web/cashtab/src/utils/validation.js --- a/web/cashtab/src/utils/validation.js +++ b/web/cashtab/src/utils/validation.js @@ -2,21 +2,6 @@ import { currency } from 'components/Common/Ticker.js'; import { fromSatoshisToXec } from 'utils/cashMethods'; import cashaddr from 'ecashaddrjs'; -import * as bip39 from 'bip39'; - -// reference: https://github.com/Permissionless-Software-Foundation/bch-js/blob/62e56c832b35731880fe448269818b853c76dd80/src/mnemonic.js#L160-L180 -export const validateMnemonicWordList = (mnemonic, wordlist) => { - // Preprocess the words - const words = mnemonic.split(' '); - // Detect blank phrase - if (words.length === 0) return 'Blank mnemonic'; - - // Check the words are valid - const isValid = bip39.validateMnemonic(mnemonic, wordlist); - if (!isValid) return 'Invalid mnemonic'; - - return 'Valid mnemonic'; -}; // Validate cash amount export const shouldRejectAmountInput = (