Skip to content

Commit 082e737

Browse files
committed
Change: Mnemonic unicodedata normalize from NFKC to NFKD type.
1 parent bcffa79 commit 082e737

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

pybytom/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ def is_mnemonic(mnemonic: str, language: Optional[str] = None) -> bool:
108108
raise ValueError("Invalid language, choose only the following options 'english', 'french', 'italian', "
109109
"'spanish', 'chinese_simplified', 'chinese_traditional', 'japanese or 'korean' languages.")
110110
try:
111+
mnemonic = unicodedata.normalize("NFKD", mnemonic)
111112
if language is None:
112113
for _language in ["english", "french", "italian",
113114
"chinese_simplified", "chinese_traditional", "japanese", "korean", "spanish"]:
@@ -140,6 +141,7 @@ def get_mnemonic_language(mnemonic: str) -> Optional[str]:
140141
raise ValueError("Invalid mnemonic words.")
141142

142143
language: Optional[str] = None
144+
mnemonic = unicodedata.normalize("NFKD", mnemonic)
143145
for _language in ["english", "french", "italian",
144146
"chinese_simplified", "chinese_traditional", "japanese", "korean", "spanish"]:
145147
if Mnemonic(language=_language).check(mnemonic=mnemonic) is True:
@@ -195,7 +197,7 @@ def get_mnemonic_strength(mnemonic: str) -> int:
195197
if not is_mnemonic(mnemonic=mnemonic):
196198
raise ValueError("Invalid mnemonic words.")
197199

198-
words = len(unicodedata.normalize("NFKC", mnemonic).split(" "))
200+
words = len(unicodedata.normalize("NFKD", mnemonic).split(" "))
199201
if words == 12:
200202
return 128
201203
elif words == 15:

pybytom/wallet/wallet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def from_entropy(self, entropy: str, passphrase: Optional[str] = None,
9696
)
9797
self._strength = get_entropy_strength(entropy=hexlify(self._entropy).decode())
9898
mnemonic = Mnemonic(language=self._language).to_mnemonic(data=self._entropy)
99-
self._mnemonic = unicodedata.normalize("NFKC", mnemonic)
99+
self._mnemonic = unicodedata.normalize("NFKD", mnemonic)
100100
self._seed = Mnemonic.to_seed(mnemonic=self._mnemonic, passphrase=self._passphrase)
101101
self.from_seed(seed=hexlify(self._seed).decode())
102102
return self
@@ -127,7 +127,7 @@ def from_mnemonic(self, mnemonic: str, passphrase: Optional[str] = None,
127127
if not is_mnemonic(mnemonic=mnemonic, language=language):
128128
raise ValueError("Invalid mnemonic words.")
129129

130-
self._mnemonic = unicodedata.normalize("NFKC", mnemonic)
130+
self._mnemonic = unicodedata.normalize("NFKD", mnemonic)
131131
self._language, self._passphrase = (
132132
get_mnemonic_language(mnemonic=self._mnemonic),
133133
(passphrase if passphrase is not None else str())

0 commit comments

Comments
 (0)