V4.19.5 v1.16.5 (#1654)

* some not enough enhancements for sync status * update app versions * minor fix

Omar Hatem committed Aug 27, 2024 at 20:49 UTC f072e79bb6ca3f0c9ef65607509d4839d1c4d832
13 files changed +33 -42
assets/text/Monerocom_Release_Notes.txt
+2 -3
@@ -1,3 +1,2 @@
1 -Scan and verify messages
2 -Synchronization enhancements
3 -Bug fixes
\ No newline at end of file
1 +Enhance auto-address generation for Monero
2 +Bug fixes and enhancements
\ No newline at end of file
assets/text/Release_Notes.txt
+4 -3
@@ -1,3 +1,4 @@
1 -Scan and verify messages
2 -Synchronization enhancements
3 -Bug fixes
\ No newline at end of file
1 +Enable BIP39 by default for wallet creation also on Bitcoin/Litecoin (Electrum seed type is still accessible through advanced settings page)
2 +Improve fee calculation for Bitcoin to protect against overpaying or underpaying
3 +Enhance auto-address generation for Monero
4 +Bug fixes and enhancements
\ No newline at end of file
cw_bitcoin/lib/electrum.dart
+1 -11
@@ -107,16 +107,9 @@ class ElectrumClient {
107 }
108 },
109 onError: (Object error) {
110 - socket = null;
110 final errorMsg = error.toString();
111 print(errorMsg);
112 unterminatedString = '';
114 -
115 - final currentHost = socket?.address.host;
116 - final isErrorForCurrentHost = errorMsg.contains(" ${currentHost} ");
117 -
118 - if (currentHost != null && isErrorForCurrentHost)
119 - _setConnectionStatus(ConnectionStatus.failed);
113 },
114 onDone: () {
115 unterminatedString = '';
@@ -436,7 +429,6 @@ class ElectrumClient {
429 {required String id, required String method, List<Object> params = const []}) {
430 try {
431 if (socket == null) {
439 - _setConnectionStatus(ConnectionStatus.failed);
432 return null;
433 }
434 final subscription = BehaviorSubject<T>();
@@ -453,7 +445,6 @@ class ElectrumClient {
445 Future<dynamic> call(
446 {required String method, List<Object> params = const [], Function(int)? idCallback}) async {
447 if (socket == null) {
456 - _setConnectionStatus(ConnectionStatus.failed);
448 return null;
449 }
450 final completer = Completer<dynamic>();
@@ -467,10 +458,9 @@ class ElectrumClient {
458 }
459
460 Future<dynamic> callWithTimeout(
470 - {required String method, List<Object> params = const [], int timeout = 4000}) async {
461 + {required String method, List<Object> params = const [], int timeout = 5000}) async {
462 try {
463 if (socket == null) {
473 - _setConnectionStatus(ConnectionStatus.failed);
464 return null;
465 }
466 final completer = Completer<dynamic>();
cw_bitcoin/lib/electrum_wallet.dart
+6 -4
@@ -276,7 +276,6 @@ abstract class ElectrumWalletBase
276 Future<Isolate>? _isolate;
277
278 void Function(FlutterErrorDetails)? _onError;
279 - Timer? _reconnectTimer;
279 Timer? _autoSaveTimer;
280 Timer? _updateFeeRateTimer;
281 static const int _autoSaveInterval = 1;
@@ -429,6 +428,10 @@ abstract class ElectrumWalletBase
428 @override
429 Future<void> startSync() async {
430 try {
431 + if (syncStatus is SyncronizingSyncStatus) {
432 + return;
433 + }
434 +
435 syncStatus = SyncronizingSyncStatus();
436
437 if (hasSilentPaymentsScanning) {
@@ -2055,9 +2058,8 @@ abstract class ElectrumWalletBase
2058
2059 _isTryingToConnect = true;
2060
2058 - _reconnectTimer?.cancel();
2059 - _reconnectTimer = Timer(Duration(seconds: 10), () {
2060 - if (this.syncStatus is! SyncedSyncStatus && this.syncStatus is! SyncedTipSyncStatus) {
2061 + Timer(Duration(seconds: 10), () {
2062 + if (this.syncStatus is NotConnectedSyncStatus || this.syncStatus is LostConnectionSyncStatus) {
2063 this.electrumClient.connectToUri(
2064 node!.uri,
2065 useSSL: node!.useSSL ?? false,
cw_monero/lib/monero_wallet.dart
+1 -3
@@ -13,11 +13,9 @@ import 'package:cw_core/monero_transaction_priority.dart';
13 import 'package:cw_core/monero_wallet_keys.dart';
14 import 'package:cw_core/monero_wallet_utils.dart';
15 import 'package:cw_core/node.dart';
16 -import 'package:cw_core/pathForWallet.dart';
16 import 'package:cw_core/pending_transaction.dart';
17 import 'package:cw_core/sync_status.dart';
18 import 'package:cw_core/transaction_direction.dart';
20 -import 'package:cw_core/transaction_priority.dart';
19 import 'package:cw_core/unspent_coins_info.dart';
20 import 'package:cw_core/wallet_base.dart';
21 import 'package:cw_core/wallet_info.dart';
@@ -88,7 +86,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
86 reaction((_) => isEnabledAutoGenerateSubaddress, (bool enabled) {
87 _updateSubAddress(enabled, account: walletAddresses.account);
88 });
91 - reaction((_) => transactionHistory, (__) {
89 + _onTxHistoryChangeReaction = reaction((_) => transactionHistory, (__) {
90 _updateSubAddress(isEnabledAutoGenerateSubaddress, account: walletAddresses.account);
91 });
92 }
lib/reactions/check_connection.dart
+3 -1
@@ -24,7 +24,9 @@ void startCheckConnectionReaction(WalletBase wallet, SettingsStore settingsStore
24 return;
25 }
26
27 - if (wallet.syncStatus is LostConnectionSyncStatus || wallet.syncStatus is FailedSyncStatus) {
27 + if (wallet.type != WalletType.bitcoin &&
28 + (wallet.syncStatus is LostConnectionSyncStatus ||
29 + wallet.syncStatus is FailedSyncStatus)) {
30 final alive = await settingsStore.getCurrentNode(wallet.type).requestNode();
31
32 if (alive) {
lib/utils/exception_handler.dart
-1
@@ -172,7 +172,6 @@ class ExceptionHandler {
172 "Error while launching http",
173 "OS Error: Network is unreachable",
174 "ClientException: Write failed, uri=http",
175 - "Connection terminated during handshake",
175 "Corrupted wallets seeds",
176 "bad_alloc",
177 "does not correspond",
scripts/android/app_env.sh
+4 -4
@@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
15 APP_ANDROID_TYPE=$1
16
17 MONERO_COM_NAME="Monero.com"
18 -MONERO_COM_VERSION="1.16.4"
19 -MONERO_COM_BUILD_NUMBER=98
18 +MONERO_COM_VERSION="1.16.5"
19 +MONERO_COM_BUILD_NUMBER=99
20 MONERO_COM_BUNDLE_ID="com.monero.app"
21 MONERO_COM_PACKAGE="com.monero.app"
22 MONERO_COM_SCHEME="monero.com"
23
24 CAKEWALLET_NAME="Cake Wallet"
25 -CAKEWALLET_VERSION="4.19.4"
26 -CAKEWALLET_BUILD_NUMBER=225
25 +CAKEWALLET_VERSION="4.19.5"
26 +CAKEWALLET_BUILD_NUMBER=226
27 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
28 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
29 CAKEWALLET_SCHEME="cakewallet"
scripts/ios/app_env.sh
+4 -4
@@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
13 APP_IOS_TYPE=$1
14
15 MONERO_COM_NAME="Monero.com"
16 -MONERO_COM_VERSION="1.16.4"
17 -MONERO_COM_BUILD_NUMBER=96
16 +MONERO_COM_VERSION="1.16.5"
17 +MONERO_COM_BUILD_NUMBER=97
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.19.4"
22 -CAKEWALLET_BUILD_NUMBER=263
21 +CAKEWALLET_VERSION="4.19.5"
22 +CAKEWALLET_BUILD_NUMBER=264
23 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
24
25 HAVEN_NAME="Haven"
scripts/linux/app_env.sh
+2 -2
@@ -14,8 +14,8 @@ if [ -n "$1" ]; then
14 fi
15
16 CAKEWALLET_NAME="Cake Wallet"
17 -CAKEWALLET_VERSION="1.9.4"
18 -CAKEWALLET_BUILD_NUMBER=31
17 +CAKEWALLET_VERSION="1.9.5"
18 +CAKEWALLET_BUILD_NUMBER=32
19
20 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then
21 echo "Wrong app type."
scripts/macos/app_env.sh
+4 -4
@@ -16,13 +16,13 @@ if [ -n "$1" ]; then
16 fi
17
18 MONERO_COM_NAME="Monero.com"
19 -MONERO_COM_VERSION="1.6.4"
20 -MONERO_COM_BUILD_NUMBER=28
19 +MONERO_COM_VERSION="1.6.5"
20 +MONERO_COM_BUILD_NUMBER=30
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="1.12.4"
25 -CAKEWALLET_BUILD_NUMBER=85
24 +CAKEWALLET_VERSION="1.12.5"
25 +CAKEWALLET_BUILD_NUMBER=86
26 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
27
28 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then
scripts/windows/build_exe_installer.iss
+1 -1
@@ -1,5 +1,5 @@
1 #define MyAppName "Cake Wallet"
2 -#define MyAppVersion "0.0.5"
2 +#define MyAppVersion "0.0.6"
3 #define MyAppPublisher "Cake Labs LLC"
4 #define MyAppURL "https://cakewallet.com/"
5 #define MyAppExeName "CakeWallet.exe"
tool/configure.dart
+1 -1
@@ -79,7 +79,6 @@ import 'dart:typed_data';
79 import 'package:bitcoin_base/bitcoin_base.dart';
80 import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart';
81 import 'package:cake_wallet/view_model/send/output.dart';
82 -import 'package:cw_bitcoin/electrum_transaction_info.dart';
82 import 'package:cw_core/hardware/hardware_account_data.dart';
83 import 'package:cw_core/node.dart';
84 import 'package:cw_core/output_info.dart';
@@ -102,6 +101,7 @@ import 'package:bip39/bip39.dart' as bip39;
101 import 'package:cw_bitcoin/utils.dart';
102 import 'package:cw_bitcoin/electrum_derivations.dart';
103 import 'package:cw_bitcoin/electrum.dart';
104 +import 'package:cw_bitcoin/electrum_transaction_info.dart';
105 import 'package:cw_bitcoin/pending_bitcoin_transaction.dart';
106 import 'package:cw_bitcoin/bitcoin_receive_page_option.dart';
107 import 'package:cw_bitcoin/bitcoin_wallet.dart';