From e0d2c8ec740a1a72d837b6b38e1e644139516901 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 1 Oct 2024 12:30:14 -0600 Subject: [PATCH] add some more logging and possible sync recovery fix? --- lib/electrumx_rpc/client_manager.dart | 20 ++++++++++++------ lib/networking/http.dart | 5 +++++ lib/wallets/wallet/wallet.dart | 11 ++++++++++ pubspec.lock | 30 +++++++++++++-------------- 4 files changed, 45 insertions(+), 21 deletions(-) diff --git a/lib/electrumx_rpc/client_manager.dart b/lib/electrumx_rpc/client_manager.dart index 662c218ea..fb8b920cc 100644 --- a/lib/electrumx_rpc/client_manager.dart +++ b/lib/electrumx_rpc/client_manager.dart @@ -1,6 +1,8 @@ import 'dart:async'; import 'package:electrum_adapter/electrum_adapter.dart'; + +import '../utilities/logger.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; class ClientManager { @@ -37,13 +39,19 @@ class ClientManager { } _heightCompleters[key] = Completer(); - _subscriptions[key] = client.subscribeHeaders().listen((event) { - _heights[key] = event.height; + _subscriptions[key] = client.subscribeHeaders().listen( + (event) { + _heights[key] = event.height; - if (!_heightCompleters[key]!.isCompleted) { - _heightCompleters[key]!.complete(event.height); - } - }); + if (!_heightCompleters[key]!.isCompleted) { + _heightCompleters[key]!.complete(event.height); + } + }, + onError: (Object err, StackTrace s) => Logging.instance.log( + "ClientManager listen: $err\n$s", + level: LogLevel.Error, + ), + ); } Future getChainHeightFor(CryptoCurrency cryptoCurrency) async { diff --git a/lib/networking/http.dart b/lib/networking/http.dart index a4f25c225..ae2a3b97b 100644 --- a/lib/networking/http.dart +++ b/lib/networking/http.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:socks5_proxy/socks_client.dart'; + import '../utilities/logger.dart'; // WIP wrapper layer @@ -118,6 +119,10 @@ class HTTP { onDone: () => completer.complete( Uint8List.fromList(bytes), ), + onError: (Object err, StackTrace s) => Logging.instance.log( + "Http wrapper layer listen: $err\n$s", + level: LogLevel.Error, + ), ); return completer.future; } diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 1e711f19d..29a3f62b6 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -411,6 +411,17 @@ abstract class Wallet { ); _isConnected = hasNetwork; + + if (status == NodeConnectionStatus.disconnected) { + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.unableToSync, + walletId, + cryptoCurrency, + ), + ); + } + if (hasNetwork) { unawaited(refresh()); } diff --git a/pubspec.lock b/pubspec.lock index 81a0d1400..48bab8292 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -370,10 +370,10 @@ packages: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.18.0" connectivity_plus: dependency: "direct main" description: @@ -1142,18 +1142,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -1718,7 +1718,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.0" + version: "0.0.99" socks5_proxy: dependency: "direct main" description: @@ -1854,10 +1854,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.2.0" string_validator: dependency: "direct main" description: @@ -1886,26 +1886,26 @@ packages: dependency: transitive description: name: test - sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" + sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" url: "https://pub.dev" source: hosted - version: "1.25.8" + version: "1.25.7" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.2" test_core: dependency: transitive description: name: test_core - sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.4" tezart: dependency: "direct main" description: