From 0bc5e9b9b5ecb1505f7e0640fd2fe963d6283662 Mon Sep 17 00:00:00 2001 From: sallymoc Date: Sun, 8 Feb 2026 02:53:50 +0100 Subject: [PATCH] fix: disconnect WalletConnect sessions when wallet is erased Properly clean up WalletConnect sessions before erasing wallet data to prevent stale session state. --- .../tab_settings/components/erase_wallet_data_button.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/pages/main/tab_settings/components/erase_wallet_data_button.dart b/lib/pages/main/tab_settings/components/erase_wallet_data_button.dart index fc0f1b2d..c14b9b88 100644 --- a/lib/pages/main/tab_settings/components/erase_wallet_data_button.dart +++ b/lib/pages/main/tab_settings/components/erase_wallet_data_button.dart @@ -7,6 +7,7 @@ import 'package:qubic_wallet/l10n/l10n.dart'; import 'package:qubic_wallet/pages/auth/erase_wallet_sheet.dart'; import 'package:qubic_wallet/resources/hive_storage.dart'; import 'package:qubic_wallet/resources/secure_storage.dart'; +import 'package:qubic_wallet/services/wallet_connect_service.dart'; import 'package:qubic_wallet/stores/application_store.dart'; import 'package:qubic_wallet/stores/settings_store.dart'; import 'package:qubic_wallet/styles/text_styles.dart'; @@ -20,6 +21,8 @@ class EraseWalletDataButton extends StatelessWidget { final SecureStorage secureStorage = getIt(); final _globalSnackBar = getIt(); final TimedController timedController = getIt(); + final WalletConnectService _walletConnectService = + getIt(); EraseWalletDataButton({super.key}); @override @@ -41,6 +44,10 @@ class EraseWalletDataButton extends StatelessWidget { builder: (BuildContext context) { return SafeArea( child: EraseWalletSheet(onAccept: () async { + // Disconnect WalletConnect sessions before erasing wallet + if (_walletConnectService.web3Wallet != null) { + _walletConnectService.disconnect(); + } await secureStorage.deleteWallet(); await settingsStore.loadSettings(); await _hiveStorage.clear();