Show the invalid words when seed phrase invalid

This commit is contained in:
Jason Rhinelander 2022-04-18 20:11:18 -03:00
parent 78aa823dc8
commit da81a716aa
No known key found for this signature in database
GPG Key ID: C4992CE7A88D4262
4 changed files with 15 additions and 8 deletions

View File

@ -300,6 +300,7 @@
"restore_from_seed_placeholder" : "Bitte geben Sie hier Ihren Code ein",
"add_new_word" : "Neues Wort hinzufügen",
"incorrect_seed" : "Der eingegebene Text ist ungültig.",
"invalid_seed_words": "\nUngültige Wörter: {words}.",
"biometric_auth_reason" : "Scannen Sie Ihren Fingerabdruck zur Authentifizierung",
"version" : "Ausführung {currentVersion}",

View File

@ -317,6 +317,8 @@
"restore_from_seed_placeholder" : "Please enter or paste your seed here",
"add_new_word" : "Add new word",
"incorrect_seed" : "The text entered is not valid.",
"invalid_seed_words" : "\nInvalid seed words: {words}.",
"@invalid_seed_words" : { "placeholders": {"words": {}}},
"biometric_auth_reason" : "Scan your fingerprint to authenticate",
"version" : "Version {currentVersion}",

View File

@ -301,6 +301,7 @@
"restore_from_seed_placeholder" : "Veuillez entrer votre code ici",
"add_new_word" : "Ajouter un nouveau mot",
"incorrect_seed" : "Le texte saisi n'est pas valide.",
"invalid_seed_words": "\nMots invalide: {words}.",
"biometric_auth_reason" : "Scannez votre empreinte digitale pour l'authentification",
"version" : "Version {currentVersion}",

View File

@ -23,9 +23,6 @@ class SeedWidget extends StatefulWidget {
SeedWidget({required Key key, required this.onMnemonicChange, required this.onFinish, required this.seedLanguage})
: super(key: key) {
switch (seedLanguage) {
case 'English':
words = _englishWords;
break;
case 'Chinese (simplified)':
words = ChineseSimplifiedMnemonics.words;
break;
@ -53,6 +50,7 @@ class SeedWidget extends StatefulWidget {
case 'Italian':
words = ItalianMnemonics.words;
break;
case 'English':
default:
words = _englishWords;
}
@ -76,6 +74,7 @@ class SeedWidgetState extends State<SeedWidget> {
MnemonicItem? selectedItem;
List<MnemonicItem> currentMnemonics = [];
List<String> invalidWords = [];
bool isCurrentMnemonicValid = false;
String? _errorMessage;
@ -83,6 +82,7 @@ class SeedWidgetState extends State<SeedWidget> {
void initState() {
super.initState();
isCurrentMnemonicValid = false;
invalidWords = [];
_seedController
.addListener(() => changeCurrentMnemonic(_seedController.text));
}
@ -163,6 +163,8 @@ class SeedWidgetState extends State<SeedWidget> {
final splitted = trimmedText.split(' ');
_errorMessage = null;
invalidWords = [];
if (text.isEmpty) {
currentMnemonics = [];
isCurrentMnemonicValid = false;
@ -176,10 +178,9 @@ class SeedWidgetState extends State<SeedWidget> {
var isValid = true;
for (final word in currentMnemonics) {
isValid = word.isCorrect();
if (!isValid) {
break;
if (!word.isCorrect()) {
isValid = false;
invalidWords.add(word.text);
}
}
@ -203,7 +204,9 @@ class SeedWidgetState extends State<SeedWidget> {
void showErrorIfExist(AppLocalizations t) {
setState(() => _errorMessage =
!isCurrentMnemonicValid ? t.incorrect_seed : null);
isCurrentMnemonicValid
? null
: t.incorrect_seed + (invalidWords.isNotEmpty ? t.invalid_seed_words(invalidWords.join(", ")) : ""));
}
bool isSeedValid() {