stack_wallet/lib/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart

38 lines
1 KiB
Dart
Raw Normal View History

import '../../../exceptions/sw_exception.dart';
import '../../crypto_currency/crypto_currency.dart';
import '../wallet.dart';
2023-09-18 21:28:31 +00:00
mixin MnemonicInterface<T extends CryptoCurrency> on Wallet<T> {
2023-09-18 21:28:31 +00:00
Future<String> getMnemonic() async {
final mnemonic = await secureStorageInterface.read(
key: Wallet.mnemonicKey(walletId: info.walletId),
2023-09-18 21:28:31 +00:00
);
if (mnemonic == null) {
throw SWException("mnemonic has not been set");
}
return mnemonic;
}
Future<List<String>> getMnemonicAsWords() async {
final mnemonic = await getMnemonic();
return mnemonic.split(" ");
}
2023-09-18 21:28:31 +00:00
Future<String> getMnemonicPassphrase() async {
final mnemonicPassphrase = await secureStorageInterface.read(
key: Wallet.mnemonicPassphraseKey(walletId: info.walletId),
2023-09-18 21:28:31 +00:00
);
if (mnemonicPassphrase == null) {
2024-01-14 22:09:48 +00:00
// some really old wallets may not have this set so for legacy reasons do
// not throw here for now
return "";
//throw SWException("mnemonicPassphrase has not been set");
2023-09-18 21:28:31 +00:00
}
return mnemonicPassphrase;
}
}