Skip to content

Commit d671016

Browse files
authored
Merge pull request #764 from cypherstack/null-wallet
Do not trap user in "restore failed" dialog if serverside issues lead to failure
2 parents f00fb01 + 04ca805 commit d671016

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
1313
import 'package:stackwallet/providers/global/secure_store_provider.dart';
1414
import 'package:stackwallet/providers/providers.dart';
1515
import 'package:stackwallet/themes/stack_colors.dart';
16+
import 'package:stackwallet/utilities/logger.dart';
1617
import 'package:stackwallet/utilities/text_styles.dart';
1718
import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart';
1819
import 'package:stackwallet/widgets/stack_dialog.dart';
@@ -65,13 +66,21 @@ class _RestoreFailedDialogState extends ConsumerState<RestoreFailedDialog> {
6566
style: STextStyles.itemSubtitle12(context),
6667
),
6768
onPressed: () async {
68-
await ref.read(pWallets).deleteWallet(
69-
ref.read(pWalletInfo(walletId)),
70-
ref.read(secureStoreProvider),
71-
);
72-
73-
if (mounted) {
74-
Navigator.of(context).pop();
69+
try {
70+
await ref.read(pWallets).deleteWallet(
71+
ref.read(pWalletInfo(walletId)),
72+
ref.read(secureStoreProvider),
73+
);
74+
} catch (e, s) {
75+
Logging.instance.log(
76+
"Error while getting wallet info in restore failed dialog\n"
77+
"Error: $e\nStack trace: $s",
78+
level: LogLevel.Error,
79+
);
80+
} finally {
81+
if (mounted) {
82+
Navigator.of(context).pop();
83+
}
7584
}
7685
},
7786
),

lib/services/wallets.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ class Wallets {
4242

4343
final Map<String, Wallet> _wallets = {};
4444

45-
Wallet getWallet(String walletId) => _wallets[walletId]!;
45+
Wallet getWallet(String walletId) {
46+
if (_wallets[walletId] != null) {
47+
return _wallets[walletId]!;
48+
} else {
49+
throw Exception("Wallet with id $walletId not found");
50+
}
51+
}
4652

4753
void addWallet(Wallet wallet) {
4854
if (_wallets[wallet.walletId] != null) {

0 commit comments

Comments
 (0)