diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index c82905d4a..45a0a70d6 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -224,19 +224,7 @@ class MoneroWalletService extends WalletService< final wmaddr = wmPtr.ffiAddress(); final waddr = w.ffiAddress(); openedWalletsByPath.remove("$path/$wallet"); - if (Platform.isWindows) { - await Isolate.run(() { - monero.WalletManager_closeWallet( - Pointer.fromAddress(wmaddr), Pointer.fromAddress(waddr), true); - monero.WalletManager_errorString(Pointer.fromAddress(wmaddr)); - }); - } else { - unawaited(Isolate.run(() { - monero.WalletManager_closeWallet( - Pointer.fromAddress(wmaddr), Pointer.fromAddress(waddr), true); - monero.WalletManager_errorString(Pointer.fromAddress(wmaddr)); - })); - } + await closeWalletAwaitIfShould(wmaddr, waddr); printV("wallet closed"); } @@ -570,3 +558,19 @@ class MoneroWalletService extends WalletService< false; } } + +Future closeWalletAwaitIfShould(int wmaddr, int waddr) async { + if (Platform.isWindows) { + await Isolate.run(() { + monero.WalletManager_closeWallet( + Pointer.fromAddress(wmaddr), Pointer.fromAddress(waddr), true); + monero.WalletManager_errorString(Pointer.fromAddress(wmaddr)); + }); + } else { + unawaited(Isolate.run(() { + monero.WalletManager_closeWallet( + Pointer.fromAddress(wmaddr), Pointer.fromAddress(waddr), true); + monero.WalletManager_errorString(Pointer.fromAddress(wmaddr)); + })); + } +} \ No newline at end of file