v4.26.0 Release Candidate (#2191)

* v4.26.0 Release Candidate * Fix Wownero Creation issue * Add KES fiat currency

Omar Hatem committed Apr 12, 2025 at 03:23 UTC ce12f517f40ce8ffd21681e96b5ac3a5a222d11d
10 files changed +84 -31
assets/text/Monerocom_Release_Notes.txt
+5 -2
@@ -1,3 +1,6 @@
1 -UI/UX enhancements
2 -Performance improvements
1 +Monero 12-word seed support (Wallet Groups support as well)
2 +Integrate DFX's OpenCryptoPay
3 +Exchange flow enhancements
4 +Hardware Wallets flow enhancements
5 +Minor UI enhancements
6 Bug fixes
\ No newline at end of file
assets/text/Release_Notes.txt
+5 -3
@@ -1,4 +1,6 @@
1 -New App Logo
2 -UI/UX enhancements
3 -Performance improvements
1 +Monero 12-word seed support (Wallet Groups support as well)
2 +Integrate DFX's OpenCryptoPay
3 +Exchange flow enhancements
4 +Hardware Wallets flow enhancements
5 +Minor UI enhancements
6 Bug fixes
\ No newline at end of file
lib/entities/fiat_currency.dart
+49 -5
@@ -9,8 +9,50 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
9
10 static List<FiatCurrency> get all => _all.values.toList();
11
12 - static List<FiatCurrency> get currenciesAvailableToBuyWith =>
13 - [amd, aud, bgn, brl, cad, chf, clp, cop, czk, dkk, egp, eur, gbp, gtq, hkd, hrk, huf, idr, ils, inr, isk, jpy, krw, mad, mxn, myr, ngn, nok, nzd, php, pkr, pln, ron, sek, sgd, thb, twd, usd, vnd, zar, tur,];
12 + static List<FiatCurrency> get currenciesAvailableToBuyWith => [
13 + amd,
14 + aud,
15 + bgn,
16 + brl,
17 + cad,
18 + chf,
19 + clp,
20 + cop,
21 + czk,
22 + dkk,
23 + egp,
24 + eur,
25 + gbp,
26 + gtq,
27 + hkd,
28 + hrk,
29 + huf,
30 + idr,
31 + ils,
32 + inr,
33 + isk,
34 + jpy,
35 + krw,
36 + mad,
37 + mxn,
38 + myr,
39 + ngn,
40 + nok,
41 + nzd,
42 + php,
43 + pkr,
44 + pln,
45 + ron,
46 + sek,
47 + sgd,
48 + thb,
49 + twd,
50 + usd,
51 + vnd,
52 + zar,
53 + tur,
54 + kes,
55 + ];
56
57 static const amd = FiatCurrency(symbol: 'AMD', countryCode: "arm", fullName: "Armenian Dram");
58 static const ars = FiatCurrency(symbol: 'ARS', countryCode: "arg", fullName: "Argentine Peso");
@@ -62,6 +104,7 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
104 static const vnd = FiatCurrency(symbol: 'VND', countryCode: "vnm", fullName: "Vietnamese Dong đồng");
105 static const zar = FiatCurrency(symbol: 'ZAR', countryCode: "saf", fullName: "South African Rand");
106 static const tur = FiatCurrency(symbol: 'TRY', countryCode: "tur", fullName: "Turkish Lira");
107 + static const kes = FiatCurrency(symbol: 'KES', countryCode: "ken", fullName: "Kenyan Shillings");
108
109 static final _all = {
110 FiatCurrency.amd.raw: FiatCurrency.amd,
@@ -114,6 +157,7 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
157 FiatCurrency.vnd.raw: FiatCurrency.vnd,
158 FiatCurrency.zar.raw: FiatCurrency.zar,
159 FiatCurrency.tur.raw: FiatCurrency.tur,
160 + FiatCurrency.kes.raw: FiatCurrency.kes,
161 };
162
163 static FiatCurrency deserialize({required String raw}) => _all[raw] ?? FiatCurrency.usd;
@@ -123,13 +167,13 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
167
168 @override
169 int get hashCode => raw.hashCode ^ title.hashCode;
126 -
170 +
171 @override
172 String get name => raw;
129 -
173 +
174 @override
175 String? get tag => null;
176
177 @override
134 - String get iconPath => "assets/images/flags/$countryCode.png";
178 + String get iconPath => "assets/images/flags/$countryCode.png";
179 }
lib/src/screens/new_wallet/new_wallet_page.dart
+9 -5
@@ -21,6 +21,7 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart';
21 import 'package:cake_wallet/utils/show_pop_up.dart';
22 import 'package:cake_wallet/view_model/seed_settings_view_model.dart';
23 import 'package:cake_wallet/view_model/wallet_new_vm.dart';
24 +import 'package:cw_core/wallet_type.dart';
25 import 'package:flutter/material.dart';
26 import 'package:flutter_mobx/flutter_mobx.dart';
27 import 'package:mobx/mobx.dart';
@@ -102,8 +103,8 @@ class _WalletNameFormState extends State<WalletNameForm> {
103 _stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async {
104 if (state is ExecutedSuccessfullyState) {
105 if (widget.isChildWallet) {
105 - Navigator.of(navigatorKey.currentContext ?? context)
106 - .pushNamed(Routes.walletGroupExistingSeedDescriptionPage,
106 + Navigator.of(navigatorKey.currentContext ?? context).pushNamed(
107 + Routes.walletGroupExistingSeedDescriptionPage,
108 arguments: _walletNewVM.seedPhraseWordsLength);
109 } else {
110 Navigator.of(navigatorKey.currentContext ?? context)
@@ -317,7 +318,11 @@ class _WalletNameFormState extends State<WalletNameForm> {
318 await showPopUp<void>(
319 context: context,
320 builder: (_) => Picker(
320 - items: MoneroSeedType.all,
321 + items: MoneroSeedType.all
322 + .where((e) => // exclude bip39 in case of Wownero
323 + widget._walletNewVM.type != WalletType.wownero ||
324 + e.raw != MoneroSeedType.bip39.raw)
325 + .toList(),
326 selectedAtIndex: isPolyseed ? 1 : 0,
327 onItemSelected: _setSeedType,
328 isSeparated: false,
@@ -402,8 +407,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
407 await _walletNewVM.create(
408 options: _walletNewVM.hasLanguageSelector
409 ? [
405 - _languageSelectorKey.currentState?.selected ??
406 - defaultSeedLanguage,
410 + _languageSelectorKey.currentState?.selected ?? defaultSeedLanguage,
411 widget._seedSettingsViewModel.moneroSeedType
412 ]
413 : null);
lib/view_model/wallet_new_vm.dart
+1 -1
@@ -161,7 +161,7 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store {
161 return wownero!.createWowneroNewWalletCredentials(
162 name: name,
163 language: options!.first as String,
164 - isPolyseed: options.last as bool,
164 + isPolyseed: (options.last as MoneroSeedType).raw == 1,
165 password: walletPassword,
166 passphrase: passphrase,
167 );
scripts/android/app_env.sh
+4 -4
@@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET)
14 APP_ANDROID_TYPE=$1
15
16 MONERO_COM_NAME="Monero.com"
17 -MONERO_COM_VERSION="4.25.0"
18 -MONERO_COM_BUILD_NUMBER=118
17 +MONERO_COM_VERSION="4.26.0"
18 +MONERO_COM_BUILD_NUMBER=119
19 MONERO_COM_BUNDLE_ID="com.monero.app"
20 MONERO_COM_PACKAGE="com.monero.app"
21 MONERO_COM_SCHEME="monero.com"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="4.25.0"
25 -CAKEWALLET_BUILD_NUMBER=256
24 +CAKEWALLET_VERSION="4.26.0"
25 +CAKEWALLET_BUILD_NUMBER=257
26 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
27 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
28 CAKEWALLET_SCHEME="cakewallet"
scripts/ios/app_env.sh
+4 -4
@@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET)
12 APP_IOS_TYPE=$1
13
14 MONERO_COM_NAME="Monero.com"
15 -MONERO_COM_VERSION="4.25.0"
16 -MONERO_COM_BUILD_NUMBER=115
15 +MONERO_COM_VERSION="4.26.0"
16 +MONERO_COM_BUILD_NUMBER=116
17 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
18
19 CAKEWALLET_NAME="Cake Wallet"
20 -CAKEWALLET_VERSION="4.25.0"
21 -CAKEWALLET_BUILD_NUMBER=310
20 +CAKEWALLET_VERSION="4.26.0"
21 +CAKEWALLET_BUILD_NUMBER=311
22 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
23
24
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="4.25.0"
18 -CAKEWALLET_BUILD_NUMBER=51
17 +CAKEWALLET_VERSION="4.26.0"
18 +CAKEWALLET_BUILD_NUMBER=52
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="4.25.0"
20 -MONERO_COM_BUILD_NUMBER=47
19 +MONERO_COM_VERSION="4.26.0"
20 +MONERO_COM_BUILD_NUMBER=48
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="4.25.0"
25 -CAKEWALLET_BUILD_NUMBER=109
24 +CAKEWALLET_VERSION="4.26.0"
25 +CAKEWALLET_BUILD_NUMBER=110
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 "4.25.0"
2 +#define MyAppVersion "4.26.0"
3 #define MyAppPublisher "Cake Labs LLC"
4 #define MyAppURL "https://cakewallet.com/"
5 #define MyAppExeName "CakeWallet.exe"