From 0aa563ead734f9ad7182e841a11ffa4bee1436d2 Mon Sep 17 00:00:00 2001 From: Omar Hatem <omarh.ismail1@gmail.com> Date: Tue, 25 Mar 2025 03:49:54 +0200 Subject: [PATCH] v4.24.0 (#2102) * - Add Decred Wallet - Remove Haven Wallet - Fix and Improve Solana Wallet - Improve app usability and user experience - User interface enhancements - Bug fixes * Release candidate feedback fixes * Release candidate feedback fixes * update release notes [skip ci] * fix iOS stupidity [skip ci] * minor fix * decred: Do not create log file. (#2106) (#2107) Co-authored-by: JoeGruffins <34998433+JoeGruffins@users.noreply.github.com> * fix Monero HWW * fix Monero view only wallet * fix background sync for hardware and viewonly wallets * check for status on correct wptr * minor fixes [skip ci] --------- Co-authored-by: JoeGruffins <34998433+JoeGruffins@users.noreply.github.com> Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net> --- assets/text/Monerocom_Release_Notes.txt | 6 +- assets/text/Release_Notes.txt | 9 +- cw_bitcoin/pubspec.lock | 26 ++--- cw_core/pubspec.lock | 50 +++++----- cw_decred/lib/api/libdcrwallet.dart | 20 ++-- cw_decred/lib/wallet.dart | 95 ++++++++++--------- cw_decred/lib/wallet_addresses.dart | 20 ++-- cw_decred/lib/wallet_service.dart | 9 +- cw_decred/pubspec.lock | 18 ++-- cw_monero/lib/api/wallet_manager.dart | 65 ++++--------- cw_monero/lib/monero_wallet.dart | 12 +-- cw_monero/pubspec.lock | 26 ++--- cw_nano/pubspec.lock | 26 ++--- cw_wownero/pubspec.lock | 26 ++--- cw_zano/pubspec.lock | 26 ++--- ios/Podfile.lock | 70 +++++++------- lib/monero/cw_monero.dart | 2 +- .../pages/balance/crypto_balance_widget.dart | 2 +- lib/src/screens/send/send_page.dart | 4 +- lib/src/screens/settings/privacy_page.dart | 2 +- .../dashboard/dashboard_view_model.dart | 5 +- .../node_create_or_edit_view_model.dart | 1 - macos/Podfile.lock | 8 -- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 1 + res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_hy.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_vi.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + scripts/android/app_env.sh | 8 +- scripts/android/build_decred.sh | 2 +- scripts/ios/app_env.sh | 8 +- scripts/ios/build_decred.sh | 2 +- scripts/linux/app_env.sh | 4 +- scripts/macos/app_config.sh | 2 +- scripts/macos/app_env.sh | 8 +- scripts/macos/build_decred.sh | 2 +- scripts/windows/build_exe_installer.iss | 2 +- 60 files changed, 304 insertions(+), 290 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index d1f91139b..5b2a9f873 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,3 +1,5 @@ -UI/UX enhancements -Stability improvements +Add background sync to Monero +Enhance Backup files +Improve app usability and user experience +User interface enhancements Bug fixes \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 0f8118b4e..1a5986bd4 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1 +1,8 @@ -Update for Zano's Hard fork \ No newline at end of file +Add background sync to Monero +Add Decred Wallet +Remove Haven Wallet +Fix and Improve Solana Wallet +Enhance Backup files +Improve app usability and user experience +User interface enhancements +Bug fixes \ No newline at end of file diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 1ad7b0c60..09870224c 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -129,18 +129,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: @@ -495,10 +495,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: "direct main" description: @@ -794,10 +794,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" quiver: dependency: transitive description: @@ -882,10 +882,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -1117,5 +1117,5 @@ packages: source: hosted version: "2.2.2" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index 4ba8df5c5..36bba72b6 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -34,10 +34,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -67,50 +67,50 @@ packages: dependency: transitive description: name: build - sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.1" build_config: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.13" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "7.3.2" built_collection: dependency: transitive description: @@ -212,10 +212,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" url: "https://pub.dev" source: hosted - version: "2.3.8" + version: "2.3.7" decimal: dependency: "direct main" description: @@ -342,10 +342,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: "direct main" description: @@ -599,10 +599,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" rational: dependency: transitive description: @@ -615,18 +615,18 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "2.0.1" sky_engine: dependency: transitive description: flutter @@ -809,5 +809,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_decred/lib/api/libdcrwallet.dart b/cw_decred/lib/api/libdcrwallet.dart index 6a26e64c6..b5e5bbe73 100644 --- a/cw_decred/lib/api/libdcrwallet.dart +++ b/cw_decred/lib/api/libdcrwallet.dart @@ -3,7 +3,6 @@ import 'dart:ffi'; import 'dart:io'; import 'dart:async'; import 'dart:isolate'; -import 'package:flutter/foundation.dart'; import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_decred/api/libdcrwallet_bindings.dart'; import 'package:cw_decred/api/util.dart'; @@ -79,10 +78,12 @@ class Libwallet { switch (method) { case "initlibdcrwallet": final logDir = args["logdir"] ?? ""; + final level = args["level"] ?? ""; final cLogDir = logDir.toCString(); + final cLevel = level.toCString(); executePayloadFn( - fn: () => dcrwalletApi.initialize(cLogDir), - ptrsToFree: [cLogDir], + fn: () => dcrwalletApi.initialize(cLogDir, cLevel), + ptrsToFree: [cLogDir, cLevel], ); break; case "createwallet": @@ -300,7 +301,7 @@ class Libwallet { break; case "shutdown": final name = args["name"] ?? ""; - final cName = name.toCString(); + // final cName = name.toCString(); executePayloadFn( fn: () => dcrwalletApi.shutdown(), ptrsToFree: [], @@ -326,8 +327,8 @@ class Libwallet { // initLibdcrwallet initializes libdcrwallet using the provided logDir and gets // it ready for use. This must be done before attempting to create, load or use - // a wallet. - Future<void> initLibdcrwallet(String logDir) async { + // a wallet. An empty string can be used to log to stdout and create no log files. + Future<void> initLibdcrwallet(String logDir, String level) async { if (_closed) throw StateError('Closed'); final completer = Completer<Object?>.sync(); final id = _idCounter++; @@ -335,6 +336,7 @@ class Libwallet { final req = { "method": "initlibdcrwallet", "logdir": logDir, + "level": level, }; _commands.send((id, req)); await completer.future; @@ -463,7 +465,11 @@ class Libwallet { }; _commands.send((id, req)); final res = await completer.future as PayloadResult; - return jsonDecode(res.payload); + try { + return jsonDecode(res.payload); + } catch (_) { + return {}; + } } Future<String> estimateFee(String walletName, int numBlocks) async { diff --git a/cw_decred/lib/wallet.dart b/cw_decred/lib/wallet.dart index 028ba6cda..db30ab373 100644 --- a/cw_decred/lib/wallet.dart +++ b/cw_decred/lib/wallet.dart @@ -380,7 +380,7 @@ abstract class DecredWalletBase totalAmt = totalIn; } else if (out.cryptoAmount != null) { final coins = double.parse(out.cryptoAmount!); - amt = (coins * 1e8).toInt(); + amt = (coins * 1e8).round(); } totalAmt += amt; final o = { @@ -415,7 +415,7 @@ abstract class DecredWalletBase }; final fee = decoded["fee"] ?? 0; if (sendAll) { - totalAmt = (totalAmt - fee).toInt(); + totalAmt = (totalAmt - fee).round(); } return DecredPendingTransaction( txid: decoded["txid"] ?? "", amount: totalAmt, fee: fee, rawHex: signedHex, send: send); @@ -475,36 +475,41 @@ abstract class DecredWalletBase } Future<Map<String, DecredTransactionInfo>> fetchFiveTransactions(int from) async { - final res = await _libwallet.listTransactions(walletInfo.name, from.toString(), "5"); - final decoded = json.decode(res); - var txs = <String, DecredTransactionInfo>{}; - for (final d in decoded) { - final txid = uniqueTxID(d["txid"] ?? "", d["vout"] ?? 0); - var direction = TransactionDirection.outgoing; - if (d["category"] == "receive") { - direction = TransactionDirection.incoming; + try { + final res = await _libwallet.listTransactions(walletInfo.name, from.toString(), "5"); + final decoded = json.decode(res); + var txs = <String, DecredTransactionInfo>{}; + for (final d in decoded) { + final txid = uniqueTxID(d["txid"] ?? "", d["vout"] ?? 0); + var direction = TransactionDirection.outgoing; + if (d["category"] == "receive") { + direction = TransactionDirection.incoming; + } + final amountDouble = d["amount"] ?? 0.0; + final amount = (amountDouble * 1e8).round().abs(); + final feeDouble = d["fee"] ?? 0.0; + final fee = (feeDouble * 1e8).round().abs(); + final confs = d["confirmations"] ?? 0; + final sendTime = d["time"] ?? 0; + final height = d["height"] ?? 0; + final txInfo = DecredTransactionInfo( + id: txid, + amount: amount, + fee: fee, + direction: direction, + isPending: confs == 0, + date: DateTime.fromMillisecondsSinceEpoch(sendTime * 1000, isUtc: false), + height: height, + confirmations: confs, + to: d["address"] ?? "", + ); + txs[txid] = txInfo; } - final amountDouble = d["amount"] ?? 0.0; - final amount = (amountDouble * 1e8).toInt().abs(); - final feeDouble = d["fee"] ?? 0.0; - final fee = (feeDouble * 1e8).toInt().abs(); - final confs = d["confirmations"] ?? 0; - final sendTime = d["time"] ?? 0; - final height = d["height"] ?? 0; - final txInfo = DecredTransactionInfo( - id: txid, - amount: amount, - fee: fee, - direction: direction, - isPending: confs == 0, - date: DateTime.fromMillisecondsSinceEpoch(sendTime * 1000, isUtc: false), - height: height, - confirmations: confs, - to: d["address"] ?? "", - ); - txs[txid] = txInfo; + return txs; + } catch (e) { + printV(e); + return {}; } - return txs; } // uniqueTxID combines the tx id and vout to create a unique id. @@ -612,21 +617,25 @@ abstract class DecredWalletBase } Future<void> fetchUnspents() async { - final res = await _libwallet.listUnspents(walletInfo.name); - final decoded = json.decode(res); - var unspents = <Unspent>[]; - for (final d in decoded) { - final spendable = d["spendable"] ?? false; - if (!spendable) { - continue; + try { + final res = await _libwallet.listUnspents(walletInfo.name); + final decoded = json.decode(res); + var unspents = <Unspent>[]; + for (final d in decoded) { + final spendable = d["spendable"] ?? false; + if (!spendable) { + continue; + } + final amountDouble = d["amount"] ?? 0.0; + final amount = (amountDouble * 1e8).round().abs(); + final utxo = Unspent(d["address"] ?? "", d["txid"] ?? "", amount, d["vout"] ?? 0, null); + utxo.isChange = d["ischange"] ?? false; + unspents.add(utxo); } - final amountDouble = d["amount"] ?? 0.0; - final amount = (amountDouble * 1e8).toInt().abs(); - final utxo = Unspent(d["address"] ?? "", d["txid"] ?? "", amount, d["vout"] ?? 0, null); - utxo.isChange = d["ischange"] ?? false; - unspents.add(utxo); + _unspents = unspents; + } catch (e) { + printV(e); } - _unspents = unspents; } List<Unspent> unspents() { diff --git a/cw_decred/lib/wallet_addresses.dart b/cw_decred/lib/wallet_addresses.dart index 10970b2d6..860a576d9 100644 --- a/cw_decred/lib/wallet_addresses.dart +++ b/cw_decred/lib/wallet_addresses.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'package:cw_core/utils/print_verbose.dart'; import 'package:mobx/mobx.dart'; import 'package:cw_core/address_info.dart'; @@ -103,13 +104,18 @@ abstract class DecredWalletAddressesBase extends WalletAddresses with Store { if (this.isEnabledAutoGenerateSubaddress) { nUnused = "3"; } - final res = await _libwallet.addresses(walletInfo.name, nUsed, nUnused); - final decoded = json.decode(res); - final usedAddrs = List<String>.from(decoded["used"] ?? []); - final unusedAddrs = List<String>.from(decoded["unused"] ?? []); - // index is the index of the first unused address. - final index = decoded["index"] ?? 0; - return new LibAddresses(usedAddrs, unusedAddrs, index); + try { + final res = await _libwallet.addresses(walletInfo.name, nUsed, nUnused); + final decoded = json.decode(res); + final usedAddrs = List<String>.from(decoded["used"] ?? []); + final unusedAddrs = List<String>.from(decoded["unused"] ?? []); + // index is the index of the first unused address. + final index = decoded["index"] ?? 0; + return new LibAddresses(usedAddrs, unusedAddrs, index); + } catch (e) { + printV(e); + return LibAddresses([], [], 0); + } } Future<void> generateNewAddress(String label) async { diff --git a/cw_decred/lib/wallet_service.dart b/cw_decred/lib/wallet_service.dart index a54833321..161184b0a 100644 --- a/cw_decred/lib/wallet_service.dart +++ b/cw_decred/lib/wallet_service.dart @@ -27,17 +27,16 @@ class DecredWalletService extends WalletService< static final pubkeyRestorePathTestnet = "m/44'/1'/0'"; final mainnet = "mainnet"; final testnet = "testnet"; - Libwallet? libwallet; + static Libwallet? libwallet; Future<void> init() async { if (libwallet != null) { return; } libwallet = await Libwallet.spawn(); - // Use the general path for all dcr wallets as the general log directory. - // Individual wallet paths may be removed if the wallet is deleted. - final dcrLogDir = await pathForWalletDir(name: '', type: WalletType.decred); - libwallet!.initLibdcrwallet(dcrLogDir); + // Init logging with no directory to force printing to stdout and only + // print ERROR level logs. + libwallet!.initLibdcrwallet("", "err"); } void closeLibwallet() { diff --git a/cw_decred/pubspec.lock b/cw_decred/pubspec.lock index 2324e7bd2..f9954fe53 100644 --- a/cw_decred/pubspec.lock +++ b/cw_decred/pubspec.lock @@ -75,18 +75,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: @@ -365,10 +365,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: transitive description: @@ -646,10 +646,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -848,5 +848,5 @@ packages: source: hosted version: "2.2.2" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_monero/lib/api/wallet_manager.dart b/cw_monero/lib/api/wallet_manager.dart index bfebe4247..0dcb3c851 100644 --- a/cw_monero/lib/api/wallet_manager.dart +++ b/cw_monero/lib/api/wallet_manager.dart @@ -89,11 +89,7 @@ void createWalletSync( throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); } - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - } + setupBackgroundSync(password, newWptr); wptr = newWptr; monero.Wallet_setCacheAttribute(wptr!, key: "cakewallet.passphrase", value: passphrase); @@ -186,13 +182,6 @@ void restoreWalletFromKeysSync( message: monero.Wallet_errorString(newWptr)); } - - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - } - // CW-712 - Try to restore deterministic wallet first, if the view key doesn't // match the view key provided if (spendKey != "") { @@ -216,12 +205,8 @@ void restoreWalletFromKeysSync( throw WalletRestoreFromKeysException( message: monero.Wallet_errorString(newWptr)); } - - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - } + + setupBackgroundSync(password, newWptr); } } @@ -267,12 +252,8 @@ void restoreWalletFromPolyseedWithOffset( monero.Wallet_setCacheAttribute(wptr!, key: "cakewallet.seed", value: seed); monero.Wallet_setCacheAttribute(wptr!, key: "cakewallet.passphrase", value: seedOffset); monero.Wallet_store(wptr!); - - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - } + + setupBackgroundSync(password, newWptr); storeSync(); openedWalletsByPath[path] = wptr!; @@ -323,12 +304,8 @@ void restoreWalletFromSpendKeySync( monero.Wallet_setCacheAttribute(wptr!, key: "cakewallet.seed", value: seed); storeSync(); - - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - } + + setupBackgroundSync(password, newWptr); openedWalletsByPath[path] = wptr!; _lastOpenedWallet = path; @@ -361,13 +338,6 @@ Future<void> restoreWalletFromHardwareWallet( throw WalletRestoreFromSeedException(message: error); } - // TODO: Check with upstream if we can use background sync here - // monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - // status = monero.Wallet_status(newWptr); - // if (status != 0) { - // throw WalletCreationException(message: monero.Wallet_errorString(newWptr)); - // } - wptr = newWptr; _lastOpenedWallet = path; openedWalletsByPath[path] = wptr!; @@ -437,12 +407,8 @@ Future<void> loadWallet( printV("loadWallet:"+err); throw WalletOpeningException(message: err); } - monero.Wallet_setupBackgroundSync(newWptr, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); - status = monero.Wallet_status(newWptr); - if (status != 0) { - final err = monero.Wallet_errorString(newWptr); - printV("loadWallet:"+err); - throw WalletOpeningException(message: err); + if (deviceType == 0) { + setupBackgroundSync(password, newWptr); } wptr = newWptr; @@ -451,6 +417,17 @@ Future<void> loadWallet( } } +void setupBackgroundSync(String password, Pointer<Void>? wptrOverride) { + if (isViewOnlyBySpendKey(wptrOverride)) { + return; + } + monero.Wallet_setupBackgroundSync(wptrOverride ?? wptr!, backgroundSyncType: 2, walletPassword: password, backgroundCachePassword: ''); + if (monero.Wallet_status(wptrOverride ?? wptr!) != 0) { + // We simply ignore the error. + printV("setupBackgroundSync: ${monero.Wallet_errorString(wptrOverride ?? wptr!)}"); + } +} + void _createWallet(Map<String, dynamic> args) { final path = args['path'] as String; final password = args['password'] as String; @@ -591,4 +568,4 @@ Future<void> restoreFromSpendKey( bool isWalletExist({required String path}) => _isWalletExist(path); -bool isViewOnlyBySpendKey() => int.tryParse(monero.Wallet_secretSpendKey(wptr!)) == 0; +bool isViewOnlyBySpendKey(Pointer<Void>? wptrOverride) => int.tryParse(monero.Wallet_secretSpendKey(wptrOverride ?? wptr!)) == 0; diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index db4d30ee8..5637f82e5 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -233,18 +233,14 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance, return; } isBackgroundSyncRunning = true; - int status = monero.Wallet_status(wptr!); - if (status != 0) { - final err = monero.Wallet_errorString(wptr!); - throw Exception("unable to setup background sync: $err"); - } await save(); monero.Wallet_startBackgroundSync(wptr!); - status = monero.Wallet_status(wptr!); + final status = monero.Wallet_status(wptr!); if (status != 0) { final err = monero.Wallet_errorString(wptr!); - throw Exception("unable to start background sync: $err"); + isBackgroundSyncRunning = false; + printV("startBackgroundSync: $err"); } await save(); await init(); @@ -260,9 +256,9 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance, printV("Stopping background sync"); await save(); monero.Wallet_stopBackgroundSync(wptr!, ''); - await save(); isBackgroundSyncRunning = false; } + await save(); } @action diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock index 019c9f437..c808e5edb 100644 --- a/cw_monero/pubspec.lock +++ b/cw_monero/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -78,18 +78,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: @@ -384,10 +384,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: "direct main" description: @@ -682,10 +682,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" rational: dependency: transitive description: @@ -706,10 +706,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -924,5 +924,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index 0891588f2..ca8b61974 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -94,18 +94,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: transitive description: @@ -397,10 +397,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: transitive description: @@ -679,10 +679,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" rational: dependency: transitive description: @@ -751,10 +751,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -945,5 +945,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_wownero/pubspec.lock b/cw_wownero/pubspec.lock index 6d4493874..404060e43 100644 --- a/cw_wownero/pubspec.lock +++ b/cw_wownero/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -70,18 +70,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: @@ -360,10 +360,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: "direct main" description: @@ -634,10 +634,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" rational: dependency: transitive description: @@ -650,10 +650,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -844,5 +844,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/cw_zano/pubspec.lock b/cw_zano/pubspec.lock index 74ec7206f..50835ed3f 100644 --- a/cw_zano/pubspec.lock +++ b/cw_zano/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "1c296cd268f486cabcc3930e9b93a8133169305f18d722916e675959a88f6d2c" + sha256: "4bae5ae63e6d6dd17c4aac8086f3dec26c0236f6a0f03416c6c19d830c367cf5" url: "https://pub.dev" source: hosted - version: "1.5.9" + version: "1.5.8" async: dependency: transitive description: @@ -70,18 +70,18 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.2" build_resolvers: dependency: "direct dev" description: @@ -357,10 +357,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" url: "https://pub.dev" source: hosted - version: "4.1.2" + version: "4.0.2" intl: dependency: "direct main" description: @@ -631,10 +631,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" rational: dependency: transitive description: @@ -647,10 +647,10 @@ packages: dependency: transitive description: name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.2" + version: "1.4.1" shelf_web_socket: dependency: transitive description: @@ -841,5 +841,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/ios/Podfile.lock b/ios/Podfile.lock index fc70b4fb6..d3ba59827 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,9 +2,7 @@ PODS: - connectivity_plus (0.0.1): - Flutter - ReachabilitySwift - - CryptoSwift (1.8.3) - - cw_mweb (0.0.1): - - Flutter + - CryptoSwift (1.8.4) - cw_decred (0.0.1): - Flutter - cw_mweb (0.0.1): @@ -80,9 +78,9 @@ PODS: - permission_handler_apple (9.3.0): - Flutter - ReachabilitySwift (5.2.4) - - SDWebImage (5.19.7): - - SDWebImage/Core (= 5.19.7) - - SDWebImage/Core (5.19.7) + - SDWebImage (5.20.0): + - SDWebImage/Core (= 5.20.0) + - SDWebImage/Core (5.20.0) - sensitive_clipboard (0.0.1): - Flutter - share_plus (0.0.1): @@ -106,7 +104,6 @@ PODS: DEPENDENCIES: - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - CryptoSwift - - cw_mweb (from `.symlinks/plugins/cw_mweb/ios`) - cw_decred (from `.symlinks/plugins/cw_decred/ios`) - cw_mweb (from `.symlinks/plugins/cw_mweb/ios`) - device_display_brightness (from `.symlinks/plugins/device_display_brightness/ios`) @@ -147,8 +144,6 @@ SPEC REPOS: EXTERNAL SOURCES: connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" - cw_mweb: - :path: ".symlinks/plugins/cw_mweb/ios" cw_decred: :path: ".symlinks/plugins/cw_decred/ios" cw_mweb: @@ -203,41 +198,40 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - connectivity_plus: 481668c94744c30c53b8895afb39159d1e619bdf - CryptoSwift: 967f37cea5a3294d9cce358f78861652155be483 - cw_decred: a02cf30175a46971c1e2fa22c48407534541edc6 - cw_mweb: 3aea2fb35b2bd04d8b2d21b83216f3b8fb768d85 - device_display_brightness: 04374ebd653619292c1d996f00f42877ea19f17f - device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 - devicelocale: bd64aa714485a8afdaded0892c1e7d5b7f680cf8 + connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d + CryptoSwift: e64e11850ede528a02a0f3e768cec8e9d92ecb90 + cw_decred: 9c0e1df74745b51a1289ec5e91fb9e24b68fa14a + cw_mweb: 22cd01dfb8ad2d39b15332006f22046aaa8352a3 + device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + devicelocale: 35ba84dc7f45f527c3001535d8c8d104edd5d926 DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - fast_scanner: 2cb1ad3e69e645e9980fb4961396ce5804caa3e3 - file_picker: 9b3292d7c8bc68c8a7bf8eb78f730e49c8efc517 + fast_scanner: 44c00940355a51258cd6c2085734193cd23d95bc + file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 - flutter_local_authentication: 989278c681612f1ee0e36019e149137f114b9d7f - flutter_mailer: 3a8cd4f36c960fb04528d5471097270c19fec1c4 - flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 - fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 - in_app_review: 5596fe56fab799e8edb3561c03d053363ab13457 - integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e + flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 + flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb + flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 + flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f + in_app_review: a31b5257259646ea78e0e35fc914979b0031d011 + integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 - permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 ReachabilitySwift: 32793e867593cfc1177f5d16491e3a197d2fccda - SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 - sensitive_clipboard: 161e9abc3d56b3131309d8a321eb4690a803c16b - share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - sp_scanner: b1bc9321690980bdb44bba7ec85d5543e716d1b5 + SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 + sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 + share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sp_scanner: eaa617fa827396b967116b7f1f43549ca62e9a12 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152 - universal_ble: ff19787898040d721109c6324472e5dd4bc86adc - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 + uni_links: d97da20c7701486ba192624d99bffaaffcfc298a + universal_ble: cf52a7b3fd2e7c14d6d7262e9fdadb72ab6b88a6 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 PODFILE CHECKSUM: e448f662d4c41f0c0b1ccbb78afd57dbf895a597 diff --git a/lib/monero/cw_monero.dart b/lib/monero/cw_monero.dart index aa6fafc6b..a955e1d98 100644 --- a/lib/monero/cw_monero.dart +++ b/lib/monero/cw_monero.dart @@ -422,6 +422,6 @@ class CWMonero extends Monero { } bool isViewOnly() { - return isViewOnlyBySpendKey(); + return isViewOnlyBySpendKey(null); } } diff --git a/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart b/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart index cef313780..d453a698f 100644 --- a/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart +++ b/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart @@ -315,7 +315,7 @@ class CryptoBalanceWidget extends StatelessWidget { Padding( padding: const EdgeInsets.fromLTRB(16, 0, 16, 8), child: InfoCard( - title: S.of(context).decred_info_title, + title: S.of(context).synchronizing, description: S.of(context).decred_info_card_details, image: 'assets/images/dcr_icon.png', leftButtonTitle: S.of(context).litecoin_mweb_dismiss, diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 69e4bd02a..d02d246fa 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -36,7 +36,6 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/utils/print_verbose.dart'; -import 'package:cw_core/unspent_coin_type.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/view_model/send/send_view_model.dart'; import 'package:cake_wallet/view_model/send/send_view_model_state.dart'; @@ -164,8 +163,6 @@ class SendPage extends BasePage { }); }); - bool _bottomSheetOpened = false; - @override Widget body(BuildContext context) { _setEffects(context); @@ -400,6 +397,7 @@ class SendPage extends BasePage { return LoadingPrimaryButton( key: ValueKey('send_page_send_button_key'), onPressed: () async { + FocusManager.instance.primaryFocus?.unfocus(); if (sendViewModel.state is IsExecutingState) return; if (_formKey.currentState != null && !_formKey.currentState!.validate()) { diff --git a/lib/src/screens/settings/privacy_page.dart b/lib/src/screens/settings/privacy_page.dart index 238e58eab..5a22f622a 100644 --- a/lib/src/screens/settings/privacy_page.dart +++ b/lib/src/screens/settings/privacy_page.dart @@ -42,7 +42,7 @@ class PrivacyPage extends BasePage { ), SettingsChoicesCell( ChoicesListItem<ExchangeApiMode>( - title: S.current.exchange, + title: S.current.swap, items: ExchangeApiMode.all, selectedItem: _privacySettingsViewModel.exchangeStatus, onItemSelected: (ExchangeApiMode mode) => diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index 29ccedef2..a07ba26ef 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -266,7 +266,8 @@ abstract class DashboardViewModelBase with Store { reaction((_) => appStore.wallet, (wallet) { _onWalletChange(wallet); _checkMweb(); - showDecredInfoCard = wallet?.type == WalletType.decred; + showDecredInfoCard = wallet?.type == WalletType.decred && + sharedPreferences.getBool(PreferencesKey.showDecredInfoCard) != false; }); _transactionDisposer?.reaction.dispose(); @@ -792,7 +793,7 @@ abstract class DashboardViewModelBase with Store { (List<TransactionInfo> txs) { transactions.clear(); - + transactions.addAll( txs.where((tx) { if (wallet.type == WalletType.monero) { diff --git a/lib/view_model/node_list/node_create_or_edit_view_model.dart b/lib/view_model/node_list/node_create_or_edit_view_model.dart index 8fbe174e3..7e4e73915 100644 --- a/lib/view_model/node_list/node_create_or_edit_view_model.dart +++ b/lib/view_model/node_list/node_create_or_edit_view_model.dart @@ -1,7 +1,6 @@ import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/entities/qr_scanner.dart'; import 'package:cake_wallet/store/settings_store.dart'; -import 'package:cw_core/utils/print_verbose.dart'; import 'package:flutter/cupertino.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; diff --git a/macos/Podfile.lock b/macos/Podfile.lock index cc6ae6e3b..689f0ea03 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -3,7 +3,6 @@ PODS: - FlutterMacOS - ReachabilitySwift - cw_mweb (0.0.1): - - cw_decred (0.0.1): - FlutterMacOS - device_info_plus (0.0.1): - FlutterMacOS @@ -46,7 +45,6 @@ PODS: DEPENDENCIES: - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) - cw_mweb (from `Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos`) - - cw_decred (from `Flutter/ephemeral/.symlinks/plugins/cw_decred/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`) - fast_scanner (from `Flutter/ephemeral/.symlinks/plugins/fast_scanner/macos`) @@ -74,10 +72,6 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos cw_mweb: :path: Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos - cw_decred: - :path: Flutter/ephemeral/.symlinks/plugins/cw_decred/macos - cw_monero: - :path: Flutter/ephemeral/.symlinks/plugins/cw_monero/macos device_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos devicelocale: @@ -114,8 +108,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747 cw_mweb: 7440b12ead811dda972a9918442ea2a458e8742c - cw_monero: ec03de55a19c4a2b174ea687e0f4202edc716fa4 - cw_decred: 0c93fbeb31bd97a6ad4ec5680960af0943bfca78 device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225 fast_scanner: d31bae07e2653403a69dac99fb710c1722b16a97 diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 64089065d..686f8c8ce 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "يتم المزامنة", "sync_status_timed_out": "نفد وقته", "sync_status_unsupported": "عقدة غير مدعومة", + "synchronizing": "المزامنة", "syncing_wallet_alert_content": "قد لا يكتمل رصيدك وقائمة المعاملات الخاصة بك حتى تظهر عبارة “SYNCHRONIZED“ في الأعلى. انقر / اضغط لمعرفة المزيد.", "syncing_wallet_alert_title": "محفظتك تتم مزامنتها", "template": "قالب", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 24b6e2640..a7b9a27f1 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "СИНХРОНИЗИРАНЕ", "sync_status_timed_out": "ВРЕМЕТО ИЗТЕЧЕ", "sync_status_unsupported": "Неподдържан възел", + "synchronizing": "Синхронизиране", "syncing_wallet_alert_content": "Списъкът ви с баланс и транзакции може да не е пълен, докато в горната част не пише „СИНХРОНИЗИРАН“. Кликнете/докоснете, за да научите повече.", "syncing_wallet_alert_title": "Вашият портфейл се синхронизира", "template": "Шаблон", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 9dbc99d5c..7458b219a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SYNCHRONIZUJI", "sync_status_timed_out": "ČAS VYPRŠEL", "sync_status_unsupported": "Nepodporovaný uzel", + "synchronizing": "Synchronizace", "syncing_wallet_alert_content": "Váš seznam zůstatků a transakcí nemusí být úplný, dokud nebude nahoře uvedeno „SYNCHRONIZOVANÉ“. Kliknutím/klepnutím se dozvíte více.", "syncing_wallet_alert_title": "Vaše peněženka se synchronizuje", "template": "Šablona", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 54303caf3..d25e02494 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "SYNCHRONISIERE", "sync_status_timed_out": "Zeitlich abgestimmt", "sync_status_unsupported": "Nicht unterstützter Knoten", + "synchronizing": "Synchronisierung", "syncing_wallet_alert_content": "Ihr Kontostand und Ihre Transaktionsliste sind möglicherweise erst vollständig, wenn oben „SYNCHRONISIERT“ steht. Klicken/tippen Sie, um mehr zu erfahren.", "syncing_wallet_alert_title": "Ihr Wallet wird synchronisiert", "template": "Vorlage", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 85103162d..238f36fda 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "SYNCHRONIZING", "sync_status_timed_out": "TIMED OUT", "sync_status_unsupported": "UNSUPPORTED NODE", + "synchronizing": "Synchronizing", "syncing_wallet_alert_content": "Your balance and transaction list may not be complete until it says “SYNCHRONIZED” at the top. Click/tap to learn more.", "syncing_wallet_alert_title": "Your wallet is syncing", "template": "Template", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index cd63e5a3d..1252324ee 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "SINCRONIZANDO", "sync_status_timed_out": "CADUCADO", "sync_status_unsupported": "Nodo no compatible", + "synchronizing": "Sincronización", "syncing_wallet_alert_content": "Es posible que su lista de saldo y transacciones no esté completa hasta que diga \"SINCRONIZADO\" en la parte superior. Haga clic/toque para obtener más información.", "syncing_wallet_alert_title": "Tu billetera se está sincronizando", "template": "Plantilla", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 309319277..d180df3b9 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SYNCHRONISATION EN COURS", "sync_status_timed_out": "FIN DU TEMPS", "sync_status_unsupported": "Nœud non pris en charge", + "synchronizing": "Synchronisation", "syncing_wallet_alert_content": "Votre solde et votre liste de transactions peuvent ne pas être à jour tant que la mention « SYNCHRONISÉ » n'apparaît en haut de l'écran. Cliquez/appuyez pour en savoir plus.", "syncing_wallet_alert_title": "Votre portefeuille (wallet) est en cours de synchronisation", "template": "Modèle", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 4ae70f8dd..1f8962b52 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -824,6 +824,7 @@ "sync_status_syncronizing": "KWAFI", "sync_status_timed_out": "ATED Out", "sync_status_unsupported": "Ba a Taimako ba", + "synchronizing": "Aikiɓaɓaƙe", "syncing_wallet_alert_content": "Ma'aunin ku da lissafin ma'amala bazai cika ba har sai an ce \"SYNCHRONIZED\" a saman. Danna/matsa don ƙarin koyo.", "syncing_wallet_alert_title": "Walat ɗin ku yana aiki tare", "template": "Samfura", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index de15f45b6..3c30f82fd 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -824,6 +824,7 @@ "sync_status_syncronizing": "सिंक्रनाइज़ करने", "sync_status_timed_out": "समय समााप्त", "sync_status_unsupported": "असमर्थित नोड", + "synchronizing": "सिंक्रनाइज़ करना", "syncing_wallet_alert_content": "आपकी शेष राशि और लेनदेन सूची तब तक पूरी नहीं हो सकती जब तक कि शीर्ष पर \"सिंक्रनाइज़्ड\" न लिखा हो। अधिक जानने के लिए क्लिक/टैप करें।", "syncing_wallet_alert_title": "आपका वॉलेट सिंक हो रहा है", "template": "खाका", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 48da3833a..cbb9f0f89 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SINKRONIZIRANJE", "sync_status_timed_out": "ISTEKLO", "sync_status_unsupported": "Nepodržani čvor", + "synchronizing": "Sinkronizirajući", "syncing_wallet_alert_content": "Vaš saldo i popis transakcija možda neće biti potpuni sve dok na vrhu ne piše \"SINKRONIZIRANO\". Kliknite/dodirnite da biste saznali više.", "syncing_wallet_alert_title": "Vaš novčanik se sinkronizira", "template": "Predložak", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index ee1c997b0..e39390939 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -820,6 +820,7 @@ "sync_status_syncronizing": "ՀԱՄԱԺԱՄԵՑՎՈՒՄ Է", "sync_status_timed_out": "Ժամանակը սպառվեց", "sync_status_unsupported": "ՉԱՋԱԿՑՎՈՂ ՀԱՆԳՈՒՅՑ,", + "synchronizing": "Համաժամանակող", "syncing_wallet_alert_content": "Ձեր հաշիվը և գործարքների ցանկը կարող են լինել անավարտ մինչև վերին մասում գրված լինի “ՀԱՂՈՒՄ”։ Սեղմեք/դիպեք ուսումնասիրելու համար։", "syncing_wallet_alert_title": "Ձեր դրամապանակը համաժամացվում է", "template": "Տարբերակ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index f9a231112..f6041fcb9 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -825,6 +825,7 @@ "sync_status_syncronizing": "SEDANG SINKRONISASI", "sync_status_timed_out": "WAKTU HABIS", "sync_status_unsupported": "Node yang tidak didukung", + "synchronizing": "Sinkronisasi", "syncing_wallet_alert_content": "Saldo dan daftar transaksi Anda mungkin belum lengkap sampai tertulis “SYNCHRONIZED” di bagian atas. Klik/ketuk untuk mempelajari lebih lanjut.", "syncing_wallet_alert_title": "Dompet Anda sedang disinkronkan", "template": "Template", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 25d02d9d0..8209f532a 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "SINCRONIZZAZIONE", "sync_status_timed_out": "TIMED OUT", "sync_status_unsupported": "NODO NON SUPPORTATO", + "synchronizing": "Sincronizzazione", "syncing_wallet_alert_content": "Il saldo e l'elenco delle transazioni potrebbero non essere completi fin quando non viene visualizzato \"SINCRONIZZATO\" in alto. Clicca/tocca per saperne di più.", "syncing_wallet_alert_title": "Il tuo portafoglio si sta sincronizzando", "template": "Modello", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 6a3a5da72..af7ab6502 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "同期", "sync_status_timed_out": "タイムアウトしました", "sync_status_unsupported": "サポートされていないノード", + "synchronizing": "同期", "syncing_wallet_alert_content": "上部に「同期済み」と表示されるまで、残高と取引リストが完了していない可能性があります。詳細については、クリック/タップしてください。", "syncing_wallet_alert_title": "ウォレットは同期中です", "template": "テンプレート", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index d16e18a53..6386cf7c1 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "동기화", "sync_status_timed_out": "시간 초과", "sync_status_unsupported": "지원되지 않은 노드", + "synchronizing": "동기화", "syncing_wallet_alert_content": "상단에 \"동기화됨\"이라고 표시될 때까지 잔액 및 거래 목록이 완전하지 않을 수 있습니다. 자세히 알아보려면 클릭/탭하세요.", "syncing_wallet_alert_title": "지갑 동기화 중", "template": "주형", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index d7ba8d7a6..31e5335b5 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "ထပ်တူပြုခြင်း။", "sync_status_timed_out": "ထွက်အချိန်ကုန်", "sync_status_unsupported": "node မထောက်ပံ့ node ကို", + "synchronizing": "ထပ်တူပြုခြင်း", "syncing_wallet_alert_content": "သင်၏လက်ကျန်နှင့် ငွေပေးငွေယူစာရင်းသည် ထိပ်တွင် \"Synchronizeed\" ဟုပြောသည်အထိ မပြီးမြောက်နိုင်ပါ။ ပိုမိုလေ့လာရန် နှိပ်/နှိပ်ပါ။", "syncing_wallet_alert_title": "သင့်ပိုက်ဆံအိတ်ကို စင့်ခ်လုပ်နေပါသည်။", "template": "ပုံစံခွက်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 55e588f62..a15d55c09 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SYNCHRONISEREN", "sync_status_timed_out": "Uitgeput", "sync_status_unsupported": "Niet ondersteund knooppunt", + "synchronizing": "Synchronisatie", "syncing_wallet_alert_content": "Uw saldo- en transactielijst is mogelijk pas compleet als er bovenaan 'GESYNCHRONISEERD' staat. Klik/tik voor meer informatie.", "syncing_wallet_alert_title": "Uw portemonnee wordt gesynchroniseerd", "template": "Sjabloon", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index cb4f09982..51aad7be2 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SYNCHRONIZACJA", "sync_status_timed_out": "PRZEKROCZONO LIMIT CZASU", "sync_status_unsupported": "Nieobsługiwany węzeł", + "synchronizing": "Synchronizacja", "syncing_wallet_alert_content": "Twoje saldo i lista transakcji mogą nie być kompletne, dopóki u góry nie pojawi się napis „SYNCHRONIZOWANY”. Kliknij/stuknij, aby dowiedzieć się więcej.", "syncing_wallet_alert_title": "Twój portfel się synchronizuje", "template": "Szablon", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 2fb3bac5f..4774e917e 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -824,6 +824,7 @@ "sync_status_syncronizing": "SINCRONIZANDO", "sync_status_timed_out": "TEMPO ESGOTADO", "sync_status_unsupported": "Nó não suportado", + "synchronizing": "Sincronizando", "syncing_wallet_alert_content": "Seu saldo e lista de transações podem não estar completos até que diga “SYNCHRONIZED” no topo. Clique/toque para saber mais.", "syncing_wallet_alert_title": "Sua carteira está sincronizando", "template": "Modelo", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 4173ad6d5..d06a001d2 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "СИНХРОНИЗАЦИЯ", "sync_status_timed_out": "ВРЕМЯ ВЫШЛО", "sync_status_unsupported": "Неподдерживаемый узел", + "synchronizing": "Синхронизация", "syncing_wallet_alert_content": "Ваш баланс и список транзакций могут быть неполными, пока вверху не будет написано «СИНХРОНИЗИРОВАНО». Щелкните/коснитесь, чтобы узнать больше.", "syncing_wallet_alert_title": "Ваш кошелек синхронизируется", "template": "Шаблон", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index acd70c554..aa92d9171 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "กำลังซิงโครไนซ์", "sync_status_timed_out": "หมดเวลา", "sync_status_unsupported": "โหนดที่ไม่ได้รับการสนับสนุน", + "synchronizing": "การซิงโครไนซ์", "syncing_wallet_alert_content": "รายการยอดเงินและธุรกรรมของคุณอาจไม่สมบูรณ์จนกว่าจะมีข้อความว่า “ซิงโครไนซ์” ที่ด้านบน คลิก/แตะเพื่อเรียนรู้เพิ่มเติม่", "syncing_wallet_alert_title": "กระเป๋าสตางค์ของคุณกำลังซิงค์", "template": "แบบฟอร์ม", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index a378ff3ea..f2087c573 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "PAG-SYNCHRONIZE", "sync_status_timed_out": "NAG-TIME OUT", "sync_status_unsupported": "HINDI SUPORTADONG NODE", + "synchronizing": "Pag -synchronize", "syncing_wallet_alert_content": "Ang iyong balanse at listahan ng transaksyon ay maaaring hindi kumpleto hanggang sa sabihin nito na \"NAKA-SYNCHRONIZE\" sa tuktok. Mag-click/tap upang malaman ang higit pa.", "syncing_wallet_alert_title": "Ang iyong wallet ay nag-sync", "template": "Template", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 8011401dc..44cb64b69 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "SENKRONİZE EDİLİYOR", "sync_status_timed_out": "ZAMAN AŞIMINA UĞRADI", "sync_status_unsupported": "Desteklenmeyen düğüm", + "synchronizing": "Senkronize etme", "syncing_wallet_alert_content": "Bakiyeniz ve işlem listeniz, en üstte \"SENKRONİZE EDİLDİ\" yazana kadar tamamlanmamış olabilir. Daha fazla bilgi edinmek için tıklayın/dokunun.", "syncing_wallet_alert_title": "Cüzdanınız senkronize ediliyor", "template": "Şablon", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 8227d581f..2e250dd05 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "СИНХРОНІЗАЦІЯ", "sync_status_timed_out": "ТАЙМ-АУТ", "sync_status_unsupported": "Непідтримуваний вузол", + "synchronizing": "Синхронізація", "syncing_wallet_alert_content": "Ваш баланс та список транзакцій може бути неповним, доки вгорі не буде написано «СИНХРОНІЗОВАНО». Натисніть/торкніться, щоб дізнатися більше.", "syncing_wallet_alert_title": "Ваш гаманець синхронізується", "template": "Шаблон", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 307340a21..6684fb2f3 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -824,6 +824,7 @@ "sync_status_syncronizing": "مطابقت پذیری", "sync_status_timed_out": "وقت ختم", "sync_status_unsupported": "غیر تعاون یافتہ نوڈ", + "synchronizing": "ہم آہنگی", "syncing_wallet_alert_content": "آپ کے بیلنس اور لین دین کی فہرست اس وقت تک مکمل نہیں ہو سکتی جب تک کہ یہ سب سے اوپر \"SYNCRONIZED\" نہ کہے۔ مزید جاننے کے لیے کلک/تھپتھپائیں۔", "syncing_wallet_alert_title": "آپ کا بٹوہ مطابقت پذیر ہو رہا ہے۔", "template": "سانچے", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index c2935e9a0..45ffac20e 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -819,6 +819,7 @@ "sync_status_syncronizing": "ĐANG ĐỒNG BỘ", "sync_status_timed_out": "HẾT THỜI GIAN", "sync_status_unsupported": "NÓT KHÔNG ĐƯỢC HỖ TRỢ", + "synchronizing": "Đồng bộ hóa", "syncing_wallet_alert_content": "Số dư và danh sách giao dịch của bạn có thể không đầy đủ cho đến khi nó hiển thị “ĐÃ ĐỒNG BỘ” ở trên cùng. Nhấn vào đây để tìm hiểu thêm.", "syncing_wallet_alert_title": "Ví của bạn đang đồng bộ", "template": "Mẫu", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index b97fbb757..1d754b366 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -823,6 +823,7 @@ "sync_status_syncronizing": "Ń MÚDỌ́GBA", "sync_status_timed_out": "Ti akoko jade", "sync_status_unsupported": "Ile-igbimọ ti ko ni atilẹyin", + "synchronizing": "Mimuuṣiṣẹpọ", "syncing_wallet_alert_content": "Iwontunws.funfun rẹ ati atokọ idunadura le ma pari titi ti yoo fi sọ “SYNCHRONIZED” ni oke. Tẹ/tẹ ni kia kia lati ni imọ siwaju sii.", "syncing_wallet_alert_title": "Apamọwọ rẹ n muṣiṣẹpọ", "template": "Àwòṣe", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index e1767a28f..7325cb5f0 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -822,6 +822,7 @@ "sync_status_syncronizing": "正在同步", "sync_status_timed_out": "时间到", "sync_status_unsupported": "不支持的节点", + "synchronizing": "同步", "syncing_wallet_alert_content": "您的余额和交易列表可能不完整,直到顶部显示“已同步”。单击/点击以了解更多信息。", "syncing_wallet_alert_title": "您的钱包正在同步", "template": "模板", diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 597c0aa9a..13cae2000 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -14,15 +14,15 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.20.3" -MONERO_COM_BUILD_NUMBER=115 +MONERO_COM_VERSION="1.21.0" +MONERO_COM_BUILD_NUMBER=116 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.23.4" -CAKEWALLET_BUILD_NUMBER=249 +CAKEWALLET_VERSION="4.24.0" +CAKEWALLET_BUILD_NUMBER=252 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/android/build_decred.sh b/scripts/android/build_decred.sh index d7b2fdb6b..fee8e9af8 100755 --- a/scripts/android/build_decred.sh +++ b/scripts/android/build_decred.sh @@ -7,7 +7,7 @@ cd "$(dirname "$0")" CW_DECRED_DIR=$(realpath ../..)/cw_decred LIBWALLET_PATH="${PWD}/decred/libwallet" LIBWALLET_URL="https://github.com/decred/libwallet.git" -LIBWALLET_VERSION="87b2769538db3065b334d247b25774593fc6443d" +LIBWALLET_VERSION="dba5327d35cb5d5d1ff113b780869deee154511f" if [ -e $LIBWALLET_PATH ]; then rm -fr $LIBWALLET_PATH/{*,.*} || true diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 1c1579830..985a48971 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -12,13 +12,13 @@ TYPES=($MONERO_COM $CAKEWALLET) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.20.3" -MONERO_COM_BUILD_NUMBER=113 +MONERO_COM_VERSION="1.21.0" +MONERO_COM_BUILD_NUMBER=114 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.23.4" -CAKEWALLET_BUILD_NUMBER=302 +CAKEWALLET_VERSION="4.24.0" +CAKEWALLET_BUILD_NUMBER=305 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" diff --git a/scripts/ios/build_decred.sh b/scripts/ios/build_decred.sh index e6b13d0da..78c36690b 100755 --- a/scripts/ios/build_decred.sh +++ b/scripts/ios/build_decred.sh @@ -3,7 +3,7 @@ set -e . ./config.sh LIBWALLET_PATH="${EXTERNAL_IOS_SOURCE_DIR}/libwallet" LIBWALLET_URL="https://github.com/decred/libwallet.git" -LIBWALLET_VERSION="87b2769538db3065b334d247b25774593fc6443d" +LIBWALLET_VERSION="dba5327d35cb5d5d1ff113b780869deee154511f" if [ -e $LIBWALLET_PATH ]; then rm -fr $LIBWALLET_PATH diff --git a/scripts/linux/app_env.sh b/scripts/linux/app_env.sh index ef1747ba6..9d97b63cb 100755 --- a/scripts/linux/app_env.sh +++ b/scripts/linux/app_env.sh @@ -14,8 +14,8 @@ if [ -n "$1" ]; then fi CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.13.4" -CAKEWALLET_BUILD_NUMBER=49 +CAKEWALLET_VERSION="1.14.0" +CAKEWALLET_BUILD_NUMBER=50 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then echo "Wrong app type." diff --git a/scripts/macos/app_config.sh b/scripts/macos/app_config.sh index c10116136..641a7b46b 100755 --- a/scripts/macos/app_config.sh +++ b/scripts/macos/app_config.sh @@ -36,7 +36,7 @@ case $APP_MACOS_TYPE in $MONERO_COM) CONFIG_ARGS="--monero";; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash --solana --tron --wownero --decred";; + CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash --solana --tron --wownero";; esac cp -rf pubspec_description.yaml pubspec.yaml diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 7410ee3a3..4ac64ba42 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,13 +16,13 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.10.3" -MONERO_COM_BUILD_NUMBER=45 +MONERO_COM_VERSION="1.11.0" +MONERO_COM_BUILD_NUMBER=46 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.16.4" -CAKEWALLET_BUILD_NUMBER=107 +CAKEWALLET_VERSION="1.17.0" +CAKEWALLET_BUILD_NUMBER=108 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/scripts/macos/build_decred.sh b/scripts/macos/build_decred.sh index d4b7d4d65..e7e5d492f 100755 --- a/scripts/macos/build_decred.sh +++ b/scripts/macos/build_decred.sh @@ -4,7 +4,7 @@ LIBWALLET_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/libwallet" LIBWALLET_URL="https://github.com/decred/libwallet.git" -LIBWALLET_VERSION="87b2769538db3065b334d247b25774593fc6443d" +LIBWALLET_VERSION="dba5327d35cb5d5d1ff113b780869deee154511f" echo "======================= DECRED LIBWALLET =========================" diff --git a/scripts/windows/build_exe_installer.iss b/scripts/windows/build_exe_installer.iss index 211017eff..3f433e1ae 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 "0.4.4" +#define MyAppVersion "0.5.0" #define MyAppPublisher "Cake Labs LLC" #define MyAppURL "https://cakewallet.com/" #define MyAppExeName "CakeWallet.exe"