v4.22.0 release candidate (#1879)

* update app versions * change default solana node * update unspents more frequently to avoid unupdated state * temporary fix for polygon sending issue * change tron default node

Omar Hatem committed Dec 18, 2024 at 16:46 UTC 502a7eaafa56b951fb4328ef5fefc8d3d82ac873
17 files changed +67 -40
assets/solana_node_list.yml
+2 -2
@@ -1,10 +1,10 @@
1 -
2 uri: rpc.ankr.com
3 - is_default: true
3 useSSL: true
4 -
5 uri: api.mainnet-beta.solana.com:443
6 useSSL: true
7 -
8 uri: solana-rpc.publicnode.com:443
10 - useSSL: true
\ No newline at end of file
9 + useSSL: true
10 + is_default: true
\ No newline at end of file
assets/text/Monerocom_Release_Notes.txt
+3 -2
@@ -1,2 +1,3 @@
1 -UI/UX enhancements
2 -Bug fixes and app improvements
\ No newline at end of file
1 +Support Monero Ledger
2 +Bug fixes
3 +New designs and better user experience
\ No newline at end of file
assets/text/Release_Notes.txt
+5 -2
@@ -1,2 +1,5 @@
1 -UI/UX enhancements
2 -Bug fixes and app improvements
\ No newline at end of file
1 +Support Monero Ledger
2 +Prepare for Haven removal
3 +Improve Ethereum and Polygon sending process
4 +Bug fixes
5 +New designs and better user experience
\ No newline at end of file
assets/tron_node_list.yml
+1 -2
@@ -4,9 +4,8 @@
4 useSSL: true
5 -
6 uri: api.trongrid.io
7 - is_default: false
7 + is_default: true
8 useSSL: true
9 -
10 uri: trx.nownodes.io
11 - is_default: true
11 useSSL: true
\ No newline at end of file
cw_bitcoin/lib/electrum_wallet.dart
+3
@@ -1099,6 +1099,7 @@ abstract class ElectrumWalletBase
1099 )..addListener((transaction) async {
1100 transactionHistory.addOne(transaction);
1101 await updateBalance();
1102 + await updateAllUnspents();
1103 });
1104 }
1105
@@ -1191,6 +1192,7 @@ abstract class ElectrumWalletBase
1192 .removeWhere((utxo) => estimatedTx.utxos.any((e) => e.utxo.txHash == utxo.hash));
1193
1194 await updateBalance();
1195 + await updateAllUnspents();
1196 });
1197 } catch (e) {
1198 throw e;
@@ -1796,6 +1798,7 @@ abstract class ElectrumWalletBase
1798 });
1799 transactionHistory.addOne(transaction);
1800 await updateBalance();
1801 + await updateAllUnspents();
1802 });
1803 } catch (e) {
1804 throw e;
cw_haven/pubspec.lock
+2 -2
@@ -716,10 +716,10 @@ packages:
716 dependency: transitive
717 description:
718 name: vm_service
719 - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
719 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
720 url: "https://pub.dev"
721 source: hosted
722 - version: "14.2.5"
722 + version: "14.2.4"
723 watcher:
724 dependency: "direct overridden"
725 description:
cw_monero/pubspec.lock
+2 -2
@@ -829,10 +829,10 @@ packages:
829 dependency: transitive
830 description:
831 name: vm_service
832 - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
832 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
833 url: "https://pub.dev"
834 source: hosted
835 - version: "14.2.5"
835 + version: "14.2.4"
836 watcher:
837 dependency: "direct overridden"
838 description:
cw_nano/pubspec.lock
+2 -2
@@ -874,10 +874,10 @@ packages:
874 dependency: transitive
875 description:
876 name: vm_service
877 - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
877 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
878 url: "https://pub.dev"
879 source: hosted
880 - version: "14.2.5"
880 + version: "14.2.4"
881 watcher:
882 dependency: "direct overridden"
883 description:
cw_polygon/lib/polygon_client.dart
+4 -4
@@ -22,11 +22,11 @@ class PolygonClient extends EVMChainClient {
22 from: from,
23 to: to,
24 value: amount,
25 - data: data,
25 + // data: data,
26 maxGas: maxGas,
27 - gasPrice: gasPrice,
28 - maxFeePerGas: maxFeePerGas,
29 - maxPriorityFeePerGas: maxPriorityFeePerGas,
27 + // gasPrice: gasPrice,
28 + // maxFeePerGas: maxFeePerGas,
29 + // maxPriorityFeePerGas: maxPriorityFeePerGas,
30 );
31 }
32
cw_wownero/pubspec.lock
+2 -2
@@ -757,10 +757,10 @@ packages:
757 dependency: transitive
758 description:
759 name: vm_service
760 - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
760 + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
761 url: "https://pub.dev"
762 source: hosted
763 - version: "14.2.5"
763 + version: "14.2.4"
764 watcher:
765 dependency: "direct overridden"
766 description:
lib/entities/default_settings_migration.dart
+24 -4
@@ -1,13 +1,11 @@
1 import 'dart:convert';
2 import 'dart:io' show Directory, File, Platform;
3 import 'package:cake_wallet/bitcoin/bitcoin.dart';
4 -import 'package:cake_wallet/core/key_service.dart';
4 import 'package:cake_wallet/core/secure_storage.dart';
5 import 'package:cake_wallet/entities/exchange_api_mode.dart';
6 import 'package:cake_wallet/entities/fiat_api_mode.dart';
7 import 'package:cake_wallet/entities/haven_seed_store.dart';
8 import 'package:cake_wallet/haven/haven.dart';
10 -import 'package:cw_core/cake_hive.dart';
9 import 'package:cw_core/pathForWallet.dart';
10 import 'package:cake_wallet/entities/secret_store_key.dart';
11 import 'package:cw_core/root_dir.dart';
@@ -42,8 +40,8 @@ const polygonDefaultNodeUri = 'polygon-bor.publicnode.com';
40 const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002';
41 const nanoDefaultNodeUri = 'nano.nownodes.io';
42 const nanoDefaultPowNodeUri = 'rpc.nano.to';
45 -const solanaDefaultNodeUri = 'rpc.ankr.com';
46 -const tronDefaultNodeUri = 'trx.nownodes.io';
43 +const solanaDefaultNodeUri = 'solana-rpc.publicnode.com:443';
44 +const tronDefaultNodeUri = 'api.trongrid.io';
45 const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002';
46 const wowneroDefaultNodeUri = 'node3.monerodevs.org:34568';
47 const moneroWorldNodeUri = '.moneroworld.com';
@@ -311,6 +309,27 @@ Future<void> defaultSettingsMigration(
309 type: WalletType.ethereum,
310 useSSL: true,
311 );
312 + _changeDefaultNode(
313 + nodes: nodes,
314 + sharedPreferences: sharedPreferences,
315 + type: WalletType.tron,
316 + newDefaultUri: tronDefaultNodeUri,
317 + currentNodePreferenceKey: PreferencesKey.currentTronNodeIdKey,
318 + useSSL: true,
319 + oldUri: [
320 + 'tron-rpc.publicnode.com:443',
321 + 'trx.nownodes.io',
322 + ],
323 + );
324 + _changeDefaultNode(
325 + nodes: nodes,
326 + sharedPreferences: sharedPreferences,
327 + type: WalletType.solana,
328 + newDefaultUri: solanaDefaultNodeUri,
329 + currentNodePreferenceKey: PreferencesKey.currentSolanaNodeIdKey,
330 + useSSL: true,
331 + oldUri: ['rpc.ankr.com'],
332 + );
333 default:
334 break;
335 }
@@ -332,6 +351,7 @@ Future<void> _backupHavenSeeds(Box<HavenSeedStore> havenSeedStore) async {
351 }
352 return;
353 }
354 +
355 /// generic function for changing any wallet default node
356 /// instead of making a new function for each change
357 Future<void> _changeDefaultNode({
lib/view_model/send/send_view_model.dart
+2 -1
@@ -26,7 +26,6 @@ import 'package:cw_core/transaction_priority.dart';
26 import 'package:cw_core/unspent_coin_type.dart';
27 import 'package:cake_wallet/view_model/send/output.dart';
28 import 'package:cake_wallet/view_model/send/send_template_view_model.dart';
29 -import 'package:cw_core/utils/print_verbose.dart';
29 import 'package:cw_solana/solana_exceptions.dart';
30 import 'package:flutter/material.dart';
31 import 'package:hive/hive.dart';
@@ -100,6 +99,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
99
100 outputs
101 .add(Output(wallet, _settingsStore, _fiatConversationStore, () => selectedCryptoCurrency));
102 +
103 + unspentCoinsListViewModel.initialSetup();
104 }
105
106 @observable
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.18.2"
19 -MONERO_COM_BUILD_NUMBER=108
18 +MONERO_COM_VERSION="1.19.0"
19 +MONERO_COM_BUILD_NUMBER=109
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.21.2"
26 -CAKEWALLET_BUILD_NUMBER=239
25 +CAKEWALLET_VERSION="4.22.0"
26 +CAKEWALLET_BUILD_NUMBER=240
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.18.2"
17 -MONERO_COM_BUILD_NUMBER=105
16 +MONERO_COM_VERSION="1.19.0"
17 +MONERO_COM_BUILD_NUMBER=106
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.21.2"
22 -CAKEWALLET_BUILD_NUMBER=284
21 +CAKEWALLET_VERSION="4.22.0"
22 +CAKEWALLET_BUILD_NUMBER=287
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.11.2"
18 -CAKEWALLET_BUILD_NUMBER=40
17 +CAKEWALLET_VERSION="1.12.0"
18 +CAKEWALLET_BUILD_NUMBER=41
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.8.1"
20 -MONERO_COM_BUILD_NUMBER=37
19 +MONERO_COM_VERSION="1.9.0"
20 +MONERO_COM_BUILD_NUMBER=38
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="1.14.2"
25 -CAKEWALLET_BUILD_NUMBER=98
24 +CAKEWALLET_VERSION="1.15.0"
25 +CAKEWALLET_BUILD_NUMBER=99
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.2.1"
2 +#define MyAppVersion "0.3.0"
3 #define MyAppPublisher "Cake Labs LLC"
4 #define MyAppURL "https://cakewallet.com/"
5 #define MyAppExeName "CakeWallet.exe"