diff --git a/assets/images/monerocom_logo.svg b/assets/images/monerocom_logo.svg new file mode 100644 index 000000000..76c8be604 --- /dev/null +++ b/assets/images/monerocom_logo.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/new-ui/changelog/text/changelog_en.json b/assets/new-ui/changelog/text/changelog_en.json index 7beb53769..e7fa347b1 100644 --- a/assets/new-ui/changelog/text/changelog_en.json +++ b/assets/new-ui/changelog/text/changelog_en.json @@ -1,10 +1,18 @@ [ { - "title": "Monero improvements", - "description": "Sync progress keeps moving while your wallet warms up, so you always know where it stands" + "title": "Robinhood Chain", + "description": "Create Robinhood Chain wallets to send, receive and swap, with USDG and more tokens built in" }, { - "title": "Bug fixes", - "description": "Contact syncing, node selection, Cake Pay sign-in and more, all squashed" + "title": "Price Charts", + "description": "A new Charts tab to keep an eye on the prices of your assets" + }, + { + "title": "Bitcoin Accounts & Faster Sync", + "description": "Split your Bitcoin wallet into multiple accounts, and get up to date faster while history loads in the background" + }, + { + "title": "Bug fixes & improvements", + "description": "Lightning amounts in sats, more Tor nodes, Monero core update, smoother Bitcoin wallets and more" } -] +] \ No newline at end of file diff --git a/assets/new-ui/changelog/text/monerocom_changelog_en.json b/assets/new-ui/changelog/text/monerocom_changelog_en.json new file mode 100644 index 000000000..90292d3d3 --- /dev/null +++ b/assets/new-ui/changelog/text/monerocom_changelog_en.json @@ -0,0 +1,14 @@ +[ + { + "title": "Safer sends", + "description": "Payments that would be split into several transactions are now stopped before sending" + }, + { + "title": "Price Charts", + "description": "A new Charts tab to keep an eye on prices" + }, + { + "title": "Bug fixes & improvements", + "description": "New Cake Tor node, restore height filled in on Rescan, and more" + } +] diff --git a/cw_core/lib/db/sqlite.dart b/cw_core/lib/db/sqlite.dart index f1ba1d103..77c38b599 100644 --- a/cw_core/lib/db/sqlite.dart +++ b/cw_core/lib/db/sqlite.dart @@ -66,7 +66,7 @@ Future _initDb({String? pathOverride}) async { await db?.close(); db = await openDatabase( dbFile.path, - version: 15, + version: 14, onUpgrade: (db, oldVersion, newVersion) async { printV("migrating: $oldVersion, $newVersion"); if (oldVersion <= 1) { @@ -193,9 +193,6 @@ CREATE TABLE IF NOT EXISTS BalanceCardStyleSettings ( await _migrateBitcoinCardStylesForAccounts(db); } - if(oldVersion <= 14) { - await _createDeprecatedWalletSeedTable(db); - } }, onCreate: (Database db, int version) async { await db.execute(''' @@ -302,8 +299,6 @@ CREATE TABLE BalanceCardStyleSettings ( await _createTronTokenTable(db); await _createImportedNFTTable(db); await _createWalletInfoAccountTable(db); - await _createDeprecatedWalletSeedTable(db); - }, ); } @@ -594,15 +589,3 @@ isDefault BOOLEAN DEFAULT FALSE ); """); } - - -Future _createDeprecatedWalletSeedTable(Database db) async { - await db.execute(""" -CREATE TABLE DeprecatedWalletSeeds ( -walletInfoId INTEGER PRIMARY KEY, -seed TEXT NOT NULL, -passphrase TEXT NOT NULL, -FOREIGN KEY (walletInfoId) REFERENCES WalletInfo(walletInfoId) -); -"""); -} diff --git a/cw_evm/lib/clients/evm_chain_client.dart b/cw_evm/lib/clients/evm_chain_client.dart index 1d5651294..02641a00a 100644 --- a/cw_evm/lib/clients/evm_chain_client.dart +++ b/cw_evm/lib/clients/evm_chain_client.dart @@ -192,7 +192,7 @@ class EVMChainClient { } else if (nodeHost.endsWith(".g.alchemy.com") && (pathSegments.isEmpty || (pathSegments.length == 1 && pathSegments.first == "v2"))) { isModifiedNodeUri = true; - String alchemyApiKey = secrets.alchemyApiKey; + String alchemyApiKey = ""; if (alchemyApiKey.isEmpty) { printV("Alchemy API key is empty, cannot connect to ${node.uriRaw}"); diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index 2f82f5726..a3638dff8 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -26,7 +26,7 @@ dependencies: monero: git: url: https://github.com/mrcyjanek/monero_c.git - ref: cd4fe366cc8d3c188c91de279f43b29c0e044b15 + ref: 33671871de3d51696b66ffb3bd94f744e26974f6 path: impls/monero.dart mutex: ^3.1.0 ledger_flutter_plus: ^1.4.1 diff --git a/cw_wownero/pubspec.yaml b/cw_wownero/pubspec.yaml index da8f90997..354bfddd8 100644 --- a/cw_wownero/pubspec.yaml +++ b/cw_wownero/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: monero: git: url: https://github.com/mrcyjanek/monero_c.git - ref: cd4fe366cc8d3c188c91de279f43b29c0e044b15 + ref: 33671871de3d51696b66ffb3bd94f744e26974f6 path: impls/monero.dart mutex: ^3.1.0 diff --git a/cw_zano/pubspec.yaml b/cw_zano/pubspec.yaml index 63711349c..c43a9155a 100644 --- a/cw_zano/pubspec.yaml +++ b/cw_zano/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: monero: git: url: https://github.com/mrcyjanek/monero_c.git - ref: cd4fe366cc8d3c188c91de279f43b29c0e044b15 + ref: 33671871de3d51696b66ffb3bd94f744e26974f6 path: impls/monero.dart dev_dependencies: flutter_test: diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index a16770b37..a9687c824 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -924,7 +924,7 @@ class CWBitcoin extends Bitcoin { } @override - ElectrumBalance balanceForAccount(Object wallet, int accountIndex) { + Balance balanceForAccount(Object wallet, int accountIndex) { final bitcoinWallet = wallet as ElectrumWallet; return bitcoinWallet.balanceForAccount(accountIndex); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 4f1225ca4..bce99de1b 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -2,10 +2,7 @@ import 'dart:convert'; import 'dart:io' show Directory, File, Platform; import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import "package:cake_wallet/core/key_service.dart"; import 'package:cake_wallet/core/secure_storage.dart'; -import "package:cake_wallet/decred/decred.dart"; -import "package:cake_wallet/di.dart"; import 'package:cake_wallet/entities/balance_display_mode.dart'; import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; @@ -17,9 +14,6 @@ import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/new-ui/model/charts/charts_asset.dart'; -import "package:cake_wallet/store/settings_store.dart"; -import "package:cake_wallet/zano/zano.dart"; -import "package:cw_core/cake_hive.dart"; import 'package:cake_wallet/wownero/wownero.dart'; import 'package:collection/collection.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -29,10 +23,8 @@ import 'package:cw_core/node_list.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/root_dir.dart'; import 'package:cw_core/spl_token.dart'; -import "package:cw_core/unspent_coins_info.dart"; import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_core/wallet_info.dart'; -import "package:cw_core/wallet_service.dart"; import 'package:cw_core/wallet_type.dart'; import 'package:encrypt/encrypt.dart' as encrypt; import 'package:hive/hive.dart'; diff --git a/lib/exchange/provider/swaptrade_exchange_provider.dart b/lib/exchange/provider/swaptrade_exchange_provider.dart index d67dfde1a..5c3ffc0f9 100644 --- a/lib/exchange/provider/swaptrade_exchange_provider.dart +++ b/lib/exchange/provider/swaptrade_exchange_provider.dart @@ -415,13 +415,26 @@ class SwapTradeExchangeProvider extends ExchangeProvider { bool _isPairSupported(CryptoCurrency from, CryptoCurrency to) => _networkFor(from) != null && _networkFor(to) != null; - String? _networkFor(CryptoCurrency currency) => - switch ((currency.title.toUpperCase(), currency.tag?.toUpperCase())) { - ("BNB", "BSC") => "BNB_BSC", - ("USDT", "ETH") => "USDT_ERC20", - ("USDT", "TRX") => "TRX_USDT_S2UZ", - ("USDT", "BSC") => "USDT_BSC", - (final title, null) => title, - _ => null, - }; + String? _networkFor(CryptoCurrency currency) { + final network = switch (currency) { + CryptoCurrency.eth => 'ETH', + CryptoCurrency.bnb => 'BNB_BSC', + CryptoCurrency.baseEth => 'BASE', + CryptoCurrency.robEth => 'ROB', + CryptoCurrency.arb => 'ARB', + CryptoCurrency.arbEth => 'ARB', + CryptoCurrency.usdterc20 => 'USDT_ERC20', + CryptoCurrency.usdttrc20 => 'TRX_USDT_S2UZ', + CryptoCurrency.usdtbsc => 'USDT_BSC', + CryptoCurrency.sol => 'SOL', + CryptoCurrency.btc => 'BTC', + CryptoCurrency.xmr => 'XMR', + CryptoCurrency.ltc => 'LTC', + CryptoCurrency.ada => 'ADA', + CryptoCurrency.bch => 'BCH', + CryptoCurrency.zec => 'ZEC', + _ => currency.tag?.toUpperCase(), + }; + return network; + } } diff --git a/lib/new-ui/widgets/changelog_modal.dart b/lib/new-ui/widgets/changelog_modal.dart index f59ad90d1..5b5740c30 100644 --- a/lib/new-ui/widgets/changelog_modal.dart +++ b/lib/new-ui/widgets/changelog_modal.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart'; import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart'; import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; +import 'package:cake_wallet/wallet_type_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -40,15 +41,16 @@ class _ChangelogModalState extends State { } void loadChangelog() async { + final fileName = isMoneroOnly ? "monerocom_changelog" : "changelog"; String lang = WidgetsBinding.instance.platformDispatcher.locale.languageCode; if (lang == "und" || lang.isEmpty || - !(await File("$changelogTextLocation/changelog_$lang.json").exists())) { + !(await File("$changelogTextLocation/${fileName}_$lang.json").exists())) { lang = "en"; } final List changelog = - jsonDecode(await rootBundle.loadString("$changelogTextLocation/changelog_$lang.json")) + jsonDecode(await rootBundle.loadString("$changelogTextLocation/${fileName}_$lang.json")) as List; for (final item in changelog) { @@ -146,7 +148,9 @@ class VersionNumberHeader extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ CakeImageWidget( - imageUrl: "assets/images/cake_logo_dark.svg", + imageUrl: isMoneroOnly + ? "assets/images/monerocom_logo.svg" + : "assets/images/cake_logo_dark.svg", height: 32, width: 32, colorFilter: diff --git a/lib/utils/feature_flag.dart b/lib/utils/feature_flag.dart index 820fe4ff9..29916385a 100644 --- a/lib/utils/feature_flag.dart +++ b/lib/utils/feature_flag.dart @@ -6,7 +6,7 @@ class FeatureFlag { static const bool isCakePayEnabled = false; static const bool isCakePayPurchaseSimulationEnabled = true; static const bool isCakePayRedemptionFlowEnabled = false; - static const bool isExolixEnabled = true; + static const bool isExolixEnabled = false; static const bool isBackgroundSyncEnabled = true; static bool get isInAppTorEnabled => CakeTor.instance is! CakeTorDisabled; static const int verificationWordsCount = kDebugMode || kProfileMode ? 0 : 2; diff --git a/pubspec_overrides.yaml b/pubspec_overrides.yaml index 8b8eea73a..bcc14dac7 100644 --- a/pubspec_overrides.yaml +++ b/pubspec_overrides.yaml @@ -960,7 +960,7 @@ dependency_overrides: monero: git: url: https://github.com/mrcyjanek/monero_c.git - ref: cd4fe366cc8d3c188c91de279f43b29c0e044b15 + ref: 33671871de3d51696b66ffb3bd94f744e26974f6 path: ./impls/monero.dart msgpack_dart: git: diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 541637659..7d8c7881d 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -14,14 +14,14 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="6.4.6" +MONERO_COM_VERSION="6.5.0" MONERO_COM_BUILD_NUMBER=4170 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.6" +CAKEWALLET_VERSION="6.5.0" CAKEWALLET_BUILD_NUMBER=4426 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" diff --git a/scripts/android/docker/Dockerfile.monero b/scripts/android/docker/Dockerfile.monero index b95081871..4effd9944 100644 --- a/scripts/android/docker/Dockerfile.monero +++ b/scripts/android/docker/Dockerfile.monero @@ -1,10 +1,19 @@ ARG BASE_IMAGE FROM --platform=linux/amd64 ${BASE_IMAGE} AS build -RUN mkdir -p /w/scripts/android COPY scripts/functions.sh /w/scripts/functions.sh COPY scripts/prepare_moneroc.sh /w/scripts/prepare_moneroc.sh COPY scripts/android/build_monero_all.sh /w/scripts/android/build_monero_all.sh + +ARG UID=10001 +ARG GID=10001 +ARG USER=builder +RUN groupadd -g "$GID" "$USER" && \ + useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER" + +RUN sudo chown $UID:$GID -R /w /root +USER builder + ARG COIN ARG TARGET ENV COIN=$COIN diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 1fba2483c..af438918e 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -12,12 +12,12 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="6.4.6" +MONERO_COM_VERSION="6.5.0" MONERO_COM_BUILD_NUMBER=177 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.6" +CAKEWALLET_VERSION="6.5.0" CAKEWALLET_BUILD_NUMBER=446 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" diff --git a/scripts/linux/app_env.sh b/scripts/linux/app_env.sh index feb3adcbf..5b452fdb3 100755 --- a/scripts/linux/app_env.sh +++ b/scripts/linux/app_env.sh @@ -14,7 +14,7 @@ if [ -n "$1" ]; then fi CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.6" +CAKEWALLET_VERSION="6.5.0" CAKEWALLET_BUILD_NUMBER=83 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 8e1952a38..96d9102f7 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,12 +16,12 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="6.4.6" +MONERO_COM_VERSION="6.5.0" MONERO_COM_BUILD_NUMBER=86 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="6.4.6" +CAKEWALLET_VERSION="6.5.0" CAKEWALLET_BUILD_NUMBER=154 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" diff --git a/scripts/prepare_moneroc.sh b/scripts/prepare_moneroc.sh index f4434ab4c..ab625aa28 100755 --- a/scripts/prepare_moneroc.sh +++ b/scripts/prepare_moneroc.sh @@ -16,7 +16,7 @@ fi # NOTE: Make sure to update monero_c prebuilds link in workflow files # https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC2/release-bundle.zip git fetch -a -git checkout cd4fe366cc8d3c188c91de279f43b29c0e044b15 +git checkout 33671871de3d51696b66ffb3bd94f744e26974f6 git reset --hard git submodule update --init --force --recursive diff --git a/scripts/windows/build_exe_installer.iss b/scripts/windows/build_exe_installer.iss index 4343c799d..af39c1727 100644 --- a/scripts/windows/build_exe_installer.iss +++ b/scripts/windows/build_exe_installer.iss @@ -1,5 +1,5 @@ #define MyAppName "Cake Wallet" -#define MyAppVersion "6.4.1" +#define MyAppVersion "6.5.0" #define MyAppPublisher "Cake Labs LLC" #define MyAppURL "https://cakewallet.com/" #define MyAppExeName "CakeWallet.exe" diff --git a/tool/configure.dart b/tool/configure.dart index 56a6660b0..05cef5b7c 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -106,7 +106,6 @@ import 'dart:typed_data'; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:cw_bitcoin/electrum_balance.dart'; import "package:cw_core/account.dart"; import 'package:cw_core/amount/money.dart'; import 'package:cw_core/hardware/hardware_account_data.dart'; @@ -124,6 +123,7 @@ import 'package:cw_core/unspent_transaction_output.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; +import "package:cw_core/balance.dart"; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_core/utils/print_verbose.dart'; @@ -164,6 +164,7 @@ import 'package:cw_bitcoin/hardware/litecoin_ledger_service.dart'; import 'package:cw_bitcoin/hardware/bitbox_service.dart'; import 'package:cw_bitcoin/hardware/litecoin_trezor_service.dart'; import 'package:cw_bitcoin/hardware/trezor_service.dart'; +import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:mobx/mobx.dart'; import "package:breez_sdk_spark_flutter/src/rust/errors.dart"; """; @@ -307,7 +308,7 @@ abstract class Bitcoin { Future getLightningInvoice(Object wallet, BigInt amount); String? getBreezSdkError(Object exception); Future getCurrentAccount(Object wallet); - ElectrumBalance balanceForAccount(Object wallet, int accountIndex); + Balance balanceForAccount(Object wallet, int accountIndex); Map accountBalancesSnapshot(Object wallet); Future setCurrentAccount(Object wallet, int accountIndex); List getCurrentAccountBitcoinTransactions(Object wallet);