diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart index 9cda5954b..f18879297 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart @@ -261,7 +261,6 @@ class _VerifyRecoveryPhraseViewState } Future<void> delete() async { - await _wallet.exit(); await ref.read(pWallets).deleteWallet( _wallet.walletId, ref.read(secureStoreProvider), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart index 2baff002f..504a4b501 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart @@ -16,6 +16,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import 'package:stackwallet/pages/home_view/home_view.dart'; +import 'package:stackwallet/providers/global/secure_store_provider.dart'; +import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; @@ -193,23 +196,15 @@ class _DeleteWalletRecoveryPhraseViewState .extension<StackColors>()! .getPrimaryEnabledButtonStyle(context), onPressed: () async { - // TODO: [prio=high] wallet deletion + await ref.read(pWallets).deleteWallet( + widget.walletId, + ref.read(secureStoreProvider), + ); - // final walletId = _manager.walletId; - // final walletsInstance = ref.read(pWallets); - // await ref - // .read(walletsServiceChangeNotifierProvider) - // .deleteWallet(_manager.walletName, true); - // - // if (mounted) { - // Navigator.of(context).popUntil( - // ModalRoute.withName(HomeView.routeName)); - // } - // - // // wait for widget tree to dispose of any widgets watching the manager - // await Future<void>.delayed( - // const Duration(seconds: 1)); - // walletsInstance.removeWallet(walletId: walletId); + if (mounted) { + Navigator.of(context).popUntil( + ModalRoute.withName(HomeView.routeName)); + } }, child: Text( "Ok", diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart index 028d0c714..f5d0e7395 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart @@ -15,6 +15,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import 'package:stackwallet/providers/global/secure_store_provider.dart'; +import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -235,25 +237,14 @@ class _ConfirmDeleteState extends ConsumerState<ConfirmDelete> { buttonHeight: ButtonHeight.xl, label: "Continue", onPressed: () async { - // TODO: [prio=high] wallet deletion + await ref.read(pWallets).deleteWallet( + widget.walletId, + ref.read(secureStoreProvider), + ); - // final walletsInstance = ref.read(pWallets); - // final manager = - // ref.read(pWallets).getManager(widget.walletId); - // - // final _managerWalletId = manager.walletId; - // // - // await ref - // .read(walletsServiceChangeNotifierProvider) - // .deleteWallet(manager.walletName, true); - // - // if (mounted) { - // Navigator.of(context, rootNavigator: true).pop(true); - // } - // - // // wait for widget tree to dispose of any widgets watching the manager - // await Future<void>.delayed(const Duration(seconds: 1)); - // walletsInstance.removeWallet(walletId: _managerWalletId); + if (mounted) { + Navigator.of(context, rootNavigator: true).pop(true); + } }, ), ], diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index a9b10b28d..73d7e17a7 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -84,7 +84,9 @@ class Wallets { level: LogLevel.Warning, ); - final wallet = getWallet(walletId)!; + final wallet = getWallet(walletId); + _wallets.remove(walletId); + await wallet.exit(); await secureStorage.delete(key: Wallet.mnemonicKey(walletId: walletId)); await secureStorage.delete( @@ -321,9 +323,7 @@ class Wallets { Future<void> _deleteWallet(String walletId) async { // TODO proper clean up of other wallet data in addition to the following - await mainDB.isar.writeTxn(() async => await mainDB.isar.walletInfo - .where() - .walletIdEqualTo(walletId) - .deleteAll()); + await mainDB.isar.writeTxn( + () async => await mainDB.isar.walletInfo.deleteByWalletId(walletId)); } }