decode method
Decodes a Monero mnemonic string into entropy.
-mnemonic: The Monero mnemonic string to decode.
Implementation
@override
List<int> decode(String mnemonic) {
final mn = MoneroMnemonic.fromString(mnemonic);
final wcount = mn.wordsCount();
MoneroWordsNum.values.firstWhere(
(element) => element.value == wcount,
orElse:
() =>
throw ArgumentException.invalidOperationArguments(
"decode",
name: "mnemonic",
reason: "Invalid mnemonic length.",
),
);
final lang = findLanguage(mn);
final words = mn.toList();
validateCheckSum(words, lang.$2);
List<int> entropyBytes = List.empty();
for (int i = 0; i < words.length ~/ 3; i++) {
final String word1 = words[i * 3];
final String word2 = words[i * 3 + 1];
final String word3 = words[i * 3 + 2];
final List<int> chunkBytes = MnemonicUtils.wordsToBytesChunk(
word1,
word2,
word3,
lang.$1,
endian: Endian.little,
);
entropyBytes = [...entropyBytes, ...chunkBytes];
}
return entropyBytes;
}