v4.26.0 Release Candidate (#2191)

* v4.26.0 Release Candidate

* Fix Wownero Creation issue

* Add KES fiat currency
This commit is contained in:
Omar Hatem 2025-04-12 03:23:41 +02:00 committed by GitHub
parent a7376c3225
commit ce12f517f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 84 additions and 31 deletions

View file

@ -1,3 +1,6 @@
UI/UX enhancements Monero 12-word seed support (Wallet Groups support as well)
Performance improvements Integrate DFX's OpenCryptoPay
Exchange flow enhancements
Hardware Wallets flow enhancements
Minor UI enhancements
Bug fixes Bug fixes

View file

@ -1,4 +1,6 @@
New App Logo Monero 12-word seed support (Wallet Groups support as well)
UI/UX enhancements Integrate DFX's OpenCryptoPay
Performance improvements Exchange flow enhancements
Hardware Wallets flow enhancements
Minor UI enhancements
Bug fixes Bug fixes

View file

@ -9,8 +9,50 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
static List<FiatCurrency> get all => _all.values.toList(); static List<FiatCurrency> get all => _all.values.toList();
static List<FiatCurrency> get currenciesAvailableToBuyWith => static List<FiatCurrency> get currenciesAvailableToBuyWith => [
[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,]; 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,
kes,
];
static const amd = FiatCurrency(symbol: 'AMD', countryCode: "arm", fullName: "Armenian Dram"); static const amd = FiatCurrency(symbol: 'AMD', countryCode: "arm", fullName: "Armenian Dram");
static const ars = FiatCurrency(symbol: 'ARS', countryCode: "arg", fullName: "Argentine Peso"); static const ars = FiatCurrency(symbol: 'ARS', countryCode: "arg", fullName: "Argentine Peso");
@ -62,6 +104,7 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
static const vnd = FiatCurrency(symbol: 'VND', countryCode: "vnm", fullName: "Vietnamese Dong đồng"); static const vnd = FiatCurrency(symbol: 'VND', countryCode: "vnm", fullName: "Vietnamese Dong đồng");
static const zar = FiatCurrency(symbol: 'ZAR', countryCode: "saf", fullName: "South African Rand"); static const zar = FiatCurrency(symbol: 'ZAR', countryCode: "saf", fullName: "South African Rand");
static const tur = FiatCurrency(symbol: 'TRY', countryCode: "tur", fullName: "Turkish Lira"); static const tur = FiatCurrency(symbol: 'TRY', countryCode: "tur", fullName: "Turkish Lira");
static const kes = FiatCurrency(symbol: 'KES', countryCode: "ken", fullName: "Kenyan Shillings");
static final _all = { static final _all = {
FiatCurrency.amd.raw: FiatCurrency.amd, FiatCurrency.amd.raw: FiatCurrency.amd,
@ -114,6 +157,7 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
FiatCurrency.vnd.raw: FiatCurrency.vnd, FiatCurrency.vnd.raw: FiatCurrency.vnd,
FiatCurrency.zar.raw: FiatCurrency.zar, FiatCurrency.zar.raw: FiatCurrency.zar,
FiatCurrency.tur.raw: FiatCurrency.tur, FiatCurrency.tur.raw: FiatCurrency.tur,
FiatCurrency.kes.raw: FiatCurrency.kes,
}; };
static FiatCurrency deserialize({required String raw}) => _all[raw] ?? FiatCurrency.usd; static FiatCurrency deserialize({required String raw}) => _all[raw] ?? FiatCurrency.usd;
@ -123,13 +167,13 @@ class FiatCurrency extends EnumerableItem<String> with Serializable<String> impl
@override @override
int get hashCode => raw.hashCode ^ title.hashCode; int get hashCode => raw.hashCode ^ title.hashCode;
@override @override
String get name => raw; String get name => raw;
@override @override
String? get tag => null; String? get tag => null;
@override @override
String get iconPath => "assets/images/flags/$countryCode.png"; String get iconPath => "assets/images/flags/$countryCode.png";
} }

View file

@ -21,6 +21,7 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/seed_settings_view_model.dart'; import 'package:cake_wallet/view_model/seed_settings_view_model.dart';
import 'package:cake_wallet/view_model/wallet_new_vm.dart'; import 'package:cake_wallet/view_model/wallet_new_vm.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart'; import 'package:mobx/mobx.dart';
@ -102,8 +103,8 @@ class _WalletNameFormState extends State<WalletNameForm> {
_stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async { _stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async {
if (state is ExecutedSuccessfullyState) { if (state is ExecutedSuccessfullyState) {
if (widget.isChildWallet) { if (widget.isChildWallet) {
Navigator.of(navigatorKey.currentContext ?? context) Navigator.of(navigatorKey.currentContext ?? context).pushNamed(
.pushNamed(Routes.walletGroupExistingSeedDescriptionPage, Routes.walletGroupExistingSeedDescriptionPage,
arguments: _walletNewVM.seedPhraseWordsLength); arguments: _walletNewVM.seedPhraseWordsLength);
} else { } else {
Navigator.of(navigatorKey.currentContext ?? context) Navigator.of(navigatorKey.currentContext ?? context)
@ -317,7 +318,11 @@ class _WalletNameFormState extends State<WalletNameForm> {
await showPopUp<void>( await showPopUp<void>(
context: context, context: context,
builder: (_) => Picker( builder: (_) => Picker(
items: MoneroSeedType.all, items: MoneroSeedType.all
.where((e) => // exclude bip39 in case of Wownero
widget._walletNewVM.type != WalletType.wownero ||
e.raw != MoneroSeedType.bip39.raw)
.toList(),
selectedAtIndex: isPolyseed ? 1 : 0, selectedAtIndex: isPolyseed ? 1 : 0,
onItemSelected: _setSeedType, onItemSelected: _setSeedType,
isSeparated: false, isSeparated: false,
@ -402,8 +407,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
await _walletNewVM.create( await _walletNewVM.create(
options: _walletNewVM.hasLanguageSelector options: _walletNewVM.hasLanguageSelector
? [ ? [
_languageSelectorKey.currentState?.selected ?? _languageSelectorKey.currentState?.selected ?? defaultSeedLanguage,
defaultSeedLanguage,
widget._seedSettingsViewModel.moneroSeedType widget._seedSettingsViewModel.moneroSeedType
] ]
: null); : null);

View file

@ -161,7 +161,7 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store {
return wownero!.createWowneroNewWalletCredentials( return wownero!.createWowneroNewWalletCredentials(
name: name, name: name,
language: options!.first as String, language: options!.first as String,
isPolyseed: options.last as bool, isPolyseed: (options.last as MoneroSeedType).raw == 1,
password: walletPassword, password: walletPassword,
passphrase: passphrase, passphrase: passphrase,
); );

View file

@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET)
APP_ANDROID_TYPE=$1 APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="4.25.0" MONERO_COM_VERSION="4.26.0"
MONERO_COM_BUILD_NUMBER=118 MONERO_COM_BUILD_NUMBER=119
MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_PACKAGE="com.monero.app"
MONERO_COM_SCHEME="monero.com" MONERO_COM_SCHEME="monero.com"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.25.0" CAKEWALLET_VERSION="4.26.0"
CAKEWALLET_BUILD_NUMBER=256 CAKEWALLET_BUILD_NUMBER=257
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
CAKEWALLET_SCHEME="cakewallet" CAKEWALLET_SCHEME="cakewallet"

View file

@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET)
APP_IOS_TYPE=$1 APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="4.25.0" MONERO_COM_VERSION="4.26.0"
MONERO_COM_BUILD_NUMBER=115 MONERO_COM_BUILD_NUMBER=116
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.25.0" CAKEWALLET_VERSION="4.26.0"
CAKEWALLET_BUILD_NUMBER=310 CAKEWALLET_BUILD_NUMBER=311
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"

View file

@ -14,8 +14,8 @@ if [ -n "$1" ]; then
fi fi
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.25.0" CAKEWALLET_VERSION="4.26.0"
CAKEWALLET_BUILD_NUMBER=51 CAKEWALLET_BUILD_NUMBER=52
if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then
echo "Wrong app type." echo "Wrong app type."

View file

@ -16,13 +16,13 @@ if [ -n "$1" ]; then
fi fi
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="4.25.0" MONERO_COM_VERSION="4.26.0"
MONERO_COM_BUILD_NUMBER=47 MONERO_COM_BUILD_NUMBER=48
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.25.0" CAKEWALLET_VERSION="4.26.0"
CAKEWALLET_BUILD_NUMBER=109 CAKEWALLET_BUILD_NUMBER=110
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then

View file

@ -1,5 +1,5 @@
#define MyAppName "Cake Wallet" #define MyAppName "Cake Wallet"
#define MyAppVersion "4.25.0" #define MyAppVersion "4.26.0"
#define MyAppPublisher "Cake Labs LLC" #define MyAppPublisher "Cake Labs LLC"
#define MyAppURL "https://cakewallet.com/" #define MyAppURL "https://cakewallet.com/"
#define MyAppExeName "CakeWallet.exe" #define MyAppExeName "CakeWallet.exe"