1+ import 'dart:async' ;
2+
13import 'package:cake_wallet/core/amount_parsing_proxy.dart' ;
24import 'package:cake_wallet/di.dart' ;
35import 'package:cake_wallet/entities/preferences_key.dart' ;
@@ -6,6 +8,7 @@ import 'package:cake_wallet/src/screens/wallet_connect/services/walletkit_servic
68import 'package:cake_wallet/themes/core/theme_store.dart' ;
79import 'package:cake_wallet/utils/exception_handler.dart' ;
810import 'package:cw_core/transaction_info.dart' ;
11+ import 'package:cw_core/utils/print_verbose.dart' ;
912import 'package:cw_core/wallet_type.dart' ;
1013import 'package:mobx/mobx.dart' ;
1114import 'package:cw_core/balance.dart' ;
@@ -63,13 +66,22 @@ abstract class AppStoreBase with Store {
6366 this .wallet! .setExceptionHandler (ExceptionHandler .onError);
6467
6568 if (isWalletConnectCompatibleChain (wallet.type)) {
66- await getIt.get <WalletKitService >().onDispose ();
67- getIt.get <WalletKitService >().create ();
68- await getIt.get <WalletKitService >().init ();
69+ unawaited (_setupWalletConnect ());
6970 }
7071 await getIt.get <SharedPreferences >().setString (PreferencesKey .currentWalletName, wallet.name);
7172 await getIt
7273 .get <SharedPreferences >()
7374 .setInt (PreferencesKey .currentWalletType, serializeToInt (wallet.type));
7475 }
76+
77+ Future <void > _setupWalletConnect () async {
78+ try {
79+ final wcService = getIt.get <WalletKitService >();
80+ await wcService.onDispose ();
81+ wcService.create ();
82+ await wcService.init ();
83+ } catch (e, s) {
84+ printV ('WalletConnect setup failed: $e \n $s ' );
85+ }
86+ }
7587}
0 commit comments