import 'dart:async'; import '../../crypto_currency/intermediate/cryptonote_currency.dart'; import '../../models/tx_data.dart'; import '../wallet.dart'; import '../wallet_mixin_interfaces/mnemonic_interface.dart'; abstract class CryptonoteWallet<T extends CryptonoteCurrency> extends Wallet<T> with MnemonicInterface<T> { CryptonoteWallet(T currency) : super(currency); Completer<void>? walletOpenCompleter; void resetWalletOpenCompleter() { if (walletOpenCompleter == null || walletOpenCompleter!.isCompleted) { walletOpenCompleter = Completer<void>(); } } Future<void> waitForWalletOpen() async { if (walletOpenCompleter != null && !walletOpenCompleter!.isCompleted) { await walletOpenCompleter!.future; } } // ========== Overrides ====================================================== @override Future<TxData> confirmSend({required TxData txData}) { // TODO: implement confirmSend throw UnimplementedError(); } @override Future<TxData> prepareSend({required TxData txData}) { // TODO: implement prepareSend throw UnimplementedError(); } @override Future<void> recover({required bool isRescan}) { // TODO: implement recover throw UnimplementedError(); } @override Future<bool> updateUTXOs() async { // do nothing for now return false; } }