2023-09-18 21:28:31 +00:00
|
|
|
import 'package:stackwallet/exceptions/sw_exception.dart';
|
|
|
|
import 'package:stackwallet/wallets/wallet/wallet.dart';
|
|
|
|
|
2023-11-04 01:18:22 +00:00
|
|
|
import '../../crypto_currency/crypto_currency.dart';
|
2023-09-18 21:28:31 +00:00
|
|
|
|
2023-11-04 01:18:22 +00:00
|
|
|
mixin MnemonicBasedWallet<T extends CryptoCurrency> on Wallet<T> {
|
2023-09-18 21:28:31 +00:00
|
|
|
Future<String> getMnemonic() async {
|
|
|
|
final mnemonic = await secureStorageInterface.read(
|
2023-11-03 19:46:55 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2023-11-03 19:46:55 +00:00
|
|
|
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(
|
2023-11-03 19:46:55 +00:00
|
|
|
key: Wallet.mnemonicPassphraseKey(walletId: info.walletId),
|
2023-09-18 21:28:31 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
if (mnemonicPassphrase == null) {
|
|
|
|
throw SWException("mnemonicPassphrase has not been set");
|
|
|
|
}
|
|
|
|
|
|
|
|
return mnemonicPassphrase;
|
|
|
|
}
|
|
|
|
}
|