diff --git a/cw_monero/lib/api/account_list.dart b/cw_monero/lib/api/account_list.dart index 0e55ce15c..28b00c925 100644 --- a/cw_monero/lib/api/account_list.dart +++ b/cw_monero/lib/api/account_list.dart @@ -7,7 +7,8 @@ bool get isViewOnly => int.tryParse(monero.Wallet_secretSpendKey(wptr!)) == 0; int _wlptrForW = 0; monero.WalletListener? _wlptr = null; -monero.WalletListener getWlptr() { +monero.WalletListener? getWlptr() { + if (wptr == null) return null; if (wptr!.address == _wlptrForW) return _wlptr!; _wlptrForW = wptr!.address; _wlptr = monero.MONERO_cw_getWalletListener(wptr!); diff --git a/cw_monero/lib/api/wallet.dart b/cw_monero/lib/api/wallet.dart index 9abd67c60..f520c6599 100644 --- a/cw_monero/lib/api/wallet.dart +++ b/cw_monero/lib/api/wallet.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:ffi'; import 'dart:isolate'; -import 'package:cw_core/root_dir.dart'; import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_monero/api/account_list.dart'; import 'package:cw_monero/api/exceptions/setup_wallet_exception.dart'; @@ -22,14 +21,18 @@ int getSyncingHeight() { } bool isNeededToRefresh() { - final ret = monero.MONERO_cw_WalletListener_isNeedToRefresh(getWlptr()); - monero.MONERO_cw_WalletListener_resetNeedToRefresh(getWlptr()); + final wlptr = getWlptr(); + if (wlptr == null) return false; + final ret = monero.MONERO_cw_WalletListener_isNeedToRefresh(wlptr); + monero.MONERO_cw_WalletListener_resetNeedToRefresh(wlptr); return ret; } bool isNewTransactionExist() { - final ret = monero.MONERO_cw_WalletListener_isNewTransactionExist(getWlptr()); - monero.MONERO_cw_WalletListener_resetIsNewTransactionExist(getWlptr()); + final wlptr = getWlptr(); + if (wlptr == null) return false; + final ret = monero.MONERO_cw_WalletListener_isNewTransactionExist(wlptr); + monero.MONERO_cw_WalletListener_resetIsNewTransactionExist(wlptr); return ret; }