@@ -108,6 +108,7 @@ def is_mnemonic(mnemonic: str, language: Optional[str] = None) -> bool:
108
108
raise ValueError ("Invalid language, choose only the following options 'english', 'french', 'italian', "
109
109
"'spanish', 'chinese_simplified', 'chinese_traditional', 'japanese or 'korean' languages." )
110
110
try :
111
+ mnemonic = unicodedata .normalize ("NFKD" , mnemonic )
111
112
if language is None :
112
113
for _language in ["english" , "french" , "italian" ,
113
114
"chinese_simplified" , "chinese_traditional" , "japanese" , "korean" , "spanish" ]:
@@ -140,6 +141,7 @@ def get_mnemonic_language(mnemonic: str) -> Optional[str]:
140
141
raise ValueError ("Invalid mnemonic words." )
141
142
142
143
language : Optional [str ] = None
144
+ mnemonic = unicodedata .normalize ("NFKD" , mnemonic )
143
145
for _language in ["english" , "french" , "italian" ,
144
146
"chinese_simplified" , "chinese_traditional" , "japanese" , "korean" , "spanish" ]:
145
147
if Mnemonic (language = _language ).check (mnemonic = mnemonic ) is True :
@@ -195,7 +197,7 @@ def get_mnemonic_strength(mnemonic: str) -> int:
195
197
if not is_mnemonic (mnemonic = mnemonic ):
196
198
raise ValueError ("Invalid mnemonic words." )
197
199
198
- words = len (unicodedata .normalize ("NFKC " , mnemonic ).split (" " ))
200
+ words = len (unicodedata .normalize ("NFKD " , mnemonic ).split (" " ))
199
201
if words == 12 :
200
202
return 128
201
203
elif words == 15 :
0 commit comments