From 50b5ebc622fd5742f6e089dd6e25631e76fda237 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 14 Mar 2024 20:26:00 +0200 Subject: [PATCH 001/157] Monero update (#1325) * New price API * Fix test app package id * Fix workflow * change environment variable to use pr number [skip ci] * Fix un-needed padding * Fix raw value for usdtSol * Remove duplicate fetching for balance and transactions at start [skip ci] * Fix address validation of spl tokens * Add Service Status * Update lib/src/widgets/service_status_tile.dart Co-authored-by: Konstantin Ullrich * Update lib/src/widgets/services_updates_widget.dart Co-authored-by: Konstantin Ullrich * Update monero version * update sodium script * Change automatic priority fee rate * New versions [skip ci] * Update monero version * Temp remove split per abi * Specifically build monero.com * Revert monero dependencies trial fix * Update Monero Fix Monero Automatic Priority * Fix android script * Fix build_monero.sh android Add svg notification icon * trial 1 * trial 2 * trial 3 * trial 4 * Trial 5 * Trial * revert --------- Co-authored-by: Konstantin Ullrich --- assets/images/notification_icon.png | Bin 471 -> 0 bytes assets/images/notification_icon.svg | 69 ++++++++++++++++++ assets/text/Monerocom_Release_Notes.txt | 2 +- assets/text/Release_Notes.txt | 6 +- cw_core/lib/monero_transaction_priority.dart | 14 ++-- cw_monero/lib/monero_wallet.dart | 4 +- lib/entities/default_settings_migration.dart | 15 ++++ lib/main.dart | 2 +- .../desktop_sidebar/side_menu_item.dart | 32 ++++---- .../desktop_sidebar_wrapper.dart | 13 +++- lib/src/widgets/services_updates_widget.dart | 8 +- .../dashboard/dashboard_view_model.dart | 16 ++-- .../dashboard/desktop_sidebar_view_model.dart | 1 + scripts/android/app_env.sh | 8 +- scripts/android/build_monero.sh | 7 +- scripts/ios/app_env.sh | 8 +- scripts/ios/build_monero.sh | 3 +- scripts/macos/app_env.sh | 8 +- scripts/macos/build_monero.sh | 3 +- 19 files changed, 156 insertions(+), 63 deletions(-) delete mode 100644 assets/images/notification_icon.png create mode 100644 assets/images/notification_icon.svg diff --git a/assets/images/notification_icon.png b/assets/images/notification_icon.png deleted file mode 100644 index a6d60211a0bef9014482e22ba784b9846f173611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)X1^@s6+90*i00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP zgD?zKav8uIlul4a@CMBW$p*~^p%XNj06Ib^XgdMjpxppE0ez+KJ0HQuKy>#fu;rJK zB_T2(UDss_xwU}w1!#b8eU=5X=@I8pTi~8cHP(KiKY(_%T7Ag`*$k{HNlRyEs0ZK( z7`z+k3OGBPWWnJbQ<4St^)4!=ESp07lzIp@hhztgXi_wE@Sb8=0)s1k~NS4KQcpDj&Hy|M7~ri;BjzAyHYDf76?<5_t)2KX|r%p zX(w+(o{Kr9=$*IhlkzG^ZZ@(|Seh3n{f&4-q&u*#Z~SWclu+Kr33YrN`Sm(MpMlml zh&IFkp>gwt=T2jzppF@k(0YVrQYzhK4D4C&_gC}MR3BoT{+~#5_3Ar=+5t*%=>_>8 z6B+I9xHcNKn~eET9=-cG@!2r?v;r8*qt__Tu8>q=)F$BzZI?JI{s8Bgz0#>m@Ff5M N002ovPDHLkV1nYWz)t`G diff --git a/assets/images/notification_icon.svg b/assets/images/notification_icon.svg new file mode 100644 index 0000000000..099039e67d --- /dev/null +++ b/assets/images/notification_icon.svg @@ -0,0 +1,69 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 732e58a188..05f78b809e 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1,2 @@ -New themes +In-App live status page for the app services Bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 1c2ec154cb..05f78b809e 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,6 +1,2 @@ -Add Solana wallet -Support ALL Bitcoin address types (Legacy, Segwit (both variants), Taproot) -Enhance Sending/Receiving flow for Bitcoin -Improve fee calculations in Bitcoin -New themes +In-App live status page for the app services Bug fixes and enhancements \ No newline at end of file diff --git a/cw_core/lib/monero_transaction_priority.dart b/cw_core/lib/monero_transaction_priority.dart index f5c00ecc7b..81058f336a 100644 --- a/cw_core/lib/monero_transaction_priority.dart +++ b/cw_core/lib/monero_transaction_priority.dart @@ -1,7 +1,4 @@ import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_type.dart'; -//import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cw_core/enumerable_item.dart'; class MoneroTransactionPriority extends TransactionPriority { const MoneroTransactionPriority({required String title, required int raw}) @@ -12,21 +9,20 @@ class MoneroTransactionPriority extends TransactionPriority { MoneroTransactionPriority.automatic, MoneroTransactionPriority.medium, MoneroTransactionPriority.fast, - MoneroTransactionPriority.fastest + MoneroTransactionPriority.fastest, ]; - static const slow = MoneroTransactionPriority(title: 'Slow', raw: 0); - static const automatic = MoneroTransactionPriority(title: 'Automatic', raw: 1); + static const automatic = MoneroTransactionPriority(title: 'Automatic', raw: 0); + static const slow = MoneroTransactionPriority(title: 'Slow', raw: 1); static const medium = MoneroTransactionPriority(title: 'Medium', raw: 2); static const fast = MoneroTransactionPriority(title: 'Fast', raw: 3); static const fastest = MoneroTransactionPriority(title: 'Fastest', raw: 4); - static const standard = slow; static MoneroTransactionPriority deserialize({required int raw}) { switch (raw) { case 0: - return slow; - case 1: return automatic; + case 1: + return slow; case 2: return medium; case 3: diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 58f63d7cea..5644f6f2ef 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -282,9 +282,7 @@ abstract class MoneroWalletBase pendingTransactionDescription = await transaction_history.createTransaction( address: address!, amount: amount, - priorityRaw: _credentials.priority == MoneroTransactionPriority.automatic - ? MoneroTransactionPriority.medium.serialize() - : _credentials.priority.serialize(), + priorityRaw: _credentials.priority.serialize(), accountIndex: walletAddresses.account!.id, preferredInputs: inputs); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index fb3e9e80ce..0851d00f54 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -201,6 +201,9 @@ Future defaultSettingsMigration( await changeSolanaCurrentNodeToDefault( sharedPreferences: sharedPreferences, nodes: nodes); break; + case 28: + await _updateMoneroPriority(sharedPreferences); + break; default: break; } @@ -215,6 +218,18 @@ Future defaultSettingsMigration( await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version); } +Future _updateMoneroPriority(SharedPreferences sharedPreferences) async { + final currentPriority = + await sharedPreferences.getInt(PreferencesKey.moneroTransactionPriority) ?? + monero!.getDefaultTransactionPriority().serialize(); + + // was set to automatic but automatic should be 0 + if (currentPriority == 1) { + sharedPreferences.setInt(PreferencesKey.moneroTransactionPriority, + monero!.getDefaultTransactionPriority().serialize()); // 0 + } +} + Future _validateWalletInfoBoxData(Box walletInfoSource) async { try { final root = await getApplicationDocumentsDirectory(); diff --git a/lib/main.dart b/lib/main.dart index 0c8a4c0945..a87bcfdad8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,7 +163,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 27); + initialMigrationVersion: 28); } Future initialSetup( diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart index 8119e9fd4e..940ab54cad 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart @@ -7,13 +7,15 @@ class SideMenuItem extends StatelessWidget { required this.onTap, this.imagePath, this.icon, + this.widget, this.isSelected = false, - }) : assert((icon != null && imagePath == null) || (icon == null && imagePath != null)); + }) : assert(widget != null || icon != null || imagePath != null); final void Function() onTap; final String? imagePath; final IconData? icon; final bool isSelected; + final Widget? widget; Color _setColor(BuildContext context) { if (isSelected) { @@ -28,18 +30,7 @@ class SideMenuItem extends StatelessWidget { return InkWell( child: Padding( padding: EdgeInsets.all(20), - child: icon != null - ? Icon( - icon, - color: _setColor(context), - ) - : Image.asset( - imagePath ?? '', - fit: BoxFit.cover, - height: 30, - width: 30, - color: _setColor(context), - ), + child: widget ?? _getIcon(context), ), onTap: () => onTap.call(), highlightColor: Colors.transparent, @@ -48,4 +39,19 @@ class SideMenuItem extends StatelessWidget { splashColor: Colors.transparent, ); } + + Widget _getIcon(BuildContext context) { + return icon != null + ? Icon( + icon, + color: _setColor(context), + ) + : Image.asset( + imagePath ?? '', + fit: BoxFit.cover, + height: 30, + width: 30, + color: _setColor(context), + ); + } } diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart index f73570048d..d0ddb19e64 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart @@ -9,6 +9,7 @@ import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sideba import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/modals/bottom_sheet_listener.dart'; +import 'package:cake_wallet/src/widgets/services_updates_widget.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart'; import 'package:flutter/cupertino.dart'; @@ -105,12 +106,18 @@ class DesktopSidebarWrapper extends BasePage { ? selectedIconPath : unselectedIconPath, ), + SideMenuItem( + widget: ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()), + isSelected: desktopSidebarViewModel.currentPage == SidebarItem.status, + onTap: () {}, + ), ], bottomItems: [ SideMenuItem( - imagePath: 'assets/images/support_icon.png', - isSelected: desktopSidebarViewModel.currentPage == SidebarItem.support, - onTap: () => desktopSidebarViewModel.onPageChange(SidebarItem.support)), + imagePath: 'assets/images/support_icon.png', + isSelected: desktopSidebarViewModel.currentPage == SidebarItem.support, + onTap: () => desktopSidebarViewModel.onPageChange(SidebarItem.support), + ), SideMenuItem( imagePath: 'assets/images/settings_outline.png', isSelected: desktopSidebarViewModel.currentPage == SidebarItem.settings, diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index 7a8614b75d..9557ff6b96 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/src/widgets/service_status_tile.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -96,15 +97,16 @@ class ServicesUpdatesWidget extends StatelessWidget { : null, child: Stack( children: [ - Image.asset( - "assets/images/notification_icon.png", + SvgPicture.asset( + "assets/images/notification_icon.svg", color: Theme.of(context).extension()!.pageTitleTextColor, + width: 30, ), if (state.hasData && state.data!.hasUpdates) Container( height: 7, width: 7, - margin: EdgeInsetsDirectional.only(start: 8), + margin: EdgeInsetsDirectional.only(start: 15), decoration: BoxDecoration( color: Colors.red, shape: BoxShape.circle, diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index a21a92cb42..b02c09f827 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -344,15 +344,13 @@ abstract class DashboardViewModelBase with Store { bool hasExchangeAction; @computed - bool get isEnabledBuyAction => - !settingsStore.disableBuy && availableBuyProviders.isNotEmpty; + bool get isEnabledBuyAction => !settingsStore.disableBuy && availableBuyProviders.isNotEmpty; @observable bool hasBuyAction; @computed - bool get isEnabledSellAction => - !settingsStore.disableSell && availableSellProviders.isNotEmpty; + bool get isEnabledSellAction => !settingsStore.disableSell && availableSellProviders.isNotEmpty; @observable bool hasSellAction; @@ -477,7 +475,8 @@ abstract class DashboardViewModelBase with Store { Future> checkAffectedWallets() async { // await load file - final vulnerableSeedsString = await rootBundle.loadString('assets/text/cakewallet_weak_bitcoin_seeds_hashed_sorted_version1.txt'); + final vulnerableSeedsString = await rootBundle + .loadString('assets/text/cakewallet_weak_bitcoin_seeds_hashed_sorted_version1.txt'); final vulnerableSeeds = vulnerableSeedsString.split("\n"); final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); @@ -513,13 +512,16 @@ abstract class DashboardViewModelBase with Store { final oldSha = sharedPreferences.getString(PreferencesKey.serviceStatusShaKey); - final hash = await Cryptography.instance.sha256().hash(utf8.encode(res.body)); final currentSha = bytesToHex(hash.bytes); final hasUpdates = oldSha != currentSha; - return ServicesResponse.fromJson(json.decode(res.body) as Map, hasUpdates, currentSha); + return ServicesResponse.fromJson( + json.decode(res.body) as Map, + hasUpdates, + currentSha, + ); } catch (_) { return ServicesResponse([], false, ''); } diff --git a/lib/view_model/dashboard/desktop_sidebar_view_model.dart b/lib/view_model/dashboard/desktop_sidebar_view_model.dart index 543b44b354..52a6dc49ba 100644 --- a/lib/view_model/dashboard/desktop_sidebar_view_model.dart +++ b/lib/view_model/dashboard/desktop_sidebar_view_model.dart @@ -5,6 +5,7 @@ part 'desktop_sidebar_view_model.g.dart'; enum SidebarItem { dashboard, transactions, + status, support, settings, } diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index fa3701fa71..eb1aaaacc7 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.0" -MONERO_COM_BUILD_NUMBER=77 +MONERO_COM_VERSION="1.11.1" +MONERO_COM_BUILD_NUMBER=78 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.14.0" -CAKEWALLET_BUILD_NUMBER=196 +CAKEWALLET_VERSION="4.14.1" +CAKEWALLET_BUILD_NUMBER=197 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/android/build_monero.sh b/scripts/android/build_monero.sh index 7e9b58b6dc..fb596e4529 100755 --- a/scripts/android/build_monero.sh +++ b/scripts/android/build_monero.sh @@ -1,13 +1,12 @@ #!/bin/sh . ./config.sh -MONERO_BRANCH=release-v0.18.2.2-android_tx_priority_fix +MONERO_BRANCH=release-v0.18.3.2-android MONERO_SRC_DIR=${WORKDIR}/monero git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH} cd $MONERO_SRC_DIR -git submodule init -git submodule update +git submodule update --init --force for arch in "aarch" "aarch64" "i686" "x86_64" do @@ -59,7 +58,7 @@ cd $MONERO_SRC_DIR rm -rf ./build/release mkdir -p ./build/release cd ./build/release -CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS ../.. +CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} -D MANUAL_SUBMODULES=1 $FLAGS ../.. make wallet_api -j$THREADS find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 31f0b95485..1c778063d4 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.0" -MONERO_COM_BUILD_NUMBER=75 +MONERO_COM_VERSION="1.11.1" +MONERO_COM_BUILD_NUMBER=76 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.0" -CAKEWALLET_BUILD_NUMBER=215 +CAKEWALLET_VERSION="4.14.1" +CAKEWALLET_BUILD_NUMBER=216 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/ios/build_monero.sh b/scripts/ios/build_monero.sh index 2c81576f12..6f06f22c19 100755 --- a/scripts/ios/build_monero.sh +++ b/scripts/ios/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2_tx_priority_fix +MONERO_VERSION=release-v0.18.3.2 BUILD_TYPE=release PREFIX=${EXTERNAL_IOS_DIR} DEST_LIB_DIR=${EXTERNAL_IOS_LIB_DIR}/monero @@ -52,6 +52,7 @@ cmake -D IOS=ON \ -DUNBOUND_INCLUDE_DIR=${EXTERNAL_IOS_INCLUDE_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DUSE_DEVICE_TREZOR=OFF \ + -DMANUAL_SUBMODULES=1 \ ../.. make wallet_api -j4 find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 4dec47f40f..4c84832e69 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.1.0" -MONERO_COM_BUILD_NUMBER=7 +MONERO_COM_VERSION="1.1.1" +MONERO_COM_BUILD_NUMBER=9 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.7.0" -CAKEWALLET_BUILD_NUMBER=55 +CAKEWALLET_VERSION="1.7.1" +CAKEWALLET_BUILD_NUMBER=56 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/scripts/macos/build_monero.sh b/scripts/macos/build_monero.sh index 2a1ae89a53..1af7ae0e3a 100755 --- a/scripts/macos/build_monero.sh +++ b/scripts/macos/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2_tx_priority_fix +MONERO_VERSION=release-v0.18.3.2 BUILD_TYPE=release PREFIX=${EXTERNAL_MACOS_DIR} DEST_LIB_DIR=${EXTERNAL_MACOS_LIB_DIR}/monero @@ -46,6 +46,7 @@ cmake -DARCH=${ARCH} \ -DUNBOUND_INCLUDE_DIR=${EXTERNAL_MACOS_INCLUDE_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DUSE_DEVICE_TREZOR=OFF \ + -DMANUAL_SUBMODULES=1 \ ../.. make wallet_api -j4 find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; From 27347779fa55232f9ceea6ee4e8c7466101b85a3 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 18 Mar 2024 17:45:11 +0200 Subject: [PATCH 002/157] New versions (#1334) * Enable Exolix Improve service updates indicator New versions * Add exolix Api token to limits api * Ignore reporting network issues * Change default bitcoin node --- assets/text/Monerocom_Release_Notes.txt | 2 ++ assets/text/Release_Notes.txt | 3 +++ cw_monero/lib/monero_wallet.dart | 8 +----- lib/entities/default_settings_migration.dart | 27 +++++++++++++++++++ .../provider/exolix_exchange_provider.dart | 1 + lib/main.dart | 2 +- lib/src/widgets/services_updates_widget.dart | 13 +++++++-- lib/utils/feature_flag.dart | 2 +- scripts/android/app_env.sh | 8 +++--- scripts/ios/app_env.sh | 8 +++--- scripts/macos/app_env.sh | 8 +++--- 11 files changed, 59 insertions(+), 23 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 05f78b809e..90fcd2a75b 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1,4 @@ +Monero enhancements In-App live status page for the app services +Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 05f78b809e..d8d4ed8302 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,2 +1,5 @@ +Monero enhancements +Bitcoin support different address types (Taproot, Segwit P2WPKH/P2WSH, Legacy) In-App live status page for the app services +Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 5644f6f2ef..d00a54c8ff 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -574,13 +574,7 @@ abstract class MoneroWalletBase int height = 0; try { height = _getHeightByDate(walletInfo.date); - } catch (e, s) { - onError?.call(FlutterErrorDetails( - exception: e, - stack: s, - library: this.runtimeType.toString(), - )); - } + } catch (_) {} monero_wallet.setRecoveringFromSeed(isRecovery: true); monero_wallet.setRefreshFromBlockHeight(height: height); diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 0851d00f54..8ce38e4c48 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -35,6 +35,7 @@ const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002'; const nanoDefaultNodeUri = 'rpc.nano.to'; const nanoDefaultPowNodeUri = 'rpc.nano.to'; const solanaDefaultNodeUri = 'rpc.ankr.com'; +const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002'; Future defaultSettingsMigration( {required int version, @@ -201,9 +202,15 @@ Future defaultSettingsMigration( await changeSolanaCurrentNodeToDefault( sharedPreferences: sharedPreferences, nodes: nodes); break; + case 28: await _updateMoneroPriority(sharedPreferences); break; + + case 29: + await changeDefaultBitcoinNode(nodes, sharedPreferences); + break; + default: break; } @@ -702,6 +709,26 @@ Future changeDefaultMoneroNode( } } +Future changeDefaultBitcoinNode( + Box nodeSource, SharedPreferences sharedPreferences) async { + const cakeWalletBitcoinNodeUriPattern = '.cakewallet.com'; + final currentBitcoinNodeId = + sharedPreferences.getInt(PreferencesKey.currentBitcoinElectrumSererIdKey); + final currentBitcoinNode = + nodeSource.values.firstWhere((node) => node.key == currentBitcoinNodeId); + final needToReplaceCurrentBitcoinNode = + currentBitcoinNode.uri.toString().contains(cakeWalletBitcoinNodeUriPattern); + + final newCakeWalletBitcoinNode = Node(uri: newCakeWalletBitcoinUri, type: WalletType.bitcoin); + + await nodeSource.add(newCakeWalletBitcoinNode); + + if (needToReplaceCurrentBitcoinNode) { + await sharedPreferences.setInt( + PreferencesKey.currentBitcoinElectrumSererIdKey, newCakeWalletBitcoinNode.key as int); + } +} + Future checkCurrentNodes( Box nodeSource, Box powNodeSource, SharedPreferences sharedPreferences) async { final currentMoneroNodeId = sharedPreferences.getInt(PreferencesKey.currentNodeIdKey); diff --git a/lib/exchange/provider/exolix_exchange_provider.dart b/lib/exchange/provider/exolix_exchange_provider.dart index eb40aff732..9374439f3d 100644 --- a/lib/exchange/provider/exolix_exchange_provider.dart +++ b/lib/exchange/provider/exolix_exchange_provider.dart @@ -66,6 +66,7 @@ class ExolixExchangeProvider extends ExchangeProvider { final params = { 'rateType': _getRateType(isFixedRateMode), 'amount': '1', + 'apiToken': apiKey, }; if (isFixedRateMode) { params['coinFrom'] = _normalizeCurrency(to); diff --git a/lib/main.dart b/lib/main.dart index a87bcfdad8..db505f15ad 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,7 +163,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 28); + initialMigrationVersion: 29); } Future initialSetup( diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index 9557ff6b96..65dbe5e408 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -10,17 +10,24 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; -class ServicesUpdatesWidget extends StatelessWidget { +class ServicesUpdatesWidget extends StatefulWidget { final Future servicesResponse; const ServicesUpdatesWidget(this.servicesResponse, {super.key}); + @override + State createState() => _ServicesUpdatesWidgetState(); +} + +class _ServicesUpdatesWidgetState extends State { + bool wasOpened = false; + @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(8.0), child: FutureBuilder( - future: servicesResponse, + future: widget.servicesResponse, builder: (context, state) { return InkWell( onTap: state.hasData @@ -30,6 +37,8 @@ class ServicesUpdatesWidget extends StatelessWidget { .get() .setString(PreferencesKey.serviceStatusShaKey, state.data!.currentSha); + setState(() => wasOpened = true); + showModalBottomSheet( context: context, shape: RoundedRectangleBorder( diff --git a/lib/utils/feature_flag.dart b/lib/utils/feature_flag.dart index 91a4c67ca8..2a29bd949c 100644 --- a/lib/utils/feature_flag.dart +++ b/lib/utils/feature_flag.dart @@ -1,5 +1,5 @@ class FeatureFlag { static const bool isCakePayEnabled = false; - static const bool isExolixEnabled = false; + static const bool isExolixEnabled = true; static const bool isInAppTorEnabled = false; } \ No newline at end of file diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index eb1aaaacc7..02f874d775 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.1" -MONERO_COM_BUILD_NUMBER=78 +MONERO_COM_VERSION="1.12.0" +MONERO_COM_BUILD_NUMBER=79 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.14.1" -CAKEWALLET_BUILD_NUMBER=197 +CAKEWALLET_VERSION="4.15.0" +CAKEWALLET_BUILD_NUMBER=198 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 1c778063d4..b65d3e7a67 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.1" -MONERO_COM_BUILD_NUMBER=76 +MONERO_COM_VERSION="1.12.0" +MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.1" -CAKEWALLET_BUILD_NUMBER=216 +CAKEWALLET_VERSION="4.15.0" +CAKEWALLET_BUILD_NUMBER=217 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 4c84832e69..19a1e68468 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.1.1" -MONERO_COM_BUILD_NUMBER=9 +MONERO_COM_VERSION="1.2.0" +MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.7.1" -CAKEWALLET_BUILD_NUMBER=56 +CAKEWALLET_VERSION="1.8.0" +CAKEWALLET_BUILD_NUMBER=57 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From 58b2dfb26cc32a1f445ad916b941fea2c910349f Mon Sep 17 00:00:00 2001 From: Serhii Date: Tue, 19 Mar 2024 21:55:34 +0200 Subject: [PATCH 003/157] Fix deep link handling issue (#1297) * Update root.dart * Revert "Update root.dart" This reverts commit 5808903aafa81c316eb8a32a462ee18392e08f2f. * Update root.dart * increase delay * fix with mobx reaction * lunchUri fix --- lib/src/screens/root/root.dart | 42 ++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/lib/src/screens/root/root.dart b/lib/src/screens/root/root.dart index 5704c99ada..8a75b78bba 100644 --- a/lib/src/screens/root/root.dart +++ b/lib/src/screens/root/root.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/payment_request.dart'; +import 'package:cw_core/wallet_base.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; @@ -12,6 +13,7 @@ import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/authentication_store.dart'; import 'package:cake_wallet/entities/qr_scanner.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:mobx/mobx.dart'; import 'package:uni_links/uni_links.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; @@ -49,6 +51,7 @@ class RootState extends State with WidgetsBindingObserver { bool _requestAuth; StreamSubscription? stream; + ReactionDisposer? _walletReactionDisposer; Uri? launchUri; @override @@ -72,6 +75,7 @@ class RootState extends State with WidgetsBindingObserver { @override void dispose() { stream?.cancel(); + _walletReactionDisposer?.call(); super.dispose(); } @@ -169,10 +173,20 @@ class RootState extends State with WidgetsBindingObserver { ); }); } else if (_isValidPaymentUri()) { - widget.navigatorKey.currentState?.pushNamed( - Routes.send, - arguments: PaymentRequest.fromUri(launchUri), - ); + if (widget.authenticationStore.state == AuthenticationState.uninitialized) { + launchUri = null; + } else { + if (widget.appStore.wallet == null) { + waitForWalletInstance(context, launchUri!); + launchUri = null; + } else { + widget.navigatorKey.currentState?.pushNamed( + Routes.send, + arguments: PaymentRequest.fromUri(launchUri), + ); + launchUri = null; + } + } launchUri = null; } else if (isWalletConnectLink) { if (isEVMCompatibleChain(widget.appStore.wallet!.type)) { @@ -233,4 +247,24 @@ class RootState extends State with WidgetsBindingObserver { fontSize: 16.0, ); } + + void waitForWalletInstance(BuildContext context, Uri tempLaunchUri) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + _walletReactionDisposer = reaction( + (_) => widget.appStore.wallet, + (WalletBase? wallet) { + if (wallet != null) { + widget.navigatorKey.currentState?.pushNamed( + Routes.send, + arguments: PaymentRequest.fromUri(tempLaunchUri), + ); + _walletReactionDisposer?.call(); + _walletReactionDisposer = null; + } + }, + ); + } + }); + } } From a0c0ede0998124bf68b89ab95366f63613ea37d0 Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 20 Mar 2024 00:44:00 +0200 Subject: [PATCH 004/157] Cw 588 show popup for adding to address book (#1326) * popup for adding to address book * update localization files --- lib/src/screens/send/send_page.dart | 58 ++++++++++++++----- .../contact_list/contact_view_model.dart | 4 +- lib/view_model/send/send_view_model.dart | 29 ++++++++++ res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 +- 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_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 3 +- 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_yo.arb | 1 + res/values/strings_zh.arb | 1 + 29 files changed, 103 insertions(+), 18 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index a3b7eaf856..a4c095739e 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/core/auth_service.dart'; +import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/template.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; @@ -48,6 +49,7 @@ class SendPage extends BasePage { final PaymentRequest? initialPaymentRequest; bool _effectsInstalled = false; + ContactRecord? newContactAddress; @override String get title => S.current.send; @@ -443,22 +445,50 @@ class SendPage extends BasePage { } if (state is TransactionCommitted) { - String alertContent; - if (sendViewModel.walletType == WalletType.solana) { - alertContent = - '${S.of(_dialogContext).send_success(sendViewModel.selectedCryptoCurrency.toString())}. ${S.of(_dialogContext).waitFewSecondForTxUpdate}'; + newContactAddress = + newContactAddress ?? sendViewModel.newContactAddress(); + + final successMessage = S.of(_dialogContext).send_success( + sendViewModel.selectedCryptoCurrency.toString()); + + final waitMessage = sendViewModel.walletType == WalletType.solana + ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}' : ''; + + final newContactMessage = newContactAddress != null + ? '\n${S.of(context).add_contact_to_address_book}' : ''; + + final alertContent = + "$successMessage$waitMessage$newContactMessage"; + + if (newContactAddress != null) { + return AlertWithTwoActions( + alertTitle: '', + alertContent: alertContent, + rightButtonText: S.of(_dialogContext).add_contact, + leftButtonText: S.of(_dialogContext).ignor, + actionRightButton: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + Navigator.of(context).pushNamed( + Routes.addressBookAddContact, + arguments: newContactAddress); + newContactAddress = null; + }, + actionLeftButton: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + newContactAddress = null; + }); } else { - alertContent = S.of(_dialogContext).send_success( - sendViewModel.selectedCryptoCurrency.toString()); + return AlertWithOneAction( + alertTitle: '', + alertContent: alertContent, + buttonText: S.of(_dialogContext).ok, + buttonAction: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + }); } - return AlertWithOneAction( - alertTitle: '', - alertContent: alertContent, - buttonText: S.of(_dialogContext).ok, - buttonAction: () { - Navigator.of(_dialogContext).pop(); - RequestReviewHandler.requestReview(); - }); } return Offstage(); diff --git a/lib/view_model/contact_list/contact_view_model.dart b/lib/view_model/contact_list/contact_view_model.dart index 258348d3d6..053cfe4c50 100644 --- a/lib/view_model/contact_list/contact_view_model.dart +++ b/lib/view_model/contact_list/contact_view_model.dart @@ -48,11 +48,11 @@ abstract class ContactViewModelBase with Store { currency = null; } - Future save() async { + Future save() async { try { state = IsExecutingState(); - if (_contact != null) { + if (_contact != null && _contact!.original.isInBox) { _contact?.name = name; _contact?.address = address; _contact?.type = currency!; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 507ed14cc7..7636c485af 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; @@ -420,6 +421,34 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } } + ContactRecord? newContactAddress () { + + final Set contactAddresses = + Set.from(contactListViewModel.contacts.map((contact) => contact.address)) + ..addAll(contactListViewModel.walletContacts.map((contact) => contact.address)); + + for (var output in outputs) { + String address; + if (output.isParsedAddress) { + address = output.parsedAddress.addresses.first; + } else { + address = output.address; + } + + if (address.isNotEmpty && !contactAddresses.contains(address)) { + + return ContactRecord( + contactListViewModel.contactSource, + Contact( + name: '', + address: address, + type: selectedCryptoCurrency, + )); + } + } + return null; + } + String translateErrorMessage( String error, WalletType walletType, diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index a5ea72ce72..900f59135c 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "ﺎﻨﻫ ﺔﻄﺸﻨﻟﺍ ﺕﻻﺎﺼﺗﻻﺍ ﺮﻬﻈﺘﺳ", "add": "إضافة", "add_contact": "ﻝﺎﺼﺗﺍ ﺔﻬﺟ ﺔﻓﺎﺿﺇ", + "add_contact_to_address_book": "هل ترغب في إضافة جهة الاتصال هذه إلى دفتر العناوين الخاص بك؟", "add_custom_node": "إضافة عقدة مخصصة جديدة", "add_custom_redemption": "إضافة استرداد مخصص", "add_fund_to_card": "أضف أموالاً مدفوعة مسبقًا إلى البطاقات (حتى ${value})", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index a42460619f..3e8cd148e5 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Тук ще се появят активни връзки", "add": "Добави", "add_contact": "Добави контакт", + "add_contact_to_address_book": "Искате ли да добавите този контакт към вашата адресна книга?", "add_custom_node": "Добавяне на нов персонализиран Node", "add_custom_redemption": "Добавете персонализиран Redemption", "add_fund_to_card": "Добавете предплатени средства в картите (до ${value})", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8970d394a2..8a52138211 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Zde se zobrazí aktivní připojení", "add": "Přidat", "add_contact": "Přidat kontakt", + "add_contact_to_address_book": "Chcete přidat tento kontakt do svého adresáře?", "add_custom_node": "Přidat vlastní uzel", "add_custom_redemption": "Přidat vlastní uplatnění", "add_fund_to_card": "Všechny předplacené prostředky na kartě (až ${value})", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 93d4210619..549f6f7751 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Hier werden aktive Verbindungen angezeigt", "add": "Hinzufügen", "add_contact": "Kontakt hinzufügen", + "add_contact_to_address_book": "Möchten Sie diesen Kontakt zu Ihrem Adressbuch hinzufügen?", "add_custom_node": "Neuen benutzerdefinierten Knoten hinzufügen", "add_custom_redemption": "Benutzerdefinierte Einlösung hinzufügen", "add_fund_to_card": "Prepaid-Guthaben zu den Karten hinzufügen (bis zu ${value})", @@ -410,8 +411,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 4ccade317d..9b1610da57 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Active connections will appear here", "add": "Add", "add_contact": "Add contact", + "add_contact_to_address_book": "Would you like to add this contact to your address book?", "add_custom_node": "Add New Custom Node", "add_custom_redemption": "Add Custom Redemption", "add_fund_to_card": "Add prepaid funds to the cards (up to ${value})", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 611f3bd356..4847f55216 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Las conexiones activas aparecerán aquí", "add": "Añadir", "add_contact": "Agregar contacto", + "add_contact_to_address_book": "¿Le gustaría agregar este contacto a su libreta de direcciones?", "add_custom_node": "Agregar nuevo nodo personalizado", "add_custom_redemption": "Agregar redención personalizada", "add_fund_to_card": "Agregar fondos prepagos a las tarjetas (hasta ${value})", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index f00a853109..d1390a5ca5 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Les connexions actives apparaîtront ici", "add": "Ajouter", "add_contact": "Ajouter le contact", + "add_contact_to_address_book": "Souhaitez-vous ajouter ce contact à votre carnet d'adresses?", "add_custom_node": "Ajouter un nouveau nœud personnalisé", "add_custom_redemption": "Ajouter un remboursement personnalisé", "add_fund_to_card": "Ajouter des fonds prépayés aux cartes (jusqu'à ${value})", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index ab314af7fb..e9bd604d27 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Haɗin kai mai aiki zai bayyana a nan", "add": "Ƙara", "add_contact": "Ƙara lamba", + "add_contact_to_address_book": "Kuna so ku ƙara wannan lamba zuwa littafin adireshinku?", "add_custom_node": "Ƙara Sabon Kulli na Custom", "add_custom_redemption": "Ƙara Ceto na Musamman", "add_fund_to_card": "Ƙara kuɗin da aka riga aka biya a katunan (har zuwa ${value})", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index da7d97c46d..535fd02642 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "सक्रिय कनेक्शन यहां दिखाई देंगे", "add": "जोड़ना", "add_contact": "संपर्क जोड़ें", + "add_contact_to_address_book": "क्या आप इस संपर्क को अपनी एड्रेस बुक में जोड़ना चाहेंगे?", "add_custom_node": "नया कस्टम नोड जोड़ें", "add_custom_redemption": "कस्टम रिडेम्पशन जोड़ें", "add_fund_to_card": "कार्ड में प्रीपेड धनराशि जोड़ें (${value} तक)", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 22b486a1c0..9a7cab450a 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Ovdje će se pojaviti aktivne veze", "add": "Dodaj", "add_contact": "Dodaj kontakt", + "add_contact_to_address_book": "Želite li dodati ovaj kontakt u svoj adresar?", "add_custom_node": "Dodaj novi prilagođeni čvor", "add_custom_redemption": "Dodaj prilagođeni otkup", "add_fund_to_card": "Dodajte unaprijed uplaćena sredstva na kartice (do ${value})", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index a2f3ed0171..f29298c4f7 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Koneksi aktif akan muncul di sini", "add": "Menambahkan", "add_contact": "Tambah kontak", + "add_contact_to_address_book": "Apakah Anda ingin menambahkan kontak ini ke buku alamat Anda?", "add_custom_node": "Tambahkan Node Kustom Baru", "add_custom_redemption": "Tambahkan Tukar Kustom", "add_fund_to_card": "Tambahkan dana pra-bayar ke kartu (hingga ${value})", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 015b63d472..82dd6b9768 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Le connessioni attive verranno visualizzate qui", "add": "Aggiungi", "add_contact": "Aggiungi contatto", + "add_contact_to_address_book": "Vorresti aggiungere questo contatto alla tua rubrica?", "add_custom_node": "Aggiungi nuovo nodo personalizzato", "add_custom_redemption": "Aggiungi riscatto personalizzato", "add_fund_to_card": "Aggiungi fondi prepagati alle carte (fino a ${value})", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 36ec1932bd..95a7643b0a 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "アクティブな接続がここに表示されます", "add": "加える", "add_contact": "連絡先を追加", + "add_contact_to_address_book": "この連絡先をアドレス帳に追加しますか?", "add_custom_node": "新しいカスタム ノードを追加", "add_custom_redemption": "カスタム引き換えを追加", "add_fund_to_card": "プリペイド資金をカードに追加します(最大 ${value})", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index b51f42e8f4..e8b208c284 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "활성 연결이 여기에 표시됩니다", "add": "더하다", "add_contact": "주소록에 추가", + "add_contact_to_address_book": "이 연락처를 주소록에 추가 하시겠습니까?", "add_custom_node": "새 사용자 정의 노드 추가", "add_custom_redemption": "사용자 지정 상환 추가", "add_fund_to_card": "카드에 선불 금액 추가(최대 ${value})", @@ -410,8 +411,8 @@ "placeholder_transactions": "거래가 여기에 표시됩니다", "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index fe719a82bb..42ea07cb6b 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "လက်ရှိချိတ်ဆက်မှုများ ဤနေရာတွင် ပေါ်လာပါမည်။", "add": "ထည့်ပါ။", "add_contact": "အဆက်အသွယ်ထည့်ပါ။", + "add_contact_to_address_book": "ဒီအဆက်အသွယ်ကိုမင်းရဲ့လိပ်စာစာအုပ်နဲ့ထပ်ထည့်ချင်ပါသလား။", "add_custom_node": "စိတ်ကြိုက် Node အသစ်ကို ထည့်ပါ။", "add_custom_redemption": "စိတ်ကြိုက်ရွေးယူမှုကို ထည့်ပါ။", "add_fund_to_card": "ကတ်များသို့ ကြိုတင်ငွေပေးငွေများ ထည့်ပါ (${value} အထိ)", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index ed5054abe9..a00a12338b 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Actieve verbindingen worden hier weergegeven", "add": "Toevoegen", "add_contact": "Contactpersoon toevoegen", + "add_contact_to_address_book": "Wilt u dit contact toevoegen aan uw adresboek?", "add_custom_node": "Voeg een nieuw aangepast knooppunt toe", "add_custom_redemption": "Voeg aangepaste inwisseling toe", "add_fund_to_card": "Voeg prepaid tegoed toe aan de kaarten (tot ${value})", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index aa567799e2..1ad616bc9d 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Tutaj pojawią się aktywne połączenia", "add": "Dodaj", "add_contact": "Dodaj kontakt", + "add_contact_to_address_book": "Czy chciałbyś dodać ten kontakt do swojej książki adresowej?", "add_custom_node": "Dodaj nowy węzeł niestandardowy", "add_custom_redemption": "Dodaj niestandardowe wykorzystanie", "add_fund_to_card": "Dodaj przedpłacone środki do kart (do ${value})", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index b0aa7cab59..c1b5791866 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Conexões ativas aparecerão aqui", "add": "Adicionar", "add_contact": "Adicionar contato", + "add_contact_to_address_book": "Você gostaria de adicionar esse contato ao seu catálogo de endereços?", "add_custom_node": "Adicionar novo nó personalizado", "add_custom_redemption": "Adicionar resgate personalizado", "add_fund_to_card": "Adicionar fundos pré-pagos aos cartões (até ${value})", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index bfb7b62d77..f327f126a1 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Здесь появятся активные подключения", "add": "Добавить", "add_contact": "Добавить контакт", + "add_contact_to_address_book": "Хотели бы вы добавить этот контакт в свою адресную книгу?", "add_custom_node": "Добавить новый пользовательский узел", "add_custom_redemption": "Добавить пользовательское погашение", "add_fund_to_card": "Добавить предоплаченные средства на карты (до ${value})", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 5da17828f5..255b80df76 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "การเชื่อมต่อที่ใช้งานอยู่จะปรากฏที่นี่", "add": "เพิ่ม", "add_contact": "เพิ่มผู้ติดต่อ", + "add_contact_to_address_book": "คุณต้องการเพิ่มผู้ติดต่อนี้ในสมุดที่อยู่ของคุณหรือไม่?", "add_custom_node": "เพิ่มจุดโหนดแบบกำหนดเอง", "add_custom_redemption": "เพิ่มการรับคืนที่กำหนดเอง", "add_fund_to_card": "เพิ่มเงินสำรองไว้บนบัตร (ถึง ${value})", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index e0a0b1eaef..1d70638818 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Lalabas dito ang mga aktibong koneksyon", "add": "Idagdag", "add_contact": "Magdagdag ng contact", + "add_contact_to_address_book": "Nais mo bang idagdag ang contact na ito sa iyong address book?", "add_custom_node": "Magdagdag ng bagong pasadyang node", "add_custom_redemption": "Magdagdag ng pasadyang pagtubos", "add_fund_to_card": "Magdagdag ng prepaid na pondo sa mga kard (hanggang sa ${value})", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index c4d64305e8..99879d5ef4 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Aktif bağlantılar burada görünecek", "add": "Ekle", "add_contact": "Kişi ekle", + "add_contact_to_address_book": "Bu kişiyi adres defterinize eklemek ister misiniz?", "add_custom_node": "Yeni Özel Düğüm Ekleme", "add_custom_redemption": "Özel Bozdurma Ekle", "add_fund_to_card": "Ön ödemeli kartlara para ekle (En fazla yüklenebilir tutar: ${value})", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 59371cdbe7..63c59d4750 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Тут з’являться активні підключення", "add": "Добавити", "add_contact": "Додати контакт", + "add_contact_to_address_book": "Хотіли б ви додати цей контакт до своєї адресної книги?", "add_custom_node": "Додати новий спеціальний вузол", "add_custom_redemption": "Додати спеціальне погашення", "add_fund_to_card": "Додайте передплачені кошти на картки (до ${value})", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 73b7585611..08212c0b1b 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "۔ﮯﮔ ﮞﻮﮨ ﺮﮨﺎﻇ ﮞﺎﮩﯾ ﺰﻨﺸﮑﻨﮐ ﻝﺎﻌﻓ", "add": "شامل کریں۔", "add_contact": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮧﻄﺑﺍﺭ", + "add_contact_to_address_book": "کیا آپ اس رابطہ کو اپنی ایڈریس بک میں شامل کرنا چاہیں گے؟", "add_custom_node": "نیا کسٹم نوڈ شامل کریں۔", "add_custom_redemption": "حسب ضرورت چھٹکارا شامل کریں۔", "add_fund_to_card": "کارڈز میں پری پیڈ فنڈز شامل کریں (${value} تک)", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 4ccf10ff6d..f9b1988435 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Awọn asopọ ti nṣiṣe lọwọ yoo han nibi", "add": "Fikún", "add_contact": "Fi olubasọrọ kun", + "add_contact_to_address_book": "Ṣe o fẹ lati ṣafikun olubasọrọ yii si iwe adirẹsi rẹ?", "add_custom_node": "Fikún apẹka títun t'ẹ́ pààrọ̀", "add_custom_redemption": "Tẹ̀ iye owó t'ẹ́ fẹ́ ná", "add_fund_to_card": "Ẹ fikún owó sí àwọn káàdì (kò tóbi ju ${value})", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 3cff279960..8a61a6a4a0 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "活动连接将出现在这里", "add": "添加", "add_contact": "增加联系人", + "add_contact_to_address_book": "您想将此联系人添加到您的通讯录中吗?", "add_custom_node": "添加新的自定义节点", "add_custom_redemption": "添加自定义兑换", "add_fund_to_card": "向卡中添加预付资金(最多 ${value})", From 5a7a0e01a735849435b56930a3efa998805db657 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 04:51:57 +0200 Subject: [PATCH 005/157] Litcoin bitcoin cash fix (#1339) * Make address to output script a single entry point Fix network type for bitcoin cash * Add MoonPay to sell polygon * Normalize currency for moonpay widget * Minor fix * fix: litecoin & bch address types * fix: remove print * fix: network decode location * fix: missing place additional network type * fix: wrong initial address page type * fix: initial address generation * fix: btc exchange sending all, bch without change addresses * Minor fixes * Update app versions [skip ci] --------- Co-authored-by: Rafael Saes --- assets/text/Release_Notes.txt | 4 - cw_bitcoin/lib/address_to_output_script.dart | 3 + cw_bitcoin/lib/bitcoin_address_record.dart | 15 +- cw_bitcoin/lib/bitcoin_wallet.dart | 8 +- cw_bitcoin/lib/electrum_wallet.dart | 56 ++- cw_bitcoin/lib/electrum_wallet_addresses.dart | 41 +- cw_bitcoin/lib/electrum_wallet_snapshot.dart | 10 +- cw_bitcoin/lib/script_hash.dart | 7 +- cw_bitcoin/pubspec.lock | 10 +- cw_bitcoin/pubspec.yaml | 4 +- .../lib/src/bitcoin_cash_wallet.dart | 28 +- .../src/bitcoin_cash_wallet_addresses.dart | 1 + cw_bitcoin_cash/pubspec.yaml | 2 +- ios/Podfile.lock | 4 +- lib/bitcoin/cw_bitcoin.dart | 24 +- lib/buy/moonpay/moonpay_provider.dart | 10 +- lib/core/address_validator.dart | 2 +- lib/entities/provider_types.dart | 7 +- lib/src/screens/exchange/exchange_page.dart | 21 +- .../exchange/exchange_template_page.dart | 365 ++++++++---------- .../exchange/widgets/exchange_card.dart | 242 ++++++------ lib/src/screens/send/send_template_page.dart | 12 +- lib/src/screens/send/widgets/send_card.dart | 23 +- .../exchange/exchange_view_model.dart | 27 +- macos/Podfile.lock | 2 +- pubspec_base.yaml | 2 +- scripts/android/app_env.sh | 4 +- scripts/ios/app_env.sh | 4 +- scripts/macos/app_env.sh | 4 +- tool/configure.dart | 2 +- 30 files changed, 497 insertions(+), 447 deletions(-) diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index d8d4ed8302..83e18c18ec 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,5 +1 @@ -Monero enhancements -Bitcoin support different address types (Taproot, Segwit P2WPKH/P2WSH, Legacy) -In-App live status page for the app services -Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/cw_bitcoin/lib/address_to_output_script.dart b/cw_bitcoin/lib/address_to_output_script.dart index 6ae50132b4..892f7a0d6b 100644 --- a/cw_bitcoin/lib/address_to_output_script.dart +++ b/cw_bitcoin/lib/address_to_output_script.dart @@ -3,6 +3,9 @@ import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin; List addressToOutputScript(String address, bitcoin.BasedUtxoNetwork network) { try { + if (network == bitcoin.BitcoinCashNetwork.mainnet) { + return bitcoin.BitcoinCashAddress(address).baseAddress.toScriptPubKey().toBytes(); + } return bitcoin.addressToOutputScript(address: address, network: network); } catch (err) { print(err); diff --git a/cw_bitcoin/lib/bitcoin_address_record.dart b/cw_bitcoin/lib/bitcoin_address_record.dart index d8d9082305..d1c3b6a617 100644 --- a/cw_bitcoin/lib/bitcoin_address_record.dart +++ b/cw_bitcoin/lib/bitcoin_address_record.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/script_hash.dart' as sh; @@ -20,10 +19,9 @@ class BitcoinAddressRecord { _balance = balance, _name = name, _isUsed = isUsed, - scriptHash = - scriptHash ?? (network != null ? sh.scriptHash(address, network: network) : null); + scriptHash = scriptHash ?? sh.scriptHash(address, network: network); - factory BitcoinAddressRecord.fromJSON(String jsonSource, BasedUtxoNetwork? network) { + factory BitcoinAddressRecord.fromJSON(String jsonSource, BasedUtxoNetwork network) { final decoded = json.decode(jsonSource) as Map; return BitcoinAddressRecord( @@ -39,9 +37,7 @@ class BitcoinAddressRecord { .firstWhere((type) => type.toString() == decoded['type'] as String) : SegwitAddresType.p2wpkh, scriptHash: decoded['scriptHash'] as String?, - network: (decoded['network'] as String?) == null - ? network - : BasedUtxoNetwork.fromName(decoded['network'] as String), + network: network, ); } @@ -56,7 +52,7 @@ class BitcoinAddressRecord { String _name; bool _isUsed; String? scriptHash; - BasedUtxoNetwork? network; + BasedUtxoNetwork network; int get txCount => _txCount; @@ -76,8 +72,6 @@ class BitcoinAddressRecord { @override int get hashCode => address.hashCode; - String get cashAddr => bitbox.Address.toCashAddress(address); - BitcoinAddressType type; String updateScriptHash(BasedUtxoNetwork network) { @@ -95,6 +89,5 @@ class BitcoinAddressRecord { 'balance': balance, 'type': type.toString(), 'scriptHash': scriptHash, - 'network': network?.value, }); } diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 3b3e9c6363..bf59e86371 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -92,8 +92,10 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { required Box unspentCoinsInfo, required String password, }) async { - final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, - walletInfo.network != null ? BasedUtxoNetwork.fromName(walletInfo.network!) : null); + final network = walletInfo.network != null + ? BasedUtxoNetwork.fromName(walletInfo.network!) + : BitcoinNetwork.mainnet; + final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, network); return BitcoinWallet( mnemonic: snp.mnemonic, @@ -106,7 +108,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, addressPageType: snp.addressPageType, - networkParam: snp.network, + networkParam: network, ); } } diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index c3f40a2353..86fbd6dbeb 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -75,11 +75,7 @@ abstract class ElectrumWalletBase } : {}), this.unspentCoinsInfo = unspentCoinsInfo, - this.network = networkType == bitcoin.bitcoin - ? BitcoinNetwork.mainnet - : networkType == litecoinNetwork - ? LitecoinNetwork.mainnet - : BitcoinNetwork.testnet, + this.network = _getNetwork(networkType, currency), this.isTestnet = networkType == bitcoin.testnet, super(walletInfo) { this.electrumClient = electrumClient ?? ElectrumClient(); @@ -192,12 +188,13 @@ abstract class ElectrumWalletBase } } - Future _estimateTxFeeAndInputsToUse( + Future estimateTxFeeAndInputsToUse( int credentialsAmount, bool sendAll, List outputAddresses, List outputs, - BitcoinTransactionCredentials transactionCredentials, + int? feeRate, + BitcoinTransactionPriority? priority, {int? inputsCount}) async { final utxos = []; List privateKeys = []; @@ -212,7 +209,7 @@ abstract class ElectrumWalletBase allInputsAmount += utx.value; leftAmount = leftAmount - utx.value; - final address = _addressTypeFromStr(utx.address, network); + final address = addressTypeFromStr(utx.address, network); final privkey = generateECPrivate( hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, index: utx.bitcoinAddressRecord.index, @@ -249,7 +246,7 @@ abstract class ElectrumWalletBase if (!sendAll) { if (changeValue > 0) { final changeAddress = await walletAddresses.getChangeAddress(); - final address = _addressTypeFromStr(changeAddress, network); + final address = addressTypeFromStr(changeAddress, network); outputAddresses.add(address); outputs.add(BitcoinOutput(address: address, value: BigInt.from(changeValue))); } @@ -258,9 +255,9 @@ abstract class ElectrumWalletBase final estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( utxos: utxos, outputs: outputs, network: network); - final fee = transactionCredentials.feeRate != null - ? feeAmountWithFeeRate(transactionCredentials.feeRate!, 0, 0, size: estimatedSize) - : feeAmountForPriority(transactionCredentials.priority!, 0, 0, size: estimatedSize); + int fee = feeRate != null + ? feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize) + : feeAmountForPriority(priority!, 0, 0, size: estimatedSize); if (fee == 0) { throw BitcoinTransactionWrongBalanceException(currency); @@ -297,8 +294,8 @@ abstract class ElectrumWalletBase outputs.removeLast(); } - return _estimateTxFeeAndInputsToUse( - credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials, + return estimateTxFeeAndInputsToUse( + credentialsAmount, sendAll, outputAddresses, outputs, feeRate, priority, inputsCount: utxos.length + 1); } } @@ -319,7 +316,7 @@ abstract class ElectrumWalletBase for (final out in transactionCredentials.outputs) { final outputAddress = out.isParsedAddress ? out.extractedAddress! : out.address; - final address = _addressTypeFromStr(outputAddress, network); + final address = addressTypeFromStr(outputAddress, network); outputAddresses.add(address); @@ -344,8 +341,14 @@ abstract class ElectrumWalletBase } } - final estimatedTx = await _estimateTxFeeAndInputsToUse( - credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials); + final estimatedTx = await estimateTxFeeAndInputsToUse( + credentialsAmount, + sendAll, + outputAddresses, + outputs, + transactionCredentials.feeRate, + transactionCredentials.priority, + ); final txb = BitcoinTransactionBuilder( utxos: estimatedTx.utxos, @@ -391,7 +394,6 @@ abstract class ElectrumWalletBase ? SegwitAddresType.p2wpkh.toString() : walletInfo.addressPageType.toString(), 'balance': balance[currency]?.toJSON(), - 'network_type': network == BitcoinNetwork.testnet ? 'testnet' : 'mainnet', }); int feeRate(TransactionPriority priority) { @@ -852,6 +854,22 @@ abstract class ElectrumWalletBase final HD = index == null ? hd : hd.derive(index); return base64Encode(HD.signMessage(message)); } + + static BasedUtxoNetwork _getNetwork(bitcoin.NetworkType networkType, CryptoCurrency? currency) { + if (networkType == bitcoin.bitcoin && currency == CryptoCurrency.bch) { + return BitcoinCashNetwork.mainnet; + } + + if (networkType == litecoinNetwork) { + return LitecoinNetwork.mainnet; + } + + if (networkType == bitcoin.testnet) { + return BitcoinNetwork.testnet; + } + + return BitcoinNetwork.mainnet; + } } class EstimateTxParams { @@ -879,7 +897,7 @@ class EstimatedTxResult { final int amount; } -BitcoinBaseAddress _addressTypeFromStr(String address, BasedUtxoNetwork network) { +BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { if (P2pkhAddress.regex.hasMatch(address)) { return P2pkhAddress.fromAddress(address: address, network: network); } else if (P2shAddress.regex.hasMatch(address)) { diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 5880f5a19b..828bda8aff 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -1,6 +1,5 @@ import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:bitbox/bitbox.dart' as bitbox; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_core/wallet_addresses.dart'; @@ -30,6 +29,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { List? initialAddresses, Map? initialRegularAddressIndex, Map? initialChangeAddressIndex, + BitcoinAddressType? initialAddressPageType, }) : _addresses = ObservableList.of((initialAddresses ?? []).toSet()), addressesByReceiveType = ObservableList.of(([]).toSet()), @@ -41,9 +41,10 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { .toSet()), currentReceiveAddressIndexByType = initialRegularAddressIndex ?? {}, currentChangeAddressIndexByType = initialChangeAddressIndex ?? {}, - _addressPageType = walletInfo.addressPageType != null - ? BitcoinAddressType.fromValue(walletInfo.addressPageType!) - : SegwitAddresType.p2wpkh, + _addressPageType = initialAddressPageType ?? + (walletInfo.addressPageType != null + ? BitcoinAddressType.fromValue(walletInfo.addressPageType!) + : SegwitAddresType.p2wpkh), super(walletInfo) { updateAddressesByMatch(); } @@ -52,10 +53,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { static const defaultChangeAddressesCount = 17; static const gap = 20; - static String toCashAddr(String address) => bitbox.Address.toCashAddress(address); - - static String toLegacy(String address) => bitbox.Address.toLegacyAddress(address); - final ObservableList _addresses; // Matched by addressPageType late ObservableList addressesByReceiveType; @@ -67,7 +64,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { final bitcoin.HDWallet sideHd; @observable - BitcoinAddressType _addressPageType = SegwitAddresType.p2wpkh; + late BitcoinAddressType _addressPageType; @computed BitcoinAddressType get addressPageType => _addressPageType; @@ -97,7 +94,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { } } - return walletInfo.type == WalletType.bitcoinCash ? toCashAddr(receiveAddress) : receiveAddress; + return receiveAddress; } @observable @@ -105,9 +102,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @override set address(String addr) { - if (addr.startsWith('bitcoincash:')) { - addr = toLegacy(addr); - } final addressRecord = _addresses.firstWhere((addressRecord) => addressRecord.address == addr); previousAddressRecord = addressRecord; @@ -155,11 +149,17 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @override Future init() async { - await _generateInitialAddresses(); - await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); - await _generateInitialAddresses(type: P2shAddressType.p2wpkhInP2sh); - await _generateInitialAddresses(type: SegwitAddresType.p2tr); - await _generateInitialAddresses(type: SegwitAddresType.p2wsh); + if (walletInfo.type == WalletType.bitcoinCash) { + await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); + } else if (walletInfo.type == WalletType.litecoin) { + await _generateInitialAddresses(); + } else if (walletInfo.type == WalletType.bitcoin) { + await _generateInitialAddresses(); + await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); + await _generateInitialAddresses(type: P2shAddressType.p2wpkhInP2sh); + await _generateInitialAddresses(type: SegwitAddresType.p2tr); + await _generateInitialAddresses(type: SegwitAddresType.p2wsh); + } updateAddressesByMatch(); updateReceiveAddresses(); updateChangeAddresses(); @@ -229,9 +229,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @action void updateAddress(String address, String label) { - if (address.startsWith('bitcoincash:')) { - address = toLegacy(address); - } final addressRecord = _addresses.firstWhere((addressRecord) => addressRecord.address == address); addressRecord.setNewName(label); @@ -261,7 +258,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { addressRecord.isHidden && !addressRecord.isUsed && // TODO: feature to change change address type. For now fixed to p2wpkh, the cheapest type - addressRecord.type == SegwitAddresType.p2wpkh); + (walletInfo.type != WalletType.bitcoin || addressRecord.type == SegwitAddresType.p2wpkh)); changeAddresses.addAll(newAddresses); } diff --git a/cw_bitcoin/lib/electrum_wallet_snapshot.dart b/cw_bitcoin/lib/electrum_wallet_snapshot.dart index 98c3753db3..6f76ab312a 100644 --- a/cw_bitcoin/lib/electrum_wallet_snapshot.dart +++ b/cw_bitcoin/lib/electrum_wallet_snapshot.dart @@ -17,14 +17,12 @@ class ElectrumWalletSnapshot { required this.regularAddressIndex, required this.changeAddressIndex, required this.addressPageType, - required this.network, }); final String name; final String password; final WalletType type; - final String addressPageType; - final BasedUtxoNetwork network; + final String? addressPageType; String mnemonic; List addresses; @@ -32,7 +30,8 @@ class ElectrumWalletSnapshot { Map regularAddressIndex; Map changeAddressIndex; - static Future load(String name, WalletType type, String password, BasedUtxoNetwork? network) async { + static Future load( + String name, WalletType type, String password, BasedUtxoNetwork network) async { final path = await pathForWallet(name: name, type: type); final jsonSource = await read(path: path, password: password); final data = json.decode(jsonSource) as Map; @@ -71,8 +70,7 @@ class ElectrumWalletSnapshot { balance: balance, regularAddressIndex: regularAddressIndexByType, changeAddressIndex: changeAddressIndexByType, - addressPageType: data['address_page_type'] as String? ?? SegwitAddresType.p2wpkh.toString(), - network: data['network_type'] == 'testnet' ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet, + addressPageType: data['address_page_type'] as String?, ); } } diff --git a/cw_bitcoin/lib/script_hash.dart b/cw_bitcoin/lib/script_hash.dart index 620d3d28a0..2130fcbbef 100644 --- a/cw_bitcoin/lib/script_hash.dart +++ b/cw_bitcoin/lib/script_hash.dart @@ -1,8 +1,9 @@ -import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:crypto/crypto.dart'; +import 'package:cw_bitcoin/address_to_output_script.dart'; +import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin; -String scriptHash(String address, {required BasedUtxoNetwork network}) { - final outputScript = addressToOutputScript(address: address, network: network); +String scriptHash(String address, {required bitcoin.BasedUtxoNetwork network}) { + final outputScript = addressToOutputScript(address, network); final parts = sha256.convert(outputScript).toString().split(''); var res = ''; diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 25e6f269d8..b39dcae07f 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -79,11 +79,11 @@ packages: dependency: "direct main" description: path: "." - ref: cake-update-v1 - resolved-ref: "9611e9db77e92a8434e918cdfb620068f6fcb1aa" + ref: cake-update-v2 + resolved-ref: "3fd81d238b990bb767fc7a4fdd5053a22a142e2e" url: "https://github.com/cake-tech/bitcoin_base.git" source: git - version: "4.0.0" + version: "4.2.0" bitcoin_flutter: dependency: "direct main" description: @@ -97,10 +97,10 @@ packages: dependency: "direct main" description: name: blockchain_utils - sha256: "9701dfaa74caad4daae1785f1ec4445cf7fb94e45620bc3a4aca1b9b281dc6c9" + sha256: "38ef5f4a22441ac4370aed9071dc71c460acffc37c79b344533f67d15f24c13c" url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "2.1.1" boolean_selector: dependency: transitive description: diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 847b777731..bcbb55e118 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -33,8 +33,8 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 - blockchain_utils: ^1.6.0 + ref: cake-update-v2 + blockchain_utils: ^2.1.1 dev_dependencies: flutter_test: diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index 3c40cf9e91..f5835e7280 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -34,7 +34,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { required WalletInfo walletInfo, required Box unspentCoinsInfo, required Uint8List seedBytes, - String? addressPageType, + BitcoinAddressType? addressPageType, List? initialAddresses, ElectrumBalance? initialBalance, Map? initialRegularAddressIndex, @@ -58,6 +58,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { mainHd: hd, sideHd: bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'/1"), network: network, + initialAddressPageType: addressPageType, ); autorun((_) { this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress; @@ -84,7 +85,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { seedBytes: await Mnemonic.toSeed(mnemonic), initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, - addressPageType: addressPageType, + addressPageType: P2pkhAddressType.p2pkh, ); } @@ -101,12 +102,31 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: snp.addresses, + initialAddresses: snp.addresses.map((addr) { + try { + BitcoinCashAddress(addr.address); + return BitcoinAddressRecord( + addr.address, + index: addr.index, + isHidden: addr.isHidden, + type: P2pkhAddressType.p2pkh, + network: BitcoinCashNetwork.mainnet, + ); + } catch (_) { + return BitcoinAddressRecord( + AddressUtils.getCashAddrFormat(addr.address), + index: addr.index, + isHidden: addr.isHidden, + type: P2pkhAddressType.p2pkh, + network: BitcoinCashNetwork.mainnet, + ); + } + }).toList(), initialBalance: snp.balance, seedBytes: await Mnemonic.toSeed(snp.mnemonic), initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, - addressPageType: snp.addressPageType, + addressPageType: P2pkhAddressType.p2pkh, ); } diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart index 8291ce2a57..3164651f3c 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart @@ -19,6 +19,7 @@ abstract class BitcoinCashWalletAddressesBase extends ElectrumWalletAddresses wi super.initialAddresses, super.initialRegularAddressIndex, super.initialChangeAddressIndex, + super.initialAddressPageType, }) : super(walletInfo); @override diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 9c098c0ff3..7130b3c58f 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 + ref: cake-update-v2 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 4f3aea7ec6..be72b992d0 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -277,7 +277,7 @@ SPEC CHECKSUMS: flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0 + fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d local_auth_ios: 1ba1475238daa33a6ffa2a29242558437be435ac MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb @@ -302,4 +302,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: fcb1b8418441a35b438585c9dd8374e722e6c6ca -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index b36421608b..709dc9a041 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -113,13 +113,35 @@ class CWBitcoin extends Bitcoin { .map((BitcoinAddressRecord addr) => ElectrumSubAddress( id: addr.index, name: addr.name, - address: electrumWallet.type == WalletType.bitcoinCash ? addr.cashAddr : addr.address, + address: addr.address, txCount: addr.txCount, balance: addr.balance, isChange: addr.isHidden)) .toList(); } + @override + Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority) async { + final electrumWallet = wallet as ElectrumWallet; + final sk = ECPrivate.random(); + + final p2shAddr = sk.getPublic().toP2pkhInP2sh(); + final p2wpkhAddr = sk.getPublic().toP2wpkhAddress(); + final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( + 0, + true, + // Deposit address + change address + [p2shAddr, p2wpkhAddr], + [ + BitcoinOutput(address: p2shAddr, value: BigInt.zero), + BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) + ], + null, + priority as BitcoinTransactionPriority); + + return estimatedTx.amount; + } + @override String getAddress(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 0ccb73e1cb..75ba45ce15 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -81,7 +81,7 @@ class MoonPaySellProvider extends BuyProvider { '', { 'apiKey': _apiKey, - 'defaultBaseCurrencyCode': currency.toString().toLowerCase(), + 'defaultBaseCurrencyCode': _normalizeCurrency(currency), 'refundWalletAddress': refundWalletAddress, }..addAll(customParams), ); @@ -134,6 +134,14 @@ class MoonPaySellProvider extends BuyProvider { ); } } + + String _normalizeCurrency(CryptoCurrency currency) { + if (currency == CryptoCurrency.maticpoly) { + return "MATIC_POLYGON"; + } + + return currency.toString().toLowerCase(); + } } class MoonPayBuyProvider extends BuyProvider { diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index ad2c761a32..967cf9bf0b 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -274,7 +274,7 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)([23][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2shAddress type '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{25,39})([^0-9a-zA-Z]|\$)' //P2wpkhAddress type '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{40,80})([^0-9a-zA-Z]|\$)' //P2wshAddress type - '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type case CryptoCurrency.ltc: return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)' diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index f9c2f1a825..b7336c2a7b 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -89,7 +89,12 @@ class ProvidersHelper { case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.moonpaySell]; case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; + return [ + ProviderType.askEachTime, + ProviderType.onramper, + ProviderType.moonpaySell, + ProviderType.dfx, + ]; case WalletType.solana: return [ ProviderType.askEachTime, diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 94b51301cc..61355df055 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -384,7 +384,7 @@ class ExchangePage extends BasePage { (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, depositKey)); reaction((_) => exchangeViewModel.depositAmount, (String amount) { - if (depositKey.currentState!.amountController.text != amount) { + if (depositKey.currentState!.amountController.text != amount && amount != S.of(context).all) { depositKey.currentState!.amountController.text = amount; } }); @@ -467,7 +467,9 @@ class ExchangePage extends BasePage { .addListener(() => exchangeViewModel.depositAddress = depositAddressController.text); depositAmountController.addListener(() { - if (depositAmountController.text != exchangeViewModel.depositAmount) { + if (depositAmountController.text != exchangeViewModel.depositAmount && + depositAmountController.text != S.of(context).all) { + exchangeViewModel.isSendAllEnabled = false; _depositAmountDebounce.run(() { exchangeViewModel.changeDepositAmount(amount: depositAmountController.text); exchangeViewModel.isReceiveAmountEntered = false; @@ -589,8 +591,9 @@ class ExchangePage extends BasePage { onDispose: disposeBestRateSync, hasAllAmount: exchangeViewModel.hasAllAmount, allAmount: exchangeViewModel.hasAllAmount - ? () => exchangeViewModel.calculateDepositAllAmount() + ? () => exchangeViewModel.enableSendAllAmount() : null, + isAllAmountEnabled: exchangeViewModel.isSendAllEnabled, amountFocusNode: _depositAmountFocus, addressFocusNode: _depositAddressFocus, key: depositKey, @@ -626,8 +629,10 @@ class ExchangePage extends BasePage { }, imageArrow: arrowBottomPurple, currencyButtonColor: Colors.transparent, - addressButtonsColor: Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderTopPanelColor, + addressButtonsColor: + Theme.of(context).extension()!.textFieldButtonColor, + borderColor: + Theme.of(context).extension()!.textFieldBorderTopPanelColor, currencyValueValidator: (value) { return !exchangeViewModel.isFixedRateMode ? AmountValidator( @@ -673,8 +678,10 @@ class ExchangePage extends BasePage { exchangeViewModel.changeReceiveCurrency(currency: currency), imageArrow: arrowBottomCakeGreen, currencyButtonColor: Colors.transparent, - addressButtonsColor: Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, + addressButtonsColor: + Theme.of(context).extension()!.textFieldButtonColor, + borderColor: + Theme.of(context).extension()!.textFieldBorderBottomPanelColor, currencyValueValidator: (value) { return exchangeViewModel.isFixedRateMode ? AmountValidator( diff --git a/lib/src/screens/exchange/exchange_template_page.dart b/lib/src/screens/exchange/exchange_template_page.dart index 3a7456dd8c..d24c91dad1 100644 --- a/lib/src/screens/exchange/exchange_template_page.dart +++ b/lib/src/screens/exchange/exchange_template_page.dart @@ -56,17 +56,14 @@ class ExchangeTemplatePage extends BasePage { height: 8, ); - final depositWalletName = - exchangeViewModel.depositCurrency == CryptoCurrency.xmr + final depositWalletName = exchangeViewModel.depositCurrency == CryptoCurrency.xmr ? exchangeViewModel.wallet.name : null; - final receiveWalletName = - exchangeViewModel.receiveCurrency == CryptoCurrency.xmr + final receiveWalletName = exchangeViewModel.receiveCurrency == CryptoCurrency.xmr ? exchangeViewModel.wallet.name : null; - WidgetsBinding.instance - .addPostFrameCallback((_) => _setReactions(context, exchangeViewModel)); + WidgetsBinding.instance.addPostFrameCallback((_) => _setReactions(context, exchangeViewModel)); return KeyboardActions( disableScroll: true, @@ -76,128 +73,125 @@ class ExchangeTemplatePage extends BasePage { nextFocus: false, actions: [ KeyboardActionsItem( - focusNode: _depositAmountFocus, - toolbarButtons: [(_) => KeyboardDoneButton()]), + focusNode: _depositAmountFocus, toolbarButtons: [(_) => KeyboardDoneButton()]), KeyboardActionsItem( - focusNode: _receiveAmountFocus, - toolbarButtons: [(_) => KeyboardDoneButton()]) + focusNode: _receiveAmountFocus, toolbarButtons: [(_) => KeyboardDoneButton()]) ]), child: Container( - color: Theme.of(context).colorScheme.background, - child: Form( - key: _formKey, - child: ScrollableWithBottomSection( - contentPadding: EdgeInsets.only(bottom: 24), - content: Container( - padding: EdgeInsets.only(bottom: 32), - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(24), - bottomRight: Radius.circular(24) - ), - gradient: LinearGradient( - colors: [ - Theme.of(context).extension()!.firstGradientBottomPanelColor, - Theme.of(context).extension()!.secondGradientBottomPanelColor, - ], - stops: [0.35, 1.0], - begin: Alignment.topLeft, - end: Alignment.bottomRight), - ), - child: FocusTraversalGroup( - policy: OrderedTraversalPolicy(), - child: Column( - children: [ - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(24), - bottomRight: Radius.circular(24) - ), - gradient: LinearGradient( - colors: [ - Theme.of(context).extension()!.firstGradientTopPanelColor, - Theme.of(context).extension()!.secondGradientTopPanelColor, - ], - begin: Alignment.topLeft, - end: Alignment.bottomRight), - ), - padding: EdgeInsets.fromLTRB(24, 100, 24, 32), - child: Observer( - builder: (_) => ExchangeCard( - amountFocusNode: _depositAmountFocus, - key: depositKey, - title: S.of(context).you_will_send, - initialCurrency: - exchangeViewModel.depositCurrency, - initialWalletName: depositWalletName ?? '', - initialAddress: exchangeViewModel - .depositCurrency == - exchangeViewModel.wallet.currency - ? exchangeViewModel.wallet.walletAddresses.address - : exchangeViewModel.depositAddress, - initialIsAmountEditable: true, - initialIsAddressEditable: exchangeViewModel - .isDepositAddressEnabled, - isAmountEstimated: false, - hasRefundAddress: true, - isMoneroWallet: exchangeViewModel.isMoneroWallet, - currencies: CryptoCurrency.all, - onCurrencySelected: (currency) => - exchangeViewModel.changeDepositCurrency( - currency: currency), - imageArrow: arrowBottomPurple, - currencyButtonColor: Colors.transparent, - addressButtonsColor: - Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, - currencyValueValidator: AmountValidator( - currency: exchangeViewModel.depositCurrency), - //addressTextFieldValidator: AddressValidator( - // type: exchangeViewModel.depositCurrency), + color: Theme.of(context).colorScheme.background, + child: Form( + key: _formKey, + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(bottom: 24), + content: Container( + padding: EdgeInsets.only(bottom: 32), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)), + gradient: LinearGradient(colors: [ + Theme.of(context) + .extension()! + .firstGradientBottomPanelColor, + Theme.of(context) + .extension()! + .secondGradientBottomPanelColor, + ], stops: [ + 0.35, + 1.0 + ], begin: Alignment.topLeft, end: Alignment.bottomRight), + ), + child: FocusTraversalGroup( + policy: OrderedTraversalPolicy(), + child: Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), + bottomRight: Radius.circular(24)), + gradient: LinearGradient(colors: [ + Theme.of(context) + .extension()! + .firstGradientTopPanelColor, + Theme.of(context) + .extension()! + .secondGradientTopPanelColor, + ], begin: Alignment.topLeft, end: Alignment.bottomRight), + ), + padding: EdgeInsets.fromLTRB(24, 100, 24, 32), + child: Observer( + builder: (_) => ExchangeCard( + amountFocusNode: _depositAmountFocus, + key: depositKey, + title: S.of(context).you_will_send, + initialCurrency: exchangeViewModel.depositCurrency, + initialWalletName: depositWalletName ?? '', + initialAddress: exchangeViewModel.depositCurrency == + exchangeViewModel.wallet.currency + ? exchangeViewModel.wallet.walletAddresses.address + : exchangeViewModel.depositAddress, + initialIsAmountEditable: true, + initialIsAddressEditable: exchangeViewModel.isDepositAddressEnabled, + isAmountEstimated: false, + hasRefundAddress: true, + isMoneroWallet: exchangeViewModel.isMoneroWallet, + currencies: CryptoCurrency.all, + onCurrencySelected: (currency) => + exchangeViewModel.changeDepositCurrency(currency: currency), + imageArrow: arrowBottomPurple, + currencyButtonColor: Colors.transparent, + addressButtonsColor: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderColor: Theme.of(context) + .extension()! + .textFieldBorderBottomPanelColor, + currencyValueValidator: + AmountValidator(currency: exchangeViewModel.depositCurrency), + //addressTextFieldValidator: AddressValidator( + // type: exchangeViewModel.depositCurrency), + ), + ), ), - ), + Padding( + padding: EdgeInsets.only(top: 29, left: 24, right: 24), + child: Observer( + builder: (_) => ExchangeCard( + amountFocusNode: _receiveAmountFocus, + key: receiveKey, + title: S.of(context).you_will_get, + initialCurrency: exchangeViewModel.receiveCurrency, + initialWalletName: receiveWalletName ?? '', + initialAddress: exchangeViewModel.receiveCurrency == + exchangeViewModel.wallet.currency + ? exchangeViewModel.wallet.walletAddresses.address + : exchangeViewModel.receiveAddress, + initialIsAmountEditable: false, + isAmountEstimated: true, + isMoneroWallet: exchangeViewModel.isMoneroWallet, + currencies: exchangeViewModel.receiveCurrencies, + onCurrencySelected: (currency) => exchangeViewModel + .changeReceiveCurrency(currency: currency), + imageArrow: arrowBottomCakeGreen, + currencyButtonColor: Colors.transparent, + addressButtonsColor: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderColor: Theme.of(context) + .extension()! + .textFieldBorderBottomPanelColor, + currencyValueValidator: AmountValidator( + currency: exchangeViewModel.receiveCurrency), + //addressTextFieldValidator: AddressValidator( + // type: exchangeViewModel.receiveCurrency), + )), + ) + ], ), - Padding( - padding: EdgeInsets.only(top: 29, left: 24, right: 24), - child: Observer( - builder: (_) => ExchangeCard( - amountFocusNode: _receiveAmountFocus, - key: receiveKey, - title: S.of(context).you_will_get, - initialCurrency: - exchangeViewModel.receiveCurrency, - initialWalletName: receiveWalletName ?? '', - initialAddress: - exchangeViewModel.receiveCurrency == - exchangeViewModel.wallet.currency - ? exchangeViewModel.wallet.walletAddresses.address - : exchangeViewModel.receiveAddress, - initialIsAmountEditable: false, - isAmountEstimated: true, - isMoneroWallet: exchangeViewModel.isMoneroWallet, - currencies: exchangeViewModel.receiveCurrencies, - onCurrencySelected: (currency) => - exchangeViewModel.changeReceiveCurrency( - currency: currency), - imageArrow: arrowBottomCakeGreen, - currencyButtonColor: Colors.transparent, - addressButtonsColor: - Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, - currencyValueValidator: AmountValidator( - currency: exchangeViewModel.receiveCurrency), - //addressTextFieldValidator: AddressValidator( - // type: exchangeViewModel.receiveCurrency), - )), - ) - ], + ), ), - ), - ), - bottomSectionPadding: - EdgeInsets.only(left: 24, right: 24, bottom: 24), - bottomSection: Column(children: [ + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + bottomSection: Column(children: [ Padding( padding: EdgeInsets.only(bottom: 15), child: Observer( @@ -217,36 +211,31 @@ class ExchangeTemplatePage extends BasePage { ), ), PrimaryButton( - onPressed: () { - if (_formKey.currentState != null && _formKey.currentState!.validate()) { - exchangeViewModel.addTemplate( - amount: exchangeViewModel.depositAmount, - depositCurrency: - exchangeViewModel.depositCurrency.name, - depositCurrencyTitle: exchangeViewModel - .depositCurrency.title + ' ${exchangeViewModel.depositCurrency.tag ?? ''}', - receiveCurrency: - exchangeViewModel.receiveCurrency.name, - receiveCurrencyTitle: exchangeViewModel - .receiveCurrency.title + ' ${exchangeViewModel.receiveCurrency.tag ?? ''}', - provider: exchangeViewModel.provider.toString(), - depositAddress: exchangeViewModel.depositAddress, - receiveAddress: exchangeViewModel.receiveAddress); - exchangeViewModel.updateTemplate(); - Navigator.of(context).pop(); - } - }, - text: S.of(context).save, - color: Theme.of(context).primaryColor, - textColor: Colors.white), - ]), - )) - ) - ); + onPressed: () { + if (_formKey.currentState != null && _formKey.currentState!.validate()) { + exchangeViewModel.addTemplate( + amount: exchangeViewModel.depositAmount, + depositCurrency: exchangeViewModel.depositCurrency.name, + depositCurrencyTitle: exchangeViewModel.depositCurrency.title + + ' ${exchangeViewModel.depositCurrency.tag ?? ''}', + receiveCurrency: exchangeViewModel.receiveCurrency.name, + receiveCurrencyTitle: exchangeViewModel.receiveCurrency.title + + ' ${exchangeViewModel.receiveCurrency.tag ?? ''}', + provider: exchangeViewModel.provider.toString(), + depositAddress: exchangeViewModel.depositAddress, + receiveAddress: exchangeViewModel.receiveAddress); + exchangeViewModel.updateTemplate(); + Navigator.of(context).pop(); + } + }, + text: S.of(context).save, + color: Theme.of(context).primaryColor, + textColor: Colors.white), + ]), + )))); } - void _setReactions( - BuildContext context, ExchangeViewModel exchangeViewModel) { + void _setReactions(BuildContext context, ExchangeViewModel exchangeViewModel) { if (_isReactionsSet) { return; } @@ -272,33 +261,27 @@ class ExchangeTemplatePage extends BasePage { // key.currentState.changeLimits(min: min, max: max); // } - _onCurrencyChange( - exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey); - _onCurrencyChange( - exchangeViewModel.depositCurrency, exchangeViewModel, depositKey); + _onCurrencyChange(exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey); + _onCurrencyChange(exchangeViewModel.depositCurrency, exchangeViewModel, depositKey); reaction( - (_) => exchangeViewModel.wallet.name, - (String _) => _onWalletNameChange( - exchangeViewModel, exchangeViewModel.receiveCurrency, receiveKey)); + (_) => exchangeViewModel.wallet.name, + (String _) => + _onWalletNameChange(exchangeViewModel, exchangeViewModel.receiveCurrency, receiveKey)); reaction( - (_) => exchangeViewModel.wallet.name, - (String _) => _onWalletNameChange( - exchangeViewModel, exchangeViewModel.depositCurrency, depositKey)); + (_) => exchangeViewModel.wallet.name, + (String _) => + _onWalletNameChange(exchangeViewModel, exchangeViewModel.depositCurrency, depositKey)); - reaction( - (_) => exchangeViewModel.receiveCurrency, - (CryptoCurrency currency) => - _onCurrencyChange(currency, exchangeViewModel, receiveKey)); + reaction((_) => exchangeViewModel.receiveCurrency, + (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, receiveKey)); - reaction( - (_) => exchangeViewModel.depositCurrency, - (CryptoCurrency currency) => - _onCurrencyChange(currency, exchangeViewModel, depositKey)); + reaction((_) => exchangeViewModel.depositCurrency, + (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, depositKey)); reaction((_) => exchangeViewModel.depositAmount, (String amount) { - if (depositKey.currentState!.amountController.text != amount) { + if (depositKey.currentState!.amountController.text != amount && amount != S.of(context).all) { depositKey.currentState!.amountController.text = amount; } }); @@ -309,10 +292,9 @@ class ExchangeTemplatePage extends BasePage { } }); - reaction((_) => exchangeViewModel.isDepositAddressEnabled, - (bool isEnabled) { - depositKey.currentState!.isAddressEditable(isEditable: isEnabled); - }); + reaction((_) => exchangeViewModel.isDepositAddressEnabled, (bool isEnabled) { + depositKey.currentState!.isAddressEditable(isEditable: isEnabled); + }); reaction((_) => exchangeViewModel.receiveAmount, (String amount) { if (receiveKey.currentState!.amountController.text != amount) { @@ -353,30 +335,28 @@ class ExchangeTemplatePage extends BasePage { receiveKey.currentState.changeLimits(min: null, max: null); });*/ - depositAddressController.addListener( - () => exchangeViewModel.depositAddress = depositAddressController.text); + depositAddressController + .addListener(() => exchangeViewModel.depositAddress = depositAddressController.text); depositAmountController.addListener(() { - if (depositAmountController.text != exchangeViewModel.depositAmount) { - exchangeViewModel.changeDepositAmount( - amount: depositAmountController.text); + if (depositAmountController.text != exchangeViewModel.depositAmount && + exchangeViewModel.depositAmount != S.of(context).all) { + exchangeViewModel.changeDepositAmount(amount: depositAmountController.text); exchangeViewModel.isReceiveAmountEntered = false; } }); - receiveAddressController.addListener( - () => exchangeViewModel.receiveAddress = receiveAddressController.text); + receiveAddressController + .addListener(() => exchangeViewModel.receiveAddress = receiveAddressController.text); receiveAmountController.addListener(() { if (receiveAmountController.text != exchangeViewModel.receiveAmount) { - exchangeViewModel.changeReceiveAmount( - amount: receiveAmountController.text); + exchangeViewModel.changeReceiveAmount(amount: receiveAmountController.text); exchangeViewModel.isReceiveAmountEntered = true; } }); - reaction((_) => exchangeViewModel.wallet.walletAddresses.address, - (String address) { + reaction((_) => exchangeViewModel.wallet.walletAddresses.address, (String address) { if (exchangeViewModel.depositCurrency == CryptoCurrency.xmr) { depositKey.currentState!.changeAddress(address: address); } @@ -389,29 +369,26 @@ class ExchangeTemplatePage extends BasePage { _isReactionsSet = true; } - void _onCurrencyChange(CryptoCurrency currency, - ExchangeViewModel exchangeViewModel, GlobalKey key) { + void _onCurrencyChange(CryptoCurrency currency, ExchangeViewModel exchangeViewModel, + GlobalKey key) { final isCurrentTypeWallet = currency == exchangeViewModel.wallet.currency; key.currentState!.changeSelectedCurrency(currency); - key.currentState!.changeWalletName( - isCurrentTypeWallet ? exchangeViewModel.wallet.name : ''); + key.currentState!.changeWalletName(isCurrentTypeWallet ? exchangeViewModel.wallet.name : ''); key.currentState!.changeAddress( - address: isCurrentTypeWallet - ? exchangeViewModel.wallet.walletAddresses.address : ''); + address: isCurrentTypeWallet ? exchangeViewModel.wallet.walletAddresses.address : ''); key.currentState!.changeAmount(amount: ''); } - void _onWalletNameChange(ExchangeViewModel exchangeViewModel, - CryptoCurrency currency, GlobalKey key) { + void _onWalletNameChange(ExchangeViewModel exchangeViewModel, CryptoCurrency currency, + GlobalKey key) { final isCurrentTypeWallet = currency == exchangeViewModel.wallet.currency; if (isCurrentTypeWallet) { key.currentState!.changeWalletName(exchangeViewModel.wallet.name); - key.currentState!.addressController.text = - exchangeViewModel.wallet.walletAddresses.address; + key.currentState!.addressController.text = exchangeViewModel.wallet.walletAddresses.address; } else if (key.currentState!.addressController.text == exchangeViewModel.wallet.walletAddresses.address) { key.currentState!.changeWalletName(''); diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index 706ace7ded..d2e3c27d45 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/amount_validator.dart'; import 'package:cake_wallet/entities/contact_base.dart'; import 'package:cake_wallet/themes/extensions/qr_code_theme.dart'; import 'package:cake_wallet/routes.dart'; @@ -37,6 +38,7 @@ class ExchangeCard extends StatefulWidget { this.addressButtonsColor = Colors.transparent, this.borderColor = Colors.transparent, this.hasAllAmount = false, + this.isAllAmountEnabled = false, this.amountFocusNode, this.addressFocusNode, this.allAmount, @@ -62,9 +64,11 @@ class ExchangeCard extends StatefulWidget { final Color borderColor; final FormFieldValidator? currencyValueValidator; final FormFieldValidator? addressTextFieldValidator; + final FormFieldValidator allAmountValidator = AllAmountValidator(); final FocusNode? amountFocusNode; final FocusNode? addressFocusNode; final bool hasAllAmount; + final bool isAllAmountEnabled; final VoidCallback? allAmount; final void Function(BuildContext context)? onPushPasteButton; final void Function(BuildContext context)? onPushAddressBookButton; @@ -76,15 +80,15 @@ class ExchangeCard extends StatefulWidget { class ExchangeCardState extends State { ExchangeCardState() - : _title = '', - _min = '', - _max = '', - _isAmountEditable = false, - _isAddressEditable = false, - _walletName = '', - _selectedCurrency = CryptoCurrency.btc, - _isAmountEstimated = false, - _isMoneroWallet = false; + : _title = '', + _min = '', + _max = '', + _isAmountEditable = false, + _isAddressEditable = false, + _walletName = '', + _selectedCurrency = CryptoCurrency.btc, + _isAmountEstimated = false, + _isMoneroWallet = false; final addressController = TextEditingController(); final amountController = TextEditingController(); @@ -160,6 +164,12 @@ class ExchangeCardState extends State { @override Widget build(BuildContext context) { + if (widget.isAllAmountEnabled) { + WidgetsBinding.instance.addPostFrameCallback((_) { + amountController.text = S.of(context).all; + }); + } + final copyImage = Image.asset('assets/images/copy_content.png', height: 16, width: 16, @@ -168,8 +178,7 @@ class ExchangeCardState extends State { return Container( width: double.infinity, color: Colors.transparent, - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: < - Widget>[ + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -202,40 +211,38 @@ class ExchangeCardState extends State { ), Text(_selectedCurrency.toString(), style: TextStyle( - fontWeight: FontWeight.w600, - fontSize: 16, - color: Colors.white)) + fontWeight: FontWeight.w600, fontSize: 16, color: Colors.white)) ]), ), ), - _selectedCurrency.tag != null ? Padding( - padding: const EdgeInsets.only(right:3.0), - child: Container( - height: 32, - decoration: BoxDecoration( - color: widget.addressButtonsColor ?? - Theme.of(context).extension()!.textFieldButtonColor, - borderRadius: - BorderRadius.all(Radius.circular(6))), - child: Center( - child: Padding( - padding: const EdgeInsets.all(6.0), - child: Text(_selectedCurrency.tag!, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.bold, - color: Theme.of(context).extension()!.textFieldButtonIconColor)), + if (_selectedCurrency.tag != null) + Padding( + padding: const EdgeInsets.only(right: 3.0), + child: Container( + height: 32, + decoration: BoxDecoration( + color: widget.addressButtonsColor ?? + Theme.of(context).extension()!.textFieldButtonColor, + borderRadius: BorderRadius.all(Radius.circular(6))), + child: Center( + child: Padding( + padding: const EdgeInsets.all(6.0), + child: Text(_selectedCurrency.tag!, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor)), + ), ), ), ), - ) : Container(), Padding( padding: const EdgeInsets.only(right: 4.0), child: Text(':', style: TextStyle( - fontWeight: FontWeight.w600, - fontSize: 16, - color: Colors.white)), + fontWeight: FontWeight.w600, fontSize: 16, color: Colors.white)), ), Expanded( child: Row( @@ -249,26 +256,27 @@ class ExchangeCardState extends State { controller: amountController, enabled: _isAmountEditable, textAlign: TextAlign.left, - keyboardType: TextInputType.numberWithOptions( - signed: false, decimal: true), + keyboardType: + TextInputType.numberWithOptions(signed: false, decimal: true), inputFormatters: [ - FilteringTextInputFormatter.deny( - RegExp('[\\-|\\ ]')) + FilteringTextInputFormatter.deny(RegExp('[\\-|\\ ]')) ], hintText: '0.0000', borderColor: Colors.transparent, //widget.borderColor, textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), + fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), placeholderTextStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, - color: Theme.of(context).extension()!.hintTextColor), - validator: _isAmountEditable - ? widget.currencyValueValidator - : null), + color: Theme.of(context) + .extension()! + .hintTextColor), + validator: widget.hasAllAmount + ? widget.allAmountValidator + : _isAmountEditable + ? widget.currencyValueValidator + : null), ), ), if (widget.hasAllAmount) @@ -276,9 +284,10 @@ class ExchangeCardState extends State { height: 32, width: 32, decoration: BoxDecoration( - color: Theme.of(context).extension()!.textFieldButtonColor, - borderRadius: - BorderRadius.all(Radius.circular(6))), + color: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderRadius: BorderRadius.all(Radius.circular(6))), child: InkWell( onTap: () => widget.allAmount?.call(), child: Center( @@ -287,7 +296,9 @@ class ExchangeCardState extends State { style: TextStyle( fontSize: 12, fontWeight: FontWeight.bold, - color: Theme.of(context).extension()!.textFieldButtonIconColor)), + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor)), ), ), ) @@ -296,39 +307,30 @@ class ExchangeCardState extends State { ), ], )), - Divider( - height: 1, - color: Theme.of(context).extension()!.textFieldHintColor), + Divider(height: 1, color: Theme.of(context).extension()!.textFieldHintColor), Padding( padding: EdgeInsets.only(top: 5), child: Container( height: 15, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - _min != null - ? Text( - S - .of(context) - .min_value(_min ?? '', _selectedCurrency.toString()), - style: TextStyle( - fontSize: 10, - height: 1.2, - color: Theme.of(context).extension()!.hintTextColor), - ) - : Offstage(), - _min != null ? SizedBox(width: 10) : Offstage(), - _max != null - ? Text( - S - .of(context) - .max_value(_max ?? '', _selectedCurrency.toString()), - style: TextStyle( - fontSize: 10, - height: 1.2, - color: Theme.of(context).extension()!.hintTextColor)) - : Offstage(), - ])), + child: Row(mainAxisAlignment: MainAxisAlignment.start, children: [ + _min != null + ? Text( + S.of(context).min_value(_min ?? '', _selectedCurrency.toString()), + style: TextStyle( + fontSize: 10, + height: 1.2, + color: Theme.of(context).extension()!.hintTextColor), + ) + : Offstage(), + _min != null ? SizedBox(width: 10) : Offstage(), + _max != null + ? Text(S.of(context).max_value(_max ?? '', _selectedCurrency.toString()), + style: TextStyle( + fontSize: 10, + height: 1.2, + color: Theme.of(context).extension()!.hintTextColor)) + : Offstage(), + ])), ), !_isAddressEditable && widget.hasRefundAddress ? Padding( @@ -343,7 +345,7 @@ class ExchangeCardState extends State { : Offstage(), _isAddressEditable ? FocusTraversalOrder( - order: NumericFocusOrder(2), + order: NumericFocusOrder(2), child: Padding( padding: EdgeInsets.only(top: 20), child: AddressTextField( @@ -352,27 +354,23 @@ class ExchangeCardState extends State { onURIScanned: (uri) { final paymentRequest = PaymentRequest.fromUri(uri); addressController.text = paymentRequest.address; - + if (amountController.text.isNotEmpty) { _showAmountPopup(context, paymentRequest); return; } widget.amountFocusNode?.requestFocus(); - amountController.text = paymentRequest.amount; + amountController.text = paymentRequest.amount; }, - placeholder: widget.hasRefundAddress - ? S.of(context).refund_address - : null, + placeholder: widget.hasRefundAddress ? S.of(context).refund_address : null, options: [ AddressTextFieldOption.paste, AddressTextFieldOption.qrCode, AddressTextFieldOption.addressBook, ], isBorderExist: false, - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), + textStyle: + TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), hintStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, @@ -381,27 +379,22 @@ class ExchangeCardState extends State { validator: widget.addressTextFieldValidator, onPushPasteButton: widget.onPushPasteButton, onPushAddressBookButton: widget.onPushAddressBookButton, - selectedCurrency: _selectedCurrency - ), - + selectedCurrency: _selectedCurrency), ), - ) + ) : Padding( padding: EdgeInsets.only(top: 10), child: Builder( builder: (context) => Stack(children: [ - FocusTraversalOrder( - order: NumericFocusOrder(3), - child: BaseTextFormField( - controller: addressController, - borderColor: Colors.transparent, - suffixIcon: - SizedBox(width: _isMoneroWallet ? 80 : 36), - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), - validator: widget.addressTextFieldValidator), + FocusTraversalOrder( + order: NumericFocusOrder(3), + child: BaseTextFormField( + controller: addressController, + borderColor: Colors.transparent, + suffixIcon: SizedBox(width: _isMoneroWallet ? 80 : 36), + textStyle: TextStyle( + fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), + validator: widget.addressTextFieldValidator), ), Positioned( top: 2, @@ -421,33 +414,28 @@ class ExchangeCardState extends State { child: InkWell( onTap: () async { final contact = - await Navigator.of(context) - .pushNamed( + await Navigator.of(context).pushNamed( Routes.pickerAddressBook, arguments: widget.initialCurrency, ); - if (contact is ContactBase && - contact.address != null) { + if (contact is ContactBase) { setState(() => - addressController.text = - contact.address); - widget.onPushAddressBookButton - ?.call(context); + addressController.text = contact.address); + widget.onPushAddressBookButton?.call(context); } }, child: Container( padding: EdgeInsets.all(8), decoration: BoxDecoration( - color: widget - .addressButtonsColor, + color: widget.addressButtonsColor, borderRadius: - BorderRadius.all( - Radius.circular( - 6))), + BorderRadius.all(Radius.circular(6))), child: Image.asset( 'assets/images/open_book.png', - color: Theme.of(context).extension()!.textFieldButtonIconColor, + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor, )), ), )), @@ -462,18 +450,13 @@ class ExchangeCardState extends State { label: S.of(context).copy_address, child: InkWell( onTap: () { - Clipboard.setData(ClipboardData( - text: addressController - .text)); + Clipboard.setData( + ClipboardData(text: addressController.text)); showBar( - context, - S - .of(context) - .copied_to_clipboard); + context, S.of(context).copied_to_clipboard); }, child: Container( - padding: EdgeInsets.fromLTRB( - 8, 8, 0, 8), + padding: EdgeInsets.fromLTRB(8, 8, 0, 8), color: Colors.transparent, child: copyImage), ), @@ -514,7 +497,6 @@ class ExchangeCardState extends State { Navigator.of(context).pop(); }, actionLeftButton: () => Navigator.of(dialogContext).pop()); - } - ); + }); } } diff --git a/lib/src/screens/send/send_template_page.dart b/lib/src/screens/send/send_template_page.dart index 205fd62e1e..52458942cf 100644 --- a/lib/src/screens/send/send_template_page.dart +++ b/lib/src/screens/send/send_template_page.dart @@ -1,7 +1,5 @@ import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; -import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart'; -import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/src/widgets/trail_button.dart'; import 'package:cake_wallet/view_model/send/template_view_model.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -11,7 +9,6 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; -import 'package:cake_wallet/src/screens/send/widgets/prefix_currency_icon_widget.dart'; import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; import 'package:cake_wallet/src/screens/send/widgets/send_template_card.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; @@ -97,8 +94,13 @@ class SendTemplatePage extends BasePage { radius: 6.0, dotWidth: 6.0, dotHeight: 6.0, - dotColor: Theme.of(context).extension()!.indicatorDotColor, - activeDotColor: Theme.of(context).extension()!.indicatorDotTheme.activeIndicatorColor)) + dotColor: Theme.of(context) + .extension()! + .indicatorDotColor, + activeDotColor: Theme.of(context) + .extension()! + .indicatorDotTheme + .activeIndicatorColor)) : Offstage(); }, ), diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 6bd2d81e9f..3f5714be9e 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -80,15 +80,17 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.of(context).error, - alertContent: S.of(context).unmatched_currencies, - buttonText: S.of(context).ok, - buttonAction: () => Navigator.of(context).pop()); - }); + if (context.mounted) { + showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).error, + alertContent: S.of(context).unmatched_currencies, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + } }); } } @@ -321,7 +323,8 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin calculateDepositAllAmount() async { + if (wallet.type == WalletType.litecoin || wallet.type == WalletType.bitcoinCash) { final availableBalance = wallet.balance[wallet.currency]!.available; final priority = _settingsStore.priority[wallet.type]!; final fee = wallet.calculateEstimatedFee(priority, null); @@ -545,6 +553,13 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with final amount = availableBalance - fee; changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); + } else if (wallet.type == WalletType.bitcoin) { + final priority = _settingsStore.priority[wallet.type]!; + + final amount = await bitcoin!.estimateFakeSendAllTxAmount( + wallet, bitcoin!.deserializeBitcoinTransactionPriority(priority.raw)); + + changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); } } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 106a8a6520..b82513de23 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -125,4 +125,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 65ec1541137fb5b35d00490dec1bb48d4d9586bb -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index d4bf981cd2..0293df1d14 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -110,7 +110,7 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 + ref: cake-update-v2 dev_dependencies: flutter_test: diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 02f874d775..ec851a89bd 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.0" -CAKEWALLET_BUILD_NUMBER=198 +CAKEWALLET_VERSION="4.15.1" +CAKEWALLET_BUILD_NUMBER=199 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index b65d3e7a67..53bbf4022f 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.0" -CAKEWALLET_BUILD_NUMBER=217 +CAKEWALLET_VERSION="4.15.1" +CAKEWALLET_BUILD_NUMBER=218 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 19a1e68468..1e8022b7bc 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.0" -CAKEWALLET_BUILD_NUMBER=57 +CAKEWALLET_VERSION="1.8.1" +CAKEWALLET_BUILD_NUMBER=58 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index 3c1587a983..962731d06b 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -70,7 +70,6 @@ import 'package:cw_core/output_info.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:bitcoin_base/bitcoin_base.dart';"""; const bitcoinCWHeaders = """ @@ -127,6 +126,7 @@ abstract class Bitcoin { List getAddresses(Object wallet); String getAddress(Object wallet); + Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority); List getSubAddresses(Object wallet); String formatterBitcoinAmountToString({required int amount}); From ecb4f32cdaafdd0c362027f641f6b6ff0e480324 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 15:42:16 +0200 Subject: [PATCH 006/157] Fix Exchange field not taking numbers (#1341) --- lib/src/screens/exchange/exchange_page.dart | 2 +- lib/src/screens/exchange/widgets/exchange_card.dart | 4 +--- scripts/android/app_env.sh | 4 ++-- scripts/ios/app_env.sh | 4 ++-- scripts/macos/app_env.sh | 4 ++-- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 61355df055..1a5ab24e62 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -634,7 +634,7 @@ class ExchangePage extends BasePage { borderColor: Theme.of(context).extension()!.textFieldBorderTopPanelColor, currencyValueValidator: (value) { - return !exchangeViewModel.isFixedRateMode + return !exchangeViewModel.isFixedRateMode && value != S.of(context).all ? AmountValidator( isAutovalidate: true, currency: exchangeViewModel.depositCurrency, diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index d2e3c27d45..8fa809de94 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -272,9 +272,7 @@ class ExchangeCardState extends State { color: Theme.of(context) .extension()! .hintTextColor), - validator: widget.hasAllAmount - ? widget.allAmountValidator - : _isAmountEditable + validator: _isAmountEditable ? widget.currencyValueValidator : null), ), diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index ec851a89bd..ed2b67de5a 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.1" -CAKEWALLET_BUILD_NUMBER=199 +CAKEWALLET_VERSION="4.15.2" +CAKEWALLET_BUILD_NUMBER=200 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 53bbf4022f..53514b39b5 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.1" -CAKEWALLET_BUILD_NUMBER=218 +CAKEWALLET_VERSION="4.15.2" +CAKEWALLET_BUILD_NUMBER=219 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 1e8022b7bc..1654a022ac 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.1" -CAKEWALLET_BUILD_NUMBER=58 +CAKEWALLET_VERSION="1.8.2" +CAKEWALLET_BUILD_NUMBER=59 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From af7fe0509969da18ae6f778210814bc020ca907e Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 16:31:05 +0200 Subject: [PATCH 007/157] Generic fixes (#1342) * handle balance exceptions in estimating All exchange * Fix trades not showing --- cw_bitcoin/lib/electrum_wallet_addresses.dart | 4 ++- lib/bitcoin/cw_bitcoin.dart | 30 +++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 828bda8aff..69d0a63851 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -220,7 +220,9 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { Future updateAddressesInBox() async { try { addressesMap.clear(); - addressesMap[address] = ''; + _addresses.forEach((addressRecord) { + addressesMap[addressRecord.address] = addressRecord.name; + }); await saveAddressesInBox(); } catch (e) { print(e.toString()); diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 709dc9a041..78423a8c36 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -127,19 +127,23 @@ class CWBitcoin extends Bitcoin { final p2shAddr = sk.getPublic().toP2pkhInP2sh(); final p2wpkhAddr = sk.getPublic().toP2wpkhAddress(); - final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( - 0, - true, - // Deposit address + change address - [p2shAddr, p2wpkhAddr], - [ - BitcoinOutput(address: p2shAddr, value: BigInt.zero), - BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) - ], - null, - priority as BitcoinTransactionPriority); - - return estimatedTx.amount; + try { + final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( + 0, + true, + // Deposit address + change address + [p2shAddr, p2wpkhAddr], + [ + BitcoinOutput(address: p2shAddr, value: BigInt.zero), + BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) + ], + null, + priority as BitcoinTransactionPriority); + + return estimatedTx.amount; + } catch (_) { + return 0; + } } @override From bca59ad5e486b6f0d9f6f572bc73f304b28199ae Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Mon, 25 Mar 2024 13:16:57 -0500 Subject: [PATCH 008/157] Remove moonpay secret use exchange-helper instead (#1343) * Remove moonpay secret use exchange-helper instead * Update lib/buy/moonpay/moonpay_provider.dart * remove web3dart dep from cw_solana * Apply new api for moonpay exchange helper * Add Robinhood as Polygon buy-provider --- .github/workflows/pr_test_build.yml | 2 +- cw_solana/lib/solana_wallet.dart | 6 +-- cw_solana/pubspec.yaml | 3 +- lib/buy/moonpay/moonpay_provider.dart | 52 +++++++++++++------ lib/buy/robinhood/robinhood_buy_provider.dart | 3 +- lib/entities/provider_types.dart | 11 +--- tool/utils/secret_key.dart | 2 +- 7 files changed, 44 insertions(+), 35 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 2829413653..ddc8869f06 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -143,7 +143,7 @@ jobs: echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart - echo "const robinhoodCIdApiSecret = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart + echo "const exchangeHelperApiKey = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index 3476d76cd3..de4d70674f 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -1,6 +1,5 @@ import 'dart:async'; import 'dart:convert'; -import 'dart:developer'; import 'dart:io'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -30,7 +29,6 @@ import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:solana/metaplex.dart' as metaplex; import 'package:solana/solana.dart'; -import 'package:web3dart/crypto.dart'; part 'solana_wallet.g.dart'; @@ -134,7 +132,7 @@ abstract class SolanaWalletBase assert(mnemonic != null || privateKey != null); if (privateKey != null) { - final privateKeyBytes = hexToBytes(privateKey); + final privateKeyBytes = HEX.decode(privateKey); return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes); } @@ -491,7 +489,7 @@ abstract class SolanaWalletBase final signature = await _walletKeyPair!.sign(messageBytes); // Convert the signature to a hexadecimal string - final hex = bytesToHex(signature.bytes); + final hex = HEX.encode(signature.bytes); return hex; } diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index c98b7492e9..7e24983bff 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -19,7 +19,6 @@ dependencies: bip39: ^1.0.6 mobx: ^2.3.0+1 shared_preferences: ^2.0.15 - web3dart: ^2.7.1 bip32: ^2.0.0 hex: ^0.2.0 @@ -34,4 +33,4 @@ dev_dependencies: flutter: # assets: # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg \ No newline at end of file + # - images/a_dot_ham.jpeg diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 75ba45ce15..02bdedaec4 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -1,4 +1,13 @@ import 'dart:convert'; + +import 'package:cake_wallet/.secrets.g.dart' as secrets; +import 'package:cake_wallet/buy/buy_amount.dart'; +import 'package:cake_wallet/buy/buy_exception.dart'; +import 'package:cake_wallet/buy/buy_provider.dart'; +import 'package:cake_wallet/buy/buy_provider_description.dart'; +import 'package:cake_wallet/buy/order.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; @@ -6,19 +15,11 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:crypto/crypto.dart'; -import 'package:cake_wallet/buy/buy_exception.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:cake_wallet/buy/buy_amount.dart'; -import 'package:cake_wallet/buy/buy_provider.dart'; -import 'package:cake_wallet/buy/buy_provider_description.dart'; -import 'package:cake_wallet/buy/order.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/exchange/trade_state.dart'; -import 'package:cake_wallet/.secrets.g.dart' as secrets; -import 'package:cw_core/crypto_currency.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; import 'package:url_launcher/url_launcher.dart'; class MoonPaySellProvider extends BuyProvider { @@ -34,6 +35,7 @@ class MoonPaySellProvider extends BuyProvider { static const _baseTestUrl = 'sell-sandbox.moonpay.com'; static const _baseProductUrl = 'sell.moonpay.com'; + static const _cIdBaseUrl = 'exchange-helper.cakewallet.com'; @override String get providerDescription => @@ -60,9 +62,29 @@ class MoonPaySellProvider extends BuyProvider { static String get _apiKey => secrets.moonPayApiKey; - static String get _secretKey => secrets.moonPaySecretKey; + static String get _exchangeHelperApiKey => secrets.exchangeHelperApiKey; final String baseUrl; + Future getMoonpaySignature(String query) async { + final uri = Uri.https(_cIdBaseUrl, "/api/moonpay"); + + final response = await post( + uri, + headers: { + 'Content-Type': 'application/json', + 'x-api-key': _exchangeHelperApiKey, + }, + body: json.encode({'query': query}), + ); + + if (response.statusCode == 200) { + return (jsonDecode(response.body) as Map)['signature'] as String; + } else { + throw Exception( + 'Provider currently unavailable. Status: ${response.statusCode} ${response.body}'); + } + } + Future requestMoonPayUrl({ required CryptoCurrency currency, required String refundWalletAddress, @@ -86,11 +108,7 @@ class MoonPaySellProvider extends BuyProvider { }..addAll(customParams), ); - final messageBytes = utf8.encode('?${originalUri.query}'); - final key = utf8.encode(_secretKey); - final hmac = Hmac(sha256, key); - final digest = hmac.convert(messageBytes); - final signature = base64.encode(digest.bytes); + final signature = await getMoonpaySignature('?${originalUri.query}'); if (isTestEnvironment) { return originalUri; diff --git a/lib/buy/robinhood/robinhood_buy_provider.dart b/lib/buy/robinhood/robinhood_buy_provider.dart index 47c3ab1ea2..7610e51f38 100644 --- a/lib/buy/robinhood/robinhood_buy_provider.dart +++ b/lib/buy/robinhood/robinhood_buy_provider.dart @@ -32,11 +32,12 @@ class RobinhoodBuyProvider extends BuyProvider { String get _applicationId => secrets.robinhoodApplicationId; - String get _apiSecret => secrets.robinhoodCIdApiSecret; + String get _apiSecret => secrets.exchangeHelperApiKey; String getSignature(String message) { switch (wallet.type) { case WalletType.ethereum: + case WalletType.polygon: return wallet.signMessage(message); case WalletType.litecoin: case WalletType.bitcoin: diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index b7336c2a7b..f3993e129c 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -55,6 +55,7 @@ class ProvidersHelper { case WalletType.monero: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.bitcoin: + case WalletType.polygon: case WalletType.ethereum: return [ ProviderType.askEachTime, @@ -65,8 +66,6 @@ class ProvidersHelper { case WalletType.litecoin: case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; - case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.solana: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: @@ -79,6 +78,7 @@ class ProvidersHelper { switch (walletType) { case WalletType.bitcoin: case WalletType.ethereum: + case WalletType.polygon: return [ ProviderType.askEachTime, ProviderType.onramper, @@ -88,13 +88,6 @@ class ProvidersHelper { case WalletType.litecoin: case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.moonpaySell]; - case WalletType.polygon: - return [ - ProviderType.askEachTime, - ProviderType.onramper, - ProviderType.moonpaySell, - ProviderType.dfx, - ]; case WalletType.solana: return [ ProviderType.askEachTime, diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 38b5129afc..430de03b6b 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -34,7 +34,7 @@ class SecretKey { SecretKey('chatwootWebsiteToken', () => ''), SecretKey('exolixApiKey', () => ''), SecretKey('robinhoodApplicationId', () => ''), - SecretKey('robinhoodCIdApiSecret', () => ''), + SecretKey('exchangeHelperApiKey', () => ''), SecretKey('walletConnectProjectId', () => ''), SecretKey('moralisApiKey', () => ''), ]; From 4520f583a6d66a8678b8f0c476dde8b9509a1fe0 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Mon, 25 Mar 2024 14:28:45 -0400 Subject: [PATCH 009/157] Add toggle for disabling service bulletin (#1347) * Add toggle for disabling service bulletin * Make the toggle functional * Fix + add toggle to Advanced Settings * Remove unused variable --------- Co-authored-by: Omar Hatem --- lib/entities/preferences_key.dart | 1 + lib/src/screens/dashboard/dashboard_page.dart | 11 ++++++++++- .../new_wallet/advanced_privacy_settings_page.dart | 6 ++++++ lib/src/screens/settings/privacy_page.dart | 6 ++++++ lib/store/settings_store.dart | 13 +++++++++++++ .../advanced_privacy_settings_view_model.dart | 6 ++++++ lib/view_model/dashboard/dashboard_view_model.dart | 3 +++ .../settings/privacy_settings_view_model.dart | 6 ++++++ res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 ++- 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_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_yo.arb | 1 + res/values/strings_zh.arb | 1 + 34 files changed, 78 insertions(+), 2 deletions(-) diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 1808be97c1..5c22455d20 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -20,6 +20,7 @@ class PreferencesKey { static const isAppSecureKey = 'is_app_secure'; static const disableBuyKey = 'disable_buy'; static const disableSellKey = 'disable_sell'; + static const disableBulletinKey = 'disable_bulletin'; static const defaultBuyProvider = 'default_buy_provider'; static const walletListOrder = 'wallet_list_order'; static const walletListAscending = 'wallet_list_ascending'; diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 3806dff910..ed06f47040 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -103,7 +103,16 @@ class _DashboardPageView extends BasePage { Widget get endDrawer => MenuWidget(dashboardViewModel); @override - Widget leading(BuildContext context) => ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); + Widget leading(BuildContext context) { + return Observer( + builder: (context) { + if (dashboardViewModel.isEnabledBulletinAction) { + return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); + } + return const SizedBox(); + }, + ); + } @override Widget middle(BuildContext context) { diff --git a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart index 26478345ee..881d9f95a2 100644 --- a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart +++ b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart @@ -100,6 +100,12 @@ class _AdvancedPrivacySettingsBodyState extends State sharedPreferences.setBool(PreferencesKey.disableSellKey, disableSell)); + reaction( + (_) => disableBulletin, + (bool disableBulletin) => + sharedPreferences.setBool(PreferencesKey.disableBulletinKey, disableBulletin)); + reaction( (_) => walletListOrder, (WalletListOrderType walletListOrder) => @@ -553,6 +560,9 @@ abstract class SettingsStoreBase with Store { @observable bool disableSell; + @observable + bool disableBulletin; + @observable WalletListOrderType walletListOrder; @@ -777,6 +787,7 @@ abstract class SettingsStoreBase with Store { final isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false; final disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false; final disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false; + final disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? false; final walletListOrder = WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0]; final walletListAscending = @@ -1029,6 +1040,7 @@ abstract class SettingsStoreBase with Store { initialAppSecure: isAppSecure, initialDisableBuy: disableBuy, initialDisableSell: disableSell, + initialDisableBulletin: disableBulletin, initialWalletListOrder: walletListOrder, initialWalletListAscending: walletListAscending, initialFiatMode: currentFiatApiMode, @@ -1147,6 +1159,7 @@ abstract class SettingsStoreBase with Store { isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure; disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy; disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell; + disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin; walletListOrder = WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0]; walletListAscending = sharedPreferences.getBool(PreferencesKey.walletListAscending) ?? true; diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index b78d831a4a..a17ddff364 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -20,6 +20,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { @computed FiatApiMode get fiatApiMode => _settingsStore.fiatApiMode; + @computed + bool get disableBulletin => _settingsStore.disableBulletin; + @observable bool _addCustomNode = false; @@ -64,6 +67,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { @action void setExchangeApiMode(ExchangeApiMode value) => _settingsStore.exchangeStatus = value; + @action + void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value; + @action void toggleAddCustomNode() => _addCustomNode = !_addCustomNode; diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index b02c09f827..9ee0647fc6 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -355,6 +355,9 @@ abstract class DashboardViewModelBase with Store { @observable bool hasSellAction; + @computed + bool get isEnabledBulletinAction => !settingsStore.disableBulletin; + ReactionDisposer? _onMoneroAccountChangeReaction; ReactionDisposer? _onMoneroBalanceChangeReaction; diff --git a/lib/view_model/settings/privacy_settings_view_model.dart b/lib/view_model/settings/privacy_settings_view_model.dart index 65375b3e7b..831a453571 100644 --- a/lib/view_model/settings/privacy_settings_view_model.dart +++ b/lib/view_model/settings/privacy_settings_view_model.dart @@ -59,6 +59,9 @@ abstract class PrivacySettingsViewModelBase with Store { @computed bool get disableSell => _settingsStore.disableSell; + @computed + bool get disableBulletin => _settingsStore.disableBulletin; + @computed bool get useEtherscan => _settingsStore.useEtherscan; @@ -106,6 +109,9 @@ abstract class PrivacySettingsViewModelBase with Store { @action void setDisableSell(bool value) => _settingsStore.disableSell = value; + @action + void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value; + @action void setLookupsTwitter(bool value) => _settingsStore.lookupsTwitter = value; diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 900f59135c..66af15dfae 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -186,6 +186,7 @@ "digit_pin": "-رقم PIN", "digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع", "disable": "إبطال", + "disable_bulletin": "تعطيل نشرة حالة الخدمة", "disable_buy": "تعطيل إجراء الشراء", "disable_cake_2fa": "تعطيل 2 عامل المصادقة", "disable_exchange": "تعطيل التبادل", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 3e8cd148e5..061506b86d 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -186,6 +186,7 @@ "digit_pin": "-цифрен PIN", "digital_and_physical_card": " дигитална или физическа предплатена дебитна карта", "disable": "Деактивиране", + "disable_bulletin": "Деактивирайте бюлетина за състоянието на услугата", "disable_buy": "Деактивирайте действието за покупка", "disable_cake_2fa": "Деактивирайте Cake 2FA", "disable_exchange": "Деактивиране на борса", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8a52138211..2896c11a9b 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -186,6 +186,7 @@ "digit_pin": "-číselný PIN", "digital_and_physical_card": " digitální a fyzické předplacené debetní karty,", "disable": "Zakázat", + "disable_bulletin": "Zakázat status servisního stavu", "disable_buy": "Zakázat akci nákupu", "disable_cake_2fa": "Zakázat Cake 2FA", "disable_exchange": "Zakázat směnárny", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 549f6f7751..9dfa4f4db7 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -186,6 +186,7 @@ "digit_pin": "-stellige PIN", "digital_and_physical_card": "digitale und physische Prepaid-Debitkarte", "disable": "Deaktivieren", + "disable_bulletin": "Deaktivieren Sie das Bulletin des Service Status", "disable_buy": "Kaufaktion deaktivieren", "disable_cake_2fa": "Cake 2FA deaktivieren", "disable_exchange": "Exchange deaktivieren", @@ -411,8 +412,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", + "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 9b1610da57..902cb062f3 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit PIN", "digital_and_physical_card": " digital and physical prepaid debit card", "disable": "Disable", + "disable_bulletin": "Disable service status bulletin", "disable_buy": "Disable buy action", "disable_cake_2fa": "Disable Cake 2FA", "disable_exchange": "Disable exchange", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4847f55216..4b9a9d26b5 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -186,6 +186,7 @@ "digit_pin": "-dígito PIN", "digital_and_physical_card": " tarjeta de débito prepago digital y física", "disable": "Desactivar", + "disable_bulletin": "Desactivar el boletín de estado del servicio", "disable_buy": "Desactivar acción de compra", "disable_cake_2fa": "Desactivar pastel 2FA", "disable_exchange": "Deshabilitar intercambio", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index d1390a5ca5..384bb95856 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -186,6 +186,7 @@ "digit_pin": " chiffres", "digital_and_physical_card": "carte de débit prépayée numérique et physique", "disable": "Désactiver", + "disable_bulletin": "Désactiver le bulletin de statut de service", "disable_buy": "Désactiver l'action d'achat", "disable_cake_2fa": "Désactiver Cake 2FA", "disable_exchange": "Désactiver l'échange", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index e9bd604d27..7c0a7df122 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -186,6 +186,7 @@ "digit_pin": "-lambar PIN", "digital_and_physical_card": "katin zare kudi na dijital da na zahiri", "disable": "Kashe", + "disable_bulletin": "Musaki ma'aunin sabis na sabis", "disable_buy": "Kashe alama", "disable_cake_2fa": "Musaki Cake 2FA", "disable_exchange": "Kashe musanya", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 535fd02642..932fb25e7f 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -186,6 +186,7 @@ "digit_pin": "-अंक पिन", "digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड", "disable": "अक्षम करना", + "disable_bulletin": "सेवा स्थिति बुलेटिन अक्षम करें", "disable_buy": "खरीद कार्रवाई अक्षम करें", "disable_cake_2fa": "केक 2FA अक्षम करें", "disable_exchange": "एक्सचेंज अक्षम करें", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 9a7cab450a..c8c9a00bd3 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -186,6 +186,7 @@ "digit_pin": "-znamenkasti PIN", "digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica", "disable": "Onemogući", + "disable_bulletin": "Onemogućite bilten o statusu usluge", "disable_buy": "Onemogući kupnju", "disable_cake_2fa": "Onemogući Cake 2FA", "disable_exchange": "Onemogući exchange", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index f29298c4f7..2168de910d 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit PIN", "digital_and_physical_card": " kartu debit pra-bayar digital dan fisik", "disable": "Cacat", + "disable_bulletin": "Nonaktifkan Buletin Status Layanan", "disable_buy": "Nonaktifkan tindakan beli", "disable_cake_2fa": "Nonaktifkan Kue 2FA", "disable_exchange": "Nonaktifkan pertukaran", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 82dd6b9768..2700203a09 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -187,6 +187,7 @@ "digit_pin": "-cifre PIN", "digital_and_physical_card": "carta di debito prepagata digitale e fisica", "disable": "disattivare", + "disable_bulletin": "Disabilita Bollettino dello stato del servizio", "disable_buy": "Disabilita l'azione di acquisto", "disable_cake_2fa": "Disabilita Cake 2FA", "disable_exchange": "Disabilita scambio", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 95a7643b0a..443ce66588 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -186,6 +186,7 @@ "digit_pin": "桁ピン", "digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード", "disable": "無効にする", + "disable_bulletin": "サービスステータス速報を無効にします", "disable_buy": "購入アクションを無効にする", "disable_cake_2fa": "Cake 2FA を無効にする", "disable_exchange": "交換を無効にする", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index e8b208c284..3affd803b7 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -186,6 +186,7 @@ "digit_pin": "숫자 PIN", "digital_and_physical_card": " 디지털 및 실제 선불 직불 카드", "disable": "장애를 입히다", + "disable_bulletin": "서비스 상태 게시판을 비활성화합니다", "disable_buy": "구매 행동 비활성화", "disable_cake_2fa": "케이크 2FA 비활성화", "disable_exchange": "교환 비활성화", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 42ea07cb6b..c52d65c06a 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -186,6 +186,7 @@ "digit_pin": "-ဂဏန်း PIN", "digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်", "disable": "ပိတ်ပါ။", + "disable_bulletin": "ဝန်ဆောင်မှုအခြေအနေစာစောင်ကိုပိတ်ပါ", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။", "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a00a12338b..fa7825809c 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -186,6 +186,7 @@ "digit_pin": "-cijferige PIN", "digital_and_physical_card": "digitale en fysieke prepaid debetkaart", "disable": "Uitzetten", + "disable_bulletin": "Schakel servicestatus Bulletin uit", "disable_buy": "Koopactie uitschakelen", "disable_cake_2fa": "Taart 2FA uitschakelen", "disable_exchange": "Uitwisseling uitschakelen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 1ad616bc9d..16dc8696a6 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -186,6 +186,7 @@ "digit_pin": "-znakowy PIN", "digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa", "disable": "Wyłączyć", + "disable_bulletin": "Wyłącz biuletyn statusu usługi", "disable_buy": "Wyłącz akcję kupna", "disable_cake_2fa": "Wyłącz Cake 2FA", "disable_exchange": "Wyłącz wymianę", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index c1b5791866..8516ecf3f7 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -186,6 +186,7 @@ "digit_pin": "dígitos", "digital_and_physical_card": "cartão de débito pré-pago digital e físico", "disable": "Desativar", + "disable_bulletin": "Desativar boletim de status de serviço", "disable_buy": "Desativar ação de compra", "disable_cake_2fa": "Desabilitar o Cake 2FA", "disable_exchange": "Desativar troca", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index f327f126a1..2bff244144 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -186,6 +186,7 @@ "digit_pin": "-значный PIN", "digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта", "disable": "Запрещать", + "disable_bulletin": "Отключить бюллетень статуса обслуживания", "disable_buy": "Отключить действие покупки", "disable_cake_2fa": "Отключить торт 2FA", "disable_exchange": "Отключить обмен", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 255b80df76..9c37ff8bb0 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -186,6 +186,7 @@ "digit_pin": "-หลัก PIN", "digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน", "disable": "ปิดการใช้งาน", + "disable_bulletin": "ปิดการใช้งาน Bulletin สถานะบริการ", "disable_buy": "ปิดการใช้งานการซื้อ", "disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA", "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 1d70638818..d4be217413 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit pin", "digital_and_physical_card": "Digital at Physical Prepaid Debit Card", "disable": "Huwag paganahin", + "disable_bulletin": "Huwag paganahin ang Bulletin ng Katayuan ng Serbisyo", "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", "disable_cake_2fa": "Huwag paganahin ang cake 2FA", "disable_exchange": "Huwag paganahin ang palitan", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 99879d5ef4..a6209ed333 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -186,6 +186,7 @@ "digit_pin": " haneli PIN", "digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan", "disable": "Devre dışı bırakmak", + "disable_bulletin": "Hizmet Durumu Bültenini Devre Dışı Bırak", "disable_buy": "Satın alma işlemini devre dışı bırak", "disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak", "disable_exchange": "Borsayı devre dışı bırak", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 63c59d4750..3d60b9e8ea 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -186,6 +186,7 @@ "digit_pin": "-значний PIN", "digital_and_physical_card": " цифрова та фізична передплачена дебетова картка", "disable": "Вимкнути", + "disable_bulletin": "Вимкнути статус послуги", "disable_buy": "Вимкнути дію покупки", "disable_cake_2fa": "Вимкнути Cake 2FA", "disable_exchange": "Вимкнути exchange", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 08212c0b1b..e0e74e6ded 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -186,6 +186,7 @@ "digit_pin": "-ہندسوں کا پن", "digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ", "disable": "غیر فعال کریں۔", + "disable_bulletin": "خدمت کی حیثیت کا بلیٹن کو غیر فعال کریں", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", "disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔", "disable_exchange": "تبادلے کو غیر فعال کریں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index f9b1988435..54df5dbf2f 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -186,6 +186,7 @@ "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", "digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára", "disable": "Ko si", + "disable_bulletin": "Mu blogti ipo ipo ṣiṣẹ", "disable_buy": "Ko iṣọrọ ọja", "disable_cake_2fa": "Ko 2FA Cake sii", "disable_exchange": "Pa ilé pàṣípààrọ̀", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 8a61a6a4a0..cb1f012fbb 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -186,6 +186,7 @@ "digit_pin": "位 PIN", "digital_and_physical_card": "数字和物理预付借记卡", "disable": "停用", + "disable_bulletin": "禁用服务状态公告", "disable_buy": "禁用购买操作", "disable_cake_2fa": "禁用蛋糕 2FA", "disable_exchange": "禁用交换", From 6ae0f37b9c6ccb6376981e944eea1a7054eb270d Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Tue, 26 Mar 2024 11:37:52 +0100 Subject: [PATCH 010/157] CW-597-AuthService-Bug (#1346) * fix: AuthService keychain bug fix * fix: Fetch read implementation * fix: Simplify logic for retries * Minor enhancement --------- Co-authored-by: Omar Hatem --- lib/core/auth_service.dart | 7 +++++-- lib/core/key_service.dart | 3 ++- lib/core/secure_storage.dart | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 lib/core/secure_storage.dart diff --git a/lib/core/auth_service.dart b/lib/core/auth_service.dart index a99aef31d7..48610784c4 100644 --- a/lib/core/auth_service.dart +++ b/lib/core/auth_service.dart @@ -1,5 +1,7 @@ +import 'dart:async'; import 'dart:io'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/core/totp_request_details.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; @@ -64,7 +66,7 @@ class AuthService with Store { Future authenticate(String pin) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); - final encodedPin = await secureStorage.read(key: key); + final encodedPin = await readSecureStorage(secureStorage, key); final decodedPin = decodedPinCode(pin: encodedPin!); return decodedPin == pin; @@ -76,7 +78,8 @@ class AuthService with Store { } Future requireAuth() async { - final timestamp = int.tryParse(await secureStorage.read(key: SecureKey.lastAuthTimeMilliseconds) ?? '0'); + final timestamp = + int.tryParse(await secureStorage.read(key: SecureKey.lastAuthTimeMilliseconds) ?? '0'); final duration = _durationToRequireAuth(timestamp ?? 0); final requiredPinInterval = settingsStore.pinTimeOutDuration; diff --git a/lib/core/key_service.dart b/lib/core/key_service.dart index fce254ea28..f829c22b52 100644 --- a/lib/core/key_service.dart +++ b/lib/core/key_service.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cake_wallet/entities/encrypt.dart'; @@ -10,7 +11,7 @@ class KeyService { Future getWalletPassword({required String walletName}) async { final key = generateStoreKeyFor( key: SecretStoreKey.moneroWalletPassword, walletName: walletName); - final encodedPassword = await _secureStorage.read(key: key); + final encodedPassword = await readSecureStorage(_secureStorage, key); return decodeWalletPassword(password: encodedPassword!); } diff --git a/lib/core/secure_storage.dart b/lib/core/secure_storage.dart new file mode 100644 index 0000000000..4d9334a103 --- /dev/null +++ b/lib/core/secure_storage.dart @@ -0,0 +1,27 @@ +import 'dart:async'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +// For now, we can create a utility function to handle this. +// +// However, we could look into abstracting the entire FlutterSecureStorage package +// so the app doesn't depend on the package directly but an absraction. +// It'll make these kind of modifications to read/write come from a single point. + +Future readSecureStorage(FlutterSecureStorage secureStorage, String key) async { + String? result; + const maxWait = Duration(seconds: 3); + const checkInterval = Duration(milliseconds: 200); + + DateTime start = DateTime.now(); + + while (result == null && DateTime.now().difference(start) < maxWait) { + result = await secureStorage.read(key: key); + + if (result != null) { + break; + } + + await Future.delayed(checkInterval); + } + + return result; +} From b9e803f3bd603a996e526cfd27db5d3c00f7b48f Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Tue, 26 Mar 2024 11:08:39 -0500 Subject: [PATCH 011/157] Fix pubspec generation on windows (#1351) --- tool/configure.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/configure.dart b/tool/configure.dart index 962731d06b..99d1fe8ee1 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -1037,7 +1037,7 @@ Future generatePubspec( final inputFile = File(pubspecOutputPath); final inputText = await inputFile.readAsString(); final inputLines = inputText.split('\n'); - final dependenciesIndex = inputLines.indexWhere((line) => line.toLowerCase() == 'dependencies:'); + final dependenciesIndex = inputLines.indexWhere((line) => line.toLowerCase().contains('dependencies:')); var output = cwCore; if (hasMonero) { From cdf081edfdab1b4e05e3a8e83e709e624784cafc Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 28 Mar 2024 14:41:11 +0200 Subject: [PATCH 012/157] Cw 537 integrate thor chain swaps (#1280) * thorChain btc to eth swap * eth to btc swap * update the UI * update localization * Update thorchain_exchange.provider.dart * minor fixes * minor fix * fix min amount bug * revert amount_converter changes * fetching thorChain traid info * resolve evm related merge conflicts * minor fix * Fix eth transaction hash for Thorchain Integration * add new status endpoint and refund address for eth * Adjust affiliate fee * Fix conflicts with main * review comments + transaction filter item * taproot addresses check * added 10 outputs check * Update thorchain_exchange.provider.dart * minor fixes * update thorchain title * fix fetching rate for thorchain * Revert "fix fetching rate for thorchain" This reverts commit 3aa1386ecfbca14271bf01a73b424de19c4fd484. * fix thorchain exchange rate --------- Co-authored-by: OmarHatem --- assets/images/thorchain.png | Bin 0 -> 5478 bytes cw_bitcoin/lib/electrum_wallet.dart | 39 ++- .../lib/pending_bitcoin_transaction.dart | 3 + .../lib/src/bitcoin_cash_wallet.dart | 5 +- cw_core/lib/output_info.dart | 4 +- cw_core/lib/pending_transaction.dart | 1 + cw_evm/lib/evm_chain_client.dart | 9 + cw_evm/lib/evm_chain_wallet.dart | 8 + cw_evm/lib/pending_evm_chain_transaction.dart | 10 +- cw_polygon/lib/polygon_client.dart | 2 + lib/bitcoin/cw_bitcoin.dart | 3 +- lib/ethereum/cw_ethereum.dart | 3 +- .../exchange_provider_description.dart | 4 + .../provider/thorchain_exchange.provider.dart | 248 ++++++++++++++++++ lib/exchange/trade.dart | 24 +- lib/exchange/trade_state.dart | 3 + .../dashboard/widgets/filter_tile.dart | 2 +- .../widgets/sync_indicator_icon.dart | 2 + .../screens/dashboard/widgets/trade_row.dart | 38 +-- lib/src/screens/exchange/exchange_page.dart | 15 +- lib/store/dashboard/trade_filter_store.dart | 39 ++- .../anonpay_details_view_model.dart | 2 +- .../dashboard/dashboard_view_model.dart | 5 + .../exchange/exchange_trade_view_model.dart | 13 +- .../exchange/exchange_view_model.dart | 29 +- lib/view_model/order_details_view_model.dart | 2 +- lib/view_model/send/output.dart | 3 + lib/view_model/send/send_view_model.dart | 10 +- lib/view_model/trade_details_view_model.dart | 58 ++-- res/values/strings_ar.arb | 2 + res/values/strings_bg.arb | 2 + res/values/strings_cs.arb | 2 + res/values/strings_de.arb | 2 + res/values/strings_en.arb | 2 + res/values/strings_es.arb | 2 + res/values/strings_fr.arb | 2 + res/values/strings_ha.arb | 2 + res/values/strings_hi.arb | 2 + res/values/strings_hr.arb | 2 + res/values/strings_id.arb | 2 + res/values/strings_it.arb | 2 + res/values/strings_ja.arb | 2 + res/values/strings_ko.arb | 2 + res/values/strings_my.arb | 2 + res/values/strings_nl.arb | 2 + res/values/strings_pl.arb | 2 + res/values/strings_pt.arb | 2 + res/values/strings_ru.arb | 2 + res/values/strings_th.arb | 2 + res/values/strings_tl.arb | 2 + res/values/strings_tr.arb | 2 + res/values/strings_uk.arb | 2 + res/values/strings_ur.arb | 2 + res/values/strings_yo.arb | 2 + res/values/strings_zh.arb | 2 + 55 files changed, 534 insertions(+), 102 deletions(-) create mode 100644 assets/images/thorchain.png create mode 100644 lib/exchange/provider/thorchain_exchange.provider.dart diff --git a/assets/images/thorchain.png b/assets/images/thorchain.png new file mode 100644 index 0000000000000000000000000000000000000000..674b60f824c16848aaef27b347588ffeb8051deb GIT binary patch literal 5478 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 aYt7G+@%vUxf9L outputs, int? feeRate, BitcoinTransactionPriority? priority, - {int? inputsCount}) async { + {int? inputsCount, + String? memo}) async { final utxos = []; List privateKeys = []; @@ -253,7 +254,11 @@ abstract class ElectrumWalletBase } final estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( - utxos: utxos, outputs: outputs, network: network); + utxos: utxos, + outputs: outputs, + network: network, + memo: memo, + ); int fee = feeRate != null ? feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize) @@ -300,7 +305,13 @@ abstract class ElectrumWalletBase } } - return EstimatedTxResult(utxos: utxos, privateKeys: privateKeys, fee: fee, amount: amount); + return EstimatedTxResult( + utxos: utxos, + privateKeys: privateKeys, + fee: fee, + amount: amount, + memo: memo, + ); } @override @@ -348,13 +359,17 @@ abstract class ElectrumWalletBase outputs, transactionCredentials.feeRate, transactionCredentials.priority, + memo: transactionCredentials.outputs.first.memo, ); final txb = BitcoinTransactionBuilder( - utxos: estimatedTx.utxos, - outputs: outputs, - fee: BigInt.from(estimatedTx.fee), - network: network); + utxos: estimatedTx.utxos, + outputs: outputs, + fee: BigInt.from(estimatedTx.fee), + network: network, + memo: estimatedTx.memo, + outputOrdering: BitcoinOrdering.none, + ); final transaction = txb.buildTransaction((txDigest, utxo, publicKey, sighash) { final key = estimatedTx.privateKeys @@ -888,13 +903,19 @@ class EstimateTxParams { } class EstimatedTxResult { - EstimatedTxResult( - {required this.utxos, required this.privateKeys, required this.fee, required this.amount}); + EstimatedTxResult({ + required this.utxos, + required this.privateKeys, + required this.fee, + required this.amount, + this.memo, + }); final List utxos; final List privateKeys; final int fee; final int amount; + final String? memo; } BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index fa413febde..b459311336 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -31,6 +31,9 @@ class PendingBitcoinTransaction with PendingTransaction { @override String get feeFormatted => bitcoinAmountToString(amount: fee); + @override + int? get outputCount => _tx.outputs.length; + final List _listeners; @override diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index f5835e7280..40ddcfa572 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -140,6 +140,8 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { var allInputsAmount = 0; + final String? opReturnMemo = outputs.first.memo; + if (unspentCoins.isEmpty) await updateUnspent(); for (final utx in unspentCoins) { @@ -282,6 +284,8 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { txb.addOutput(changeAddress, changeValue); } + if (opReturnMemo != null) txb.addOutputData(opReturnMemo); + for (var i = 0; i < inputs.length; i++) { final input = inputs[i]; final keyPair = generateKeyPair( @@ -290,7 +294,6 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { txb.sign(i, keyPair, input.value); } - // Build the transaction final tx = txb.build(); return PendingBitcoinCashTransaction(tx, type, diff --git a/cw_core/lib/output_info.dart b/cw_core/lib/output_info.dart index e2b1201a88..9e3ac4ffc0 100644 --- a/cw_core/lib/output_info.dart +++ b/cw_core/lib/output_info.dart @@ -7,7 +7,8 @@ class OutputInfo { this.formattedCryptoAmount, this.fiatAmount, this.note, - this.extractedAddress,}); + this.extractedAddress, + this.memo}); final String? fiatAmount; final String? cryptoAmount; @@ -17,4 +18,5 @@ class OutputInfo { final bool sendAll; final bool isParsedAddress; final int? formattedCryptoAmount; + final String? memo; } \ No newline at end of file diff --git a/cw_core/lib/pending_transaction.dart b/cw_core/lib/pending_transaction.dart index cc5686fc9d..042b0ca2b8 100644 --- a/cw_core/lib/pending_transaction.dart +++ b/cw_core/lib/pending_transaction.dart @@ -3,6 +3,7 @@ mixin PendingTransaction { String get amountFormatted; String get feeFormatted; String get hex; + int? get outputCount => null; Future commit(); } \ No newline at end of file diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index de5b3874ae..5e84ec796a 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -14,6 +14,7 @@ import 'package:flutter/services.dart'; import 'package:http/http.dart'; import 'package:erc20/erc20.dart'; import 'package:web3dart/web3dart.dart'; +import 'package:hex/hex.dart' as hex; abstract class EVMChainClient { final httpClient = Client(); @@ -85,6 +86,7 @@ abstract class EVMChainClient { required CryptoCurrency currency, required int exponent, String? contractAddress, + String? data, }) async { assert(currency == CryptoCurrency.eth || currency == CryptoCurrency.maticpoly || @@ -100,6 +102,7 @@ abstract class EVMChainClient { to: EthereumAddress.fromHex(toAddress), maxPriorityFeePerGas: EtherAmount.fromInt(EtherUnit.gwei, priority.tip), amount: isEVMCompatibleChain ? EtherAmount.inWei(BigInt.parse(amount)) : EtherAmount.zero(), + data: data != null ? hexToBytes(data) : null, ); final signedTransaction = @@ -140,12 +143,14 @@ abstract class EVMChainClient { required EthereumAddress to, required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, + Uint8List? data, }) { return Transaction( from: from, to: to, maxPriorityFeePerGas: maxPriorityFeePerGas, value: amount, + data: data, ); } @@ -222,6 +227,10 @@ abstract class EVMChainClient { } } + Uint8List hexToBytes(String hexString) { + return Uint8List.fromList(hex.HEX.decode(hexString.startsWith('0x') ? hexString.substring(2) : hexString)); + } + void stop() { _client?.dispose(); } diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index 0fb282960d..2d58e95ab6 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -224,6 +224,13 @@ abstract class EVMChainWalletBase final outputs = _credentials.outputs; final hasMultiDestination = outputs.length > 1; + final String? opReturnMemo = outputs.first.memo; + + String? hexOpReturnMemo; + if (opReturnMemo != null) { + hexOpReturnMemo = '0x${opReturnMemo.codeUnits.map((char) => char.toRadixString(16).padLeft(2, '0')).join()}'; + } + final CryptoCurrency transactionCurrency = balance.keys.firstWhere((element) => element.title == _credentials.currency.title); @@ -279,6 +286,7 @@ abstract class EVMChainWalletBase exponent: exponent, contractAddress: transactionCurrency is Erc20Token ? transactionCurrency.contractAddress : null, + data: hexOpReturnMemo, ); return pendingEVMChainTransaction; diff --git a/cw_evm/lib/pending_evm_chain_transaction.dart b/cw_evm/lib/pending_evm_chain_transaction.dart index 8129de728e..0b367da685 100644 --- a/cw_evm/lib/pending_evm_chain_transaction.dart +++ b/cw_evm/lib/pending_evm_chain_transaction.dart @@ -3,6 +3,7 @@ import 'dart:typed_data'; import 'package:cw_core/pending_transaction.dart'; import 'package:web3dart/crypto.dart'; +import 'package:hex/hex.dart' as Hex; class PendingEVMChainTransaction with PendingTransaction { final Function sendTransaction; @@ -38,5 +39,12 @@ class PendingEVMChainTransaction with PendingTransaction { String get hex => bytesToHex(signedTransaction, include0x: true); @override - String get id => ''; + String get id { + final String eip1559Hex = '0x02${hex.substring(2)}'; + final Uint8List bytes = Uint8List.fromList(Hex.HEX.decode(eip1559Hex.substring(2))); + + var txid = keccak256(bytes); + + return '0x${Hex.HEX.encode(txid)}'; + } } diff --git a/cw_polygon/lib/polygon_client.dart b/cw_polygon/lib/polygon_client.dart index 055b42f87a..35fbe5072e 100644 --- a/cw_polygon/lib/polygon_client.dart +++ b/cw_polygon/lib/polygon_client.dart @@ -13,6 +13,8 @@ class PolygonClient extends EVMChainClient { required EthereumAddress to, required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, + Uint8List? data, + }) { return Transaction( from: from, diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 78423a8c36..4db51fbc26 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -85,7 +85,8 @@ class CWBitcoin extends Bitcoin { sendAll: out.sendAll, extractedAddress: out.extractedAddress, isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) + formattedCryptoAmount: out.formattedCryptoAmount, + memo: out.memo)) .toList(), priority: priority as BitcoinTransactionPriority, feeRate: feeRate); diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index 6e658788e3..52839d68a2 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -76,7 +76,8 @@ class CWEthereum extends Ethereum { sendAll: out.sendAll, extractedAddress: out.extractedAddress, isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) + formattedCryptoAmount: out.formattedCryptoAmount, + memo: out.memo)) .toList(), priority: priority as EVMChainTransactionPriority, currency: currency, diff --git a/lib/exchange/exchange_provider_description.dart b/lib/exchange/exchange_provider_description.dart index abfac3a6be..4d9691035d 100644 --- a/lib/exchange/exchange_provider_description.dart +++ b/lib/exchange/exchange_provider_description.dart @@ -22,6 +22,8 @@ class ExchangeProviderDescription extends EnumerableItem with Serializable< ExchangeProviderDescription(title: 'Trocador', raw: 5, image: 'assets/images/trocador.png'); static const exolix = ExchangeProviderDescription(title: 'Exolix', raw: 6, image: 'assets/images/exolix.png'); + static const thorChain = + ExchangeProviderDescription(title: 'ThorChain' , raw: 8, image: 'assets/images/thorchain.png'); static const all = ExchangeProviderDescription(title: 'All trades', raw: 7, image: ''); @@ -41,6 +43,8 @@ class ExchangeProviderDescription extends EnumerableItem with Serializable< return trocador; case 6: return exolix; + case 8: + return thorChain; case 7: return all; default: diff --git a/lib/exchange/provider/thorchain_exchange.provider.dart b/lib/exchange/provider/thorchain_exchange.provider.dart new file mode 100644 index 0000000000..2ab04b742b --- /dev/null +++ b/lib/exchange/provider/thorchain_exchange.provider.dart @@ -0,0 +1,248 @@ +import 'dart:convert'; + +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/limits.dart'; +import 'package:cake_wallet/exchange/provider/exchange_provider.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/exchange/utils/currency_pairs_utils.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:hive/hive.dart'; +import 'package:http/http.dart' as http; + +class ThorChainExchangeProvider extends ExchangeProvider { + ThorChainExchangeProvider({required this.tradesStore}) + : super(pairList: supportedPairs(_notSupported)); + + static final List _notSupported = [ + ...(CryptoCurrency.all + .where((element) => ![ + CryptoCurrency.btc, + CryptoCurrency.eth, + CryptoCurrency.ltc, + CryptoCurrency.bch, + CryptoCurrency.aave, + CryptoCurrency.dai, + CryptoCurrency.gusd, + CryptoCurrency.usdc, + CryptoCurrency.usdterc20, + CryptoCurrency.wbtc, + ].contains(element)) + .toList()) + ]; + + static final isRefundAddressSupported = [CryptoCurrency.eth]; + + static const _baseURL = 'thornode.ninerealms.com'; + static const _quotePath = '/thorchain/quote/swap'; + static const _txInfoPath = '/thorchain/tx/status/'; + static const _affiliateName = 'cakewallet'; + static const _affiliateBps = '175'; + + final Box tradesStore; + + @override + String get title => 'THORChain'; + + @override + bool get isAvailable => true; + + @override + bool get isEnabled => true; + + @override + bool get supportsFixedRate => false; + + @override + ExchangeProviderDescription get description => ExchangeProviderDescription.thorChain; + + @override + Future checkIsAvailable() async => true; + + @override + Future fetchRate( + {required CryptoCurrency from, + required CryptoCurrency to, + required double amount, + required bool isFixedRateMode, + required bool isReceiveAmount}) async { + try { + if (amount == 0) return 0.0; + + final params = { + 'from_asset': _normalizeCurrency(from), + 'to_asset': _normalizeCurrency(to), + 'amount': _doubleToThorChainString(amount), + 'affiliate': _affiliateName, + 'affiliate_bps': _affiliateBps + }; + + final responseJSON = await _getSwapQuote(params); + + final expectedAmountOut = responseJSON['expected_amount_out'] as String? ?? '0.0'; + + return _thorChainAmountToDouble(expectedAmountOut) / amount; + } catch (e) { + print(e.toString()); + return 0.0; + } + } + + @override + Future fetchLimits( + {required CryptoCurrency from, + required CryptoCurrency to, + required bool isFixedRateMode}) async { + final params = { + 'from_asset': _normalizeCurrency(from), + 'to_asset': _normalizeCurrency(to), + 'amount': _doubleToThorChainString(1), + 'affiliate': _affiliateName, + 'affiliate_bps': _affiliateBps + }; + + final responseJSON = await _getSwapQuote(params); + final minAmountIn = responseJSON['recommended_min_amount_in'] as String? ?? '0.0'; + + return Limits(min: _thorChainAmountToDouble(minAmountIn)); + } + + @override + Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + String formattedToAddress = request.toAddress.startsWith('bitcoincash:') + ? request.toAddress.replaceFirst('bitcoincash:', '') + : request.toAddress; + + final formattedFromAmount = double.parse(request.fromAmount); + + final params = { + 'from_asset': _normalizeCurrency(request.fromCurrency), + 'to_asset': _normalizeCurrency(request.toCurrency), + 'amount': _doubleToThorChainString(formattedFromAmount), + 'destination': formattedToAddress, + 'affiliate': _affiliateName, + 'affiliate_bps': _affiliateBps, + 'refund_address': + isRefundAddressSupported.contains(request.fromCurrency) ? request.refundAddress : '', + }; + + final responseJSON = await _getSwapQuote(params); + + final inputAddress = responseJSON['inbound_address'] as String?; + final memo = responseJSON['memo'] as String?; + + return Trade( + id: '', + from: request.fromCurrency, + to: request.toCurrency, + provider: description, + inputAddress: inputAddress, + createdAt: DateTime.now(), + amount: request.fromAmount, + state: TradeState.notFound, + payoutAddress: request.toAddress, + memo: memo); + } + + @override + Future findTradeById({required String id}) async { + if (id.isEmpty) throw Exception('Trade id is empty'); + final formattedId = id.startsWith('0x') ? id.substring(2) : id; + final uri = Uri.https(_baseURL, '$_txInfoPath$formattedId'); + final response = await http.get(uri); + + if (response.statusCode == 404) { + throw Exception('Trade not found for id: $formattedId'); + } else if (response.statusCode != 200) { + throw Exception('Unexpected HTTP status: ${response.statusCode}'); + } + + final responseJSON = json.decode(response.body); + final Map stagesJson = responseJSON['stages'] as Map; + + final inboundObservedStarted = stagesJson['inbound_observed']?['started'] as bool? ?? true; + if (!inboundObservedStarted) { + throw Exception('Trade has not started for id: $formattedId'); + } + + final currentState = _updateStateBasedOnStages(stagesJson) ?? TradeState.notFound; + + final tx = responseJSON['tx']; + final String fromAddress = tx['from_address'] as String? ?? ''; + final String toAddress = tx['to_address'] as String? ?? ''; + final List coins = tx['coins'] as List; + final String? memo = tx['memo'] as String?; + + final parts = memo?.split(':') ?? []; + + final String toChain = parts.length > 1 ? parts[1].split('.')[0] : ''; + final String toAsset = parts.length > 1 && parts[1].split('.').length > 1 ? parts[1].split('.')[1].split('-')[0] : ''; + + final formattedToChain = CryptoCurrency.fromString(toChain); + final toAssetWithChain = CryptoCurrency.fromString(toAsset, walletCurrency:formattedToChain); + + final plannedOutTxs = responseJSON['planned_out_txs'] as List?; + final isRefund = plannedOutTxs?.any((tx) => tx['refund'] == true) ?? false; + + return Trade( + id: id, + from: CryptoCurrency.fromString(tx['chain'] as String? ?? ''), + to: toAssetWithChain, + provider: description, + inputAddress: fromAddress, + payoutAddress: toAddress, + amount: coins.first['amount'] as String? ?? '0.0', + state: currentState, + memo: memo, + isRefund: isRefund, + ); + } + + Future> _getSwapQuote(Map params) async { + Uri uri = Uri.https(_baseURL, _quotePath, params); + + final response = await http.get(uri); + + if (response.statusCode != 200) { + throw Exception('Unexpected HTTP status: ${response.statusCode}'); + } + + if (response.body.contains('error')) { + throw Exception('Unexpected response: ${response.body}'); + } + + return json.decode(response.body) as Map; + } + + String _normalizeCurrency(CryptoCurrency currency) { + final networkTitle = currency.tag == 'ETH' ? 'ETH' : currency.title; + return '$networkTitle.${currency.title}'; + } + + String _doubleToThorChainString(double amount) => (amount * 1e8).toInt().toString(); + + double _thorChainAmountToDouble(String amount) => double.parse(amount) / 1e8; + + TradeState? _updateStateBasedOnStages(Map stages) { + TradeState? currentState; + + if (stages['inbound_observed']['completed'] as bool? ?? false) { + currentState = TradeState.confirmation; + } + if (stages['inbound_confirmation_counted']['completed'] as bool? ?? false) { + currentState = TradeState.confirmed; + } + if (stages['inbound_finalised']['completed'] as bool? ?? false) { + currentState = TradeState.processing; + } + if (stages['swap_finalised']['completed'] as bool? ?? false) { + currentState = TradeState.traded; + } + if (stages['outbound_signed']['completed'] as bool? ?? false) { + currentState = TradeState.success; + } + + return currentState; + } +} diff --git a/lib/exchange/trade.dart b/lib/exchange/trade.dart index 4eb48c2488..4bfb335b85 100644 --- a/lib/exchange/trade.dart +++ b/lib/exchange/trade.dart @@ -27,7 +27,10 @@ class Trade extends HiveObject { this.password, this.providerId, this.providerName, - this.fromWalletAddress + this.fromWalletAddress, + this.memo, + this.txId, + this.isRefund, }) { if (provider != null) providerRaw = provider.raw; @@ -105,6 +108,15 @@ class Trade extends HiveObject { @HiveField(17) String? fromWalletAddress; + @HiveField(18) + String? memo; + + @HiveField(19) + String? txId; + + @HiveField(20) + bool? isRefund; + static Trade fromMap(Map map) { return Trade( id: map['id'] as String, @@ -115,7 +127,10 @@ class Trade extends HiveObject { map['date'] != null ? DateTime.fromMillisecondsSinceEpoch(map['date'] as int) : null, amount: map['amount'] as String, walletId: map['wallet_id'] as String, - fromWalletAddress: map['from_wallet_address'] as String? + fromWalletAddress: map['from_wallet_address'] as String?, + memo: map['memo'] as String?, + txId: map['tx_id'] as String?, + isRefund: map['isRefund'] as bool? ); } @@ -128,7 +143,10 @@ class Trade extends HiveObject { 'date': createdAt != null ? createdAt!.millisecondsSinceEpoch : null, 'amount': amount, 'wallet_id': walletId, - 'from_wallet_address': fromWalletAddress + 'from_wallet_address': fromWalletAddress, + 'memo': memo, + 'tx_id': txId, + 'isRefund': isRefund }; } diff --git a/lib/exchange/trade_state.dart b/lib/exchange/trade_state.dart index ed56d9845f..2c58a96f41 100644 --- a/lib/exchange/trade_state.dart +++ b/lib/exchange/trade_state.dart @@ -41,6 +41,8 @@ class TradeState extends EnumerableItem with Serializable { static const success = TradeState(raw: 'success', title: 'Success'); static TradeState deserialize({required String raw}) { switch (raw) { + case 'NOT_FOUND': + return notFound; case 'pending': return pending; case 'confirming': @@ -98,6 +100,7 @@ class TradeState extends EnumerableItem with Serializable { case 'sending': return sending; case 'success': + case 'done': return success; default: throw Exception('Unexpected token: $raw in TradeState deserialize'); diff --git a/lib/src/screens/dashboard/widgets/filter_tile.dart b/lib/src/screens/dashboard/widgets/filter_tile.dart index 3be96073a7..d2f8248069 100644 --- a/lib/src/screens/dashboard/widgets/filter_tile.dart +++ b/lib/src/screens/dashboard/widgets/filter_tile.dart @@ -9,7 +9,7 @@ class FilterTile extends StatelessWidget { Widget build(BuildContext context) { return Container( width: double.infinity, - padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 24.0), + padding: EdgeInsets.symmetric(vertical: 6.0, horizontal: 24.0), child: child, ); } diff --git a/lib/src/screens/dashboard/widgets/sync_indicator_icon.dart b/lib/src/screens/dashboard/widgets/sync_indicator_icon.dart index 11bde6dfaa..21133a4382 100644 --- a/lib/src/screens/dashboard/widgets/sync_indicator_icon.dart +++ b/lib/src/screens/dashboard/widgets/sync_indicator_icon.dart @@ -20,6 +20,7 @@ class SyncIndicatorIcon extends StatelessWidget { static const String created = 'created'; static const String fetching = 'fetching'; static const String finished = 'finished'; + static const String success = 'success'; @override Widget build(BuildContext context) { @@ -45,6 +46,7 @@ class SyncIndicatorIcon extends StatelessWidget { indicatorColor = Colors.red; break; case finished: + case success: indicatorColor = PaletteDark.brightGreen; break; default: diff --git a/lib/src/screens/dashboard/widgets/trade_row.dart b/lib/src/screens/dashboard/widgets/trade_row.dart index 7f570b98e0..caccb8047e 100644 --- a/lib/src/screens/dashboard/widgets/trade_row.dart +++ b/lib/src/screens/dashboard/widgets/trade_row.dart @@ -34,7 +34,9 @@ class TradeRow extends StatelessWidget { mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.center, children: [ - _getPoweredImage(provider)!, + ClipRRect( + borderRadius: BorderRadius.circular(50), + child: Image.asset(provider.image, width: 36, height: 36)), SizedBox(width: 12), Expanded( child: Column( @@ -69,38 +71,4 @@ class TradeRow extends StatelessWidget { ), )); } - - Widget? _getPoweredImage(ExchangeProviderDescription provider) { - Widget? image; - - switch (provider) { - case ExchangeProviderDescription.xmrto: - image = Image.asset('assets/images/xmrto.png', height: 36, width: 36); - break; - case ExchangeProviderDescription.changeNow: - image = Image.asset('assets/images/changenow.png', height: 36, width: 36); - break; - case ExchangeProviderDescription.morphToken: - image = Image.asset('assets/images/morph.png', height: 36, width: 36); - break; - case ExchangeProviderDescription.sideShift: - image = Image.asset('assets/images/sideshift.png', width: 36, height: 36); - break; - case ExchangeProviderDescription.simpleSwap: - image = Image.asset('assets/images/simpleSwap.png', width: 36, height: 36); - break; - case ExchangeProviderDescription.trocador: - image = ClipRRect( - borderRadius: BorderRadius.circular(50), - child: Image.asset('assets/images/trocador.png', width: 36, height: 36)); - break; - case ExchangeProviderDescription.exolix: - image = Image.asset('assets/images/exolix.png', width: 36, height: 36); - break; - default: - image = null; - } - - return image; - } } diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 1a5ab24e62..d8e5a6a4ac 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -1,3 +1,5 @@ +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/core/auth_service.dart'; @@ -60,7 +62,7 @@ class ExchangePage extends BasePage { final _receiveAmountFocus = FocusNode(); final _receiveAddressFocus = FocusNode(); final _receiveAmountDebounce = Debounce(Duration(milliseconds: 500)); - final _depositAmountDebounce = Debounce(Duration(milliseconds: 500)); + Debounce _depositAmountDebounce = Debounce(Duration(milliseconds: 500)); var _isReactionsSet = false; final arrowBottomPurple = Image.asset( @@ -431,7 +433,9 @@ class ExchangePage extends BasePage { } if (state is TradeIsCreatedSuccessfully) { exchangeViewModel.reset(); - Navigator.of(context).pushNamed(Routes.exchangeConfirm); + (exchangeViewModel.tradesStore.trade?.provider == ExchangeProviderDescription.thorChain) + ? Navigator.of(context).pushReplacementNamed(Routes.exchangeTrade) + : Navigator.of(context).pushReplacementNamed(Routes.exchangeConfirm); } }); @@ -470,6 +474,13 @@ class ExchangePage extends BasePage { if (depositAmountController.text != exchangeViewModel.depositAmount && depositAmountController.text != S.of(context).all) { exchangeViewModel.isSendAllEnabled = false; + final isThorChain = exchangeViewModel.selectedProviders + .any((provider) => provider is ThorChainExchangeProvider); + + _depositAmountDebounce = isThorChain + ? Debounce(Duration(milliseconds: 1000)) + : Debounce(Duration(milliseconds: 500)); + _depositAmountDebounce.run(() { exchangeViewModel.changeDepositAmount(amount: depositAmountController.text); exchangeViewModel.isReceiveAmountEntered = false; diff --git a/lib/store/dashboard/trade_filter_store.dart b/lib/store/dashboard/trade_filter_store.dart index 4e901aa5e5..c05839578d 100644 --- a/lib/store/dashboard/trade_filter_store.dart +++ b/lib/store/dashboard/trade_filter_store.dart @@ -3,18 +3,20 @@ import 'package:cake_wallet/view_model/dashboard/trade_list_item.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:mobx/mobx.dart'; -part'trade_filter_store.g.dart'; +part 'trade_filter_store.g.dart'; class TradeFilterStore = TradeFilterStoreBase with _$TradeFilterStore; abstract class TradeFilterStoreBase with Store { - TradeFilterStoreBase() : displayXMRTO = true, + TradeFilterStoreBase() + : displayXMRTO = true, displayChangeNow = true, displaySideShift = true, displayMorphToken = true, displaySimpleSwap = true, displayTrocador = true, - displayExolix = true; + displayExolix = true, + displayThorChain = true; @observable bool displayXMRTO; @@ -37,8 +39,17 @@ abstract class TradeFilterStoreBase with Store { @observable bool displayExolix; + @observable + bool displayThorChain; + @computed - bool get displayAllTrades => displayChangeNow && displaySideShift && displaySimpleSwap && displayTrocador && displayExolix; + bool get displayAllTrades => + displayChangeNow && + displaySideShift && + displaySimpleSwap && + displayTrocador && + displayExolix && + displayThorChain; @action void toggleDisplayExchange(ExchangeProviderDescription provider) { @@ -64,6 +75,9 @@ abstract class TradeFilterStoreBase with Store { case ExchangeProviderDescription.exolix: displayExolix = !displayExolix; break; + case ExchangeProviderDescription.thorChain: + displayThorChain = !displayThorChain; + break; case ExchangeProviderDescription.all: if (displayAllTrades) { displayChangeNow = false; @@ -73,6 +87,7 @@ abstract class TradeFilterStoreBase with Store { displaySimpleSwap = false; displayTrocador = false; displayExolix = false; + displayThorChain = false; } else { displayChangeNow = true; displaySideShift = true; @@ -81,6 +96,7 @@ abstract class TradeFilterStoreBase with Store { displaySimpleSwap = true; displayTrocador = true; displayExolix = true; + displayThorChain = true; } break; } @@ -96,16 +112,13 @@ abstract class TradeFilterStoreBase with Store { ? _trades .where((item) => (displayXMRTO && item.trade.provider == ExchangeProviderDescription.xmrto) || - (displaySideShift && - item.trade.provider == ExchangeProviderDescription.sideShift) || - (displayChangeNow && - item.trade.provider == ExchangeProviderDescription.changeNow) || - (displayMorphToken && - item.trade.provider == ExchangeProviderDescription.morphToken) || - (displaySimpleSwap && - item.trade.provider == ExchangeProviderDescription.simpleSwap) || + (displaySideShift && item.trade.provider == ExchangeProviderDescription.sideShift) || + (displayChangeNow && item.trade.provider == ExchangeProviderDescription.changeNow) || + (displayMorphToken && item.trade.provider == ExchangeProviderDescription.morphToken) || + (displaySimpleSwap && item.trade.provider == ExchangeProviderDescription.simpleSwap) || (displayTrocador && item.trade.provider == ExchangeProviderDescription.trocador) || - (displayExolix && item.trade.provider == ExchangeProviderDescription.exolix)) + (displayExolix && item.trade.provider == ExchangeProviderDescription.exolix) || + (displayThorChain && item.trade.provider == ExchangeProviderDescription.thorChain)) .toList() : _trades; } diff --git a/lib/view_model/anonpay_details_view_model.dart b/lib/view_model/anonpay_details_view_model.dart index 6c528f4952..fe4b9da3d7 100644 --- a/lib/view_model/anonpay_details_view_model.dart +++ b/lib/view_model/anonpay_details_view_model.dart @@ -71,7 +71,7 @@ abstract class AnonpayDetailsViewModelBase with Store { ]); items.add(TrackTradeListItem( - title: 'Track', + title: S.current.track, value: invoiceDetail.clearnetStatusUrl, onTap: () => launchUrlString(invoiceDetail.clearnetStatusUrl))); } diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index 9ee0647fc6..66d179523b 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -120,6 +120,11 @@ abstract class DashboardViewModelBase with Store { caption: ExchangeProviderDescription.exolix.title, onChanged: () => tradeFilterStore.toggleDisplayExchange(ExchangeProviderDescription.exolix)), + FilterItem( + value: () => tradeFilterStore.displayThorChain, + caption: ExchangeProviderDescription.thorChain.title, + onChanged: () => + tradeFilterStore.toggleDisplayExchange(ExchangeProviderDescription.thorChain)), ] }, subname = '', diff --git a/lib/view_model/exchange/exchange_trade_view_model.dart b/lib/view_model/exchange/exchange_trade_view_model.dart index 0d40ae240e..3eb07460b3 100644 --- a/lib/view_model/exchange/exchange_trade_view_model.dart +++ b/lib/view_model/exchange/exchange_trade_view_model.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/exchange/provider/exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/exolix_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/sideshift_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/simpleswap_exchange_provider.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart'; import 'package:cake_wallet/exchange/trade.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -47,6 +48,9 @@ abstract class ExchangeTradeViewModelBase with Store { case ExchangeProviderDescription.exolix: _provider = ExolixExchangeProvider(); break; + case ExchangeProviderDescription.thorChain: + _provider = ThorChainExchangeProvider(tradesStore: trades); + break; } _updateItems(); @@ -100,8 +104,13 @@ abstract class ExchangeTradeViewModelBase with Store { final output = sendViewModel.outputs.first; output.address = trade.inputAddress ?? ''; output.setCryptoAmount(trade.amount); + if (_provider is ThorChainExchangeProvider) output.memo = trade.memo; sendViewModel.selectedCryptoCurrency = trade.from; - await sendViewModel.createTransaction(); + final pendingTransaction = await sendViewModel.createTransaction(provider: _provider); + if (_provider is ThorChainExchangeProvider) { + trade.id = pendingTransaction?.id ?? ''; + trades.add(trade); + } } @action @@ -127,6 +136,8 @@ abstract class ExchangeTradeViewModelBase with Store { tradesStore.trade!.from.tag != null ? '${tradesStore.trade!.from.tag}' + ' ' : ''; final tagTo = tradesStore.trade!.to.tag != null ? '${tradesStore.trade!.to.tag}' + ' ' : ''; items.clear(); + + if(trade.provider != ExchangeProviderDescription.thorChain) items.add(ExchangeTradeItem( title: "${trade.provider.title} ${S.current.id}", data: '${trade.id}', isCopied: true)); diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 1f86847f4c..01ac8e942d 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:collection'; import 'dart:convert'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; @@ -9,6 +10,7 @@ import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/wallet_contact.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/exchange/exchange_template.dart'; import 'package:cake_wallet/exchange/exchange_trade_state.dart'; import 'package:cake_wallet/exchange/limits.dart'; @@ -18,6 +20,7 @@ import 'package:cake_wallet/exchange/provider/exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/exolix_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/sideshift_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/simpleswap_exchange_provider.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart'; import 'package:cake_wallet/exchange/trade.dart'; import 'package:cake_wallet/exchange/trade_request.dart'; @@ -96,7 +99,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with /// if the provider is not in the user settings (user's first time or newly added provider) /// then use its default value decided by us - selectedProviders = ObservableList.of(providersForCurrentPair() + selectedProviders = ObservableList.of(providerList .where((element) => exchangeProvidersSelection[element.title] == null ? element.isEnabled : (exchangeProvidersSelection[element.title] as bool)) @@ -148,6 +151,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with SimpleSwapExchangeProvider(), TrocadorExchangeProvider( useTorOnly: _useTorOnly, providerStates: _settingsStore.trocadorProviderStates), + ThorChainExchangeProvider(tradesStore: trades), if (FeatureFlag.isExolixEnabled) ExolixExchangeProvider(), ]; @@ -496,8 +500,16 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with await provider.createTrade(request: request, isFixedRateMode: isFixedRateMode); trade.walletId = wallet.id; trade.fromWalletAddress = wallet.walletAddresses.address; + + if (!isCanCreateTrade(trade)) { + tradeState = TradeIsCreatedFailure( + title: S.current.trade_not_created, + error: S.current.thorchain_taproot_address_not_supported); + return; + } + tradesStore.setTrade(trade); - await trades.add(trade); + if (trade.provider != ExchangeProviderDescription.thorChain) await trades.add(trade); tradeState = TradeIsCreatedSuccessfully(trade: trade); /// return after the first successful trade @@ -749,4 +761,17 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with int get depositMaxDigits => depositCurrency.decimals; int get receiveMaxDigits => receiveCurrency.decimals; + + bool isCanCreateTrade(Trade trade) { + if (trade.provider == ExchangeProviderDescription.thorChain) { + final payoutAddress = trade.payoutAddress ?? ''; + final fromWalletAddress = trade.fromWalletAddress ?? ''; + final tapRootPattern = RegExp(P2trAddress.regex.pattern); + + if (tapRootPattern.hasMatch(payoutAddress) || tapRootPattern.hasMatch(fromWalletAddress)) { + return false; + } + } + return true; + } } diff --git a/lib/view_model/order_details_view_model.dart b/lib/view_model/order_details_view_model.dart index 9b00bbb467..384c0541d4 100644 --- a/lib/view_model/order_details_view_model.dart +++ b/lib/view_model/order_details_view_model.dart @@ -99,7 +99,7 @@ abstract class OrderDetailsViewModelBase with Store { final buildURL = trackUrl + '${order.transferId}'; items.add( TrackTradeListItem( - title: 'Track', + title: S.current.track, value: buildURL, onTap: () { try { diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index cc39aca8b5..c881284b39 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -66,6 +66,8 @@ abstract class OutputBase with Store { @observable String extractedAddress; + String? memo; + @computed bool get isParsedAddress => parsedAddress.parseFrom != ParseFrom.notParsed && parsedAddress.name.isNotEmpty; @@ -175,6 +177,7 @@ abstract class OutputBase with Store { fiatAmount = ''; address = ''; note = ''; + memo = null; resetParsedAddress(); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 7636c485af..451f2210db 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -2,6 +2,8 @@ import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/exchange/provider/exchange_provider.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; import 'package:cake_wallet/entities/contact_record.dart'; @@ -296,14 +298,20 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } @action - Future createTransaction() async { + Future createTransaction({ExchangeProvider? provider}) async { try { state = IsExecutingState(); pendingTransaction = await wallet.createTransaction(_credentials()); + if (provider is ThorChainExchangeProvider) { + final outputCount = pendingTransaction?.outputCount ?? 0; + if (outputCount > 10) throw Exception("ThorChain does not support more than 10 outputs"); + } state = ExecutedSuccessfullyState(); + return pendingTransaction; } catch (e) { print('Failed with ${e.toString()}'); state = FailureState(e.toString()); + return null; } } diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart index 45502fd74f..1da322778f 100644 --- a/lib/view_model/trade_details_view_model.dart +++ b/lib/view_model/trade_details_view_model.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/exchange/provider/exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/exolix_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/sideshift_exchange_provider.dart'; import 'package:cake_wallet/exchange/provider/simpleswap_exchange_provider.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart'; import 'package:cake_wallet/exchange/trade.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -52,6 +53,9 @@ abstract class TradeDetailsViewModelBase with Store { case ExchangeProviderDescription.exolix: _provider = ExolixExchangeProvider(); break; + case ExchangeProviderDescription.thorChain: + _provider = ThorChainExchangeProvider(tradesStore: trades); + break; } _updateItems(); @@ -62,6 +66,24 @@ abstract class TradeDetailsViewModelBase with Store { } } + static String? getTrackUrl(ExchangeProviderDescription provider, Trade trade) { + switch (provider) { + case ExchangeProviderDescription.changeNow: + return 'https://changenow.io/exchange/txs/${trade.id}'; + case ExchangeProviderDescription.sideShift: + return 'https://sideshift.ai/orders/${trade.id}'; + case ExchangeProviderDescription.simpleSwap: + return 'https://simpleswap.io/exchange?id=${trade.id}'; + case ExchangeProviderDescription.trocador: + return 'https://trocador.app/en/checkout/${trade.id}'; + case ExchangeProviderDescription.exolix: + return 'https://exolix.com/transaction/${trade.id}'; + case ExchangeProviderDescription.thorChain: + return 'https://track.ninerealms.com/${trade.id}'; + } + return null; + } + final Box trades; @observable @@ -125,46 +147,26 @@ abstract class TradeDetailsViewModelBase with Store { items.add(StandartListItem( title: S.current.trade_details_provider, value: trade.provider.toString())); - if (trade.provider == ExchangeProviderDescription.changeNow) { - final buildURL = 'https://changenow.io/exchange/txs/${trade.id.toString()}'; + final trackUrl = TradeDetailsViewModelBase.getTrackUrl(trade.provider, trade); + if (trackUrl != null) { items.add(TrackTradeListItem( - title: 'Track', - value: buildURL, - onTap: () { - _launchUrl(buildURL); - })); - } - - if (trade.provider == ExchangeProviderDescription.sideShift) { - final buildURL = 'https://sideshift.ai/orders/${trade.id.toString()}'; - items.add( - TrackTradeListItem(title: 'Track', value: buildURL, onTap: () => _launchUrl(buildURL))); + title: S.current.track, value: trackUrl, onTap: () => _launchUrl(trackUrl))); } - if (trade.provider == ExchangeProviderDescription.simpleSwap) { - final buildURL = 'https://simpleswap.io/exchange?id=${trade.id.toString()}'; - items.add( - TrackTradeListItem(title: 'Track', value: buildURL, onTap: () => _launchUrl(buildURL))); + if (trade.isRefund == true) { + items.add(StandartListItem( + title: 'Refund', value: trade.refundAddress ?? '')); } if (trade.provider == ExchangeProviderDescription.trocador) { - final buildURL = 'https://trocador.app/en/checkout/${trade.id.toString()}'; - items.add( - TrackTradeListItem(title: 'Track', value: buildURL, onTap: () => _launchUrl(buildURL))); - items.add(StandartListItem( title: '${trade.providerName} ${S.current.id.toUpperCase()}', value: trade.providerId ?? '')); - if (trade.password != null && trade.password!.isNotEmpty) + if (trade.password != null && trade.password!.isNotEmpty) { items.add(StandartListItem( title: '${trade.providerName} ${S.current.password}', value: trade.password ?? '')); - } - - if (trade.provider == ExchangeProviderDescription.exolix) { - final buildURL = 'https://exolix.com/transaction/${trade.id.toString()}'; - items.add( - TrackTradeListItem(title: 'Track', value: buildURL, onTap: () => _launchUrl(buildURL))); + } } } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 66af15dfae..44d55e0ed9 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -643,6 +643,7 @@ "template_name": "اسم القالب", "third_intro_content": "يعيش Yats خارج Cake Wallet أيضًا. يمكن استبدال أي عنوان محفظة على وجه الأرض بـ Yat!", "third_intro_title": "يتماشي Yat بلطف مع الآخرين", + "thorchain_taproot_address_not_supported": "لا يدعم مزود Thorchain عناوين Taproot. يرجى تغيير العنوان أو تحديد مزود مختلف.", "time": "${minutes}د ${seconds}س", "tip": "بقشيش:", "today": "اليوم", @@ -660,6 +661,7 @@ "totp_code": "كود TOTP", "totp_secret_code": "كود TOTP السري", "totp_verification_success": "تم التحقق بنجاح!", + "track": " ﺭﺎﺴﻣ", "trade_details_copied": "تم نسخ ${title} إلى الحافظة", "trade_details_created_at": "أنشئت في", "trade_details_fetching": "جار الجلب", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 061506b86d..1817b18074 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -643,6 +643,7 @@ "template_name": "Име на шаблон", "third_intro_content": "Yats също живее извън Cake Wallet. Всеки адрес на портфейл може да бъде заменен с Yat!", "third_intro_title": "Yat добре се сработва с други", + "thorchain_taproot_address_not_supported": "Доставчикът на Thorchain не поддържа адреси на TapRoot. Моля, променете адреса или изберете друг доставчик.", "time": "${minutes} мин ${seconds} сек", "tip": "Tip:", "today": "Днес", @@ -660,6 +661,7 @@ "totp_code": "TOTP код", "totp_secret_code": "TOTP таен код", "totp_verification_success": "Проверката е успешна!", + "track": "Писта", "trade_details_copied": "${title} копирано", "trade_details_created_at": "Създадено", "trade_details_fetching": "Обработка", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 2896c11a9b..9bd416f458 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -643,6 +643,7 @@ "template_name": "Název šablony", "third_intro_content": "Yat existuje i mimo Cake Wallet. Jakákoliv adresa peněženky na světě může být nahrazena Yatem!", "third_intro_title": "Yat dobře spolupracuje s ostatními", + "thorchain_taproot_address_not_supported": "Poskytovatel Thorchain nepodporuje adresy Taproot. Změňte adresu nebo vyberte jiného poskytovatele.", "time": "${minutes}m ${seconds}s", "tip": "Spropitné:", "today": "Dnes", @@ -660,6 +661,7 @@ "totp_code": "Kód TOTP", "totp_secret_code": "Tajný kód TOTP", "totp_verification_success": "Ověření proběhlo úspěšně!", + "track": "Dráha", "trade_details_copied": "${title} zkopírováno do schránky", "trade_details_created_at": "Vytvořeno v", "trade_details_fetching": "Získávám", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 9dfa4f4db7..109df5ef22 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -644,6 +644,7 @@ "template_name": "Vorlagenname", "third_intro_content": "Yats leben auch außerhalb von Cake Wallet. Jede Wallet-Adresse auf der Welt kann durch ein Yat ersetzt werden!", "third_intro_title": "Yat spielt gut mit anderen", + "thorchain_taproot_address_not_supported": "Der Thorchain -Anbieter unterstützt keine Taproot -Adressen. Bitte ändern Sie die Adresse oder wählen Sie einen anderen Anbieter aus.", "time": "${minutes}m ${seconds}s", "tip": "Hinweis:", "today": "Heute", @@ -661,6 +662,7 @@ "totp_code": "TOTP-Code", "totp_secret_code": "TOTP-Geheimcode", "totp_verification_success": "Verifizierung erfolgreich!", + "track": "Schiene", "trade_details_copied": "${title} in die Zwischenablage kopiert", "trade_details_created_at": "Erzeugt am", "trade_details_fetching": "Wird ermittelt", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 902cb062f3..f9e67d4757 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -643,6 +643,7 @@ "template_name": "Template Name", "third_intro_content": "Yats live outside of Cake Wallet, too. Any wallet address on earth can be replaced with a Yat!", "third_intro_title": "Yat plays nicely with others", + "thorchain_taproot_address_not_supported": "The ThorChain provider does not support Taproot addresses. Please change the address or select a different provider.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", "today": "Today", @@ -660,6 +661,7 @@ "totp_code": "TOTP Code", "totp_secret_code": "TOTP Secret Code", "totp_verification_success": "Verification Successful!", + "track": "Track", "trade_details_copied": "${title} copied to Clipboard", "trade_details_created_at": "Created at", "trade_details_fetching": "Fetching", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4b9a9d26b5..f84f892ddc 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -644,6 +644,7 @@ "template_name": "Nombre de la plantilla", "third_intro_content": "Los Yats también viven fuera de Cake Wallet. Cualquier dirección de billetera en la tierra se puede reemplazar con un Yat!", "third_intro_title": "Yat juega muy bien con otras", + "thorchain_taproot_address_not_supported": "El proveedor de Thorchain no admite las direcciones de Taproot. Cambie la dirección o seleccione un proveedor diferente.", "time": "${minutes}m ${seconds}s", "tip": "Consejo:", "today": "Hoy", @@ -661,6 +662,7 @@ "totp_code": "Código TOTP", "totp_secret_code": "Código secreto TOTP", "totp_verification_success": "¡Verificación exitosa!", + "track": "Pista", "trade_details_copied": "${title} Copiado al portapapeles", "trade_details_created_at": "Creado en", "trade_details_fetching": "Cargando", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 384bb95856..048b97f667 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -643,6 +643,7 @@ "template_name": "Nom du modèle", "third_intro_content": "Les Yats existent aussi en dehors de Cake Wallet. Toute adresse sur terre peut être remplacée par un Yat !", "third_intro_title": "Yat est universel", + "thorchain_taproot_address_not_supported": "Le fournisseur de Thorchain ne prend pas en charge les adresses de tapoot. Veuillez modifier l'adresse ou sélectionner un autre fournisseur.", "time": "${minutes}m ${seconds}s", "tip": "Pourboire :", "today": "Aujourd'hui", @@ -660,6 +661,7 @@ "totp_code": "Code TOTP", "totp_secret_code": "Secret TOTP", "totp_verification_success": "Vérification réussie !", + "track": "Piste", "trade_details_copied": "${title} copié vers le presse-papier", "trade_details_created_at": "Créé le", "trade_details_fetching": "Récupération", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 7c0a7df122..4eadc6333b 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -645,6 +645,7 @@ "template_name": "Sunan Samfura", "third_intro_content": "Yats suna zaune a wajen Kek Wallet, kuma. Ana iya maye gurbin kowane adireshin walat a duniya da Yat!", "third_intro_title": "Yat yana wasa da kyau tare da wasu", + "thorchain_taproot_address_not_supported": "Mai ba da tallafi na ThorChain baya goyan bayan adreshin taproot. Da fatan za a canza adireshin ko zaɓi mai bayarwa daban.", "time": "${minutes}m ${seconds}s", "tip": "Tukwici:", "today": "Yau", @@ -662,6 +663,7 @@ "totp_code": "Lambar totp", "totp_secret_code": "Lambar sirri", "totp_verification_success": "Tabbatar cin nasara!", + "track": "Waƙa", "trade_details_copied": "${title} an kwafa zuwa cikin kwafin", "trade_details_created_at": "An ƙirƙira a", "trade_details_fetching": "Daukewa", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 932fb25e7f..500df31f7c 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -645,6 +645,7 @@ "template_name": "टेम्पलेट नाम", "third_intro_content": "Yats Cake Wallet के बाहर भी रहता है। धरती पर किसी भी वॉलेट पते को Yat से बदला जा सकता है!", "third_intro_title": "Yat दूसरों के साथ अच्छा खेलता है", + "thorchain_taproot_address_not_supported": "थोरचेन प्रदाता टैपरोट पते का समर्थन नहीं करता है। कृपया पता बदलें या एक अलग प्रदाता का चयन करें।", "time": "${minutes}m ${seconds}s", "tip": "टिप:", "today": "आज", @@ -662,6 +663,7 @@ "totp_code": "टीओटीपी कोड", "totp_secret_code": "टीओटीपी गुप्त कोड", "totp_verification_success": "सत्यापन सफल!", + "track": "रास्ता", "trade_details_copied": "${title} क्लिपबोर्ड पर नकल", "trade_details_created_at": "पर बनाया गया", "trade_details_fetching": "ला रहा है", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index c8c9a00bd3..9a6f74adba 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -643,6 +643,7 @@ "template_name": "Naziv predloška", "third_intro_content": "Yats žive i izvan Cake Wallet -a. Bilo koja adresa novčanika na svijetu može se zamijeniti Yat!", "third_intro_title": "Yat se lijepo igra s drugima", + "thorchain_taproot_address_not_supported": "Thorchain pružatelj ne podržava Taproot adrese. Promijenite adresu ili odaberite drugog davatelja usluga.", "time": "${minutes}m ${seconds}s", "tip": "Savjet:", "today": "Danas", @@ -660,6 +661,7 @@ "totp_code": "TOTP kod", "totp_secret_code": "TOTP tajni kod", "totp_verification_success": "Provjera uspješna!", + "track": "Staza", "trade_details_copied": "${title} kopiran u međuspremnik", "trade_details_created_at": "Stvoreno u", "trade_details_fetching": "Dohvaćanje", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 2168de910d..b0c4276c34 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -646,6 +646,7 @@ "template_name": "Nama Templat", "third_intro_content": "Yats hidup di luar Cake Wallet juga. Setiap alamat dompet di dunia dapat diganti dengan Yat!", "third_intro_title": "Yat bermain baik dengan yang lain", + "thorchain_taproot_address_not_supported": "Penyedia Thorchain tidak mendukung alamat Taproot. Harap ubah alamatnya atau pilih penyedia yang berbeda.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", "today": "Hari ini", @@ -663,6 +664,7 @@ "totp_code": "Kode TOTP", "totp_secret_code": "Kode Rahasia TOTP", "totp_verification_success": "Verifikasi Berhasil!", + "track": "Melacak", "trade_details_copied": "${title} disalin ke Clipboard", "trade_details_created_at": "Dibuat pada", "trade_details_fetching": "Mengambil", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 2700203a09..b96acc951a 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -645,6 +645,7 @@ "template_name": "Nome modello", "third_intro_content": "Yat può funzionare anche fuori da Cake Wallet. Qualsiasi indirizzo di portafoglio sulla terra può essere sostituito con uno Yat!", "third_intro_title": "Yat gioca bene con gli altri", + "thorchain_taproot_address_not_supported": "Il provider di Thorchain non supporta gli indirizzi di TapRoot. Si prega di modificare l'indirizzo o selezionare un fornitore diverso.", "time": "${minutes}m ${seconds}s", "tip": "Suggerimento:", "today": "Oggi", @@ -662,6 +663,7 @@ "totp_code": "Codice TOTP", "totp_secret_code": "TOTP codice segreto", "totp_verification_success": "Verifica riuscita!", + "track": "Traccia", "trade_details_copied": "${title} copiati negli Appunti", "trade_details_created_at": "Creato alle", "trade_details_fetching": "Recupero", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 443ce66588..9f8ddbe159 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -644,6 +644,7 @@ "template_name": "テンプレート名", "third_intro_content": "YatsはCakeWalletの外にも住んでいます。 地球上のどのウォレットアドレスもYatに置き換えることができます!", "third_intro_title": "Yatは他の人とうまく遊ぶ", + "thorchain_taproot_address_not_supported": "Thorchainプロバイダーは、TapRootアドレスをサポートしていません。アドレスを変更するか、別のプロバイダーを選択してください。", "time": "${minutes}m ${seconds}s", "tip": "ヒント: ", "today": "今日", @@ -661,6 +662,7 @@ "totp_code": "TOTP コード", "totp_secret_code": "TOTPシークレットコード", "totp_verification_success": "検証成功!", + "track": "追跡", "trade_details_copied": "${title} クリップボードにコピーしました", "trade_details_created_at": "で作成", "trade_details_fetching": "フェッチング", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 3affd803b7..757dc6cb36 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -644,6 +644,7 @@ "template_name": "템플릿 이름", "third_intro_content": "Yats는 Cake Wallet 밖에서도 살고 있습니다. 지구상의 모든 지갑 주소는 Yat!", "third_intro_title": "Yat는 다른 사람들과 잘 놉니다.", + "thorchain_taproot_address_not_supported": "Thorchain 제공 업체는 Taproot 주소를 지원하지 않습니다. 주소를 변경하거나 다른 공급자를 선택하십시오.", "time": "${minutes}m ${seconds}s", "tip": "팁:", "today": "오늘", @@ -661,6 +662,7 @@ "totp_code": "TOTP 코드", "totp_secret_code": "TOTP 비밀 코드", "totp_verification_success": "확인 성공!", + "track": "길", "trade_details_copied": "${title} 클립 보드에 복사", "trade_details_created_at": "에 작성", "trade_details_fetching": "가져 오는 중", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index c52d65c06a..5b622c234d 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -643,6 +643,7 @@ "template_name": "နမူနာပုံစံ", "third_intro_content": "Yats သည် Cake Wallet အပြင်ဘက်တွင် နေထိုင်ပါသည်။ ကမ္ဘာပေါ်ရှိ မည်သည့်ပိုက်ဆံအိတ်လိပ်စာကို Yat ဖြင့် အစားထိုးနိုင်ပါသည်။", "third_intro_title": "Yat သည် အခြားသူများနှင့် ကောင်းစွာကစားသည်။", + "thorchain_taproot_address_not_supported": "Thorchain Provider သည် Taproot လိပ်စာများကိုမထောက်ခံပါ။ ကျေးဇူးပြု. လိပ်စာကိုပြောင်းပါသို့မဟုတ်အခြားပံ့ပိုးပေးသူကိုရွေးချယ်ပါ။", "time": "${minutes}m ${seconds}s", "tip": "အကြံပြုချက်-", "today": "ဒီနေ့", @@ -660,6 +661,7 @@ "totp_code": "TOTP ကုဒ်", "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", "totp_verification_success": "အတည်ပြုခြင်း အောင်မြင်ပါသည်။", + "track": "တစ်ပုဒ်", "trade_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", "trade_details_created_at": "တွင်ဖန်တီးခဲ့သည်။", "trade_details_fetching": "ခေါ်ယူခြင်း။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index fa7825809c..121ade7605 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -643,6 +643,7 @@ "template_name": "Sjabloonnaam", "third_intro_content": "Yats wonen ook buiten Cake Wallet. Elk portemonnee-adres op aarde kan worden vervangen door een Yat!", "third_intro_title": "Yat speelt leuk met anderen", + "thorchain_taproot_address_not_supported": "De Thorchain -provider ondersteunt geen Taprooot -adressen. Wijzig het adres of selecteer een andere provider.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", "today": "Vandaag", @@ -660,6 +661,7 @@ "totp_code": "TOTP-code", "totp_secret_code": "TOTP-geheime code", "totp_verification_success": "Verificatie geslaagd!", + "track": "Spoor", "trade_details_copied": "${title} gekopieerd naar het klembord", "trade_details_created_at": "Gemaakt bij", "trade_details_fetching": "Ophalen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 16dc8696a6..88fbfb6e56 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -643,6 +643,7 @@ "template_name": "Nazwa szablonu", "third_intro_content": "Yats mieszkają również poza Cake Wallet. Każdy adres portfela na ziemi można zastąpić Yat!", "third_intro_title": "Yat ładnie bawi się z innymi", + "thorchain_taproot_address_not_supported": "Dostawca Thorchain nie obsługuje adresów TAPROOT. Zmień adres lub wybierz innego dostawcę.", "time": "${minutes}m ${seconds}s", "tip": "wskazówka:", "today": "Dzisiaj", @@ -660,6 +661,7 @@ "totp_code": "Kod TOTP", "totp_secret_code": "Tajny kod TOTP", "totp_verification_success": "Weryfikacja powiodła się!", + "track": "Ścieżka", "trade_details_copied": "${title} skopiowane do schowka", "trade_details_created_at": "Utworzono ", "trade_details_fetching": "Pobieranie", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 8516ecf3f7..7487499efb 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -645,6 +645,7 @@ "template_name": "Nome do modelo", "third_intro_content": "Yats também mora fora da Cake Wallet. Qualquer endereço de carteira na Terra pode ser substituído por um Yat!", "third_intro_title": "Yat joga bem com os outros", + "thorchain_taproot_address_not_supported": "O provedor de Thorchain não suporta endereços de raiz de Tap. Altere o endereço ou selecione um provedor diferente.", "time": "${minutes}m ${seconds}s", "tip": "Dica:", "today": "Hoje", @@ -662,6 +663,7 @@ "totp_code": "Código TOTP", "totp_secret_code": "Código Secreto TOTP", "totp_verification_success": "Verificação bem-sucedida!", + "track": "Acompanhar", "trade_details_copied": "${title} copiados para a área de transferência", "trade_details_created_at": "Criada em", "trade_details_fetching": "Buscando", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 2bff244144..443daa588f 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -644,6 +644,7 @@ "template_name": "Имя Шаблона", "third_intro_content": "Yat находятся за пределами Cake Wallet. Любой адрес кошелька на земле можно заменить на Yat!", "third_intro_title": "Yat хорошо взаимодействует с другими", + "thorchain_taproot_address_not_supported": "Поставщик Thorchain не поддерживает адреса taproot. Пожалуйста, измените адрес или выберите другого поставщика.", "time": "${minutes}мин ${seconds}сек", "tip": "Совет:", "today": "Сегодня", @@ -661,6 +662,7 @@ "totp_code": "TOTP-код", "totp_secret_code": "Секретный код ТОТП", "totp_verification_success": "Проверка прошла успешно!", + "track": "Отслеживать", "trade_details_copied": "${title} скопировано в буфер обмена", "trade_details_created_at": "Создано", "trade_details_fetching": "Получение", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 9c37ff8bb0..dc864c39c2 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -643,6 +643,7 @@ "template_name": "ชื่อแม่แบบ", "third_intro_content": "Yat อาศัยอยู่นอก Cake Wallet ด้วย ที่อยู่กระเป๋าใดๆ ทั่วโลกสามารถแทนด้วย Yat ได้อีกด้วย!", "third_intro_title": "Yat ปฏิบัติตนอย่างดีกับผู้อื่น", + "thorchain_taproot_address_not_supported": "ผู้ให้บริการ Thorchain ไม่รองรับที่อยู่ taproot โปรดเปลี่ยนที่อยู่หรือเลือกผู้ให้บริการอื่น", "time": "${minutes}m ${seconds}s", "tip": "เพิ่มค่าตอบแทน:", "today": "วันนี้", @@ -660,6 +661,7 @@ "totp_code": "รหัสทีโอพี", "totp_secret_code": "รหัสลับ TOTP", "totp_verification_success": "การยืนยันสำเร็จ!", + "track": "ติดตาม", "trade_details_copied": "${title} คัดลอกไปยัง Clipboard", "trade_details_created_at": "สร้างเมื่อ", "trade_details_fetching": "กำลังเรียกข้อมูล", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index d4be217413..4abd6472ff 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -643,6 +643,7 @@ "template_name": "Pangalan ng Template", "third_intro_content": "Ang mga yats ay nakatira sa labas ng cake wallet, din. Ang anumang address ng pitaka sa mundo ay maaaring mapalitan ng isang yat!", "third_intro_title": "Si Yat ay mahusay na gumaganap sa iba", + "thorchain_taproot_address_not_supported": "Ang Tagabigay ng Thorchain ay hindi sumusuporta sa mga address ng taproot. Mangyaring baguhin ang address o pumili ng ibang provider.", "time": "${minutes} m ${seconds} s", "tip": "Tip:", "today": "Ngayon", @@ -660,6 +661,7 @@ "totp_code": "TOTP code", "totp_secret_code": "TOTP Secret Code", "totp_verification_success": "Matagumpay ang pagpapatunay!", + "track": "Subaybayan", "trade_details_copied": "${title} kinopya sa clipboard", "trade_details_created_at": "Nilikha sa", "trade_details_fetching": "Pagkuha", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index a6209ed333..c615864a7a 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -643,6 +643,7 @@ "template_name": "şablon adı", "third_intro_content": "Yat'lar Cake Wallet'ın dışında da çalışabilir. Dünya üzerindeki herhangi bir cüzdan adresi Yat ile değiştirilebilir!", "third_intro_title": "Yat diğerleriyle iyi çalışır", + "thorchain_taproot_address_not_supported": "Thorchain sağlayıcısı Taproot adreslerini desteklemiyor. Lütfen adresi değiştirin veya farklı bir sağlayıcı seçin.", "time": "${minutes}d ${seconds}s", "tip": "Bahşiş:", "today": "Bugün", @@ -660,6 +661,7 @@ "totp_code": "TOTP Kodu", "totp_secret_code": "TOTP Gizli Kodu", "totp_verification_success": "Doğrulama Başarılı!", + "track": "İzlemek", "trade_details_copied": "${title} panoya kopyalandı", "trade_details_created_at": "'da oluşturuldu", "trade_details_fetching": "Getiriliyor", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 3d60b9e8ea..0fe324d116 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -644,6 +644,7 @@ "template_name": "Назва шаблону", "third_intro_content": "Yat знаходиться за межами Cake Wallet. Будь-яку адресу гаманця на землі можна замінити на Yat!", "third_intro_title": "Yat добре взаємодіє з іншими", + "thorchain_taproot_address_not_supported": "Постачальник Thorchain не підтримує адреси Taproot. Будь ласка, змініть адресу або виберіть іншого постачальника.", "time": "${minutes}хв ${seconds}сек", "tip": "Порада:", "today": "Сьогодні", @@ -661,6 +662,7 @@ "totp_code": "Код TOTP", "totp_secret_code": "Секретний код TOTP", "totp_verification_success": "Перевірка успішна!", + "track": "Відслідковувати", "trade_details_copied": "${title} скопійовано в буфер обміну", "trade_details_created_at": "Створено", "trade_details_fetching": "Отримання", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index e0e74e6ded..9de85a6832 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -645,6 +645,7 @@ "template_name": "ٹیمپلیٹ کا نام", "third_intro_content": "Yats بھی Cake والیٹ سے باہر رہتے ہیں۔ زمین پر کسی بھی بٹوے کے پتے کو Yat سے تبدیل کیا جا سکتا ہے!", "third_intro_title": "Yat دوسروں کے ساتھ اچھی طرح کھیلتا ہے۔", + "thorchain_taproot_address_not_supported": "تھورچین فراہم کنندہ ٹیپروٹ پتے کی حمایت نہیں کرتا ہے۔ براہ کرم پتہ تبدیل کریں یا ایک مختلف فراہم کنندہ کو منتخب کریں۔", "time": "${minutes}m ${seconds}s", "tip": "ٹپ:", "today": "آج", @@ -662,6 +663,7 @@ "totp_code": "TOTP کوڈ", "totp_secret_code": "TOTP خفیہ کوڈ", "totp_verification_success": "توثیق کامیاب!", + "track": " ﮏﯾﺮﭨ", "trade_details_copied": "${title} کو کلپ بورڈ پر کاپی کیا گیا۔", "trade_details_created_at": "پر تخلیق کیا گیا۔", "trade_details_fetching": "لا رہا ہے۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 54df5dbf2f..8d85f0d6ee 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -644,6 +644,7 @@ "template_name": "Orukọ Awoṣe", "third_intro_content": "A sì lè lo Yats níta Cake Wallet. A lè rọ́pò Àdírẹ́sì kankan àpamọ́wọ́ fún Yat!", "third_intro_title": "Àlàáfíà ni Yat àti àwọn ìmíìn jọ wà", + "thorchain_taproot_address_not_supported": "Olupese Trockchain ko ṣe atilẹyin awọn adirẹsi Taproot. Jọwọ yi adirẹsi pada tabi yan olupese ti o yatọ.", "time": "${minutes}ìṣj ${seconds}ìṣs", "tip": "Owó àfikún:", "today": "Lénìí", @@ -661,6 +662,7 @@ "totp_code": "Koodu TOTP", "totp_secret_code": "Koodu iye TOTP", "totp_verification_success": "Ìbẹrẹ dọkita!", + "track": "Orin", "trade_details_copied": "Ti ṣeda ${title} sí àtẹ àkọsílẹ̀", "trade_details_created_at": "Ṣíṣe ní", "trade_details_fetching": "Ń mú wá", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index cb1f012fbb..4087d96e8b 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -643,6 +643,7 @@ "template_name": "模板名称", "third_intro_content": "Yats 也住在 Cake Wallet 之外。 地球上任何一個錢包地址都可以用一個Yat來代替!", "third_intro_title": "Yat 和別人玩得很好", + "thorchain_taproot_address_not_supported": "Thorchain提供商不支持Taproot地址。请更改地址或选择其他提供商。", "time": "${minutes}m ${seconds}s", "tip": "提示:", "today": "今天", @@ -660,6 +661,7 @@ "totp_code": "TOTP代码", "totp_secret_code": "TOTP密码", "totp_verification_success": "验证成功!", + "track": "追踪", "trade_details_copied": "${title} 复制到剪贴板", "trade_details_created_at": "创建于", "trade_details_fetching": "正在获取", From 78685b74f0c4040da4f5298b31ec4bcef2edcf7c Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Thu, 28 Mar 2024 06:30:41 -0700 Subject: [PATCH 013/157] Cw 521 moonpay buy (#1335) * save * save * moonpay fixes * fix for debug mode * code cleanup * another fix for debug mode * [skip ci] fixes * test build * code cleanup * fix buy page --- lib/buy/moonpay/moonpay_provider.dart | 231 ++++++++++--------- lib/di.dart | 8 +- lib/entities/provider_types.dart | 19 +- lib/src/screens/buy/buy_options_page.dart | 78 ++++--- lib/src/screens/buy/buy_webview_page.dart | 2 +- lib/view_model/buy/buy_view_model.dart | 12 - lib/view_model/order_details_view_model.dart | 14 +- 7 files changed, 180 insertions(+), 184 deletions(-) diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 02bdedaec4..52a4f6187f 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -22,20 +22,24 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart'; import 'package:url_launcher/url_launcher.dart'; -class MoonPaySellProvider extends BuyProvider { - MoonPaySellProvider({ +class MoonPayProvider extends BuyProvider { + MoonPayProvider({ required SettingsStore settingsStore, required WalletBase wallet, bool isTestEnvironment = false, - }) : baseUrl = isTestEnvironment ? _baseTestUrl : _baseProductUrl, + }) : baseSellUrl = isTestEnvironment ? _baseSellTestUrl : _baseSellProductUrl, + baseBuyUrl = isTestEnvironment ? _baseBuyTestUrl : _baseBuyProductUrl, this._settingsStore = settingsStore, super(wallet: wallet, isTestEnvironment: isTestEnvironment); final SettingsStore _settingsStore; - static const _baseTestUrl = 'sell-sandbox.moonpay.com'; - static const _baseProductUrl = 'sell.moonpay.com'; + static const _baseSellTestUrl = 'sell-sandbox.moonpay.com'; + static const _baseSellProductUrl = 'sell.moonpay.com'; + static const _baseBuyTestUrl = 'buy-staging.moonpay.com'; + static const _baseBuyProductUrl = 'buy.moonpay.com'; static const _cIdBaseUrl = 'exchange-helper.cakewallet.com'; + static const _apiUrl = 'https://api.moonpay.com'; @override String get providerDescription => @@ -62,8 +66,14 @@ class MoonPaySellProvider extends BuyProvider { static String get _apiKey => secrets.moonPayApiKey; + final String baseBuyUrl; + final String baseSellUrl; + + String get currencyCode => walletTypeToCryptoCurrency(wallet.type).title.toLowerCase(); + + String get trackUrl => baseBuyUrl + '/transaction_receipt?transactionId='; + static String get _exchangeHelperApiKey => secrets.exchangeHelperApiKey; - final String baseUrl; Future getMoonpaySignature(String query) async { final uri = Uri.https(_cIdBaseUrl, "/api/moonpay"); @@ -85,147 +95,92 @@ class MoonPaySellProvider extends BuyProvider { } } - Future requestMoonPayUrl({ + Future requestSellMoonPayUrl({ required CryptoCurrency currency, required String refundWalletAddress, required SettingsStore settingsStore, }) async { - final customParams = { + final params = { 'theme': themeToMoonPayTheme(settingsStore.currentTheme), 'language': settingsStore.languageCode, 'colorCode': settingsStore.currentTheme.type == ThemeType.dark ? '#${Palette.blueCraiola.value.toRadixString(16).substring(2, 8)}' : '#${Palette.moderateSlateBlue.value.toRadixString(16).substring(2, 8)}', + 'defaultCurrencyCode': _normalizeCurrency(currency), + 'refundWalletAddress': refundWalletAddress, }; + if (_apiKey.isNotEmpty) { + params['apiKey'] = _apiKey; + } + final originalUri = Uri.https( - baseUrl, + baseSellUrl, '', - { - 'apiKey': _apiKey, - 'defaultBaseCurrencyCode': _normalizeCurrency(currency), - 'refundWalletAddress': refundWalletAddress, - }..addAll(customParams), + params, ); - final signature = await getMoonpaySignature('?${originalUri.query}'); - if (isTestEnvironment) { return originalUri; } + final signature = await getMoonpaySignature('?${originalUri.query}'); + final query = Map.from(originalUri.queryParameters); query['signature'] = signature; final signedUri = originalUri.replace(queryParameters: query); return signedUri; } - @override - Future launchProvider(BuildContext context, bool? isBuyAction) async { - try { - final uri = await requestMoonPayUrl( - currency: wallet.currency, - refundWalletAddress: wallet.walletAddresses.address, - settingsStore: _settingsStore, - ); - - if (await canLaunchUrl(uri)) { - if (DeviceInfo.instance.isMobile) { - Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['MoonPay', uri]); - } else { - await launchUrl(uri, mode: LaunchMode.externalApplication); - } - } else { - throw Exception('Could not launch URL'); - } - } catch (e) { - await showDialog( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: 'MoonPay', - alertContent: 'The MoonPay service is currently unavailable: $e', - buttonText: S.of(context).ok, - buttonAction: () => Navigator.of(context).pop(), - ); - }, - ); - } - } - - String _normalizeCurrency(CryptoCurrency currency) { - if (currency == CryptoCurrency.maticpoly) { - return "MATIC_POLYGON"; - } - - return currency.toString().toLowerCase(); - } -} - -class MoonPayBuyProvider extends BuyProvider { - MoonPayBuyProvider({required WalletBase wallet, bool isTestEnvironment = false}) - : baseUrl = isTestEnvironment ? _baseTestUrl : _baseProductUrl, - super(wallet: wallet, isTestEnvironment: isTestEnvironment); - - static const _baseTestUrl = 'https://buy-staging.moonpay.com'; - static const _baseProductUrl = 'https://buy.moonpay.com'; - static const _apiUrl = 'https://api.moonpay.com'; + // BUY: static const _currenciesSuffix = '/v3/currencies'; static const _quoteSuffix = '/buy_quote'; static const _transactionsSuffix = '/v1/transactions'; static const _ipAddressSuffix = '/v4/ip_address'; - static const _apiKey = secrets.moonPayApiKey; - static const _secretKey = secrets.moonPaySecretKey; - - @override - String get title => 'MoonPay'; - - @override - String get providerDescription => - 'MoonPay offers a fast and simple way to buy and sell cryptocurrencies'; - - @override - String get lightIcon => 'assets/images/moonpay_light.png'; - - @override - String get darkIcon => 'assets/images/moonpay_dark.png'; - - String get currencyCode => walletTypeToCryptoCurrency(wallet.type).title.toLowerCase(); - - String get trackUrl => baseUrl + '/transaction_receipt?transactionId='; - String baseUrl; - - Future requestUrl(String amount, String sourceCurrency) async { - final enabledPaymentMethods = 'credit_debit_card%2Capple_pay%2Cgoogle_pay%2Csamsung_pay' - '%2Csepa_bank_transfer%2Cgbp_bank_transfer%2Cgbp_open_banking_payment'; + Future requestBuyMoonPayUrl({ + required CryptoCurrency currency, + required SettingsStore settingsStore, + required String walletAddress, + String? amount, + }) async { + final params = { + 'theme': themeToMoonPayTheme(settingsStore.currentTheme), + 'language': settingsStore.languageCode, + 'colorCode': settingsStore.currentTheme.type == ThemeType.dark + ? '#${Palette.blueCraiola.value.toRadixString(16).substring(2, 8)}' + : '#${Palette.moderateSlateBlue.value.toRadixString(16).substring(2, 8)}', + 'defaultCurrencyCode': _normalizeCurrency(currency), + 'baseCurrencyCode': _normalizeCurrency(currency), + 'baseCurrencyAmount': amount ?? '0', + 'currencyCode': currencyCode, + 'walletAddress': walletAddress, + 'lockAmount': 'true', + 'showAllCurrencies': 'false', + 'showWalletAddressForm': 'false', + 'enabledPaymentMethods': + 'credit_debit_card,apple_pay,google_pay,samsung_pay,sepa_bank_transfer,gbp_bank_transfer,gbp_open_banking_payment', + }; - final suffix = '?apiKey=' + - _apiKey + - '¤cyCode=' + - currencyCode + - '&enabledPaymentMethods=' + - enabledPaymentMethods + - '&walletAddress=' + - wallet.walletAddresses.address + - '&baseCurrencyCode=' + - sourceCurrency.toLowerCase() + - '&baseCurrencyAmount=' + - amount + - '&lockAmount=true' + - '&showAllCurrencies=false' + - '&showWalletAddressForm=false'; + if (_apiKey.isNotEmpty) { + params['apiKey'] = _apiKey; + } - final originalUrl = baseUrl + suffix; + final originalUri = Uri.https( + baseBuyUrl, + '', + params, + ); - final messageBytes = utf8.encode(suffix); - final key = utf8.encode(_secretKey); - final hmac = Hmac(sha256, key); - final digest = hmac.convert(messageBytes); - final signature = base64.encode(digest.bytes); - final urlWithSignature = originalUrl + '&signature=${Uri.encodeComponent(signature)}'; + if (isTestEnvironment) { + return originalUri; + } - return isTestEnvironment ? originalUrl : urlWithSignature; + final signature = await getMoonpaySignature('?${originalUri.query}'); + final query = Map.from(originalUri.queryParameters); + query['signature'] = signature; + final signedUri = originalUri.replace(queryParameters: query); + return signedUri; } Future calculateAmount(String amount, String sourceCurrency) async { @@ -300,6 +255,52 @@ class MoonPayBuyProvider extends BuyProvider { } @override - Future launchProvider(BuildContext context, bool? isBuyAction) => - throw UnimplementedError(); + Future launchProvider(BuildContext context, bool? isBuyAction) async { + // try { + late final Uri uri; + if (isBuyAction ?? true) { + uri = await requestBuyMoonPayUrl( + currency: wallet.currency, + walletAddress: wallet.walletAddresses.address, + settingsStore: _settingsStore, + ); + } else { + uri = await requestSellMoonPayUrl( + currency: wallet.currency, + refundWalletAddress: wallet.walletAddresses.address, + settingsStore: _settingsStore, + ); + } + + if (await canLaunchUrl(uri)) { + if (DeviceInfo.instance.isMobile) { + Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['MoonPay', uri]); + } else { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } + } else { + throw Exception('Could not launch URL'); + } + // } catch (e) { + // await showDialog( + // context: context, + // builder: (BuildContext context) { + // return AlertWithOneAction( + // alertTitle: 'MoonPay', + // alertContent: 'The MoonPay service is currently unavailable: $e', + // buttonText: S.of(context).ok, + // buttonAction: () => Navigator.of(context).pop(), + // ); + // }, + // ); + // } + } + + String _normalizeCurrency(CryptoCurrency currency) { + if (currency == CryptoCurrency.maticpoly) { + return "MATIC_POLYGON"; + } + + return currency.toString().toLowerCase(); + } } diff --git a/lib/di.dart b/lib/di.dart index 782c0f1f47..291555330c 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -198,6 +198,7 @@ import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart'; import 'package:cake_wallet/view_model/wallet_restore_view_model.dart'; import 'package:cake_wallet/view_model/wallet_seed_view_model.dart'; import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:get_it/get_it.dart'; import 'package:hive/hive.dart'; @@ -806,8 +807,11 @@ Future setup({ getIt .registerFactory(() => DFXBuyProvider(wallet: getIt.get().wallet!)); - getIt.registerFactory(() => MoonPaySellProvider( - settingsStore: getIt.get().settingsStore, wallet: getIt.get().wallet!)); + getIt.registerFactory(() => MoonPayProvider( + settingsStore: getIt.get().settingsStore, + wallet: getIt.get().wallet!, + isTestEnvironment: kDebugMode, + )); getIt.registerFactory(() => OnRamperBuyProvider( getIt.get().settingsStore, diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index f3993e129c..701781cc2f 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -11,7 +11,7 @@ enum ProviderType { robinhood, dfx, onramper, - moonpaySell, + moonpay, } extension ProviderTypeName on ProviderType { @@ -25,7 +25,7 @@ extension ProviderTypeName on ProviderType { return 'DFX Connect'; case ProviderType.onramper: return 'Onramper'; - case ProviderType.moonpaySell: + case ProviderType.moonpay: return 'MoonPay'; } } @@ -40,7 +40,7 @@ extension ProviderTypeName on ProviderType { return 'dfx_connect_provider'; case ProviderType.onramper: return 'onramper_provider'; - case ProviderType.moonpaySell: + case ProviderType.moonpay: return 'moonpay_provider'; } } @@ -62,10 +62,11 @@ class ProvidersHelper { ProviderType.onramper, ProviderType.dfx, ProviderType.robinhood, + ProviderType.moonpay, ]; case WalletType.litecoin: case WalletType.bitcoinCash: - return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; + return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood, ProviderType.moonpay]; case WalletType.solana: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: @@ -82,18 +83,18 @@ class ProvidersHelper { return [ ProviderType.askEachTime, ProviderType.onramper, - ProviderType.moonpaySell, + ProviderType.moonpay, ProviderType.dfx, ]; case WalletType.litecoin: case WalletType.bitcoinCash: - return [ProviderType.askEachTime, ProviderType.moonpaySell]; + return [ProviderType.askEachTime, ProviderType.moonpay]; case WalletType.solana: return [ ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood, - ProviderType.moonpaySell, + ProviderType.moonpay, ]; case WalletType.monero: case WalletType.nano: @@ -112,10 +113,10 @@ class ProvidersHelper { return getIt.get(); case ProviderType.onramper: return getIt.get(); + case ProviderType.moonpay: + return getIt.get(); case ProviderType.askEachTime: return null; - case ProviderType.moonpaySell: - return getIt.get(); } } } diff --git a/lib/src/screens/buy/buy_options_page.dart b/lib/src/screens/buy/buy_options_page.dart index 50f041d2e7..38f3ed9682 100644 --- a/lib/src/screens/buy/buy_options_page.dart +++ b/lib/src/screens/buy/buy_options_page.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/widgets/option_tile.dart'; +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; import 'package:cake_wallet/themes/extensions/option_tile_theme.dart'; import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; @@ -25,45 +26,46 @@ class BuySellOptionsPage extends BasePage { ? dashboardViewModel.availableBuyProviders : dashboardViewModel.availableSellProviders; - return Container( - child: Center( - child: ConstrainedBox( - constraints: BoxConstraints(maxWidth: 330), - child: Column( - children: [ - ...availableProviders.map((provider) { - final icon = Image.asset( - isLightMode ? provider.lightIcon : provider.darkIcon, - height: 40, - width: 40, - ); + return ScrollableWithBottomSection( + content: Container( + child: Center( + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 330), + child: Column( + children: [ + ...availableProviders.map((provider) { + final icon = Image.asset( + isLightMode ? provider.lightIcon : provider.darkIcon, + height: 40, + width: 40, + ); - return Padding( - padding: EdgeInsets.only(top: 24), - child: OptionTile( - image: icon, - title: provider.toString(), - description: provider.providerDescription, - onPressed: () => provider.launchProvider(context, isBuyAction), - ), - ); - }).toList(), - Spacer(), - Padding( - padding: EdgeInsets.fromLTRB(24, 24, 24, 32), - child: Text( - isBuyAction - ? S.of(context).select_buy_provider_notice - : S.of(context).select_sell_provider_notice, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.normal, - color: Theme.of(context).extension()!.detailsTitlesColor, - ), - ), - ), - ], + return Padding( + padding: EdgeInsets.only(top: 24), + child: OptionTile( + image: icon, + title: provider.toString(), + description: provider.providerDescription, + onPressed: () => provider.launchProvider(context, isBuyAction), + ), + ); + }).toList(), + ], + ), + ), + ), + ), + bottomSection: Padding( + padding: EdgeInsets.fromLTRB(24, 24, 24, 32), + child: Text( + isBuyAction + ? S.of(context).select_buy_provider_notice + : S.of(context).select_sell_provider_notice, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.normal, + color: Theme.of(context).extension()!.detailsTitlesColor, ), ), ), diff --git a/lib/src/screens/buy/buy_webview_page.dart b/lib/src/screens/buy/buy_webview_page.dart index 829bff3d9a..ad69708613 100644 --- a/lib/src/screens/buy/buy_webview_page.dart +++ b/lib/src/screens/buy/buy_webview_page.dart @@ -60,7 +60,7 @@ class BuyWebViewPageBodyState extends State { _saveOrder(keyword: 'completed', splitSymbol: '/'); } - if (widget.buyViewModel.selectedProvider is MoonPayBuyProvider) { + if (widget.buyViewModel.selectedProvider is MoonPayProvider) { _saveOrder(keyword: 'transactionId', splitSymbol: '='); } } diff --git a/lib/view_model/buy/buy_view_model.dart b/lib/view_model/buy/buy_view_model.dart index d73396e1b3..7c2591cbb3 100644 --- a/lib/view_model/buy/buy_view_model.dart +++ b/lib/view_model/buy/buy_view_model.dart @@ -93,18 +93,6 @@ abstract class BuyViewModelBase with Store { _providerList.add(WyreBuyProvider(wallet: wallet)); } - var isMoonPayEnabled = false; - try { - isMoonPayEnabled = await MoonPayBuyProvider.onEnabled(); - } catch (e) { - isMoonPayEnabled = false; - print(e.toString()); - } - - if (isMoonPayEnabled) { - _providerList.add(MoonPayBuyProvider(wallet: wallet)); - } - items = _providerList.map((provider) => BuyItem(provider: provider, buyAmountViewModel: buyAmountViewModel)) .toList(); diff --git a/lib/view_model/order_details_view_model.dart b/lib/view_model/order_details_view_model.dart index 384c0541d4..412f1b9621 100644 --- a/lib/view_model/order_details_view_model.dart +++ b/lib/view_model/order_details_view_model.dart @@ -27,7 +27,7 @@ abstract class OrderDetailsViewModelBase with Store { _provider = WyreBuyProvider(wallet: wallet); break; case BuyProviderDescription.moonPay: - _provider = MoonPayBuyProvider(wallet: wallet); + // _provider = MoonPayProvider(wallet: wallet);// TODO: CW-521 break; } } @@ -50,9 +50,9 @@ abstract class OrderDetailsViewModelBase with Store { @action Future _updateOrder() async { try { - if (_provider != null && (_provider is MoonPayBuyProvider || _provider is WyreBuyProvider)) { - final updatedOrder = _provider is MoonPayBuyProvider - ? await (_provider as MoonPayBuyProvider).findOrderById(order.id) + if (_provider != null && (_provider is MoonPayProvider || _provider is WyreBuyProvider)) { + final updatedOrder = _provider is MoonPayProvider + ? await (_provider as MoonPayProvider).findOrderById(order.id) : await (_provider as WyreBuyProvider).findOrderById(order.id); updatedOrder.from = order.from; updatedOrder.to = order.to; @@ -89,10 +89,10 @@ abstract class OrderDetailsViewModelBase with Store { value: order.provider.title) ); - if (_provider != null && (_provider is MoonPayBuyProvider || _provider is WyreBuyProvider)) { + if (_provider != null && (_provider is MoonPayProvider || _provider is WyreBuyProvider)) { - final trackUrl = _provider is MoonPayBuyProvider - ? (_provider as MoonPayBuyProvider).trackUrl + final trackUrl = _provider is MoonPayProvider + ? (_provider as MoonPayProvider).trackUrl : (_provider as WyreBuyProvider).trackUrl; if (trackUrl.isNotEmpty ?? false) { From fd9018bcc4b48b094e0ac62781ac746b744013fc Mon Sep 17 00:00:00 2001 From: Rafael <76502841+rafael-xmr@users.noreply.github.com> Date: Fri, 29 Mar 2024 15:51:34 -0300 Subject: [PATCH 014/157] Cw 598 fixes for electrum based wallets (#1344) * fix: address book addresses, bch builder, exchange all fee estimation, bch coin control * feat: new error framework for Electrum messages * build: cw_bitcoin.dart * feat: error improvements, localization, fix exchange amount mismatch * chore: misc comment & print [skip ci] * feat: refactor & simplify sendAll vs regular tx estimation and creation - Since there were so many conditions inside a single function to alter its behavior if sendAll or not, it is easier and more readable to have separate sendAll and estimateTx functions that behave separately * fix: wrong LTC dust * feat: fee rate confirmation * fix: wrong createTrade value when isSendAll is enabled * fix bitcoin cash address parsing [skip ci] * fix: form no amount validator, address book with multiple entries, exchange all below min error * fix: improve string, fix sending with dust inputs at the top * fix: two change outputs when re-estimating * fix: sendAll with a little dust adds fees * chore: sanity check [skip ci] * fix: if the fee is higher than estimated * Minor enhancement [skip ci] --------- Co-authored-by: OmarHatem --- .../bitcoin_commit_transaction_exception.dart | 8 +- ...tcoin_transaction_no_inputs_exception.dart | 4 - ...n_transaction_wrong_balance_exception.dart | 10 - cw_bitcoin/lib/electrum.dart | 60 +-- cw_bitcoin/lib/electrum_wallet.dart | 375 +++++++++++++----- cw_bitcoin/lib/electrum_wallet_addresses.dart | 8 +- cw_bitcoin/lib/exceptions.dart | 27 ++ .../lib/pending_bitcoin_transaction.dart | 37 +- .../lib/src/bitcoin_cash_wallet.dart | 183 --------- .../src/pending_bitcoin_cash_transaction.dart | 38 +- cw_core/lib/exceptions.dart | 30 ++ cw_core/lib/pending_transaction.dart | 3 +- cw_core/lib/wallet_addresses.dart | 8 +- lib/bitcoin/cw_bitcoin.dart | 41 +- lib/core/amount_validator.dart | 4 + .../provider/changenow_exchange_provider.dart | 9 +- lib/exchange/provider/exchange_provider.dart | 3 +- .../provider/exolix_exchange_provider.dart | 9 +- .../provider/sideshift_exchange_provider.dart | 7 +- .../simpleswap_exchange_provider.dart | 7 +- .../provider/thorchain_exchange.provider.dart | 15 +- .../provider/trocador_exchange_provider.dart | 16 +- lib/exchange/trade.dart | 11 +- lib/src/screens/exchange/exchange_page.dart | 10 +- .../exchange_trade/exchange_trade_page.dart | 1 + lib/src/screens/send/send_page.dart | 1 + .../send/widgets/confirm_sending_alert.dart | 40 +- .../unspent_coins_list_page.dart | 5 +- .../contact_list/contact_list_view_model.dart | 2 + .../exchange/exchange_trade_view_model.dart | 11 +- .../exchange/exchange_view_model.dart | 42 +- lib/view_model/send/send_view_model.dart | 63 ++- .../unspent_coins_details_view_model.dart | 4 +- res/values/strings_ar.arb | 11 + res/values/strings_bg.arb | 11 + res/values/strings_cs.arb | 11 + res/values/strings_de.arb | 11 + res/values/strings_en.arb | 11 + res/values/strings_es.arb | 11 + res/values/strings_fr.arb | 11 + res/values/strings_ha.arb | 11 + res/values/strings_hi.arb | 11 + res/values/strings_hr.arb | 11 + res/values/strings_id.arb | 11 + res/values/strings_it.arb | 11 + res/values/strings_ja.arb | 13 +- res/values/strings_ko.arb | 13 +- res/values/strings_my.arb | 13 +- res/values/strings_nl.arb | 13 +- res/values/strings_pl.arb | 13 +- res/values/strings_pt.arb | 13 +- res/values/strings_ru.arb | 13 +- res/values/strings_th.arb | 13 +- res/values/strings_tl.arb | 13 +- res/values/strings_tr.arb | 13 +- res/values/strings_uk.arb | 13 +- res/values/strings_ur.arb | 13 +- res/values/strings_yo.arb | 13 +- res/values/strings_zh.arb | 13 +- tool/configure.dart | 1 + 60 files changed, 980 insertions(+), 427 deletions(-) delete mode 100644 cw_bitcoin/lib/bitcoin_transaction_no_inputs_exception.dart delete mode 100644 cw_bitcoin/lib/bitcoin_transaction_wrong_balance_exception.dart create mode 100644 cw_bitcoin/lib/exceptions.dart create mode 100644 cw_core/lib/exceptions.dart diff --git a/cw_bitcoin/lib/bitcoin_commit_transaction_exception.dart b/cw_bitcoin/lib/bitcoin_commit_transaction_exception.dart index 3e21bae81c..7bf488f3f1 100644 --- a/cw_bitcoin/lib/bitcoin_commit_transaction_exception.dart +++ b/cw_bitcoin/lib/bitcoin_commit_transaction_exception.dart @@ -1,4 +1,8 @@ class BitcoinCommitTransactionException implements Exception { + String errorMessage; + BitcoinCommitTransactionException(this.errorMessage); + @override - String toString() => 'Transaction commit is failed.'; -} \ No newline at end of file + String toString() => errorMessage; +} + diff --git a/cw_bitcoin/lib/bitcoin_transaction_no_inputs_exception.dart b/cw_bitcoin/lib/bitcoin_transaction_no_inputs_exception.dart deleted file mode 100644 index fac7e93c49..0000000000 --- a/cw_bitcoin/lib/bitcoin_transaction_no_inputs_exception.dart +++ /dev/null @@ -1,4 +0,0 @@ -class BitcoinTransactionNoInputsException implements Exception { - @override - String toString() => 'Not enough inputs available. Please select more under Coin Control'; -} diff --git a/cw_bitcoin/lib/bitcoin_transaction_wrong_balance_exception.dart b/cw_bitcoin/lib/bitcoin_transaction_wrong_balance_exception.dart deleted file mode 100644 index 3f379bea0f..0000000000 --- a/cw_bitcoin/lib/bitcoin_transaction_wrong_balance_exception.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:cw_core/crypto_currency.dart'; - -class BitcoinTransactionWrongBalanceException implements Exception { - BitcoinTransactionWrongBalanceException(this.currency); - - final CryptoCurrency currency; - - @override - String toString() => 'You do not have enough ${currency.title} to send this amount.'; -} \ No newline at end of file diff --git a/cw_bitcoin/lib/electrum.dart b/cw_bitcoin/lib/electrum.dart index 51a53e285b..0553170ccf 100644 --- a/cw_bitcoin/lib/electrum.dart +++ b/cw_bitcoin/lib/electrum.dart @@ -7,10 +7,9 @@ import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/script_hash.dart'; import 'package:flutter/foundation.dart'; import 'package:rxdart/rxdart.dart'; -import 'package:http/http.dart' as http; String jsonrpcparams(List params) { - final _params = params?.map((val) => '"${val.toString()}"')?.join(','); + final _params = params.map((val) => '"${val.toString()}"').join(','); return '[$_params]'; } @@ -34,6 +33,7 @@ class ElectrumClient { : _id = 0, _isConnected = false, _tasks = {}, + _errors = {}, unterminatedString = ''; static const connectionTimeout = Duration(seconds: 5); @@ -44,6 +44,7 @@ class ElectrumClient { void Function(bool)? onConnectionStatusChange; int _id; final Map _tasks; + final Map _errors; bool _isConnected; Timer? _aliveTimer; String unterminatedString; @@ -243,30 +244,20 @@ class ElectrumClient { }); Future broadcastTransaction( - {required String transactionRaw, BasedUtxoNetwork? network}) async { - if (network == BitcoinNetwork.testnet) { - return http - .post(Uri(scheme: 'https', host: 'blockstream.info', path: '/testnet/api/tx'), - headers: {'Content-Type': 'application/json; charset=utf-8'}, - body: transactionRaw) - .then((http.Response response) { - if (response.statusCode == 200) { - return response.body; + {required String transactionRaw, + BasedUtxoNetwork? network, + Function(int)? idCallback}) async => + call( + method: 'blockchain.transaction.broadcast', + params: [transactionRaw], + idCallback: idCallback) + .then((dynamic result) { + if (result is String) { + return result; } - throw Exception('Failed to broadcast transaction: ${response.body}'); + return ''; }); - } - - return call(method: 'blockchain.transaction.broadcast', params: [transactionRaw]) - .then((dynamic result) { - if (result is String) { - return result; - } - - return ''; - }); - } Future> getMerkle({required String hash, required int height}) async => await call(method: 'blockchain.transaction.get_merkle', params: [hash, height]) @@ -371,10 +362,12 @@ class ElectrumClient { } } - Future call({required String method, List params = const []}) async { + Future call( + {required String method, List params = const [], Function(int)? idCallback}) async { final completer = Completer(); _id += 1; final id = _id; + idCallback?.call(id); _registryTask(id, completer); socket!.write(jsonrpc(method: method, id: id, params: params)); @@ -456,6 +449,23 @@ class ElectrumClient { final id = response['id'] as String?; final result = response['result']; + try { + final error = response['error'] as Map?; + if (error != null) { + final errorMessage = error['message'] as String?; + if (errorMessage != null) { + _errors[id!] = errorMessage; + } + } + } catch (_) {} + + try { + final error = response['error'] as String?; + if (error != null) { + _errors[id!] = error; + } + } catch (_) {} + if (method is String) { _methodHandler(method: method, request: response); return; @@ -465,6 +475,8 @@ class ElectrumClient { _finish(id, result); } } + + String getErrorMessage(int id) => _errors[id.toString()] ?? ''; } // FIXME: move me diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index e8c81c493a..ffd8b5d520 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -8,10 +8,9 @@ import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin_base; import 'package:collection/collection.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; +import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; -import 'package:cw_bitcoin/bitcoin_transaction_no_inputs_exception.dart'; import 'package:cw_bitcoin/bitcoin_transaction_priority.dart'; -import 'package:cw_bitcoin/bitcoin_transaction_wrong_balance_exception.dart'; import 'package:cw_bitcoin/bitcoin_unspent.dart'; import 'package:cw_bitcoin/bitcoin_wallet_keys.dart'; import 'package:cw_bitcoin/electrum.dart'; @@ -19,6 +18,7 @@ import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_bitcoin/electrum_transaction_history.dart'; import 'package:cw_bitcoin/electrum_transaction_info.dart'; import 'package:cw_bitcoin/electrum_wallet_addresses.dart'; +import 'package:cw_bitcoin/exceptions.dart'; import 'package:cw_bitcoin/litecoin_network.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:cw_bitcoin/script_hash.dart'; @@ -188,27 +188,27 @@ abstract class ElectrumWalletBase } } - Future estimateTxFeeAndInputsToUse( - int credentialsAmount, - bool sendAll, - List outputAddresses, - List outputs, - int? feeRate, - BitcoinTransactionPriority? priority, - {int? inputsCount, - String? memo}) async { + int _getDustAmount() { + return 546; + } + + bool _isBelowDust(int amount) => amount <= _getDustAmount() && network != BitcoinNetwork.testnet; + + Future estimateSendAllTx( + List outputs, + int feeRate, { + String? memo, + int credentialsAmount = 0, + }) async { final utxos = []; List privateKeys = []; - - var leftAmount = credentialsAmount; - var allInputsAmount = 0; + int allInputsAmount = 0; for (int i = 0; i < unspentCoins.length; i++) { final utx = unspentCoins[i]; if (utx.isSending) { allInputsAmount += utx.value; - leftAmount = leftAmount - utx.value; final address = addressTypeFromStr(utx.address, network); final privkey = generateECPrivate( @@ -226,15 +226,12 @@ abstract class ElectrumWalletBase vout: utx.vout, scriptType: _getScriptType(address), ), - ownerDetails: - UtxoAddressDetails(publicKey: privkey.getPublic().toHex(), address: address), + ownerDetails: UtxoAddressDetails( + publicKey: privkey.getPublic().toHex(), + address: address, + ), ), ); - - bool amountIsAcquired = !sendAll && leftAmount <= 0; - if ((inputsCount == null && amountIsAcquired) || inputsCount == i + 1) { - break; - } } } @@ -242,66 +239,218 @@ abstract class ElectrumWalletBase throw BitcoinTransactionNoInputsException(); } - var changeValue = allInputsAmount - credentialsAmount; + int estimatedSize; + if (network is BitcoinCashNetwork) { + estimatedSize = ForkedTransactionBuilder.estimateTransactionSize( + utxos: utxos, + outputs: outputs, + network: network as BitcoinCashNetwork, + memo: memo, + ); + } else { + estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( + utxos: utxos, + outputs: outputs, + network: network, + memo: memo, + ); + } + + int fee = feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize); + + if (fee == 0) { + throw BitcoinTransactionNoFeeException(); + } - if (!sendAll) { - if (changeValue > 0) { - final changeAddress = await walletAddresses.getChangeAddress(); - final address = addressTypeFromStr(changeAddress, network); - outputAddresses.add(address); - outputs.add(BitcoinOutput(address: address, value: BigInt.from(changeValue))); + // Here, when sending all, the output amount equals to the input value - fee to fully spend every input on the transaction and have no amount left for change + int amount = allInputsAmount - fee; + + // Attempting to send less than the dust limit + if (_isBelowDust(amount)) { + throw BitcoinTransactionNoDustException(); + } + + if (credentialsAmount > 0) { + final amountLeftForFee = amount - credentialsAmount; + if (amountLeftForFee > 0 && _isBelowDust(amountLeftForFee)) { + amount -= amountLeftForFee; + fee += amountLeftForFee; } } - final estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( + outputs[outputs.length - 1] = + BitcoinOutput(address: outputs.last.address, value: BigInt.from(amount)); + + return EstimatedTxResult( utxos: utxos, - outputs: outputs, - network: network, + privateKeys: privateKeys, + fee: fee, + amount: amount, + isSendAll: true, + hasChange: false, memo: memo, ); + } - int fee = feeRate != null - ? feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize) - : feeAmountForPriority(priority!, 0, 0, size: estimatedSize); + Future estimateTxForAmount( + int credentialsAmount, + List outputs, + int feeRate, { + int? inputsCount, + String? memo, + }) async { + final utxos = []; + List privateKeys = []; + int allInputsAmount = 0; - if (fee == 0) { - throw BitcoinTransactionWrongBalanceException(currency); - } + int leftAmount = credentialsAmount; + final sendingCoins = unspentCoins.where((utx) => utx.isSending).toList(); - var amount = credentialsAmount; + for (int i = 0; i < sendingCoins.length; i++) { + final utx = sendingCoins[i]; - final lastOutput = outputs.last; - if (!sendAll) { - if (changeValue > fee) { - // Here, lastOutput is change, deduct the fee from it - outputs[outputs.length - 1] = - BitcoinOutput(address: lastOutput.address, value: lastOutput.value - BigInt.from(fee)); + allInputsAmount += utx.value; + leftAmount = leftAmount - utx.value; + + final address = addressTypeFromStr(utx.address, network); + final privkey = generateECPrivate( + hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, + index: utx.bitcoinAddressRecord.index, + network: network); + + privateKeys.add(privkey); + + utxos.add( + UtxoWithAddress( + utxo: BitcoinUtxo( + txHash: utx.hash, + value: BigInt.from(utx.value), + vout: utx.vout, + scriptType: _getScriptType(address), + ), + ownerDetails: UtxoAddressDetails( + publicKey: privkey.getPublic().toHex(), + address: address, + ), + ), + ); + + bool amountIsAcquired = leftAmount <= 0; + if ((inputsCount == null && amountIsAcquired) || inputsCount == i + 1) { + break; } + } + + if (utxos.isEmpty) { + throw BitcoinTransactionNoInputsException(); + } + + final spendingAllCoins = sendingCoins.length == utxos.length; + + // How much is being spent - how much is being sent + int amountLeftForChangeAndFee = allInputsAmount - credentialsAmount; + + if (amountLeftForChangeAndFee <= 0) { + throw BitcoinTransactionWrongBalanceException(); + } + + final changeAddress = await walletAddresses.getChangeAddress(); + final address = addressTypeFromStr(changeAddress, network); + outputs.add(BitcoinOutput( + address: address, + value: BigInt.from(amountLeftForChangeAndFee), + )); + + int estimatedSize; + if (network is BitcoinCashNetwork) { + estimatedSize = ForkedTransactionBuilder.estimateTransactionSize( + utxos: utxos, + outputs: outputs, + network: network as BitcoinCashNetwork, + memo: memo, + ); } else { - // Here, if sendAll, the output amount equals to the input value - fee to fully spend every input on the transaction and have no amount for change - amount = allInputsAmount - fee; + estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( + utxos: utxos, + outputs: outputs, + network: network, + memo: memo, + ); + } + + int fee = feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize); + + if (fee == 0) { + throw BitcoinTransactionNoFeeException(); + } + + int amount = credentialsAmount; + final lastOutput = outputs.last; + final amountLeftForChange = amountLeftForChangeAndFee - fee; + + if (!_isBelowDust(amountLeftForChange)) { + // Here, lastOutput already is change, return the amount left without the fee to the user's address. outputs[outputs.length - 1] = - BitcoinOutput(address: lastOutput.address, value: BigInt.from(amount)); + BitcoinOutput(address: lastOutput.address, value: BigInt.from(amountLeftForChange)); + } else { + // If has change that is lower than dust, will end up with tx rejected by network rules, so estimate again without the added change + outputs.removeLast(); + + // Still has inputs to spend before failing + if (!spendingAllCoins) { + return estimateTxForAmount( + credentialsAmount, + outputs, + feeRate, + inputsCount: utxos.length + 1, + memo: memo, + ); + } + + final estimatedSendAll = await estimateSendAllTx( + outputs, + feeRate, + memo: memo, + ); + + if (estimatedSendAll.amount == credentialsAmount) { + return estimatedSendAll; + } + + // Estimate to user how much is needed to send to cover the fee + final maxAmountWithReturningChange = allInputsAmount - _getDustAmount() - fee - 1; + throw BitcoinTransactionNoDustOnChangeException( + bitcoinAmountToString(amount: maxAmountWithReturningChange), + bitcoinAmountToString(amount: estimatedSendAll.amount), + ); + } + + // Attempting to send less than the dust limit + if (_isBelowDust(amount)) { + throw BitcoinTransactionNoDustException(); } final totalAmount = amount + fee; if (totalAmount > balance[currency]!.confirmed) { - throw BitcoinTransactionWrongBalanceException(currency); + throw BitcoinTransactionWrongBalanceException(); } if (totalAmount > allInputsAmount) { - if (unspentCoins.where((utx) => utx.isSending).length == utxos.length) { - throw BitcoinTransactionWrongBalanceException(currency); + if (spendingAllCoins) { + throw BitcoinTransactionWrongBalanceException(); } else { - if (changeValue > fee) { - outputAddresses.removeLast(); + if (amountLeftForChangeAndFee > fee) { outputs.removeLast(); } - return estimateTxFeeAndInputsToUse( - credentialsAmount, sendAll, outputAddresses, outputs, feeRate, priority, - inputsCount: utxos.length + 1); + return estimateTxForAmount( + credentialsAmount, + outputs, + feeRate, + inputsCount: utxos.length + 1, + memo: memo, + ); } } @@ -310,6 +459,8 @@ abstract class ElectrumWalletBase privateKeys: privateKeys, fee: fee, amount: amount, + hasChange: true, + isSendAll: false, memo: memo, ); } @@ -318,58 +469,80 @@ abstract class ElectrumWalletBase Future createTransaction(Object credentials) async { try { final outputs = []; - final outputAddresses = []; final transactionCredentials = credentials as BitcoinTransactionCredentials; final hasMultiDestination = transactionCredentials.outputs.length > 1; final sendAll = !hasMultiDestination && transactionCredentials.outputs.first.sendAll; + final memo = transactionCredentials.outputs.first.memo; - var credentialsAmount = 0; + int credentialsAmount = 0; for (final out in transactionCredentials.outputs) { - final outputAddress = out.isParsedAddress ? out.extractedAddress! : out.address; - final address = addressTypeFromStr(outputAddress, network); + final outputAmount = out.formattedCryptoAmount!; - outputAddresses.add(address); + if (!sendAll && _isBelowDust(outputAmount)) { + throw BitcoinTransactionNoDustException(); + } if (hasMultiDestination) { - if (out.sendAll || out.formattedCryptoAmount! <= 0) { - throw BitcoinTransactionWrongBalanceException(currency); + if (out.sendAll) { + throw BitcoinTransactionWrongBalanceException(); } + } - final outputAmount = out.formattedCryptoAmount!; - credentialsAmount += outputAmount; + credentialsAmount += outputAmount; - outputs.add(BitcoinOutput(address: address, value: BigInt.from(outputAmount))); + final address = + addressTypeFromStr(out.isParsedAddress ? out.extractedAddress! : out.address, network); + + if (sendAll) { + // The value will be changed after estimating the Tx size and deducting the fee from the total to be sent + outputs.add(BitcoinOutput(address: address, value: BigInt.from(0))); } else { - if (!sendAll) { - final outputAmount = out.formattedCryptoAmount!; - credentialsAmount += outputAmount; - outputs.add(BitcoinOutput(address: address, value: BigInt.from(outputAmount))); - } else { - // The value will be changed after estimating the Tx size and deducting the fee from the total - outputs.add(BitcoinOutput(address: address, value: BigInt.from(0))); - } + outputs.add(BitcoinOutput(address: address, value: BigInt.from(outputAmount))); } } - final estimatedTx = await estimateTxFeeAndInputsToUse( - credentialsAmount, - sendAll, - outputAddresses, - outputs, - transactionCredentials.feeRate, - transactionCredentials.priority, - memo: transactionCredentials.outputs.first.memo, - ); + final feeRateInt = transactionCredentials.feeRate != null + ? transactionCredentials.feeRate! + : feeRate(transactionCredentials.priority!); + + EstimatedTxResult estimatedTx; + if (sendAll) { + estimatedTx = await estimateSendAllTx( + outputs, + feeRateInt, + memo: memo, + credentialsAmount: credentialsAmount, + ); + } else { + estimatedTx = await estimateTxForAmount( + credentialsAmount, + outputs, + feeRateInt, + memo: memo, + ); + } - final txb = BitcoinTransactionBuilder( - utxos: estimatedTx.utxos, - outputs: outputs, - fee: BigInt.from(estimatedTx.fee), - network: network, - memo: estimatedTx.memo, - outputOrdering: BitcoinOrdering.none, - ); + BasedBitcoinTransacationBuilder txb; + if (network is BitcoinCashNetwork) { + txb = ForkedTransactionBuilder( + utxos: estimatedTx.utxos, + outputs: outputs, + fee: BigInt.from(estimatedTx.fee), + network: network, + memo: estimatedTx.memo, + outputOrdering: BitcoinOrdering.none, + ); + } else { + txb = BitcoinTransactionBuilder( + utxos: estimatedTx.utxos, + outputs: outputs, + fee: BigInt.from(estimatedTx.fee), + network: network, + memo: estimatedTx.memo, + outputOrdering: BitcoinOrdering.none, + ); + } final transaction = txb.buildTransaction((txDigest, utxo, publicKey, sighash) { final key = estimatedTx.privateKeys @@ -390,7 +563,10 @@ abstract class ElectrumWalletBase electrumClient: electrumClient, amount: estimatedTx.amount, fee: estimatedTx.fee, - network: network) + feeRate: feeRateInt.toString(), + network: network, + hasChange: estimatedTx.hasChange, + isSendAll: estimatedTx.isSendAll) ..addListener((transaction) async { transactionHistory.addOne(transaction); await updateBalance(); @@ -423,7 +599,7 @@ abstract class ElectrumWalletBase } } - int feeAmountForPriority(BitcoinTransactionPriority priority, int inputsCount, int outputsCount, + int feeAmountForPriority(TransactionPriority priority, int inputsCount, int outputsCount, {int? size}) => feeRate(priority) * (size ?? estimatedTransactionSize(inputsCount, outputsCount)); @@ -908,6 +1084,8 @@ class EstimatedTxResult { required this.privateKeys, required this.fee, required this.amount, + required this.hasChange, + required this.isSendAll, this.memo, }); @@ -915,10 +1093,21 @@ class EstimatedTxResult { final List privateKeys; final int fee; final int amount; + final bool hasChange; + final bool isSendAll; final String? memo; } BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { + if (network is BitcoinCashNetwork) { + if (!address.startsWith("bitcoincash:") && + (address.startsWith("q") || address.startsWith("p"))) { + address = "bitcoincash:$address"; + } + + return BitcoinCashAddress(address).baseAddress; + } + if (P2pkhAddress.regex.hasMatch(address)) { return P2pkhAddress.fromAddress(address: address, network: network); } else if (P2shAddress.regex.hasMatch(address)) { diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 69d0a63851..ac2397561e 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -77,7 +77,8 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { String get address { String receiveAddress; - final typeMatchingReceiveAddresses = receiveAddresses.where(_isAddressPageTypeMatch); + final typeMatchingReceiveAddresses = + receiveAddresses.where(_isAddressPageTypeMatch).where((addr) => !addr.isUsed); if ((isEnabledAutoGenerateSubaddress && receiveAddresses.isEmpty) || typeMatchingReceiveAddresses.isEmpty) { @@ -220,8 +221,11 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { Future updateAddressesInBox() async { try { addressesMap.clear(); + addressesMap[address] = ''; + + allAddressesMap.clear(); _addresses.forEach((addressRecord) { - addressesMap[addressRecord.address] = addressRecord.name; + allAddressesMap[addressRecord.address] = addressRecord.name; }); await saveAddressesInBox(); } catch (e) { diff --git a/cw_bitcoin/lib/exceptions.dart b/cw_bitcoin/lib/exceptions.dart new file mode 100644 index 0000000000..4b03eb9221 --- /dev/null +++ b/cw_bitcoin/lib/exceptions.dart @@ -0,0 +1,27 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/exceptions.dart'; + +class BitcoinTransactionWrongBalanceException extends TransactionWrongBalanceException { + BitcoinTransactionWrongBalanceException() : super(CryptoCurrency.btc); +} + +class BitcoinTransactionNoInputsException extends TransactionNoInputsException {} + +class BitcoinTransactionNoFeeException extends TransactionNoFeeException {} + +class BitcoinTransactionNoDustException extends TransactionNoDustException {} + +class BitcoinTransactionNoDustOnChangeException extends TransactionNoDustOnChangeException { + BitcoinTransactionNoDustOnChangeException(super.max, super.min); +} + +class BitcoinTransactionCommitFailed extends TransactionCommitFailed {} + +class BitcoinTransactionCommitFailedDustChange extends TransactionCommitFailedDustChange {} + +class BitcoinTransactionCommitFailedDustOutput extends TransactionCommitFailedDustOutput {} + +class BitcoinTransactionCommitFailedDustOutputSendAll + extends TransactionCommitFailedDustOutputSendAll {} + +class BitcoinTransactionCommitFailedVoutNegative extends TransactionCommitFailedVoutNegative {} diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index b459311336..ada39a8f7a 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -1,4 +1,4 @@ -import 'package:cw_bitcoin/bitcoin_commit_transaction_exception.dart'; +import 'package:cw_bitcoin/exceptions.dart'; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_bitcoin/electrum.dart'; @@ -9,7 +9,13 @@ import 'package:cw_core/wallet_type.dart'; class PendingBitcoinTransaction with PendingTransaction { PendingBitcoinTransaction(this._tx, this.type, - {required this.electrumClient, required this.amount, required this.fee, this.network}) + {required this.electrumClient, + required this.amount, + required this.fee, + required this.feeRate, + this.network, + required this.hasChange, + required this.isSendAll}) : _listeners = []; final WalletType type; @@ -17,7 +23,10 @@ class PendingBitcoinTransaction with PendingTransaction { final ElectrumClient electrumClient; final int amount; final int fee; + final String feeRate; final BasedUtxoNetwork? network; + final bool hasChange; + final bool isSendAll; @override String get id => _tx.txId(); @@ -38,10 +47,30 @@ class PendingBitcoinTransaction with PendingTransaction { @override Future commit() async { - final result = await electrumClient.broadcastTransaction(transactionRaw: hex, network: network); + int? callId; + + final result = await electrumClient.broadcastTransaction( + transactionRaw: hex, network: network, idCallback: (id) => callId = id); if (result.isEmpty) { - throw BitcoinCommitTransactionException(); + if (callId != null) { + final error = electrumClient.getErrorMessage(callId!); + + if (error.contains("dust")) { + if (hasChange) { + throw BitcoinTransactionCommitFailedDustChange(); + } else if (!isSendAll) { + throw BitcoinTransactionCommitFailedDustOutput(); + } else { + throw BitcoinTransactionCommitFailedDustOutputSendAll(); + } + } + + if (error.contains("bad-txns-vout-negative")) { + throw BitcoinTransactionCommitFailedVoutNegative(); + } + } + throw BitcoinTransactionCommitFailed(); } _listeners.forEach((listener) => listener(transactionInfo())); diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index 40ddcfa572..1f04e56242 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -4,15 +4,10 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:cw_bitcoin/bitcoin_address_record.dart'; -import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; -import 'package:cw_bitcoin/bitcoin_transaction_no_inputs_exception.dart'; import 'package:cw_bitcoin/bitcoin_transaction_priority.dart'; -import 'package:cw_bitcoin/bitcoin_transaction_wrong_balance_exception.dart'; -import 'package:cw_bitcoin/bitcoin_unspent.dart'; import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; import 'package:cw_bitcoin/electrum_wallet_snapshot.dart'; -import 'package:cw_bitcoin_cash/src/pending_bitcoin_cash_transaction.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/unspent_coins_info.dart'; @@ -130,187 +125,9 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { ); } - @override - Future createTransaction(Object credentials) async { - const minAmount = 546; - final transactionCredentials = credentials as BitcoinTransactionCredentials; - final inputs = []; - final outputs = transactionCredentials.outputs; - final hasMultiDestination = outputs.length > 1; - - var allInputsAmount = 0; - - final String? opReturnMemo = outputs.first.memo; - - if (unspentCoins.isEmpty) await updateUnspent(); - - for (final utx in unspentCoins) { - if (utx.isSending) { - allInputsAmount += utx.value; - inputs.add(utx); - } - } - - if (inputs.isEmpty) throw BitcoinTransactionNoInputsException(); - - final allAmountFee = transactionCredentials.feeRate != null - ? feeAmountWithFeeRate(transactionCredentials.feeRate!, inputs.length, outputs.length) - : feeAmountForPriority(transactionCredentials.priority!, inputs.length, outputs.length); - - final allAmount = allInputsAmount - allAmountFee; - - var credentialsAmount = 0; - var amount = 0; - var fee = 0; - - if (hasMultiDestination) { - if (outputs.any((item) => item.sendAll || item.formattedCryptoAmount! <= 0)) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - credentialsAmount = outputs.fold(0, (acc, value) => acc + value.formattedCryptoAmount!); - - if (allAmount - credentialsAmount < minAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - amount = credentialsAmount; - - if (transactionCredentials.feeRate != null) { - fee = calculateEstimatedFeeWithFeeRate(transactionCredentials.feeRate!, amount, - outputsCount: outputs.length + 1); - } else { - fee = calculateEstimatedFee(transactionCredentials.priority, amount, - outputsCount: outputs.length + 1); - } - } else { - final output = outputs.first; - credentialsAmount = !output.sendAll ? output.formattedCryptoAmount! : 0; - - if (credentialsAmount > allAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - amount = output.sendAll || allAmount - credentialsAmount < minAmount - ? allAmount - : credentialsAmount; - - if (output.sendAll || amount == allAmount) { - fee = allAmountFee; - } else if (transactionCredentials.feeRate != null) { - fee = calculateEstimatedFeeWithFeeRate(transactionCredentials.feeRate!, amount); - } else { - fee = calculateEstimatedFee(transactionCredentials.priority, amount); - } - } - - if (fee == 0) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - final totalAmount = amount + fee; - - if (totalAmount > balance[currency]!.confirmed || totalAmount > allInputsAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - final txb = bitbox.Bitbox.transactionBuilder(testnet: false); - - final changeAddress = await walletAddresses.getChangeAddress(); - var leftAmount = totalAmount; - var totalInputAmount = 0; - - inputs.clear(); - - for (final utx in unspentCoins) { - if (utx.isSending) { - leftAmount = leftAmount - utx.value; - totalInputAmount += utx.value; - inputs.add(utx); - - if (leftAmount <= 0) { - break; - } - } - } - - if (inputs.isEmpty) throw BitcoinTransactionNoInputsException(); - - if (amount <= 0 || totalInputAmount < totalAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - inputs.forEach((input) { - txb.addInput(input.hash, input.vout); - }); - - final String bchPrefix = "bitcoincash:"; - - outputs.forEach((item) { - final outputAmount = hasMultiDestination ? item.formattedCryptoAmount : amount; - String outputAddress = item.isParsedAddress ? item.extractedAddress! : item.address; - - if (!outputAddress.startsWith(bchPrefix)) { - outputAddress = "$bchPrefix$outputAddress"; - } - - bool isP2sh = outputAddress.startsWith("p", bchPrefix.length); - - if (isP2sh) { - final p2sh = P2shAddress.fromAddress( - address: outputAddress, - network: BitcoinCashNetwork.mainnet, - ); - - txb.addOutput(Uint8List.fromList(p2sh.toScriptPubKey().toBytes()), outputAmount!); - return; - } - - txb.addOutput(outputAddress, outputAmount!); - }); - - final estimatedSize = bitbox.BitcoinCash.getByteCount(inputs.length, outputs.length + 1); - - var feeAmount = 0; - - if (transactionCredentials.feeRate != null) { - feeAmount = transactionCredentials.feeRate! * estimatedSize; - } else { - feeAmount = feeRate(transactionCredentials.priority!) * estimatedSize; - } - - final changeValue = totalInputAmount - amount - feeAmount; - - if (changeValue > minAmount) { - txb.addOutput(changeAddress, changeValue); - } - - if (opReturnMemo != null) txb.addOutputData(opReturnMemo); - - for (var i = 0; i < inputs.length; i++) { - final input = inputs[i]; - final keyPair = generateKeyPair( - hd: input.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, - index: input.bitcoinAddressRecord.index); - txb.sign(i, keyPair, input.value); - } - - final tx = txb.build(); - - return PendingBitcoinCashTransaction(tx, type, - electrumClient: electrumClient, amount: amount, fee: fee); - } - bitbox.ECPair generateKeyPair({required bitcoin.HDWallet hd, required int index}) => bitbox.ECPair.fromWIF(hd.derive(index).wif!); - @override - int feeAmountForPriority(BitcoinTransactionPriority priority, int inputsCount, int outputsCount, - {int? size}) => - feeRate(priority) * bitbox.BitcoinCash.getByteCount(inputsCount, outputsCount); - - int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount, {int? size}) => - feeRate * bitbox.BitcoinCash.getByteCount(inputsCount, outputsCount); - int calculateEstimatedFeeWithFeeRate(int feeRate, int? amount, {int? outputsCount, int? size}) { int inputsCount = 0; int totalValue = 0; diff --git a/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart b/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart index d5ac36ce25..da4710a8b1 100644 --- a/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart +++ b/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart @@ -1,4 +1,4 @@ -import 'package:cw_bitcoin/bitcoin_commit_transaction_exception.dart'; +import 'package:cw_bitcoin/exceptions.dart'; import 'package:bitbox/bitbox.dart' as bitbox; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_bitcoin/electrum.dart'; @@ -11,7 +11,9 @@ class PendingBitcoinCashTransaction with PendingTransaction { PendingBitcoinCashTransaction(this._tx, this.type, {required this.electrumClient, required this.amount, - required this.fee}) + required this.fee, + required this.hasChange, + required this.isSendAll}) : _listeners = []; final WalletType type; @@ -19,6 +21,8 @@ class PendingBitcoinCashTransaction with PendingTransaction { final ElectrumClient electrumClient; final int amount; final int fee; + final bool hasChange; + final bool isSendAll; @override String get id => _tx.getId(); @@ -36,18 +40,36 @@ class PendingBitcoinCashTransaction with PendingTransaction { @override Future commit() async { - final result = - await electrumClient.broadcastTransaction(transactionRaw: _tx.toHex()); + int? callId; + + final result = await electrumClient.broadcastTransaction( + transactionRaw: hex, idCallback: (id) => callId = id); if (result.isEmpty) { - throw BitcoinCommitTransactionException(); + if (callId != null) { + final error = electrumClient.getErrorMessage(callId!); + + if (error.contains("dust")) { + if (hasChange) { + throw BitcoinTransactionCommitFailedDustChange(); + } else if (!isSendAll) { + throw BitcoinTransactionCommitFailedDustOutput(); + } else { + throw BitcoinTransactionCommitFailedDustOutputSendAll(); + } + } + + if (error.contains("bad-txns-vout-negative")) { + throw BitcoinTransactionCommitFailedVoutNegative(); + } + } + throw BitcoinTransactionCommitFailed(); } - _listeners?.forEach((listener) => listener(transactionInfo())); + _listeners.forEach((listener) => listener(transactionInfo())); } - void addListener( - void Function(ElectrumTransactionInfo transaction) listener) => + void addListener(void Function(ElectrumTransactionInfo transaction) listener) => _listeners.add(listener); ElectrumTransactionInfo transactionInfo() => ElectrumTransactionInfo(type, diff --git a/cw_core/lib/exceptions.dart b/cw_core/lib/exceptions.dart new file mode 100644 index 0000000000..848ac40e63 --- /dev/null +++ b/cw_core/lib/exceptions.dart @@ -0,0 +1,30 @@ +import 'package:cw_core/crypto_currency.dart'; + +class TransactionWrongBalanceException implements Exception { + TransactionWrongBalanceException(this.currency); + + final CryptoCurrency currency; +} + +class TransactionNoInputsException implements Exception {} + +class TransactionNoFeeException implements Exception {} + +class TransactionNoDustException implements Exception {} + +class TransactionNoDustOnChangeException implements Exception { + TransactionNoDustOnChangeException(this.max, this.min); + + final String max; + final String min; +} + +class TransactionCommitFailed implements Exception {} + +class TransactionCommitFailedDustChange implements Exception {} + +class TransactionCommitFailedDustOutput implements Exception {} + +class TransactionCommitFailedDustOutputSendAll implements Exception {} + +class TransactionCommitFailedVoutNegative implements Exception {} diff --git a/cw_core/lib/pending_transaction.dart b/cw_core/lib/pending_transaction.dart index 042b0ca2b8..642db9c2c0 100644 --- a/cw_core/lib/pending_transaction.dart +++ b/cw_core/lib/pending_transaction.dart @@ -2,8 +2,9 @@ mixin PendingTransaction { String get id; String get amountFormatted; String get feeFormatted; + String? feeRate; String get hex; int? get outputCount => null; Future commit(); -} \ No newline at end of file +} diff --git a/cw_core/lib/wallet_addresses.dart b/cw_core/lib/wallet_addresses.dart index d8c84c80c5..a2a2a50a36 100644 --- a/cw_core/lib/wallet_addresses.dart +++ b/cw_core/lib/wallet_addresses.dart @@ -3,8 +3,9 @@ import 'package:cw_core/wallet_info.dart'; abstract class WalletAddresses { WalletAddresses(this.walletInfo) - : addressesMap = {}, - addressInfos = {}; + : addressesMap = {}, + allAddressesMap = {}, + addressInfos = {}; final WalletInfo walletInfo; @@ -15,6 +16,7 @@ abstract class WalletAddresses { set address(String address); Map addressesMap; + Map allAddressesMap; Map> addressInfos; @@ -39,5 +41,5 @@ abstract class WalletAddresses { } } - bool containsAddress(String address) => addressesMap.containsKey(address); + bool containsAddress(String address) => allAddressesMap.containsKey(address); } diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 4db51fbc26..c9649a2e37 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -86,7 +86,7 @@ class CWBitcoin extends Bitcoin { extractedAddress: out.extractedAddress, isParsedAddress: out.isParsedAddress, formattedCryptoAmount: out.formattedCryptoAmount, - memo: out.memo)) + memo: out.memo)) .toList(), priority: priority as BitcoinTransactionPriority, feeRate: feeRate); @@ -123,23 +123,30 @@ class CWBitcoin extends Bitcoin { @override Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority) async { - final electrumWallet = wallet as ElectrumWallet; - final sk = ECPrivate.random(); - - final p2shAddr = sk.getPublic().toP2pkhInP2sh(); - final p2wpkhAddr = sk.getPublic().toP2wpkhAddress(); try { - final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( - 0, - true, - // Deposit address + change address - [p2shAddr, p2wpkhAddr], - [ - BitcoinOutput(address: p2shAddr, value: BigInt.zero), - BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) - ], - null, - priority as BitcoinTransactionPriority); + final sk = ECPrivate.random(); + final electrumWallet = wallet as ElectrumWallet; + + if (wallet.type == WalletType.bitcoinCash) { + final p2pkhAddr = sk.getPublic().toP2pkhAddress(); + final estimatedTx = await electrumWallet.estimateSendAllTx( + [BitcoinOutput(address: p2pkhAddr, value: BigInt.zero)], + getFeeRate(wallet, priority as BitcoinCashTransactionPriority), + ); + + return estimatedTx.amount; + } + + final p2shAddr = sk.getPublic().toP2pkhInP2sh(); + final estimatedTx = await electrumWallet.estimateSendAllTx( + [BitcoinOutput(address: p2shAddr, value: BigInt.zero)], + getFeeRate( + wallet, + wallet.type == WalletType.litecoin + ? priority as LitecoinTransactionPriority + : priority as BitcoinTransactionPriority, + ), + ); return estimatedTx.amount; } catch (_) { diff --git a/lib/core/amount_validator.dart b/lib/core/amount_validator.dart index fb5214d54b..38983dfb20 100644 --- a/lib/core/amount_validator.dart +++ b/lib/core/amount_validator.dart @@ -34,6 +34,10 @@ class AmountValidator extends TextValidator { late final DecimalAmountValidator decimalAmountValidator; String? call(String? value) { + if (value == null || value.isEmpty) { + return S.current.error_text_amount; + } + //* Validate for Text(length, symbols, decimals etc) final textValidation = symbolsAmountValidator(value) ?? decimalAmountValidator(value); diff --git a/lib/exchange/provider/changenow_exchange_provider.dart b/lib/exchange/provider/changenow_exchange_provider.dart index c4a96bc5bd..42f8634fb7 100644 --- a/lib/exchange/provider/changenow_exchange_provider.dart +++ b/lib/exchange/provider/changenow_exchange_provider.dart @@ -133,7 +133,11 @@ class ChangeNowExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { final distributionPath = await DistributionInfo.instance.getDistributionPath(); final formattedAppVersion = int.tryParse(_settingsStore.appVersion.replaceAll('.', '')) ?? 0; final payload = { @@ -202,7 +206,8 @@ class ChangeNowExchangeProvider extends ExchangeProvider { createdAt: DateTime.now(), amount: responseJSON['fromAmount']?.toString() ?? request.fromAmount, state: TradeState.created, - payoutAddress: payoutAddress); + payoutAddress: payoutAddress, + isSendAll: isSendAll); } @override diff --git a/lib/exchange/provider/exchange_provider.dart b/lib/exchange/provider/exchange_provider.dart index d1f69689d9..a91a7ac9da 100644 --- a/lib/exchange/provider/exchange_provider.dart +++ b/lib/exchange/provider/exchange_provider.dart @@ -28,7 +28,8 @@ abstract class ExchangeProvider { Future fetchLimits( {required CryptoCurrency from, required CryptoCurrency to, required bool isFixedRateMode}); - Future createTrade({required TradeRequest request, required bool isFixedRateMode}); + Future createTrade( + {required TradeRequest request, required bool isFixedRateMode, required bool isSendAll}); Future findTradeById({required String id}); diff --git a/lib/exchange/provider/exolix_exchange_provider.dart b/lib/exchange/provider/exolix_exchange_provider.dart index 9374439f3d..db11a8f58d 100644 --- a/lib/exchange/provider/exolix_exchange_provider.dart +++ b/lib/exchange/provider/exolix_exchange_provider.dart @@ -130,7 +130,11 @@ class ExolixExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { final headers = {'Content-Type': 'application/json'}; final body = { 'coinFrom': _normalizeCurrency(request.fromCurrency), @@ -180,7 +184,8 @@ class ExolixExchangeProvider extends ExchangeProvider { createdAt: DateTime.now(), amount: amount, state: TradeState.created, - payoutAddress: payoutAddress); + payoutAddress: payoutAddress, + isSendAll: isSendAll); } @override diff --git a/lib/exchange/provider/sideshift_exchange_provider.dart b/lib/exchange/provider/sideshift_exchange_provider.dart index 261aeedf3b..1be4f80454 100644 --- a/lib/exchange/provider/sideshift_exchange_provider.dart +++ b/lib/exchange/provider/sideshift_exchange_provider.dart @@ -144,7 +144,11 @@ class SideShiftExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { String url = ''; final body = { 'affiliateId': affiliateId, @@ -197,6 +201,7 @@ class SideShiftExchangeProvider extends ExchangeProvider { amount: depositAmount ?? request.fromAmount, payoutAddress: settleAddress, createdAt: DateTime.now(), + isSendAll: isSendAll, ); } diff --git a/lib/exchange/provider/simpleswap_exchange_provider.dart b/lib/exchange/provider/simpleswap_exchange_provider.dart index 5c162a9951..df83cf491c 100644 --- a/lib/exchange/provider/simpleswap_exchange_provider.dart +++ b/lib/exchange/provider/simpleswap_exchange_provider.dart @@ -117,7 +117,11 @@ class SimpleSwapExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { final headers = {'Content-Type': 'application/json'}; final params = {'api_key': apiKey}; final body = { @@ -162,6 +166,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider { amount: request.fromAmount, payoutAddress: payoutAddress, createdAt: DateTime.now(), + isSendAll: isSendAll, ); } diff --git a/lib/exchange/provider/thorchain_exchange.provider.dart b/lib/exchange/provider/thorchain_exchange.provider.dart index 2ab04b742b..32dce7db86 100644 --- a/lib/exchange/provider/thorchain_exchange.provider.dart +++ b/lib/exchange/provider/thorchain_exchange.provider.dart @@ -109,7 +109,11 @@ class ThorChainExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { String formattedToAddress = request.toAddress.startsWith('bitcoincash:') ? request.toAddress.replaceFirst('bitcoincash:', '') : request.toAddress; @@ -142,7 +146,8 @@ class ThorChainExchangeProvider extends ExchangeProvider { amount: request.fromAmount, state: TradeState.notFound, payoutAddress: request.toAddress, - memo: memo); + memo: memo, + isSendAll: isSendAll); } @override @@ -177,10 +182,12 @@ class ThorChainExchangeProvider extends ExchangeProvider { final parts = memo?.split(':') ?? []; final String toChain = parts.length > 1 ? parts[1].split('.')[0] : ''; - final String toAsset = parts.length > 1 && parts[1].split('.').length > 1 ? parts[1].split('.')[1].split('-')[0] : ''; + final String toAsset = parts.length > 1 && parts[1].split('.').length > 1 + ? parts[1].split('.')[1].split('-')[0] + : ''; final formattedToChain = CryptoCurrency.fromString(toChain); - final toAssetWithChain = CryptoCurrency.fromString(toAsset, walletCurrency:formattedToChain); + final toAssetWithChain = CryptoCurrency.fromString(toAsset, walletCurrency: formattedToChain); final plannedOutTxs = responseJSON['planned_out_txs'] as List?; final isRefund = plannedOutTxs?.any((tx) => tx['refund'] == true) ?? false; diff --git a/lib/exchange/provider/trocador_exchange_provider.dart b/lib/exchange/provider/trocador_exchange_provider.dart index faa4cc0605..3265730164 100644 --- a/lib/exchange/provider/trocador_exchange_provider.dart +++ b/lib/exchange/provider/trocador_exchange_provider.dart @@ -13,7 +13,8 @@ import 'package:http/http.dart'; class TrocadorExchangeProvider extends ExchangeProvider { TrocadorExchangeProvider({this.useTorOnly = false, this.providerStates = const {}}) - : _lastUsedRateId = '', _provider = [], + : _lastUsedRateId = '', + _provider = [], super(pairList: supportedPairs(_notSupported)); bool useTorOnly; @@ -23,7 +24,7 @@ class TrocadorExchangeProvider extends ExchangeProvider { 'Swapter', 'StealthEx', 'Simpleswap', - 'Swapuz' + 'Swapuz', 'ChangeNow', 'Changehero', 'FixedFloat', @@ -144,8 +145,11 @@ class TrocadorExchangeProvider extends ExchangeProvider { } @override - Future createTrade({required TradeRequest request, required bool isFixedRateMode}) async { - + Future createTrade({ + required TradeRequest request, + required bool isFixedRateMode, + required bool isSendAll, + }) async { final params = { 'api_key': apiKey, 'ticker_from': _normalizeCurrency(request.fromCurrency), @@ -172,7 +176,6 @@ class TrocadorExchangeProvider extends ExchangeProvider { params['id'] = _lastUsedRateId; } - String firstAvailableProvider = ''; for (var provider in _provider) { @@ -225,7 +228,8 @@ class TrocadorExchangeProvider extends ExchangeProvider { providerName: providerName, createdAt: DateTime.tryParse(date)?.toLocal(), amount: responseJSON['amount_from']?.toString() ?? request.fromAmount, - payoutAddress: payoutAddress); + payoutAddress: payoutAddress, + isSendAll: isSendAll); } @override diff --git a/lib/exchange/trade.dart b/lib/exchange/trade.dart index 4bfb335b85..6cc3fddbe4 100644 --- a/lib/exchange/trade.dart +++ b/lib/exchange/trade.dart @@ -31,6 +31,7 @@ class Trade extends HiveObject { this.memo, this.txId, this.isRefund, + this.isSendAll, }) { if (provider != null) providerRaw = provider.raw; @@ -117,6 +118,9 @@ class Trade extends HiveObject { @HiveField(20) bool? isRefund; + @HiveField(21) + bool? isSendAll; + static Trade fromMap(Map map) { return Trade( id: map['id'] as String, @@ -130,8 +134,8 @@ class Trade extends HiveObject { fromWalletAddress: map['from_wallet_address'] as String?, memo: map['memo'] as String?, txId: map['tx_id'] as String?, - isRefund: map['isRefund'] as bool? - ); + isRefund: map['isRefund'] as bool?, + isSendAll: map['isSendAll'] as bool?); } Map toMap() { @@ -146,7 +150,8 @@ class Trade extends HiveObject { 'from_wallet_address': fromWalletAddress, 'memo': memo, 'tx_id': txId, - 'isRefund': isRefund + 'isRefund': isRefund, + 'isSendAll': isSendAll, }; } diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index d8e5a6a4ac..d9e1190386 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -186,7 +186,13 @@ class ExchangePage extends BasePage { StandardCheckbox( value: exchangeViewModel.isFixedRateMode, caption: S.of(context).fixed_rate, - onChanged: (value) => exchangeViewModel.isFixedRateMode = value, + onChanged: (value) { + if (value) { + exchangeViewModel.enableFixedRateMode(); + } else { + exchangeViewModel.isFixedRateMode = false; + } + }, ), ], )), @@ -528,7 +534,7 @@ class ExchangePage extends BasePage { _receiveAmountFocus.addListener(() { if (_receiveAmountFocus.hasFocus) { - exchangeViewModel.isFixedRateMode = true; + exchangeViewModel.enableFixedRateMode(); } // exchangeViewModel.changeReceiveAmount(amount: receiveAmountController.text); }); diff --git a/lib/src/screens/exchange_trade/exchange_trade_page.dart b/lib/src/screens/exchange_trade/exchange_trade_page.dart index c4dcae32c2..4d3334f9fb 100644 --- a/lib/src/screens/exchange_trade/exchange_trade_page.dart +++ b/lib/src/screens/exchange_trade/exchange_trade_page.dart @@ -262,6 +262,7 @@ class ExchangeTradeState extends State { fee: S.of(popupContext).send_fee, feeValue: widget.exchangeTradeViewModel.sendViewModel .pendingTransaction!.feeFormatted, + feeRate: widget.exchangeTradeViewModel.sendViewModel.pendingTransaction!.feeRate, rightButtonText: S.of(popupContext).send, leftButtonText: S.of(popupContext).cancel, actionRightButton: () async { diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index a4c095739e..56b1b7af7e 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -426,6 +426,7 @@ class SendPage extends BasePage { fee: isEVMCompatibleChain(sendViewModel.walletType) ? S.of(_dialogContext).send_estimated_fee : S.of(_dialogContext).send_fee, + feeRate: sendViewModel.pendingTransaction!.feeRate, feeValue: sendViewModel.pendingTransaction!.feeFormatted, feeFiatAmount: sendViewModel.pendingTransactionFeeFiatAmountFormatted, outputs: sendViewModel.outputs, diff --git a/lib/src/screens/send/widgets/confirm_sending_alert.dart b/lib/src/screens/send/widgets/confirm_sending_alert.dart index 87d00ce0f2..ce711ce8be 100644 --- a/lib/src/screens/send/widgets/confirm_sending_alert.dart +++ b/lib/src/screens/send/widgets/confirm_sending_alert.dart @@ -16,6 +16,7 @@ class ConfirmSendingAlert extends BaseAlertDialog { required this.amountValue, required this.fiatAmountValue, required this.fee, + this.feeRate, required this.feeValue, required this.feeFiatAmount, required this.outputs, @@ -36,6 +37,7 @@ class ConfirmSendingAlert extends BaseAlertDialog { final String amountValue; final String fiatAmountValue; final String fee; + final String? feeRate; final String feeValue; final String feeFiatAmount; final List outputs; @@ -90,6 +92,7 @@ class ConfirmSendingAlert extends BaseAlertDialog { amountValue: amountValue, fiatAmountValue: fiatAmountValue, fee: fee, + feeRate: feeRate, feeValue: feeValue, feeFiatAmount: feeFiatAmount, outputs: outputs); @@ -103,6 +106,7 @@ class ConfirmSendingAlertContent extends StatefulWidget { required this.amountValue, required this.fiatAmountValue, required this.fee, + this.feeRate, required this.feeValue, required this.feeFiatAmount, required this.outputs}); @@ -113,6 +117,7 @@ class ConfirmSendingAlertContent extends StatefulWidget { final String amountValue; final String fiatAmountValue; final String fee; + final String? feeRate; final String feeValue; final String feeFiatAmount; final List outputs; @@ -125,6 +130,7 @@ class ConfirmSendingAlertContent extends StatefulWidget { amountValue: amountValue, fiatAmountValue: fiatAmountValue, fee: fee, + feeRate: feeRate, feeValue: feeValue, feeFiatAmount: feeFiatAmount, outputs: outputs); @@ -138,6 +144,7 @@ class ConfirmSendingAlertContentState extends State required this.amountValue, required this.fiatAmountValue, required this.fee, + this.feeRate, required this.feeValue, required this.feeFiatAmount, required this.outputs}) @@ -153,6 +160,7 @@ class ConfirmSendingAlertContentState extends State final String amountValue; final String fiatAmountValue; final String fee; + final String? feeRate; final String feeValue; final String feeFiatAmount; final List outputs; @@ -183,7 +191,7 @@ class ConfirmSendingAlertContentState extends State return Stack(alignment: Alignment.center, clipBehavior: Clip.none, children: [ Container( - height: 200, + height: feeRate != null ? 250 : 200, child: SingleChildScrollView( controller: controller, child: Column( @@ -311,6 +319,36 @@ class ConfirmSendingAlertContentState extends State ) ], )), + if (feeRate != null && feeRate!.isNotEmpty) + Padding( + padding: EdgeInsets.only(top: 16), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + S.current.send_estimated_fee, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + fontFamily: 'Lato', + color: Theme.of(context).extension()!.titleColor, + decoration: TextDecoration.none, + ), + ), + Text( + "$feeRate sat/byte", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + fontFamily: 'Lato', + color: Theme.of(context).extension()!.titleColor, + decoration: TextDecoration.none, + ), + ) + ], + )), Padding( padding: EdgeInsets.only(top: 16), child: Column( diff --git a/lib/src/screens/unspent_coins/unspent_coins_list_page.dart b/lib/src/screens/unspent_coins/unspent_coins_list_page.dart index 36cbda6415..70ae7ce3f4 100644 --- a/lib/src/screens/unspent_coins/unspent_coins_list_page.dart +++ b/lib/src/screens/unspent_coins/unspent_coins_list_page.dart @@ -46,9 +46,6 @@ class UnspentCoinsListFormState extends State { itemBuilder: (_, int index) { return Observer(builder: (_) { final item = unspentCoinsListViewModel.items[index]; - final address = unspentCoinsListViewModel.wallet.type == WalletType.bitcoinCash - ? bitcoinCash!.getCashAddrFormat(item.address) - : item.address; return GestureDetector( onTap: () => Navigator.of(context).pushNamed(Routes.unspentCoinsDetails, @@ -56,7 +53,7 @@ class UnspentCoinsListFormState extends State { child: UnspentCoinsListItem( note: item.note, amount: item.amount, - address: address, + address: item.address, isSending: item.isSending, isFrozen: item.isFrozen, isChange: item.isChange, diff --git a/lib/view_model/contact_list/contact_list_view_model.dart b/lib/view_model/contact_list/contact_list_view_model.dart index b53b67c433..6c3169be1f 100644 --- a/lib/view_model/contact_list/contact_list_view_model.dart +++ b/lib/view_model/contact_list/contact_list_view_model.dart @@ -46,6 +46,8 @@ abstract class ContactListViewModelBase with Store { name, walletTypeToCryptoCurrency(info.type), )); + // Only one contact address per wallet + return; }); } else if (info.address != null) { walletContacts.add(WalletContact( diff --git a/lib/view_model/exchange/exchange_trade_view_model.dart b/lib/view_model/exchange/exchange_trade_view_model.dart index 3eb07460b3..9bd9ef913c 100644 --- a/lib/view_model/exchange/exchange_trade_view_model.dart +++ b/lib/view_model/exchange/exchange_trade_view_model.dart @@ -105,6 +105,7 @@ abstract class ExchangeTradeViewModelBase with Store { output.address = trade.inputAddress ?? ''; output.setCryptoAmount(trade.amount); if (_provider is ThorChainExchangeProvider) output.memo = trade.memo; + if (trade.isSendAll == true) output.sendAll = true; sendViewModel.selectedCryptoCurrency = trade.from; final pendingTransaction = await sendViewModel.createTransaction(provider: _provider); if (_provider is ThorChainExchangeProvider) { @@ -116,6 +117,8 @@ abstract class ExchangeTradeViewModelBase with Store { @action Future _updateTrade() async { try { + final agreedAmount = tradesStore.trade!.amount; + final isSendAll = tradesStore.trade!.isSendAll; final updatedTrade = await _provider!.findTradeById(id: trade.id); if (updatedTrade.createdAt == null && trade.createdAt != null) @@ -124,6 +127,8 @@ abstract class ExchangeTradeViewModelBase with Store { if (updatedTrade.amount.isEmpty) updatedTrade.amount = trade.amount; trade = updatedTrade; + trade.amount = agreedAmount; + trade.isSendAll = isSendAll; _updateItems(); } catch (e) { @@ -137,9 +142,9 @@ abstract class ExchangeTradeViewModelBase with Store { final tagTo = tradesStore.trade!.to.tag != null ? '${tradesStore.trade!.to.tag}' + ' ' : ''; items.clear(); - if(trade.provider != ExchangeProviderDescription.thorChain) - items.add(ExchangeTradeItem( - title: "${trade.provider.title} ${S.current.id}", data: '${trade.id}', isCopied: true)); + if (trade.provider != ExchangeProviderDescription.thorChain) + items.add(ExchangeTradeItem( + title: "${trade.provider.title} ${S.current.id}", data: '${trade.id}', isCopied: true)); if (trade.extraId != null) { final title = trade.from == CryptoCurrency.xrp diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 01ac8e942d..eba347ac40 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -470,6 +470,18 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with @action Future createTrade() async { + if (isSendAllEnabled) { + await calculateDepositAllAmount(); + final amount = double.tryParse(depositAmount); + + if (limits.min != null && amount != null && amount < limits.min!) { + tradeState = TradeIsCreatedFailure( + title: S.current.trade_not_created, + error: S.current.amount_is_below_minimum_limit(limits.min!.toString())); + return; + } + } + try { for (var provider in _sortedAvailableProviders.values) { if (!(await provider.checkIsAvailable())) continue; @@ -496,8 +508,11 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with else { try { tradeState = TradeIsCreating(); - final trade = - await provider.createTrade(request: request, isFixedRateMode: isFixedRateMode); + final trade = await provider.createTrade( + request: request, + isFixedRateMode: isFixedRateMode, + isSendAll: isSendAllEnabled, + ); trade.walletId = wallet.id; trade.fromWalletAddress = wallet.walletAddresses.address; @@ -551,25 +566,24 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with @action void enableSendAllAmount() { isSendAllEnabled = true; + isFixedRateMode = false; calculateDepositAllAmount(); } @action - Future calculateDepositAllAmount() async { - if (wallet.type == WalletType.litecoin || wallet.type == WalletType.bitcoinCash) { - final availableBalance = wallet.balance[wallet.currency]!.available; - final priority = _settingsStore.priority[wallet.type]!; - final fee = wallet.calculateEstimatedFee(priority, null); - - if (availableBalance < fee || availableBalance == 0) return; + void enableFixedRateMode() { + isSendAllEnabled = false; + isFixedRateMode = true; + } - final amount = availableBalance - fee; - changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); - } else if (wallet.type == WalletType.bitcoin) { + @action + Future calculateDepositAllAmount() async { + if (wallet.type == WalletType.litecoin || + wallet.type == WalletType.bitcoin || + wallet.type == WalletType.bitcoinCash) { final priority = _settingsStore.priority[wallet.type]!; - final amount = await bitcoin!.estimateFakeSendAllTxAmount( - wallet, bitcoin!.deserializeBitcoinTransactionPriority(priority.raw)); + final amount = await bitcoin!.estimateFakeSendAllTxAmount(wallet, priority); changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 451f2210db..28f964a9cd 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -14,6 +14,7 @@ import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cw_core/exceptions.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; @@ -309,9 +310,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor state = ExecutedSuccessfullyState(); return pendingTransaction; } catch (e) { - print('Failed with ${e.toString()}'); - state = FailureState(e.toString()); - return null; + state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); } } @@ -353,8 +352,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor state = TransactionCommitted(); } catch (e) { - String translatedError = translateErrorMessage(e.toString(), wallet.type, wallet.currency); - state = FailureState(translatedError); + state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); } } @@ -429,11 +427,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } } - ContactRecord? newContactAddress () { - + ContactRecord? newContactAddress() { final Set contactAddresses = - Set.from(contactListViewModel.contacts.map((contact) => contact.address)) - ..addAll(contactListViewModel.walletContacts.map((contact) => contact.address)); + Set.from(contactListViewModel.contacts.map((contact) => contact.address)) + ..addAll(contactListViewModel.walletContacts.map((contact) => contact.address)); for (var output in outputs) { String address; @@ -444,7 +441,6 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } if (address.isNotEmpty && !contactAddresses.contains(address)) { - return ContactRecord( contactListViewModel.contactSource, Contact( @@ -458,22 +454,59 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } String translateErrorMessage( - String error, + Object error, WalletType walletType, CryptoCurrency currency, ) { + String errorMessage = error.toString(); + if (walletType == WalletType.ethereum || walletType == WalletType.polygon || walletType == WalletType.solana || walletType == WalletType.haven) { - if (error.contains('gas required exceeds allowance') || - error.contains('insufficient funds')) { + if (errorMessage.contains('gas required exceeds allowance') || + errorMessage.contains('insufficient funds')) { return S.current.do_not_have_enough_gas_asset(currency.toString()); } - return error; + return errorMessage; + } + + if (walletType == WalletType.bitcoin || + walletType == WalletType.litecoin || + walletType == WalletType.bitcoinCash) { + if (error is TransactionWrongBalanceException) { + return S.current.tx_wrong_balance_exception(currency.toString()); + } + if (error is TransactionNoInputsException) { + return S.current.tx_not_enough_inputs_exception; + } + if (error is TransactionNoFeeException) { + return S.current.tx_zero_fee_exception; + } + if (error is TransactionNoDustException) { + return S.current.tx_no_dust_exception; + } + if (error is TransactionCommitFailed) { + return S.current.tx_commit_failed; + } + if (error is TransactionCommitFailedDustChange) { + return S.current.tx_rejected_dust_change; + } + if (error is TransactionCommitFailedDustOutput) { + return S.current.tx_rejected_dust_output; + } + if (error is TransactionCommitFailedDustOutputSendAll) { + return S.current.tx_rejected_dust_output_send_all; + } + if (error is TransactionCommitFailedVoutNegative) { + return S.current.tx_rejected_vout_negative; + } + if (error is TransactionNoDustOnChangeException) { + return S.current.tx_commit_exception_no_dust_on_change(error.min, error.max); + } } - return error; + return errorMessage; } } diff --git a/lib/view_model/unspent_coins/unspent_coins_details_view_model.dart b/lib/view_model/unspent_coins/unspent_coins_details_view_model.dart index 4da43c241e..fd142dd338 100644 --- a/lib/view_model/unspent_coins/unspent_coins_details_view_model.dart +++ b/lib/view_model/unspent_coins/unspent_coins_details_view_model.dart @@ -100,7 +100,5 @@ abstract class UnspentCoinsDetailsViewModelBase with Store { final WalletType _type; List items; - String get formattedAddress => WalletType.bitcoinCash == _type - ? bitcoinCash!.getCashAddrFormat(unspentCoinsItem.address) - : unspentCoinsItem.address; + String get formattedAddress => unspentCoinsItem.address; } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 44d55e0ed9..d4d0d664d0 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -43,6 +43,7 @@ "already_have_account": "لديك حساب؟", "always": "دائماً", "amount": "مقدار:", + "amount_is_below_minimum_limit": "سيكون رصيدك بعد الرسوم أقل من الحد الأدنى للمبلغ اللازم للتبادل (${min})", "amount_is_estimate": "المبلغ المستلم هو تقدير", "amount_is_guaranteed": "مبلغ الاستلام مضمون", "and": "و", @@ -712,6 +713,16 @@ "transactions": "المعاملات", "transactions_by_date": "المعاملات حسب التاريخ", "trusted": "موثوق به", + "tx_commit_exception_no_dust_on_change": "يتم رفض المعاملة مع هذا المبلغ. باستخدام هذه العملات المعدنية ، يمكنك إرسال ${min} دون تغيير أو ${max} الذي يعيد التغيير.", + "tx_commit_failed": "فشل ارتكاب المعاملة. يرجى الاتصال بالدعم.", + "tx_no_dust_exception": "يتم رفض المعاملة عن طريق إرسال مبلغ صغير جدًا. يرجى محاولة زيادة المبلغ.", + "tx_not_enough_inputs_exception": "لا يكفي المدخلات المتاحة. الرجاء تحديد المزيد تحت التحكم في العملة", + "tx_rejected_dust_change": "المعاملة التي يتم رفضها بموجب قواعد الشبكة ، ومبلغ التغيير المنخفض (الغبار). حاول إرسال كل أو تقليل المبلغ.", + "tx_rejected_dust_output": "المعاملة التي يتم رفضها بموجب قواعد الشبكة ، وكمية الإخراج المنخفض (الغبار). يرجى زيادة المبلغ.", + "tx_rejected_dust_output_send_all": "المعاملة التي يتم رفضها بموجب قواعد الشبكة ، وكمية الإخراج المنخفض (الغبار). يرجى التحقق من رصيد العملات المعدنية المحددة تحت التحكم في العملة.", + "tx_rejected_vout_negative": "لا يوجد ما يكفي من الرصيد لدفع رسوم هذه الصفقة. يرجى التحقق من رصيد العملات المعدنية تحت السيطرة على العملة.", + "tx_wrong_balance_exception": "ليس لديك ما يكفي من ${currency} لإرسال هذا المبلغ.", + "tx_zero_fee_exception": "لا يمكن إرسال معاملة مع 0 رسوم. حاول زيادة المعدل أو التحقق من اتصالك للحصول على أحدث التقديرات.", "unavailable_balance": "ﺮﻓﻮﺘﻣ ﺮﻴﻏ ﺪﻴﺻﺭ", "unavailable_balance_description": ".ﺎﻫﺪﻴﻤﺠﺗ ءﺎﻐﻟﺇ ﺭﺮﻘﺗ ﻰﺘﺣ ﺕﻼﻣﺎﻌﻤﻠﻟ ﻝﻮﺻﻮﻠﻟ ﺔﻠﺑﺎﻗ ﺮﻴﻏ ﺓﺪﻤﺠﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﻞﻈﺗ ﺎﻤﻨﻴﺑ ،ﺎﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻣﺎﻌﻤﻟﺍ ﻝﺎﻤﺘﻛﺍ ﺩﺮﺠﻤﺑ ﺔﺣﺎﺘﻣ ﺔﻠﻔﻘﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﺢﺒﺼﺘﺳ .ﻚﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻤﻌﻟﺍ ﻲﻓ ﻢﻜﺤﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻂﺸﻧ ﻞﻜﺸﺑ ﺎﻫﺪﻴﻤﺠﺘﺑ ﺖﻤﻗ", "unconfirmed": "رصيد غير مؤكد", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 1817b18074..6fe29a1a69 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -43,6 +43,7 @@ "already_have_account": "Вече имате профил?", "always": "Винаги", "amount": "Сума: ", + "amount_is_below_minimum_limit": "Вашето салдо след такси ще бъде по -малко от минималната сума, необходима за борсата (${min})", "amount_is_estimate": "Сумата за получаване е ", "amount_is_guaranteed": "Сумата за получаване е гарантирана", "and": "и", @@ -712,6 +713,16 @@ "transactions": "Транзакции", "transactions_by_date": "Транзакции по дата", "trusted": "Надежден", + "tx_commit_exception_no_dust_on_change": "Сделката се отхвърля с тази сума. С тези монети можете да изпратите ${min} без промяна или ${max}, която връща промяна.", + "tx_commit_failed": "Компетацията на транзакцията не успя. Моля, свържете се с поддръжката.", + "tx_no_dust_exception": "Сделката се отхвърля чрез изпращане на сума твърде малка. Моля, опитайте да увеличите сумата.", + "tx_not_enough_inputs_exception": "Няма достатъчно налични входове. Моля, изберете повече под контрол на монети", + "tx_rejected_dust_change": "Транзакция, отхвърлена от мрежови правила, ниска сума на промяна (прах). Опитайте да изпратите всички или да намалите сумата.", + "tx_rejected_dust_output": "Транзакция, отхвърлена от мрежови правила, ниска стойност на изхода (прах). Моля, увеличете сумата.", + "tx_rejected_dust_output_send_all": "Транзакция, отхвърлена от мрежови правила, ниска стойност на изхода (прах). Моля, проверете баланса на монетите, избрани под контрол на монети.", + "tx_rejected_vout_negative": "Няма достатъчно баланс, за да платите за таксите на тази транзакция. Моля, проверете баланса на монетите под контрол на монетите.", + "tx_wrong_balance_exception": "Нямате достатъчно ${currency}, за да изпратите тази сума.", + "tx_zero_fee_exception": "Не може да изпраща транзакция с 0 такса. Опитайте да увеличите скоростта или да проверите връзката си за най -новите оценки.", "unavailable_balance": "Неналично салдо", "unavailable_balance_description": "Неналично салдо: Тази обща сума включва средства, които са заключени в чакащи транзакции и тези, които сте замразили активно в настройките за контрол на монетите. Заключените баланси ще станат достъпни, след като съответните им транзакции бъдат завършени, докато замразените баланси остават недостъпни за транзакции, докато не решите да ги размразите.", "unconfirmed": "Непотвърден баланс", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 9bd416f458..a346f9494f 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -43,6 +43,7 @@ "already_have_account": "Máte už účet?", "always": "Vždy", "amount": "Částka: ", + "amount_is_below_minimum_limit": "Váš zůstatek po poplatcích by byl menší než minimální částka potřebná pro burzu (${min})", "amount_is_estimate": "Částka, kterou dostanete, je jen odhad.", "amount_is_guaranteed": "Částka, kterou dostanete, je konečná", "and": "a", @@ -712,6 +713,16 @@ "transactions": "Transakce", "transactions_by_date": "Transakce podle data", "trusted": "Důvěřovat", + "tx_commit_exception_no_dust_on_change": "Transakce je zamítnuta s touto částkou. S těmito mincemi můžete odeslat ${min} bez změny nebo ${max}, které se vrátí změna.", + "tx_commit_failed": "Transakce COMPORT selhala. Kontaktujte prosím podporu.", + "tx_no_dust_exception": "Transakce je zamítnuta odesláním příliš malé. Zkuste prosím zvýšit částku.", + "tx_not_enough_inputs_exception": "Není k dispozici dostatek vstupů. Vyberte prosím více pod kontrolou mincí", + "tx_rejected_dust_change": "Transakce zamítnuta podle síťových pravidel, množství nízké změny (prach). Zkuste odeslat vše nebo snížit částku.", + "tx_rejected_dust_output": "Transakce zamítnuta síťovými pravidly, nízkým množstvím výstupu (prach). Zvyšte prosím částku.", + "tx_rejected_dust_output_send_all": "Transakce zamítnuta síťovými pravidly, nízkým množstvím výstupu (prach). Zkontrolujte prosím zůstatek mincí vybraných pod kontrolou mincí.", + "tx_rejected_vout_negative": "Nedostatek zůstatek na zaplacení poplatků za tuto transakci. Zkontrolujte prosím zůstatek mincí pod kontrolou mincí.", + "tx_wrong_balance_exception": "Nemáte dost ${currency} pro odeslání této částky.", + "tx_zero_fee_exception": "Nelze odeslat transakci s 0 poplatkem. Zkuste zvýšit sazbu nebo zkontrolovat připojení pro nejnovější odhady.", "unavailable_balance": "Nedostupný zůstatek", "unavailable_balance_description": "Nedostupný zůstatek: Tento součet zahrnuje prostředky, které jsou uzamčeny v nevyřízených transakcích a ty, které jste aktivně zmrazili v nastavení kontroly mincí. Uzamčené zůstatky budou k dispozici po dokončení příslušných transakcí, zatímco zmrazené zůstatky zůstanou pro transakce nepřístupné, dokud se nerozhodnete je uvolnit.", "unconfirmed": "Nepotvrzený zůstatek", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 109df5ef22..47375cedf4 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -43,6 +43,7 @@ "already_have_account": "Sie haben bereits ein Konto?", "always": "immer", "amount": "Betrag: ", + "amount_is_below_minimum_limit": "Ihr Saldo nach Gebühren wäre geringer als der für den Austausch benötigte Mindestbetrag (${min})", "amount_is_estimate": "Der empfangene Betrag ist eine Schätzung", "amount_is_guaranteed": "Der Empfangsbetrag ist garantiert", "and": "Und", @@ -713,6 +714,16 @@ "transactions": "Transaktionen", "transactions_by_date": "Transaktionen nach Datum", "trusted": "Vertrauenswürdige", + "tx_commit_exception_no_dust_on_change": "Die Transaktion wird diesen Betrag abgelehnt. Mit diesen Münzen können Sie ${min} ohne Veränderung oder ${max} senden, die Änderungen zurückgeben.", + "tx_commit_failed": "Transaktionsausschüsse ist fehlgeschlagen. Bitte wenden Sie sich an Support.", + "tx_no_dust_exception": "Die Transaktion wird abgelehnt, indem eine Menge zu klein gesendet wird. Bitte versuchen Sie, die Menge zu erhöhen.", + "tx_not_enough_inputs_exception": "Nicht genügend Eingänge verfügbar. Bitte wählen Sie mehr unter Münzkontrolle aus", + "tx_rejected_dust_change": "Transaktion abgelehnt durch Netzwerkregeln, niedriger Änderungsbetrag (Staub). Versuchen Sie, alle zu senden oder die Menge zu reduzieren.", + "tx_rejected_dust_output": "Transaktion durch Netzwerkregeln, niedriger Ausgangsmenge (Staub) abgelehnt. Bitte erhöhen Sie den Betrag.", + "tx_rejected_dust_output_send_all": "Transaktion durch Netzwerkregeln, niedriger Ausgangsmenge (Staub) abgelehnt. Bitte überprüfen Sie den Gleichgewicht der unter Münzkontrolle ausgewählten Münzen.", + "tx_rejected_vout_negative": "Nicht genug Guthaben, um die Gebühren dieser Transaktion zu bezahlen. Bitte überprüfen Sie den Restbetrag der Münzen unter Münzkontrolle.", + "tx_wrong_balance_exception": "Sie haben nicht genug ${currency}, um diesen Betrag zu senden.", + "tx_zero_fee_exception": "Transaktion kann nicht mit 0 Gebühren gesendet werden. Versuchen Sie, die Rate zu erhöhen oder Ihre Verbindung auf die neuesten Schätzungen zu überprüfen.", "unavailable_balance": "Nicht verfügbares Guthaben", "unavailable_balance_description": "Nicht verfügbares Guthaben: Diese Summe umfasst Gelder, die in ausstehenden Transaktionen gesperrt sind, und solche, die Sie in Ihren Münzkontrolleinstellungen aktiv eingefroren haben. Gesperrte Guthaben werden verfügbar, sobald die entsprechenden Transaktionen abgeschlossen sind, während eingefrorene Guthaben für Transaktionen nicht zugänglich bleiben, bis Sie sich dazu entschließen, sie wieder freizugeben.", "unconfirmed": "Unbestätigter Saldo", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index f9e67d4757..8370334293 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -43,6 +43,7 @@ "already_have_account": "Already have an account?", "always": "Always", "amount": "Amount: ", + "amount_is_below_minimum_limit": "Your balance after fees would be less than the minimum amount needed for the exchange (${min})", "amount_is_estimate": "The receive amount is an estimate", "amount_is_guaranteed": "The receive amount is guaranteed", "and": "and", @@ -712,6 +713,16 @@ "transactions": "Transactions", "transactions_by_date": "Transactions by date", "trusted": "Trusted", + "tx_commit_exception_no_dust_on_change": "The transaction is rejected with this amount. With these coins you can send ${min} without change or ${max} that returns change.", + "tx_commit_failed": "Transaction commit failed. Please contact support.", + "tx_no_dust_exception": "The transaction is rejected by sending an amount too small. Please try increasing the amount.", + "tx_not_enough_inputs_exception": "Not enough inputs available. Please select more under Coin Control", + "tx_rejected_dust_change": "Transaction rejected by network rules, low change amount (dust). Try sending ALL or reducing the amount.", + "tx_rejected_dust_output": "Transaction rejected by network rules, low output amount (dust). Please increase the amount.", + "tx_rejected_dust_output_send_all": "Transaction rejected by network rules, low output amount (dust). Please check the balance of coins selected under Coin Control.", + "tx_rejected_vout_negative": "Not enough balance to pay for this transaction's fees. Please check the balance of coins under Coin Control.", + "tx_wrong_balance_exception": "You do not have enough ${currency} to send this amount.", + "tx_zero_fee_exception": "Cannot send transaction with 0 fee. Try increasing the rate or checking your connection for latest estimates.", "unavailable_balance": "Unavailable balance", "unavailable_balance_description": "Unavailable Balance: This total includes funds that are locked in pending transactions and those you have actively frozen in your coin control settings. Locked balances will become available once their respective transactions are completed, while frozen balances remain inaccessible for transactions until you decide to unfreeze them.", "unconfirmed": "Unconfirmed Balance", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index f84f892ddc..b3afbd3a7e 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -43,6 +43,7 @@ "already_have_account": "¿Ya tienes una cuenta?", "always": "siempre", "amount": "Cantidad: ", + "amount_is_below_minimum_limit": "Su saldo después de las tarifas sería menor que la cantidad mínima necesaria para el intercambio (${min})", "amount_is_estimate": "El monto recibido es un estimado", "amount_is_guaranteed": "La cantidad recibida está garantizada", "and": "y", @@ -713,6 +714,16 @@ "transactions": "Actas", "transactions_by_date": "Transacciones por fecha", "trusted": "de confianza", + "tx_commit_exception_no_dust_on_change": "La transacción se rechaza con esta cantidad. Con estas monedas puede enviar ${min} sin cambios o ${max} que devuelve el cambio.", + "tx_commit_failed": "La confirmación de transacción falló. Póngase en contacto con el soporte.", + "tx_no_dust_exception": "La transacción se rechaza enviando una cantidad demasiado pequeña. Intente aumentar la cantidad.", + "tx_not_enough_inputs_exception": "No hay suficientes entradas disponibles. Seleccione más bajo control de monedas", + "tx_rejected_dust_change": "Transacción rechazada por reglas de red, bajo cambio de cambio (polvo). Intente enviar todo o reducir la cantidad.", + "tx_rejected_dust_output": "Transacción rechazada por reglas de red, baja cantidad de salida (polvo). Aumente la cantidad.", + "tx_rejected_dust_output_send_all": "Transacción rechazada por reglas de red, baja cantidad de salida (polvo). Verifique el saldo de monedas seleccionadas bajo control de monedas.", + "tx_rejected_vout_negative": "No es suficiente saldo para pagar las tarifas de esta transacción. Verifique el saldo de monedas bajo control de monedas.", + "tx_wrong_balance_exception": "No tiene suficiente ${currency} para enviar esta cantidad.", + "tx_zero_fee_exception": "No se puede enviar transacciones con 0 tarifa. Intente aumentar la tasa o verificar su conexión para las últimas estimaciones.", "unavailable_balance": "Saldo no disponible", "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", "unconfirmed": "Saldo no confirmado", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 048b97f667..2a62d351df 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -43,6 +43,7 @@ "already_have_account": "Vous avez déjà un compte ?", "always": "toujours", "amount": "Montant : ", + "amount_is_below_minimum_limit": "Votre solde après les frais serait inférieur au montant minimum nécessaire à l'échange (${min})", "amount_is_estimate": "Le montant reçu est estimé", "amount_is_guaranteed": "Le montant reçu est garanti", "and": "et", @@ -712,6 +713,16 @@ "transactions": "Transactions", "transactions_by_date": "Transactions par date", "trusted": "de confiance", + "tx_commit_exception_no_dust_on_change": "La transaction est rejetée avec ce montant. Avec ces pièces, vous pouvez envoyer ${min} sans changement ou ${max} qui renvoie le changement.", + "tx_commit_failed": "La validation de la transaction a échoué. Veuillez contacter l'assistance.", + "tx_no_dust_exception": "La transaction est rejetée en envoyant un montant trop faible. Veuillez essayer d'augmenter le montant.", + "tx_not_enough_inputs_exception": "Pas assez d'entrées disponibles. Veuillez sélectionner plus sous Control Control", + "tx_rejected_dust_change": "Transaction rejetée par les règles du réseau, montant de faible variation (poussière). Essayez d'envoyer tout ou de réduire le montant.", + "tx_rejected_dust_output": "Transaction rejetée par les règles du réseau, faible quantité de sortie (poussière). Veuillez augmenter le montant.", + "tx_rejected_dust_output_send_all": "Transaction rejetée par les règles du réseau, faible quantité de sortie (poussière). Veuillez vérifier le solde des pièces sélectionnées sous le contrôle des pièces de monnaie.", + "tx_rejected_vout_negative": "Pas assez de solde pour payer les frais de cette transaction. Veuillez vérifier le solde des pièces sous le contrôle des pièces.", + "tx_wrong_balance_exception": "Vous n'avez pas assez ${currency} pour envoyer ce montant.", + "tx_zero_fee_exception": "Impossible d'envoyer une transaction avec 0 frais. Essayez d'augmenter le taux ou de vérifier votre connexion pour les dernières estimations.", "unavailable_balance": "Solde indisponible", "unavailable_balance_description": "Solde indisponible : ce total comprend les fonds bloqués dans les transactions en attente et ceux que vous avez activement gelés dans vos paramètres de contrôle des pièces. Les soldes bloqués deviendront disponibles une fois leurs transactions respectives terminées, tandis que les soldes gelés resteront inaccessibles aux transactions jusqu'à ce que vous décidiez de les débloquer.", "unconfirmed": "Solde non confirmé", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 4eadc6333b..1e18fb6921 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -43,6 +43,7 @@ "already_have_account": "Kuna da asusu?", "always": "Koyaushe", "amount": "Adadi:", + "amount_is_below_minimum_limit": "Daidaitarku bayan kudade zai zama ƙasa da mafi ƙarancin adadin da ake buƙata don musayar (${min}", "amount_is_estimate": "Adadin da aka karɓa shine kimantawa", "amount_is_guaranteed": "Adadin da aka karɓa yana da garanti", "and": "kuma", @@ -714,6 +715,16 @@ "transactions": "Ma'amaloli", "transactions_by_date": "Ma'amaloli ta kwanan wata", "trusted": "Amintacce", + "tx_commit_exception_no_dust_on_change": "An ƙi ma'amala da wannan adadin. Tare da waɗannan tsabar kudi Zaka iya aika ${min}, ba tare da canji ba ko ${max} wanda ya dawo canzawa.", + "tx_commit_failed": "Ma'amala ya kasa. Da fatan za a tuntuɓi goyan baya.", + "tx_no_dust_exception": "An ƙi ma'amala ta hanyar aika adadin ƙarami. Da fatan za a gwada ƙara adadin.", + "tx_not_enough_inputs_exception": "Bai isa ba hanyoyin da ake samu. Da fatan za selectiari a karkashin Kwarewar Coin", + "tx_rejected_dust_change": "Ma'amala ta ƙi ta dokokin cibiyar sadarwa, ƙarancin canji (ƙura). Gwada aikawa da duka ko rage adadin.", + "tx_rejected_dust_output": "Ma'adar da aka ƙi ta dokokin cibiyar sadarwa, ƙananan fitarwa (ƙura). Da fatan za a ƙara adadin.", + "tx_rejected_dust_output_send_all": "Ma'adar da aka ƙi ta dokokin cibiyar sadarwa, ƙananan fitarwa (ƙura). Da fatan za a duba daidaiton tsabar kudi a ƙarƙashin ikon tsabar kudin.", + "tx_rejected_vout_negative": "Bai isa daidai ba don biyan wannan kudin ma'amala. Da fatan za a duba daidaiton tsabar kudi a ƙarƙashin ikon tsabar kudin.", + "tx_wrong_balance_exception": "Ba ku da isasshen ${currency} don aika wannan adadin.", + "tx_zero_fee_exception": "Ba zai iya aika ma'amala da kuɗi 0 ba. Gwada ƙara ƙimar ko bincika haɗin ku don mahimmin ƙididdiga.", "unavailable_balance": "Ma'aunin da ba ya samuwa", "unavailable_balance_description": "Ma'auni Babu: Wannan jimlar ya haɗa da kuɗi waɗanda ke kulle a cikin ma'amaloli da ke jiran aiki da waɗanda kuka daskare sosai a cikin saitunan sarrafa kuɗin ku. Ma'auni da aka kulle za su kasance da zarar an kammala ma'amalolinsu, yayin da daskararrun ma'auni ba za su iya samun damar yin ciniki ba har sai kun yanke shawarar cire su.", "unconfirmed": "Ba a tabbatar ba", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 500df31f7c..b1ef9e4a21 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -43,6 +43,7 @@ "already_have_account": "क्या आपके पास पहले से एक खाता मौजूद है?", "always": "हमेशा", "amount": "रकम: ", + "amount_is_below_minimum_limit": "फीस के बाद आपका संतुलन विनिमय के लिए आवश्यक न्यूनतम राशि से कम होगा (${min})", "amount_is_estimate": "प्राप्त राशि एक अनुमान है", "amount_is_guaranteed": "प्राप्त राशि की गारंटी है", "and": "और", @@ -714,6 +715,16 @@ "transactions": "लेन-देन", "transactions_by_date": "तारीख से लेन-देन", "trusted": "भरोसा", + "tx_commit_exception_no_dust_on_change": "लेनदेन को इस राशि से खारिज कर दिया जाता है। इन सिक्कों के साथ आप चेंज या ${min} के बिना ${max} को भेज सकते हैं जो परिवर्तन लौटाता है।", + "tx_commit_failed": "लेन -देन प्रतिबद्ध विफल। कृपया संपर्क समर्थन करें।", + "tx_no_dust_exception": "लेनदेन को बहुत छोटी राशि भेजकर अस्वीकार कर दिया जाता है। कृपया राशि बढ़ाने का प्रयास करें।", + "tx_not_enough_inputs_exception": "पर्याप्त इनपुट उपलब्ध नहीं है। कृपया सिक्का नियंत्रण के तहत अधिक चुनें", + "tx_rejected_dust_change": "नेटवर्क नियमों, कम परिवर्तन राशि (धूल) द्वारा खारिज किए गए लेनदेन। सभी भेजने या राशि को कम करने का प्रयास करें।", + "tx_rejected_dust_output": "नेटवर्क नियमों, कम आउटपुट राशि (धूल) द्वारा खारिज किए गए लेनदेन। कृपया राशि बढ़ाएं।", + "tx_rejected_dust_output_send_all": "नेटवर्क नियमों, कम आउटपुट राशि (धूल) द्वारा खारिज किए गए लेनदेन। कृपया सिक्का नियंत्रण के तहत चुने गए सिक्कों के संतुलन की जाँच करें।", + "tx_rejected_vout_negative": "इस लेनदेन की फीस के लिए भुगतान करने के लिए पर्याप्त शेष राशि नहीं है। कृपया सिक्के नियंत्रण के तहत सिक्कों के संतुलन की जाँच करें।", + "tx_wrong_balance_exception": "इस राशि को भेजने के लिए आपके पास पर्याप्त ${currency} नहीं है।", + "tx_zero_fee_exception": "0 शुल्क के साथ लेनदेन नहीं भेज सकते। नवीनतम अनुमानों के लिए दर बढ़ाने या अपने कनेक्शन की जांच करने का प्रयास करें।", "unavailable_balance": "अनुपलब्ध शेष", "unavailable_balance_description": "अनुपलब्ध शेष राशि: इस कुल में वे धनराशि शामिल हैं जो लंबित लेनदेन में बंद हैं और जिन्हें आपने अपनी सिक्का नियंत्रण सेटिंग्स में सक्रिय रूप से जमा कर रखा है। लॉक किए गए शेष उनके संबंधित लेन-देन पूरे होने के बाद उपलब्ध हो जाएंगे, जबकि जमे हुए शेष लेन-देन के लिए अप्राप्य रहेंगे जब तक कि आप उन्हें अनफ्रीज करने का निर्णय नहीं लेते।", "unconfirmed": "अपुष्ट शेष राशि", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 9a6f74adba..55913f434a 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -43,6 +43,7 @@ "already_have_account": "Već imate račun?", "always": "Uvijek", "amount": "Iznos: ", + "amount_is_below_minimum_limit": "Vaša bilanca nakon naknada bila bi manja od minimalnog iznosa potrebnog za razmjenu (${min})", "amount_is_estimate": "Iznos koji ćete primiti je okviran", "amount_is_guaranteed": "Iznos koji ćete primiti je zajamčen", "and": "i", @@ -712,6 +713,16 @@ "transactions": "Transakcije", "transactions_by_date": "Transakcije prema datumu", "trusted": "vjerovao", + "tx_commit_exception_no_dust_on_change": "Transakcija se odbija s tim iznosom. Pomoću ovih kovanica možete poslati ${min} bez promjene ili ${max} koja vraća promjenu.", + "tx_commit_failed": "Obveza transakcije nije uspjela. Molimo kontaktirajte podršku.", + "tx_no_dust_exception": "Transakcija se odbija slanjem iznosa premalo. Pokušajte povećati iznos.", + "tx_not_enough_inputs_exception": "Nema dovoljno unosa. Molimo odaberite više pod kontrolom novčića", + "tx_rejected_dust_change": "Transakcija odbijena mrežnim pravilima, niska količina promjene (prašina). Pokušajte poslati sve ili smanjiti iznos.", + "tx_rejected_dust_output": "Transakcija odbijena mrežnim pravilima, niska količina izlaza (prašina). Molimo povećajte iznos.", + "tx_rejected_dust_output_send_all": "Transakcija odbijena mrežnim pravilima, niska količina izlaza (prašina). Molimo provjerite ravnotežu kovanica odabranih pod kontrolom novčića.", + "tx_rejected_vout_negative": "Nema dovoljno salda za plaćanje naknada ove transakcije. Molimo provjerite ravnotežu kovanica pod kontrolom novčića.", + "tx_wrong_balance_exception": "Nemate dovoljno ${currency} da biste poslali ovaj iznos.", + "tx_zero_fee_exception": "Ne mogu poslati transakciju s 0 naknade. Pokušajte povećati stopu ili provjeriti vezu za najnovije procjene.", "unavailable_balance": "Nedostupno stanje", "unavailable_balance_description": "Nedostupno stanje: Ovaj ukupni iznos uključuje sredstva koja su zaključana u transakcijama na čekanju i ona koja ste aktivno zamrznuli u postavkama kontrole novčića. Zaključani saldi postat će dostupni kada se dovrše njihove transakcije, dok zamrznuti saldi ostaju nedostupni za transakcije sve dok ih ne odlučite odmrznuti.", "unconfirmed": "Nepotvrđeno stanje", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index b0c4276c34..8546e1f171 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -43,6 +43,7 @@ "already_have_account": "Sudah punya akun?", "always": "Selalu", "amount": "Jumlah: ", + "amount_is_below_minimum_limit": "Saldo Anda setelah biaya akan kurang dari jumlah minimum yang dibutuhkan untuk pertukaran (${min})", "amount_is_estimate": "Jumlah penerimaan diperkirakan", "amount_is_guaranteed": "Jumlah penerimaan dijamin", "and": "dan", @@ -715,6 +716,16 @@ "transactions": "Transaksi", "transactions_by_date": "Transaksi berdasarkan tanggal", "trusted": "Dipercayai", + "tx_commit_exception_no_dust_on_change": "Transaksi ditolak dengan jumlah ini. Dengan koin ini Anda dapat mengirim ${min} tanpa perubahan atau ${max} yang mengembalikan perubahan.", + "tx_commit_failed": "Transaksi Gagal. Silakan hubungi Dukungan.", + "tx_no_dust_exception": "Transaksi ditolak dengan mengirimkan jumlah yang terlalu kecil. Silakan coba tingkatkan jumlahnya.", + "tx_not_enough_inputs_exception": "Tidak cukup input yang tersedia. Pilih lebih banyak lagi di bawah Kontrol Koin", + "tx_rejected_dust_change": "Transaksi ditolak oleh aturan jaringan, jumlah perubahan rendah (debu). Coba kirim semua atau mengurangi jumlahnya.", + "tx_rejected_dust_output": "Transaksi ditolak oleh aturan jaringan, jumlah output rendah (debu). Harap tingkatkan jumlahnya.", + "tx_rejected_dust_output_send_all": "Transaksi ditolak oleh aturan jaringan, jumlah output rendah (debu). Silakan periksa saldo koin yang dipilih di bawah kontrol koin.", + "tx_rejected_vout_negative": "Tidak cukup saldo untuk membayar biaya transaksi ini. Silakan periksa saldo koin di bawah kendali koin.", + "tx_wrong_balance_exception": "Anda tidak memiliki cukup ${currency} untuk mengirim jumlah ini.", + "tx_zero_fee_exception": "Tidak dapat mengirim transaksi dengan biaya 0. Coba tingkatkan tarif atau periksa koneksi Anda untuk perkiraan terbaru.", "unavailable_balance": "Saldo tidak tersedia", "unavailable_balance_description": "Saldo Tidak Tersedia: Total ini termasuk dana yang terkunci dalam transaksi yang tertunda dan dana yang telah Anda bekukan secara aktif di pengaturan kontrol koin Anda. Saldo yang terkunci akan tersedia setelah transaksi masing-masing selesai, sedangkan saldo yang dibekukan tetap tidak dapat diakses untuk transaksi sampai Anda memutuskan untuk mencairkannya.", "unconfirmed": "Saldo Belum Dikonfirmasi", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index b96acc951a..ef0ffecdee 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -43,6 +43,7 @@ "already_have_account": "Hai già un account?", "always": "sempre", "amount": "Ammontare: ", + "amount_is_below_minimum_limit": "Il saldo dopo le commissioni sarebbe inferiore all'importo minimo necessario per lo scambio (${min})", "amount_is_estimate": "L'ammontare da ricevere è una stima", "amount_is_guaranteed": "L'ammontare da ricevere è fisso", "and": "e", @@ -714,6 +715,16 @@ "transactions": "Transazioni", "transactions_by_date": "Transazioni per data", "trusted": "di fiducia", + "tx_commit_exception_no_dust_on_change": "La transazione viene respinta con questo importo. Con queste monete è possibile inviare ${min} senza modifiche o ${max} che restituisce il cambiamento.", + "tx_commit_failed": "Commit di transazione non riuscita. Si prega di contattare il supporto.", + "tx_no_dust_exception": "La transazione viene respinta inviando un importo troppo piccolo. Per favore, prova ad aumentare l'importo.", + "tx_not_enough_inputs_exception": "Input non sufficienti disponibili. Seleziona di più sotto il controllo delle monete", + "tx_rejected_dust_change": "Transazione respinta dalle regole di rete, quantità bassa variazione (polvere). Prova a inviare tutto o ridurre l'importo.", + "tx_rejected_dust_output": "Transazione respinta dalle regole di rete, bassa quantità di output (polvere). Si prega di aumentare l'importo.", + "tx_rejected_dust_output_send_all": "Transazione respinta dalle regole di rete, bassa quantità di output (polvere). Si prega di controllare il saldo delle monete selezionate sotto controllo delle monete.", + "tx_rejected_vout_negative": "Non abbastanza saldo per pagare le commissioni di questa transazione. Si prega di controllare il saldo delle monete sotto controllo delle monete.", + "tx_wrong_balance_exception": "Non hai abbastanza ${currency} per inviare questo importo.", + "tx_zero_fee_exception": "Impossibile inviare transazioni con 0 tassa. Prova ad aumentare la tariffa o controlla la connessione per le ultime stime.", "unavailable_balance": "Saldo non disponibile", "unavailable_balance_description": "Saldo non disponibile: questo totale include i fondi bloccati nelle transazioni in sospeso e quelli che hai congelato attivamente nelle impostazioni di controllo delle monete. I saldi bloccati diventeranno disponibili una volta completate le rispettive transazioni, mentre i saldi congelati rimarranno inaccessibili per le transazioni finché non deciderai di sbloccarli.", "unconfirmed": "Saldo non confermato", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 9f8ddbe159..c3a025a7c4 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -43,6 +43,7 @@ "already_have_account": "すでにアカウントをお持ちですか?", "always": "いつも", "amount": "量: ", + "amount_is_below_minimum_limit": "手数料後の残高は、交換に必要な最低額(${min})よりも少なくなります", "amount_is_estimate": "受け取り金額は見積もりです", "amount_is_guaranteed": "受け取り金額は保証されています", "and": "と", @@ -713,6 +714,16 @@ "transactions": "取引", "transactions_by_date": "日付ごとの取引", "trusted": "信頼できる", + "tx_commit_exception_no_dust_on_change": "この金額ではトランザクションは拒否されます。 これらのコインを使用すると、おつりなしの ${min} またはおつりを返す ${max} を送信できます。", + "tx_commit_failed": "トランザクションコミットは失敗しました。サポートに連絡してください。", + "tx_no_dust_exception": "トランザクションは、小さすぎる金額を送信することにより拒否されます。量を増やしてみてください。", + "tx_not_enough_inputs_exception": "利用可能な入力が十分ではありません。コイン制御下でもっと選択してください", + "tx_rejected_dust_change": "ネットワークルール、低い変更量(ほこり)によって拒否されたトランザクション。すべてを送信するか、金額を減らしてみてください。", + "tx_rejected_dust_output": "ネットワークルール、低出力量(ダスト)によって拒否されたトランザクション。金額を増やしてください。", + "tx_rejected_dust_output_send_all": "ネットワークルール、低出力量(ダスト)によって拒否されたトランザクション。コイン管理下で選択されたコインのバランスを確認してください。", + "tx_rejected_vout_negative": "この取引の料金に支払うのに十分な残高はありません。コイン制御下のコインのバランスを確認してください。", + "tx_wrong_balance_exception": "この金額を送信するのに十分な${currency}はありません。", + "tx_zero_fee_exception": "0料金でトランザクションを送信できません。レートを上げて、最新の見積もりについて接続を確認してみてください。", "unavailable_balance": "利用できない残高", "unavailable_balance_description": "利用不可能な残高: この合計には、保留中のトランザクションにロックされている資金と、コイン管理設定でアクティブに凍結した資金が含まれます。ロックされた残高は、それぞれの取引が完了すると利用可能になりますが、凍結された残高は、凍結を解除するまで取引にアクセスできません。", "unconfirmed": "残高未確認", @@ -790,4 +801,4 @@ "you_will_get": "に変換", "you_will_send": "から変換", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 757dc6cb36..d2b48913b6 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -43,6 +43,7 @@ "already_have_account": "이미 계정이 있습니까?", "always": "언제나", "amount": "양: ", + "amount_is_below_minimum_limit": "수수료 후 잔액은 Exchange (${min})에 필요한 최소 금액보다 적습니다.", "amount_is_estimate": "수신 금액은 견적입니다", "amount_is_guaranteed": "수령 금액이 보장됩니다.", "and": "그리고", @@ -713,6 +714,16 @@ "transactions": "업무", "transactions_by_date": "날짜 별 거래", "trusted": "신뢰할 수 있는", + "tx_commit_exception_no_dust_on_change": "이 금액으로 거래가 거부되었습니다. 이 코인을 사용하면 거스름돈 없이 ${min}를 보내거나 거스름돈을 반환하는 ${max}를 보낼 수 있습니다.", + "tx_commit_failed": "거래 커밋이 실패했습니다. 지원에 연락하십시오.", + "tx_no_dust_exception": "너무 작은 금액을 보내면 거래가 거부됩니다. 금액을 늘리십시오.", + "tx_not_enough_inputs_exception": "사용 가능한 입력이 충분하지 않습니다. 코인 컨트롤에서 더 많은 것을 선택하십시오", + "tx_rejected_dust_change": "네트워크 규칙, 낮은 변경 금액 (먼지)에 의해 거부 된 거래. 전부를 보내거나 금액을 줄이십시오.", + "tx_rejected_dust_output": "네트워크 규칙, 낮은 출력 금액 (먼지)에 의해 거부 된 거래. 금액을 늘리십시오.", + "tx_rejected_dust_output_send_all": "네트워크 규칙, 낮은 출력 금액 (먼지)에 의해 거부 된 거래. 동전 제어에서 선택한 동전의 균형을 확인하십시오.", + "tx_rejected_vout_negative": "이 거래 수수료를 지불하기에 잔액이 충분하지 않습니다. 동전 통제하에 동전의 균형을 확인하십시오.", + "tx_wrong_balance_exception": "이 금액을 보내기에 충분한 ${currency}가 충분하지 않습니다.", + "tx_zero_fee_exception": "0 수수료로 거래를 보낼 수 없습니다. 최신 견적에 대해서는 속도를 높이거나 연결을 확인하십시오.", "unavailable_balance": "사용할 수 없는 잔액", "unavailable_balance_description": "사용할 수 없는 잔액: 이 총계에는 보류 중인 거래에 잠겨 있는 자금과 코인 관리 설정에서 적극적으로 동결된 자금이 포함됩니다. 잠긴 잔액은 해당 거래가 완료되면 사용할 수 있게 되며, 동결된 잔액은 동결을 해제하기 전까지 거래에 액세스할 수 없습니다.", "unconfirmed": "확인되지 않은 잔액", @@ -791,4 +802,4 @@ "you_will_send": "다음에서 변환", "YY": "YY", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 5b622c234d..c7312b2905 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -43,6 +43,7 @@ "already_have_account": "အကောင့်ရှိပြီးသားလား?", "always": "အမြဲတမ်း", "amount": "ပမာဏ:", + "amount_is_below_minimum_limit": "ငွေလဲလှယ်ရန်လိုအပ်သည့်အနိမ့်ဆုံးပမာဏထက်လျော့နည်းသွားပြီးသည့်နောက်ငွေလက်ကျန်ငွေပမာဏသည်ငွေလဲလှယ်မှုအတွက်လိုအပ်သည့်အနိမ့်ဆုံးပမာဏထက်နည်းသည် (${min})", "amount_is_estimate": "ရရှိသည့်ပမာဏသည် ခန့်မှန်းချက်တစ်ခုဖြစ်သည်။", "amount_is_guaranteed": "ရရှိသည့်ပမာဏကို အာမခံပါသည်။", "and": "နှင့်", @@ -712,6 +713,16 @@ "transactions": "ငွေပေးငွေယူ", "transactions_by_date": "ရက်စွဲအလိုက် ငွေလွှဲမှုများ", "trusted": "ယုံတယ်။", + "tx_commit_exception_no_dust_on_change": "အဆိုပါငွေပေးငွေယူကဒီပမာဏနှင့်အတူပယ်ချခံရသည်။ ဤဒင်္ဂါးပြားများနှင့်အတူပြောင်းလဲမှုကိုပြန်လည်ပြောင်းလဲခြင်းသို့မဟုတ် ${min} မပါဘဲ ${max} ပေးပို့နိုင်သည်။", + "tx_commit_failed": "ငွေပေးငွေယူကျူးလွန်မှုပျက်ကွက်။ ကျေးဇူးပြုပြီးပံ့ပိုးမှုဆက်သွယ်ပါ။", + "tx_no_dust_exception": "ငွေပမာဏကိုသေးငယ်လွန်းသောငွေပမာဏကိုပေးပို့ခြင်းဖြင့်ပယ်ဖျက်ခြင်းကိုငြင်းပယ်သည်။ ကျေးဇူးပြုပြီးငွေပမာဏကိုတိုးမြှင့်ကြိုးစားပါ။", + "tx_not_enough_inputs_exception": "အလုံအလောက်သွင်းအားစုများမလုံလောက်။ ကျေးဇူးပြုပြီးဒင်္ဂါးပြားထိန်းချုပ်မှုအောက်တွင်ပိုမိုရွေးချယ်ပါ", + "tx_rejected_dust_change": "Network စည်းမျဉ်းစည်းကမ်းများဖြင့်ပယ်ဖျက်ခြင်းသည် Network စည်းမျဉ်းစည်းကမ်းများဖြင့်ငြင်းပယ်ခြင်း, အားလုံးပေးပို့ခြင်းသို့မဟုတ်ငွေပမာဏကိုလျှော့ချကြိုးစားပါ။", + "tx_rejected_dust_output": "Network စည်းမျဉ်းစည်းကမ်းများဖြင့် ပယ်ချ. ငွေပေးချေမှုသည် output output (ဖုန်မှုန့်) ဖြင့်ပယ်ချခဲ့သည်။ ကျေးဇူးပြုပြီးငွေပမာဏကိုတိုးမြှင့်ပေးပါ။", + "tx_rejected_dust_output_send_all": "Network စည်းမျဉ်းစည်းကမ်းများဖြင့် ပယ်ချ. ငွေပေးချေမှုသည် output output (ဖုန်မှုန့်) ဖြင့်ပယ်ချခဲ့သည်။ ဒင်္ဂါးပြားထိန်းချုပ်မှုအောက်တွင်ရွေးချယ်ထားသောဒင်္ဂါးများ၏လက်ကျန်ငွေကိုစစ်ဆေးပါ။", + "tx_rejected_vout_negative": "ဒီငွေပေးငွေယူရဲ့အခကြေးငွေအတွက်ပေးဆောင်ဖို့လုံလောက်တဲ့ဟန်ချက်မလုံလောက်။ ဒင်္ဂါးပြား၏လက်ကျန်ငွေလက်ကျန်ငွေကိုစစ်ဆေးပါ။", + "tx_wrong_balance_exception": "ဤငွေပမာဏကိုပေးပို့ရန်သင့်တွင် ${currency} မရှိပါ။", + "tx_zero_fee_exception": "0 ကြေးနှင့်အတူငွေပေးငွေယူပေးပို့လို့မရပါဘူး။ နှုန်းကိုတိုးမြှင့်ခြင်းသို့မဟုတ်နောက်ဆုံးခန့်မှန်းချက်များအတွက်သင်၏ connection ကိုစစ်ဆေးပါ။", "unavailable_balance": "လက်ကျန်ငွေ မရရှိနိုင်ပါ။", "unavailable_balance_description": "မရရှိနိုင်သော လက်ကျန်ငွေ- ဤစုစုပေါင်းတွင် ဆိုင်းငံ့ထားသော ငွေပေးငွေယူများတွင် သော့ခတ်ထားသော ငွေကြေးများနှင့် သင်၏ coin ထိန်းချုပ်မှုဆက်တင်များတွင် သင် တက်ကြွစွာ အေးခဲထားသော ငွေများ ပါဝင်သည်။ သော့ခတ်ထားသော လက်ကျန်ငွေများကို ၎င်းတို့၏ သက်ဆိုင်ရာ ငွေပေးငွေယူများ ပြီးမြောက်သည်နှင့် တပြိုင်နက် ရရှိနိုင်မည်ဖြစ်ပြီး၊ အေးခဲထားသော လက်ကျန်များကို ၎င်းတို့အား ပြန်ဖြုတ်ရန် သင်ဆုံးဖြတ်သည်အထိ ငွေပေးငွေယူများအတွက် ဆက်လက်၍မရနိုင်ပါ။", "unconfirmed": "အတည်မပြုနိုင်သော လက်ကျန်ငွေ", @@ -789,4 +800,4 @@ "you_will_get": "သို့ပြောင်းပါ။", "you_will_send": "မှပြောင်းပါ။", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 121ade7605..86881452e3 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -43,6 +43,7 @@ "already_have_account": "Heb je al een account?", "always": "altijd", "amount": "Bedrag: ", + "amount_is_below_minimum_limit": "Uw saldo na vergoedingen zou lager zijn dan het minimale bedrag dat nodig is voor de uitwisseling (${min})", "amount_is_estimate": "Het ontvangen bedrag is een schatting", "amount_is_guaranteed": "Het ontvangen bedrag is gegarandeerd", "and": "en", @@ -712,6 +713,16 @@ "transactions": "Transacties", "transactions_by_date": "Transacties op datum", "trusted": "vertrouwd", + "tx_commit_exception_no_dust_on_change": "De transactie wordt afgewezen met dit bedrag. Met deze munten kunt u ${min} verzenden zonder verandering of ${max} die wijziging retourneert.", + "tx_commit_failed": "Transactiebewissing is mislukt. Neem contact op met de ondersteuning.", + "tx_no_dust_exception": "De transactie wordt afgewezen door een te klein bedrag te verzenden. Probeer het bedrag te verhogen.", + "tx_not_enough_inputs_exception": "Niet genoeg ingangen beschikbaar. Selecteer meer onder muntenbesturing", + "tx_rejected_dust_change": "Transactie afgewezen door netwerkregels, laag wijzigingsbedrag (stof). Probeer alles te verzenden of het bedrag te verminderen.", + "tx_rejected_dust_output": "Transactie afgewezen door netwerkregels, laag outputbedrag (stof). Verhoog het bedrag.", + "tx_rejected_dust_output_send_all": "Transactie afgewezen door netwerkregels, laag outputbedrag (stof). Controleer het saldo van munten die zijn geselecteerd onder muntcontrole.", + "tx_rejected_vout_negative": "Niet genoeg saldo om te betalen voor de kosten van deze transactie. Controleer het saldo van munten onder muntcontrole.", + "tx_wrong_balance_exception": "Je hebt niet genoeg ${currency} om dit bedrag te verzenden.", + "tx_zero_fee_exception": "Kan geen transactie verzenden met 0 kosten. Probeer het tarief te verhogen of uw verbinding te controleren op de laatste schattingen.", "unavailable_balance": "Onbeschikbaar saldo", "unavailable_balance_description": "Niet-beschikbaar saldo: Dit totaal omvat het geld dat is vergrendeld in lopende transacties en het geld dat u actief hebt bevroren in uw muntcontrole-instellingen. Vergrendelde saldi komen beschikbaar zodra de betreffende transacties zijn voltooid, terwijl bevroren saldi ontoegankelijk blijven voor transacties totdat u besluit ze weer vrij te geven.", "unconfirmed": "Onbevestigd saldo", @@ -790,4 +801,4 @@ "you_will_get": "Converteren naar", "you_will_send": "Converteren van", "yy": "JJ" -} \ No newline at end of file +} diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 88fbfb6e56..9948201233 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -43,6 +43,7 @@ "already_have_account": "Masz już konto?", "always": "zawsze", "amount": "Ilość: ", + "amount_is_below_minimum_limit": "Twoje saldo po opłatach byłoby mniejsze niż minimalna kwota potrzebna do wymiany (${min})", "amount_is_estimate": "Otrzymana kwota jest wartością szacunkową", "amount_is_guaranteed": "Otrzymana kwota jest gwarantowana", "and": "i", @@ -712,6 +713,16 @@ "transactions": "Transakcje", "transactions_by_date": "Transakcje według daty", "trusted": "Zaufany", + "tx_commit_exception_no_dust_on_change": "Transakcja jest odrzucana z tą kwotą. Za pomocą tych monet możesz wysłać ${min} bez zmiany lub ${max}, które zwraca zmianę.", + "tx_commit_failed": "Zatwierdzenie transakcji nie powiodło się. Skontaktuj się z obsługą.", + "tx_no_dust_exception": "Transakcja jest odrzucana przez wysyłanie zbyt małej ilości. Spróbuj zwiększyć kwotę.", + "tx_not_enough_inputs_exception": "Za mało dostępnych danych wejściowych. Wybierz więcej pod kontrolą monet", + "tx_rejected_dust_change": "Transakcja odrzucona według reguł sieciowych, niska ilość zmiany (kurz). Spróbuj wysłać całość lub zmniejszyć kwotę.", + "tx_rejected_dust_output": "Transakcja odrzucona według reguł sieciowych, niskiej ilości wyjściowej (pyłu). Zwiększ kwotę.", + "tx_rejected_dust_output_send_all": "Transakcja odrzucona według reguł sieciowych, niskiej ilości wyjściowej (pyłu). Sprawdź saldo monet wybranych pod kontrolą monet.", + "tx_rejected_vout_negative": "Za mało salda, aby zapłacić za opłaty tej transakcji. Sprawdź saldo monet pod kontrolą monet.", + "tx_wrong_balance_exception": "Nie masz wystarczającej ilości ${currency}, aby wysłać tę kwotę.", + "tx_zero_fee_exception": "Nie można wysłać transakcji z 0 opłatą. Spróbuj zwiększyć stawkę lub sprawdzić połączenie w poszukiwaniu najnowszych szacunków.", "unavailable_balance": "Niedostępne saldo", "unavailable_balance_description": "Niedostępne saldo: Suma ta obejmuje środki zablokowane w transakcjach oczekujących oraz te, które aktywnie zamroziłeś w ustawieniach kontroli monet. Zablokowane salda staną się dostępne po zakończeniu odpowiednich transakcji, natomiast zamrożone salda pozostaną niedostępne dla transakcji, dopóki nie zdecydujesz się ich odblokować.", "unconfirmed": "Niepotwierdzone saldo", @@ -789,4 +800,4 @@ "you_will_get": "Konwertuj na", "you_will_send": "Konwertuj z", "yy": "RR" -} \ No newline at end of file +} diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 7487499efb..cec7b8c11a 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -43,6 +43,7 @@ "already_have_account": "Já tem uma conta?", "always": "sempre", "amount": "Quantia: ", + "amount_is_below_minimum_limit": "Seu saldo após as taxas seria menor que o valor mínimo necessário para a troca (${min})", "amount_is_estimate": "O valor a ser recebido informado acima é uma estimativa", "amount_is_guaranteed": "O valor recebido é garantido", "and": "e", @@ -714,6 +715,16 @@ "transactions": "Transações", "transactions_by_date": "Transações por data", "trusted": "confiável", + "tx_commit_exception_no_dust_on_change": "A transação é rejeitada com esse valor. Com essas moedas, você pode enviar ${min} sem alteração ou ${max} que retorna alterações.", + "tx_commit_failed": "A confirmação da transação falhou. Entre em contato com o suporte.", + "tx_no_dust_exception": "A transação é rejeitada enviando uma quantia pequena demais. Por favor, tente aumentar o valor.", + "tx_not_enough_inputs_exception": "Não há entradas disponíveis. Selecione mais sob controle de moedas", + "tx_rejected_dust_change": "Transação rejeitada pelas regras de rede, baixa quantidade de troco (poeira). Tente enviar tudo ou reduzir o valor.", + "tx_rejected_dust_output": "Transação rejeitada por regras de rede, baixa quantidade de saída (poeira). Por favor, aumente o valor.", + "tx_rejected_dust_output_send_all": "Transação rejeitada por regras de rede, baixa quantidade de saída (poeira). Por favor, verifique o saldo de moedas selecionadas sob controle de moedas.", + "tx_rejected_vout_negative": "Não há saldo suficiente para pagar as taxas desta transação. Por favor, verifique o saldo de moedas sob controle de moedas.", + "tx_wrong_balance_exception": "Você não tem o suficiente ${currency} para enviar esse valor.", + "tx_zero_fee_exception": "Não pode enviar transação com taxa 0. Tente aumentar a taxa ou verificar sua conexão para obter as estimativas mais recentes.", "unavailable_balance": "Saldo indisponível", "unavailable_balance_description": "Saldo Indisponível: Este total inclui fundos bloqueados em transações pendentes e aqueles que você congelou ativamente nas configurações de controle de moedas. Os saldos bloqueados ficarão disponíveis assim que suas respectivas transações forem concluídas, enquanto os saldos congelados permanecerão inacessíveis para transações até que você decida descongelá-los.", "unconfirmed": "Saldo não confirmado", @@ -792,4 +803,4 @@ "you_will_get": "Converter para", "you_will_send": "Converter de", "yy": "aa" -} \ No newline at end of file +} diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 443daa588f..4ae5bb129a 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -43,6 +43,7 @@ "already_have_account": "У вас уже есть аккаунт?", "always": "всегда", "amount": "Сумма: ", + "amount_is_below_minimum_limit": "Ваш баланс после сборов будет меньше, чем минимальная сумма, необходимая для обмена (${min}))", "amount_is_estimate": "Полученная сумма является приблизительной", "amount_is_guaranteed": "Полученная сумма гарантирована", "and": "и", @@ -713,6 +714,16 @@ "transactions": "Транзакции", "transactions_by_date": "Сортировать по дате", "trusted": "доверенный", + "tx_commit_exception_no_dust_on_change": "Транзакция отклоняется с этой суммой. С этими монетами вы можете отправлять ${min} без изменения или ${max}, которые возвращают изменение.", + "tx_commit_failed": "Комплект транзакции не удался. Пожалуйста, свяжитесь с поддержкой.", + "tx_no_dust_exception": "Транзакция отклоняется путем отправки слишком маленькой суммы. Пожалуйста, попробуйте увеличить сумму.", + "tx_not_enough_inputs_exception": "Недостаточно входов доступны. Пожалуйста, выберите больше под контролем монет", + "tx_rejected_dust_change": "Транзакция отклоняется в соответствии с правилами сети, низкой суммой изменений (пыль). Попробуйте отправить все или уменьшить сумму.", + "tx_rejected_dust_output": "Транзакция отклоняется в соответствии с правилами сети, низкой выходной суммой (пыль). Пожалуйста, увеличьте сумму.", + "tx_rejected_dust_output_send_all": "Транзакция отклоняется в соответствии с правилами сети, низкой выходной суммой (пыль). Пожалуйста, проверьте баланс монет, выбранных под контролем монет.", + "tx_rejected_vout_negative": "Недостаточно баланс, чтобы оплатить плату этой транзакции. Пожалуйста, проверьте баланс монет под контролем монет.", + "tx_wrong_balance_exception": "У вас не хватает ${currency}, чтобы отправить эту сумму.", + "tx_zero_fee_exception": "Не может отправить транзакцию с платой 0. Попробуйте увеличить ставку или проверить соединение на наличие последних оценок.", "unavailable_balance": "Недоступный баланс", "unavailable_balance_description": "Недоступный баланс: в эту сумму входят средства, заблокированные в ожидающих транзакциях, и средства, которые вы активно заморозили в настройках управления монетами. Заблокированные балансы станут доступны после завершения соответствующих транзакций, а замороженные балансы останутся недоступными для транзакций, пока вы не решите их разморозить.", "unconfirmed": "Неподтвержденный баланс", @@ -790,4 +801,4 @@ "you_will_get": "Конвертировать в", "you_will_send": "Конвертировать из", "yy": "ГГ" -} \ No newline at end of file +} diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index dc864c39c2..6c8634e83a 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -43,6 +43,7 @@ "already_have_account": "มีบัญชีอยู่แล้ว?", "always": "เสมอ", "amount": "จำนวน: ", + "amount_is_below_minimum_limit": "ยอดคงเหลือหลังจากค่าธรรมเนียมของคุณจะน้อยกว่าจำนวนเงินขั้นต่ำที่จำเป็นสำหรับการแลกเปลี่ยน (${min})", "amount_is_estimate": "จำนวนที่จะได้รับเป็นการประมาณการ", "amount_is_guaranteed": "จำนวนที่จะได้รับมีการรับประกัน", "and": "และ", @@ -712,6 +713,16 @@ "transactions": "ธุรกรรม", "transactions_by_date": "ธุรกรรมตามวันที่", "trusted": "มั่นคง", + "tx_commit_exception_no_dust_on_change": "ธุรกรรมถูกปฏิเสธด้วยจำนวนเงินนี้ ด้วยเหรียญเหล่านี้คุณสามารถส่ง ${min} โดยไม่ต้องเปลี่ยนแปลงหรือ ${max} ที่ส่งคืนการเปลี่ยนแปลง", + "tx_commit_failed": "การทำธุรกรรมล้มเหลว กรุณาติดต่อฝ่ายสนับสนุน", + "tx_no_dust_exception": "การทำธุรกรรมถูกปฏิเสธโดยการส่งจำนวนน้อยเกินไป โปรดลองเพิ่มจำนวนเงิน", + "tx_not_enough_inputs_exception": "มีอินพุตไม่เพียงพอ โปรดเลือกเพิ่มเติมภายใต้การควบคุมเหรียญ", + "tx_rejected_dust_change": "ธุรกรรมถูกปฏิเสธโดยกฎเครือข่ายจำนวนการเปลี่ยนแปลงต่ำ (ฝุ่น) ลองส่งทั้งหมดหรือลดจำนวนเงิน", + "tx_rejected_dust_output": "การทำธุรกรรมถูกปฏิเสธโดยกฎเครือข่ายจำนวนเอาต์พุตต่ำ (ฝุ่น) โปรดเพิ่มจำนวนเงิน", + "tx_rejected_dust_output_send_all": "การทำธุรกรรมถูกปฏิเสธโดยกฎเครือข่ายจำนวนเอาต์พุตต่ำ (ฝุ่น) โปรดตรวจสอบยอดคงเหลือของเหรียญที่เลือกภายใต้การควบคุมเหรียญ", + "tx_rejected_vout_negative": "ยอดคงเหลือไม่เพียงพอที่จะจ่ายสำหรับค่าธรรมเนียมการทำธุรกรรมนี้ โปรดตรวจสอบยอดคงเหลือของเหรียญภายใต้การควบคุมเหรียญ", + "tx_wrong_balance_exception": "คุณมีไม่เพียงพอ ${currency} ในการส่งจำนวนนี้", + "tx_zero_fee_exception": "ไม่สามารถส่งธุรกรรมด้วยค่าธรรมเนียม 0 ลองเพิ่มอัตราหรือตรวจสอบการเชื่อมต่อของคุณสำหรับการประมาณการล่าสุด", "unavailable_balance": "ยอดคงเหลือไม่พร้อมใช้งาน", "unavailable_balance_description": "ยอดคงเหลือที่ไม่พร้อมใช้งาน: ยอดรวมนี้รวมถึงเงินทุนที่ถูกล็อคในการทำธุรกรรมที่รอดำเนินการและที่คุณได้แช่แข็งไว้ในการตั้งค่าการควบคุมเหรียญของคุณ ยอดคงเหลือที่ถูกล็อคจะพร้อมใช้งานเมื่อธุรกรรมที่เกี่ยวข้องเสร็จสมบูรณ์ ในขณะที่ยอดคงเหลือที่แช่แข็งจะไม่สามารถเข้าถึงได้สำหรับธุรกรรมจนกว่าคุณจะตัดสินใจยกเลิกการแช่แข็ง", "unconfirmed": "ยอดคงเหลือที่ไม่ได้รับการยืนยัน", @@ -789,4 +800,4 @@ "you_will_get": "แปลงเป็น", "you_will_send": "แปลงจาก", "yy": "ปี" -} \ No newline at end of file +} diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 4abd6472ff..4d88fe640d 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -43,6 +43,7 @@ "already_have_account": "Mayroon nang account?", "always": "Palagi", "amount": "Halaga:", + "amount_is_below_minimum_limit": "Ang iyong balanse pagkatapos ng mga bayarin ay mas mababa kaysa sa minimum na halaga na kinakailangan para sa palitan (${min})", "amount_is_estimate": "Ang natanggap na halaga ay isang pagtatantya", "amount_is_guaranteed": "Ang natanggap na halaga ay garantisado", "and": "at", @@ -712,6 +713,16 @@ "transactions": "Mga Transaksyon", "transactions_by_date": "Mga Transaksyon ayon sa Petsa", "trusted": "Pinagkakatiwalaan", + "tx_commit_exception_no_dust_on_change": "Ang transaksyon ay tinanggihan sa halagang ito. Sa mga barya na ito maaari kang magpadala ng ${min} nang walang pagbabago o ${max} na nagbabalik ng pagbabago.", + "tx_commit_failed": "Nabigo ang transaksyon sa transaksyon. Mangyaring makipag -ugnay sa suporta.", + "tx_no_dust_exception": "Ang transaksyon ay tinanggihan sa pamamagitan ng pagpapadala ng isang maliit na maliit. Mangyaring subukang dagdagan ang halaga.", + "tx_not_enough_inputs_exception": "Hindi sapat na magagamit ang mga input. Mangyaring pumili ng higit pa sa ilalim ng control ng barya", + "tx_rejected_dust_change": "Ang transaksyon na tinanggihan ng mga patakaran sa network, mababang halaga ng pagbabago (alikabok). Subukang ipadala ang lahat o bawasan ang halaga.", + "tx_rejected_dust_output": "Ang transaksyon na tinanggihan ng mga patakaran sa network, mababang halaga ng output (alikabok). Mangyaring dagdagan ang halaga.", + "tx_rejected_dust_output_send_all": "Ang transaksyon na tinanggihan ng mga patakaran sa network, mababang halaga ng output (alikabok). Mangyaring suriin ang balanse ng mga barya na napili sa ilalim ng kontrol ng barya.", + "tx_rejected_vout_negative": "Hindi sapat na balanse upang magbayad para sa mga bayarin ng transaksyon na ito. Mangyaring suriin ang balanse ng mga barya sa ilalim ng kontrol ng barya.", + "tx_wrong_balance_exception": "Wala kang sapat na ${currency} upang maipadala ang halagang ito.", + "tx_zero_fee_exception": "Hindi maaaring magpadala ng transaksyon na may 0 bayad. Subukan ang pagtaas ng rate o pagsuri sa iyong koneksyon para sa pinakabagong mga pagtatantya.", "unavailable_balance": "Hindi available na balanse", "unavailable_balance_description": "Hindi Available na Balanse: Kasama sa kabuuang ito ang mga pondong naka-lock sa mga nakabinbing transaksyon at ang mga aktibong na-freeze mo sa iyong mga setting ng kontrol ng coin. Magiging available ang mga naka-lock na balanse kapag nakumpleto na ang kani-kanilang mga transaksyon, habang ang mga nakapirming balanse ay nananatiling hindi naa-access para sa mga transaksyon hanggang sa magpasya kang i-unfreeze ang mga ito.", "unconfirmed": "Hindi nakumpirma na balanse", @@ -789,4 +800,4 @@ "you_will_get": "Mag -convert sa", "you_will_send": "I -convert mula sa", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index c615864a7a..599d5bf67c 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -43,6 +43,7 @@ "already_have_account": "Zaten bir hesabınız var mı?", "always": "Her Zaman", "amount": "Miktar: ", + "amount_is_below_minimum_limit": "Ücretlerden sonra bakiyeniz, değişim için gereken minimum miktardan daha az olur (${min})", "amount_is_estimate": "Alacağınız tutar tahminidir", "amount_is_guaranteed": "Alacağınız tutar garantilidir", "and": "ve", @@ -712,6 +713,16 @@ "transactions": "İşlemler", "transactions_by_date": "Tarihe göre transferler", "trusted": "Güvenilir", + "tx_commit_exception_no_dust_on_change": "İşlem bu miktarla reddedilir. Bu madeni paralarla değişiklik yapmadan ${min} veya değişikliği döndüren ${max} gönderebilirsiniz.", + "tx_commit_failed": "İşlem taahhüdü başarısız oldu. Lütfen Destek ile iletişime geçin.", + "tx_no_dust_exception": "İşlem, çok küçük bir miktar gönderilerek reddedilir. Lütfen miktarı artırmayı deneyin.", + "tx_not_enough_inputs_exception": "Yeterli giriş yok. Lütfen madeni para kontrolü altında daha fazlasını seçin", + "tx_rejected_dust_change": "Ağ kurallarına göre reddedilen işlem, düşük değişim miktarı (toz). Tümünü göndermeyi veya miktarı azaltmayı deneyin.", + "tx_rejected_dust_output": "Ağ kurallarına göre reddedilen işlem, düşük çıktı miktarı (toz). Lütfen miktarı artırın.", + "tx_rejected_dust_output_send_all": "Ağ kurallarına göre reddedilen işlem, düşük çıktı miktarı (toz). Lütfen madeni para kontrolü altında seçilen madeni para dengesini kontrol edin.", + "tx_rejected_vout_negative": "Bu işlem ücretleri için ödeme yapmak için yeterli bakiye yok. Lütfen madeni para kontrolü altındaki madeni para dengesini kontrol edin.", + "tx_wrong_balance_exception": "Bu miktarı göndermek için yeterli ${currency} yok.", + "tx_zero_fee_exception": "0 ücret ile işlem gönderilemez. En son tahminler için oranı artırmayı veya bağlantınızı kontrol etmeyi deneyin.", "unavailable_balance": "Kullanılamayan bakiye", "unavailable_balance_description": "Kullanılamayan Bakiye: Bu toplam, bekleyen işlemlerde kilitlenen fonları ve jeton kontrol ayarlarınızda aktif olarak dondurduğunuz fonları içerir. Kilitli bakiyeler, ilgili işlemleri tamamlandıktan sonra kullanılabilir hale gelir; dondurulmuş bakiyeler ise siz onları dondurmaya karar verene kadar işlemler için erişilemez durumda kalır.", "unconfirmed": "Onaylanmamış Bakiye", @@ -789,4 +800,4 @@ "you_will_get": "Biçimine dönüştür:", "you_will_send": "Biçiminden dönüştür:", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 0fe324d116..b0902aadaa 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -43,6 +43,7 @@ "already_have_account": "Вже є обліковий запис?", "always": "Завжди", "amount": "Сума: ", + "amount_is_below_minimum_limit": "Ваш баланс після зборів буде меншим, ніж мінімальна сума, необхідна для обміну (${min})", "amount_is_estimate": "Отримана сума є приблизною", "amount_is_guaranteed": "Отримана сума є гарантованою", "and": "і", @@ -713,6 +714,16 @@ "transactions": "Транзакції", "transactions_by_date": "Сортувати по даті", "trusted": "довіряють", + "tx_commit_exception_no_dust_on_change": "Транзакція відхилена цією сумою. За допомогою цих монет ви можете надіслати ${min} без змін або ${max}, що повертає зміни.", + "tx_commit_failed": "Транзакційна комісія не вдалося. Будь ласка, зв'яжіться з підтримкою.", + "tx_no_dust_exception": "Угода відхиляється, відправивши суму занадто мала. Будь ласка, спробуйте збільшити суму.", + "tx_not_enough_inputs_exception": "Недостатньо доступних входів. Виберіть більше під контролем монети", + "tx_rejected_dust_change": "Транзакція відхилена за допомогою мережевих правил, низька кількість змін (пил). Спробуйте надіслати все або зменшити суму.", + "tx_rejected_dust_output": "Транзакція відхилена за допомогою мережевих правил, низька кількість вихідної кількості (пил). Будь ласка, збільшуйте суму.", + "tx_rejected_dust_output_send_all": "Транзакція відхилена за допомогою мережевих правил, низька кількість вихідної кількості (пил). Будь ласка, перевірте баланс монет, вибраних під контролем монет.", + "tx_rejected_vout_negative": "Недостатньо балансу, щоб оплатити плату за цю транзакцію. Будь ласка, перевірте баланс монет під контролем монет.", + "tx_wrong_balance_exception": "У вас недостатньо ${currency}, щоб надіслати цю суму.", + "tx_zero_fee_exception": "Не вдається відправити транзакцію з 0 платежами. Спробуйте збільшити ставку або перевірити з'єднання на останні оцінки.", "unavailable_balance": "Недоступний баланс", "unavailable_balance_description": "Недоступний баланс: ця сума включає кошти, заблоковані в незавершених транзакціях, і ті, які ви активно заморозили в налаштуваннях контролю монет. Заблоковані баланси стануть доступними після завершення відповідних транзакцій, тоді як заморожені баланси залишаються недоступними для транзакцій, доки ви не вирішите їх розморозити.", "unconfirmed": "Непідтверджений баланс", @@ -790,4 +801,4 @@ "you_will_get": "Конвертувати в", "you_will_send": "Конвертувати з", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 9de85a6832..1d4d98f45a 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -43,6 +43,7 @@ "already_have_account": "پہلے سے ہی اکاؤنٹ ہے؟", "always": "ہمیشہ", "amount": "رقم کی رقم:", + "amount_is_below_minimum_limit": "فیس کے بعد آپ کا توازن تبادلہ کے لئے درکار کم سے کم رقم سے کم ہوگا (${min}", "amount_is_estimate": "وصول شدہ رقم ایک تخمینہ ہے۔", "amount_is_guaranteed": "وصول شدہ رقم کی ضمانت ہے۔", "and": "اور", @@ -714,6 +715,16 @@ "transactions": "لین دین", "transactions_by_date": "تاریخ کے لحاظ سے لین دین", "trusted": "قابل اعتماد", + "tx_commit_exception_no_dust_on_change": "اس رقم سے لین دین کو مسترد کردیا گیا ہے۔ ان سککوں کے ذریعہ آپ بغیر کسی تبدیلی کے ${min} یا ${max} بھیج سکتے ہیں جو لوٹتے ہیں۔", + "tx_commit_failed": "ٹرانزیکشن کمٹ ناکام ہوگیا۔ براہ کرم سپورٹ سے رابطہ کریں۔", + "tx_no_dust_exception": "لین دین کو بہت چھوٹی رقم بھیج کر مسترد کردیا جاتا ہے۔ براہ کرم رقم میں اضافہ کرنے کی کوشش کریں۔", + "tx_not_enough_inputs_exception": "کافی ان پٹ دستیاب نہیں ہے۔ براہ کرم سکے کے کنٹرول میں مزید منتخب کریں", + "tx_rejected_dust_change": "نیٹ ورک کے قواعد ، کم تبدیلی کی رقم (دھول) کے ذریعہ لین دین کو مسترد کردیا گیا۔ سب کو بھیجنے یا رقم کو کم کرنے کی کوشش کریں۔", + "tx_rejected_dust_output": "لین دین کو نیٹ ورک کے قواعد ، کم آؤٹ پٹ رقم (دھول) کے ذریعہ مسترد کردیا گیا۔ براہ کرم رقم میں اضافہ کریں۔", + "tx_rejected_dust_output_send_all": "لین دین کو نیٹ ورک کے قواعد ، کم آؤٹ پٹ رقم (دھول) کے ذریعہ مسترد کردیا گیا۔ براہ کرم سکے کے کنٹرول میں منتخب کردہ سکے کا توازن چیک کریں۔", + "tx_rejected_vout_negative": "اس لین دین کی فیسوں کی ادائیگی کے لئے کافی توازن نہیں ہے۔ براہ کرم سکے کے کنٹرول میں سکے کا توازن چیک کریں۔", + "tx_wrong_balance_exception": "آپ کے پاس یہ رقم بھیجنے کے لئے کافی ${currency} نہیں ہے۔", + "tx_zero_fee_exception": "0 فیس کے ساتھ لین دین نہیں بھیج سکتا۔ شرح کو بڑھانے یا تازہ ترین تخمینے کے ل your اپنے کنکشن کی جانچ پڑتال کرنے کی کوشش کریں۔", "unavailable_balance": "ﺲﻨﻠﯿﺑ ﺏﺎﯿﺘﺳﺩ ﺮﯿﻏ", "unavailable_balance_description": "۔ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﮧﻠﺼﯿﻓ ﺎﮐ ﮯﻧﺮﮐ ﺪﻤﺠﻨﻣ ﻥﺍ ﮟﯿﮩﻧﺍ ﭖﺁ ﮧﮐ ﮏﺗ ﺐﺟ ﮟﯿﮨ ﮯﺘﮨﺭ ﯽﺋﺎﺳﺭ ﻞﺑﺎﻗﺎﻧ ﮏﺗ ﺖﻗﻭ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﻦﯾﺩ ﻦﯿﻟ ﺲﻨﻠﯿﺑ ﺪﻤﺠﻨﻣ ﮧﮐ ﺐﺟ ،ﮯﮔ ﮟﯿﺋﺎﺟ ﻮﮨ ﺏﺎﯿﺘﺳﺩ ﺲﻨﻠﯿﺑ ﻞﻔﻘﻣ ﺪﻌﺑ ﮯﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﻦﯾﺩ ﻦﯿﻟ ﮧﻘﻠﻌﺘﻣ ﮯﮐ ﻥﺍ ۔ﮯﮨ ﺎﮭﮐﺭ ﺮ", "unconfirmed": "غیر تصدیق شدہ بیلنس", @@ -791,4 +802,4 @@ "you_will_get": "میں تبدیل کریں۔", "you_will_send": "سے تبدیل کریں۔", "yy": "YY" -} \ No newline at end of file +} diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 8d85f0d6ee..9128427e55 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -43,6 +43,7 @@ "already_have_account": "Ṣé ẹ ti ní àkáǹtì?", "always": "Ní gbogbo àwọn ìgbà", "amount": "Iye: ", + "amount_is_below_minimum_limit": "Iwontunws.funfun rẹ lẹhin awọn idiyele yoo kere ju iye ti o kere ju nilo fun paṣipaarọ (${min}", "amount_is_estimate": "Ìdíyelé ni iye tó ń bọ̀", "amount_is_guaranteed": "ó di dandan pé owó á wọlé", "and": "àti", @@ -713,6 +714,16 @@ "transactions": "Àwọn àránṣẹ́", "transactions_by_date": "Àwọn àránṣẹ́ t'á ti fi aago ṣa", "trusted": "A ti fọkàn ẹ̀ tán", + "tx_commit_exception_no_dust_on_change": "Iṣowo naa ti kọ pẹlu iye yii. Pẹlu awọn owó wọnyi o le firanṣẹ ${min} laisi ayipada tabi ${max} ni iyipada iyipada.", + "tx_commit_failed": "Idunadura iṣowo kuna. Jọwọ kan si atilẹyin.", + "tx_no_dust_exception": "Iṣowo naa ni kọ nipa fifiranṣẹ iye ti o kere ju. Jọwọ gbiyanju pọ si iye naa.", + "tx_not_enough_inputs_exception": "Ko to awọn titẹsi to. Jọwọ yan diẹ sii labẹ iṣakoso owo", + "tx_rejected_dust_change": "Idunadura kọ nipasẹ awọn ofin nẹtiwọọki, iye iyipada kekere (eruku). Gbiyanju lati firanṣẹ gbogbo rẹ tabi dinku iye.", + "tx_rejected_dust_output": "Idunadura kọ nipasẹ awọn ofin nẹtiwọọki, iye ti o wuwe kekere (eruku). Jọwọ mu iye naa pọ si.", + "tx_rejected_dust_output_send_all": "Idunadura kọ nipasẹ awọn ofin nẹtiwọọki, iye ti o wuwe kekere (eruku). Jọwọ ṣayẹwo dọgbadọgba ti awọn owo ti a yan labẹ iṣakoso owo.", + "tx_rejected_vout_negative": "Iwontunws.funfun ti o to lati sanwo fun awọn idiyele iṣowo yii. Jọwọ ṣayẹwo iwọntunwọnsi ti awọn owo labẹ iṣakoso owo.", + "tx_wrong_balance_exception": "O ko ni to ${currency} lati firanṣẹ iye yii.", + "tx_zero_fee_exception": "Ko le firanṣẹ idunadura pẹlu ọya 0. Gbiyanju jijẹ oṣuwọn tabi ṣayẹwo asopọ rẹ fun awọn iṣiro tuntun.", "unavailable_balance": "Iwontunwonsi ti ko si", "unavailable_balance_description": "Iwontunws.funfun ti ko si: Lapapọ yii pẹlu awọn owo ti o wa ni titiipa ni awọn iṣowo isunmọ ati awọn ti o ti didi ni itara ninu awọn eto iṣakoso owo rẹ. Awọn iwọntunwọnsi titiipa yoo wa ni kete ti awọn iṣowo oniwun wọn ba ti pari, lakoko ti awọn iwọntunwọnsi tio tutunini ko ni iraye si fun awọn iṣowo titi iwọ o fi pinnu lati mu wọn kuro.", "unconfirmed": "A kò tí ì jẹ́rìí ẹ̀", @@ -790,4 +801,4 @@ "you_will_get": "Ṣe pàṣípààrọ̀ sí", "you_will_send": "Ṣe pàṣípààrọ̀ láti", "yy": "Ọd" -} \ No newline at end of file +} diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 4087d96e8b..d9ac86b34d 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -43,6 +43,7 @@ "already_have_account": "已经有账号了?", "always": "总是", "amount": "金额: ", + "amount_is_below_minimum_limit": "您的余额费用将小于交易所所需的最低金额(${min})", "amount_is_estimate": "收款金额为估算值", "amount_is_guaranteed": "保证收到的金额", "and": "和", @@ -712,6 +713,16 @@ "transactions": "交易情况", "transactions_by_date": "按日期交易", "trusted": "值得信赖", + "tx_commit_exception_no_dust_on_change": "交易被此金额拒绝。使用这些硬币,您可以发送${min}无需更改或返回${max}的变化。", + "tx_commit_failed": "交易承诺失败。请联系支持。", + "tx_no_dust_exception": "通过发送太小的金额来拒绝交易。请尝试增加金额。", + "tx_not_enough_inputs_exception": "没有足够的输入。请在硬币控制下选择更多", + "tx_rejected_dust_change": "交易被网络规则拒绝,较低的变化数量(灰尘)。尝试发送全部或减少金额。", + "tx_rejected_dust_output": "交易被网络规则,低输出量(灰尘)拒绝。请增加金额。", + "tx_rejected_dust_output_send_all": "交易被网络规则,低输出量(灰尘)拒绝。请检查在硬币控制下选择的硬币的余额。", + "tx_rejected_vout_negative": "没有足够的余额来支付此交易费用。请检查硬币控制下的硬币余额。", + "tx_wrong_balance_exception": "您没有足够的${currency}来发送此金额。", + "tx_zero_fee_exception": "无法以0费用发送交易。尝试提高速率或检查连接以获取最新估计。", "unavailable_balance": "不可用余额", "unavailable_balance_description": "不可用余额:此总额包括锁定在待处理交易中的资金以及您在硬币控制设置中主动冻结的资金。一旦各自的交易完成,锁定的余额将变得可用,而冻结的余额在您决定解冻之前仍然无法进行交易。", "unconfirmed": "未确认余额", @@ -789,4 +800,4 @@ "you_will_get": "转换到", "you_will_send": "转换自", "yy": "YY" -} \ No newline at end of file +} diff --git a/tool/configure.dart b/tool/configure.dart index 99d1fe8ee1..e24ab20625 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -69,6 +69,7 @@ import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/output_info.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:hive/hive.dart'; import 'package:bitcoin_base/bitcoin_base.dart';"""; From 698c22229109ca4da39269ac96416c7bdc18bcd7 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 29 Mar 2024 20:54:59 +0200 Subject: [PATCH 015/157] Generic fixes (#1348) * Change order of currencies in currency picker * Disable Background sync until implemented properly * remove ability to use device pin in bio auth * Fix condition * Minor fix [skip ci] * make notifications red dot go when opened * Update Frozen coin text color * Update Frozen coin text color * Fetch internal transactions for eth and polygon * Remove debug prints [skip ci] * Fix Camera permission on iOS [skip ci] --------- Co-authored-by: tuxsudo --- cw_core/lib/crypto_currency.dart | 4 +-- cw_ethereum/lib/ethereum_client.dart | 25 +++++++++++++++++++ cw_evm/lib/evm_chain_client.dart | 2 ++ cw_evm/lib/evm_chain_transaction_model.dart | 18 ++++++------- cw_evm/lib/evm_chain_wallet.dart | 4 ++- cw_polygon/lib/polygon_client.dart | 24 ++++++++++++++++++ ios/Podfile | 6 ++--- ios/Podfile.lock | 2 +- lib/entities/background_tasks.dart | 3 ++- lib/entities/biometric_auth.dart | 1 + .../exchange/widgets/exchange_card.dart | 10 ++++---- .../settings/connection_sync_page.dart | 3 +-- .../widgets/unspent_coins_list_item.dart | 12 +++++---- lib/src/widgets/services_updates_widget.dart | 2 +- lib/utils/feature_flag.dart | 1 + 15 files changed, 87 insertions(+), 30 deletions(-) diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 9cebce10ad..f1c1cd8aea 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -38,6 +38,8 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.trx, CryptoCurrency.usdt, CryptoCurrency.usdterc20, + CryptoCurrency.sol, + CryptoCurrency.maticpoly, CryptoCurrency.xlm, CryptoCurrency.xrp, CryptoCurrency.xhv, @@ -50,7 +52,6 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.usdttrc20, CryptoCurrency.hbar, CryptoCurrency.sc, - CryptoCurrency.sol, CryptoCurrency.usdc, CryptoCurrency.usdcsol, CryptoCurrency.zaddr, @@ -61,7 +62,6 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.dcr, CryptoCurrency.kmd, CryptoCurrency.mana, - CryptoCurrency.maticpoly, CryptoCurrency.matic, CryptoCurrency.mkr, CryptoCurrency.near, diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index 929dadf2fd..10dc245d4e 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -41,4 +41,29 @@ class EthereumClient extends EVMChainClient { return []; } } + + @override + Future> fetchInternalTransactions(String address) async { + try { + final response = await httpClient.get(Uri.https("api.etherscan.io", "/api", { + "module": "account", + "action": "txlistinternal", + "address": "0x72067Bf532b21A096D2e2B4953d69554E1a61917", + "apikey": secrets.etherScanApiKey, + })); + + final jsonResponse = json.decode(response.body) as Map; + + if (response.statusCode >= 200 && response.statusCode < 300 && jsonResponse['status'] != 0) { + return (jsonResponse['result'] as List) + .map((e) => EVMChainTransactionModel.fromJson(e as Map, 'ETH')) + .toList(); + } + + return []; + } catch (e) { + log(e.toString()); + return []; + } + } } diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index 5e84ec796a..834e130a36 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -27,6 +27,8 @@ abstract class EVMChainClient { Future> fetchTransactions(String address, {String? contractAddress}); + Future> fetchInternalTransactions(String address); + Uint8List prepareSignedTransactionForSending(Uint8List signedTransaction); //! Common methods across all child classes diff --git a/cw_evm/lib/evm_chain_transaction_model.dart b/cw_evm/lib/evm_chain_transaction_model.dart index a328a2d6d5..dfdeab8f53 100644 --- a/cw_evm/lib/evm_chain_transaction_model.dart +++ b/cw_evm/lib/evm_chain_transaction_model.dart @@ -32,15 +32,15 @@ class EVMChainTransactionModel { factory EVMChainTransactionModel.fromJson(Map json, String defaultSymbol) => EVMChainTransactionModel( date: DateTime.fromMillisecondsSinceEpoch(int.parse(json["timeStamp"]) * 1000), - hash: json["hash"], - from: json["from"], - to: json["to"], - amount: BigInt.parse(json["value"]), - gasUsed: int.parse(json["gasUsed"]), - gasPrice: BigInt.parse(json["gasPrice"]), - contractAddress: json["contractAddress"], - confirmations: int.parse(json["confirmations"]), - blockNumber: int.parse(json["blockNumber"]), + hash: json["hash"] ?? "", + from: json["from"] ?? "", + to: json["to"] ?? "", + amount: BigInt.parse(json["value"] ?? "0"), + gasUsed: int.parse(json["gasUsed"] ?? "0"), + gasPrice: BigInt.parse(json["gasPrice"] ?? "0"), + contractAddress: json["contractAddress"] ?? "", + confirmations: int.parse(json["confirmations"] ?? "0"), + blockNumber: int.parse(json["blockNumber"] ?? "0"), tokenSymbol: json["tokenSymbol"] ?? defaultSymbol, tokenDecimal: int.tryParse(json["tokenDecimal"] ?? ""), isError: json["isError"] == "1", diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index 2d58e95ab6..bebff4f54c 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -318,6 +318,7 @@ abstract class EVMChainWalletBase Future> fetchTransactions() async { final address = _evmChainPrivateKey.address.hex; final transactions = await _client.fetchTransactions(address); + final internalTransactions = await _client.fetchInternalTransactions(address); final List>> erc20TokensTransactions = []; @@ -332,6 +333,7 @@ abstract class EVMChainWalletBase final tokensTransaction = await Future.wait(erc20TokensTransactions); transactions.addAll(tokensTransaction.expand((element) => element)); + transactions.addAll(internalTransactions); final Map result = {}; @@ -492,7 +494,7 @@ abstract class EVMChainWalletBase _transactionsUpdateTimer!.cancel(); } - _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 10), (_) { + _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 15), (_) { _updateTransactions(); _updateBalance(); }); diff --git a/cw_polygon/lib/polygon_client.dart b/cw_polygon/lib/polygon_client.dart index 35fbe5072e..0cd671e41f 100644 --- a/cw_polygon/lib/polygon_client.dart +++ b/cw_polygon/lib/polygon_client.dart @@ -56,4 +56,28 @@ class PolygonClient extends EVMChainClient { return []; } } + + @override + Future> fetchInternalTransactions(String address) async { + try { + final response = await httpClient.get(Uri.https("api.polygonscan.io", "/api", { + "module": "account", + "action": "txlistinternal", + "address": address, + "apikey": secrets.polygonScanApiKey, + })); + + final jsonResponse = json.decode(response.body) as Map; + + if (response.statusCode >= 200 && response.statusCode < 300 && jsonResponse['status'] != 0) { + return (jsonResponse['result'] as List) + .map((e) => EVMChainTransactionModel.fromJson(e as Map, 'ETH')) + .toList(); + } + + return []; + } catch (_) { + return []; + } + } } diff --git a/ios/Podfile b/ios/Podfile index 00b5fd2dfb..51622ff105 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -58,16 +58,16 @@ post_install do |installer| 'PERMISSION_CONTACTS=0', ## dart: PermissionGroup.camera - 'PERMISSION_CAMERA=0', + 'PERMISSION_CAMERA=1', ## dart: PermissionGroup.microphone - 'PERMISSION_MICROPHONE=0', + 'PERMISSION_MICROPHONE=1', ## dart: PermissionGroup.speech 'PERMISSION_SPEECH_RECOGNIZER=0', ## dart: PermissionGroup.photos - 'PERMISSION_PHOTOS=0', + 'PERMISSION_PHOTOS=1', ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse] 'PERMISSION_LOCATION=0', diff --git a/ios/Podfile.lock b/ios/Podfile.lock index be72b992d0..67c0c9ee82 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -300,6 +300,6 @@ SPEC CHECKSUMS: wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 -PODFILE CHECKSUM: fcb1b8418441a35b438585c9dd8374e722e6c6ca +PODFILE CHECKSUM: a2fe518be61cdbdc5b0e2da085ab543d556af2d3 COCOAPODS: 1.15.2 diff --git a/lib/entities/background_tasks.dart b/lib/entities/background_tasks.dart index ce1e2f6d82..5db42381e8 100644 --- a/lib/entities/background_tasks.dart +++ b/lib/entities/background_tasks.dart @@ -4,6 +4,7 @@ import 'package:cake_wallet/core/wallet_loading_service.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/utils/device_info.dart'; +import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart'; @@ -107,7 +108,7 @@ class BackgroundTasks { final SyncMode syncMode = settingsStore.currentSyncMode; final bool syncAll = settingsStore.currentSyncAll; - if (syncMode.type == SyncType.disabled) { + if (syncMode.type == SyncType.disabled || !FeatureFlag.isBackgroundSyncEnabled) { cancelSyncTask(); return; } diff --git a/lib/entities/biometric_auth.dart b/lib/entities/biometric_auth.dart index a0afc070a9..febbfa4695 100644 --- a/lib/entities/biometric_auth.dart +++ b/lib/entities/biometric_auth.dart @@ -10,6 +10,7 @@ class BiometricAuth { return await _localAuth.authenticate( localizedReason: S.current.biometric_auth_reason, options: AuthenticationOptions( + biometricOnly: true, useErrorDialogs: true, stickyAuth: false)); } on PlatformException catch (e) { diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index 8fa809de94..760b0c1372 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -485,14 +485,14 @@ class ExchangeCardState extends State { context: context, builder: (dialogContext) { return AlertWithTwoActions( - alertTitle: S.of(context).overwrite_amount, - alertContent: S.of(context).qr_payment_amount, - rightButtonText: S.of(context).ok, - leftButtonText: S.of(context).cancel, + alertTitle: S.of(dialogContext).overwrite_amount, + alertContent: S.of(dialogContext).qr_payment_amount, + rightButtonText: S.of(dialogContext).ok, + leftButtonText: S.of(dialogContext).cancel, actionRightButton: () { widget.amountFocusNode?.requestFocus(); amountController.text = paymentRequest.amount; - Navigator.of(context).pop(); + Navigator.of(dialogContext).pop(); }, actionLeftButton: () => Navigator.of(dialogContext).pop()); }); diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index cc04944b35..8c4da4cc54 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -15,7 +15,6 @@ import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; -import 'package:cake_wallet/src/widgets/standard_list.dart'; import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -43,7 +42,7 @@ class ConnectionSyncPage extends BasePage { title: S.current.rescan, handler: (context) => Navigator.of(context).pushNamed(Routes.rescan), ), - if (DeviceInfo.instance.isMobile) ...[ + if (DeviceInfo.instance.isMobile && FeatureFlag.isBackgroundSyncEnabled) ...[ Observer(builder: (context) { return SettingsPickerCell( title: S.current.background_sync_mode, diff --git a/lib/src/screens/unspent_coins/widgets/unspent_coins_list_item.dart b/lib/src/screens/unspent_coins/widgets/unspent_coins_list_item.dart index d629e94540..e160260736 100644 --- a/lib/src/screens/unspent_coins/widgets/unspent_coins_list_item.dart +++ b/lib/src/screens/unspent_coins/widgets/unspent_coins_list_item.dart @@ -27,10 +27,12 @@ class UnspentCoinsListItem extends StatelessWidget { Widget build(BuildContext context) { final unselectedItemColor = Theme.of(context).cardColor; final selectedItemColor = Theme.of(context).primaryColor; - final itemColor = isSending ? selectedItemColor : unselectedItemColor; - - final amountColor = - isSending ? Colors.white : Theme.of(context).extension()!.buttonTextColor; + final itemColor = isSending + ? selectedItemColor + : unselectedItemColor; + final amountColor = isSending + ? Colors.white + : Theme.of(context).extension()!.buttonTextColor; final addressColor = isSending ? Colors.white.withOpacity(0.5) : Theme.of(context).extension()!.buttonSecondaryTextColor; @@ -85,7 +87,7 @@ class UnspentCoinsListItem extends StatelessWidget { child: Text( S.of(context).frozen, style: TextStyle( - color: amountColor, fontSize: 7, fontWeight: FontWeight.w600), + color: Colors.black, fontSize: 7, fontWeight: FontWeight.w600), )), ], ), diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index 65dbe5e408..d094caf7f6 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -111,7 +111,7 @@ class _ServicesUpdatesWidgetState extends State { color: Theme.of(context).extension()!.pageTitleTextColor, width: 30, ), - if (state.hasData && state.data!.hasUpdates) + if (state.hasData && state.data!.hasUpdates && !wasOpened) Container( height: 7, width: 7, diff --git a/lib/utils/feature_flag.dart b/lib/utils/feature_flag.dart index 2a29bd949c..f71e6b4894 100644 --- a/lib/utils/feature_flag.dart +++ b/lib/utils/feature_flag.dart @@ -2,4 +2,5 @@ class FeatureFlag { static const bool isCakePayEnabled = false; static const bool isExolixEnabled = true; static const bool isInAppTorEnabled = false; + static const bool isBackgroundSyncEnabled = false; } \ No newline at end of file From a9b8c03e55ba8e49e22d67496f4d4ee8c2a790a2 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 29 Mar 2024 19:55:29 +0100 Subject: [PATCH 016/157] CW-596-Solana-Bug-Fixes (#1340) * fix: Generic bug fixes across solana * fix: Remove back and forth parsing * fix: Add check to cut flow when estimated fee is higher than wallet balance * Update error message for fees exception * Remove logs --------- Co-authored-by: Omar Hatem --- cw_evm/lib/evm_chain_client.dart | 8 +- cw_evm/lib/evm_chain_exceptions.dart | 11 ++ cw_evm/lib/evm_chain_wallet.dart | 33 ++-- cw_solana/lib/solana_client.dart | 176 ++++++++++++------ cw_solana/lib/solana_wallet.dart | 56 ++++-- cw_solana/lib/solana_wallet_service.dart | 35 +++- lib/solana/cw_solana.dart | 23 ++- .../screens/dashboard/edit_token_page.dart | 12 +- lib/src/screens/send/widgets/send_card.dart | 7 +- .../dashboard/home_settings_view_model.dart | 31 ++- lib/view_model/send/output.dart | 5 + lib/view_model/send/send_view_model.dart | 7 +- tool/configure.dart | 7 +- 13 files changed, 295 insertions(+), 116 deletions(-) diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index 834e130a36..cf73b13dbb 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -82,7 +82,7 @@ abstract class EVMChainClient { Future signTransaction({ required EthPrivateKey privateKey, required String toAddress, - required String amount, + required BigInt amount, required int gas, required EVMChainTransactionPriority priority, required CryptoCurrency currency, @@ -103,7 +103,7 @@ abstract class EVMChainClient { from: privateKey.address, to: EthereumAddress.fromHex(toAddress), maxPriorityFeePerGas: EtherAmount.fromInt(EtherUnit.gwei, priority.tip), - amount: isEVMCompatibleChain ? EtherAmount.inWei(BigInt.parse(amount)) : EtherAmount.zero(), + amount: isEVMCompatibleChain ? EtherAmount.inWei(amount) : EtherAmount.zero(), data: data != null ? hexToBytes(data) : null, ); @@ -124,7 +124,7 @@ abstract class EVMChainClient { _sendTransaction = () async { await erc20.transfer( EthereumAddress.fromHex(toAddress), - BigInt.parse(amount), + amount, credentials: privateKey, transaction: transaction, ); @@ -133,7 +133,7 @@ abstract class EVMChainClient { return PendingEVMChainTransaction( signedTransaction: signedTransaction, - amount: amount, + amount: amount.toString(), fee: BigInt.from(gas) * (await price).getInWei, sendTransaction: _sendTransaction, exponent: exponent, diff --git a/cw_evm/lib/evm_chain_exceptions.dart b/cw_evm/lib/evm_chain_exceptions.dart index 1c09ecf6dd..8aa371b198 100644 --- a/cw_evm/lib/evm_chain_exceptions.dart +++ b/cw_evm/lib/evm_chain_exceptions.dart @@ -9,3 +9,14 @@ class EVMChainTransactionCreationException implements Exception { @override String toString() => exceptionMessage; } + + +class EVMChainTransactionFeesException implements Exception { + final String exceptionMessage; + + EVMChainTransactionFeesException() + : exceptionMessage = 'Current balance is less than the estimated fees for this transaction.'; + + @override + String toString() => exceptionMessage; +} diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index bebff4f54c..c90a3e8098 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -234,7 +234,7 @@ abstract class EVMChainWalletBase final CryptoCurrency transactionCurrency = balance.keys.firstWhere((element) => element.title == _credentials.currency.title); - final _erc20Balance = balance[transactionCurrency]!; + final erc20Balance = balance[transactionCurrency]!; BigInt totalAmount = BigInt.zero; int exponent = transactionCurrency is Erc20Token ? transactionCurrency.decimal : 18; num amountToEVMChainMultiplier = pow(10, exponent); @@ -249,7 +249,7 @@ abstract class EVMChainWalletBase outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0))); totalAmount = BigInt.from(totalOriginalAmount * amountToEVMChainMultiplier); - if (_erc20Balance.balance < totalAmount) { + if (erc20Balance.balance < totalAmount) { throw EVMChainTransactionCreationException(transactionCurrency); } } else { @@ -258,18 +258,27 @@ abstract class EVMChainWalletBase // then no need to subtract the fees from the amount if send all final BigInt allAmount; if (transactionCurrency is Erc20Token) { - allAmount = _erc20Balance.balance; + allAmount = erc20Balance.balance; } else { - allAmount = _erc20Balance.balance - - BigInt.from(calculateEstimatedFee(_credentials.priority!, null)); + final estimatedFee = BigInt.from(calculateEstimatedFee(_credentials.priority!, null)); + + if (estimatedFee > erc20Balance.balance) { + throw EVMChainTransactionFeesException(); + } + + allAmount = erc20Balance.balance - estimatedFee; + } + + if (output.sendAll) { + totalAmount = allAmount; + } else { + final totalOriginalAmount = + EVMChainFormatter.parseEVMChainAmountToDouble(output.formattedCryptoAmount ?? 0); + + totalAmount = BigInt.from(totalOriginalAmount * amountToEVMChainMultiplier); } - final totalOriginalAmount = - EVMChainFormatter.parseEVMChainAmountToDouble(output.formattedCryptoAmount ?? 0); - totalAmount = output.sendAll - ? allAmount - : BigInt.from(totalOriginalAmount * amountToEVMChainMultiplier); - if (_erc20Balance.balance < totalAmount) { + if (erc20Balance.balance < totalAmount) { throw EVMChainTransactionCreationException(transactionCurrency); } } @@ -279,7 +288,7 @@ abstract class EVMChainWalletBase toAddress: _credentials.outputs.first.isParsedAddress ? _credentials.outputs.first.extractedAddress! : _credentials.outputs.first.address, - amount: totalAmount.toString(), + amount: totalAmount, gas: _estimatedGas!, priority: _credentials.priority!, currency: transactionCurrency, diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart index ea4a9161a3..781fff5f7b 100644 --- a/cw_solana/lib/solana_client.dart +++ b/cw_solana/lib/solana_client.dart @@ -96,16 +96,30 @@ class SolanaWalletClient { return SolanaBalance(totalBalance); } - Future getGasForMessage(String message) async { + Future getFeeForMessage(String message, Commitment commitment) async { try { - final gasPrice = await _client!.rpcClient.getFeeForMessage(message) ?? 0; - final fee = gasPrice / lamportsPerSol; + final feeForMessage = + await _client!.rpcClient.getFeeForMessage(message, commitment: commitment); + final fee = (feeForMessage ?? 0.0) / lamportsPerSol; return fee; } catch (_) { - return 0; + return 0.0; } } + Future getEstimatedFee(Ed25519HDKeyPair ownerKeypair) async { + const commitment = Commitment.confirmed; + + final message = + _getMessageForNativeTransaction(ownerKeypair, ownerKeypair.address, lamportsPerSol); + + final recentBlockhash = await _getRecentBlockhash(commitment); + + final estimatedFee = + _getFeeFromCompiledMessage(message, ownerKeypair.publicKey, recentBlockhash, commitment); + return estimatedFee; + } + /// Load the Address's transactions into the account Future> fetchTransactions( Ed25519HDPublicKey publicKey, { @@ -257,24 +271,15 @@ class SolanaWalletClient { Future signSolanaTransaction({ required String tokenTitle, required int tokenDecimals, - String? tokenMint, required double inputAmount, required String destinationAddress, required Ed25519HDKeyPair ownerKeypair, + required bool isSendAll, + String? tokenMint, List references = const [], }) async { const commitment = Commitment.confirmed; - final latestBlockhash = - await _client!.rpcClient.getLatestBlockhash(commitment: commitment).value; - - final recentBlockhash = RecentBlockhash( - blockhash: latestBlockhash.blockhash, - feeCalculator: const FeeCalculator( - lamportsPerSignature: 500, - ), - ); - if (tokenTitle == CryptoCurrency.sol.title) { final pendingNativeTokenTransaction = await _signNativeTokenTransaction( tokenTitle: tokenTitle, @@ -282,8 +287,8 @@ class SolanaWalletClient { inputAmount: inputAmount, destinationAddress: destinationAddress, ownerKeypair: ownerKeypair, - recentBlockhash: recentBlockhash, commitment: commitment, + isSendAll: isSendAll, ); return pendingNativeTokenTransaction; } else { @@ -294,49 +299,107 @@ class SolanaWalletClient { inputAmount: inputAmount, destinationAddress: destinationAddress, ownerKeypair: ownerKeypair, - recentBlockhash: recentBlockhash, commitment: commitment, ); return pendingSPLTokenTransaction; } } + Future _getRecentBlockhash(Commitment commitment) async { + final latestBlockhash = + await _client!.rpcClient.getLatestBlockhash(commitment: commitment).value; + + final recentBlockhash = RecentBlockhash( + blockhash: latestBlockhash.blockhash, + feeCalculator: const FeeCalculator(lamportsPerSignature: 500), + ); + + return recentBlockhash; + } + + Message _getMessageForNativeTransaction( + Ed25519HDKeyPair ownerKeypair, + String destinationAddress, + int lamports, + ) { + final instructions = [ + SystemInstruction.transfer( + fundingAccount: ownerKeypair.publicKey, + recipientAccount: Ed25519HDPublicKey.fromBase58(destinationAddress), + lamports: lamports, + ), + ]; + + final message = Message(instructions: instructions); + return message; + } + + Future _getFeeFromCompiledMessage( + Message message, + Ed25519HDPublicKey feePayer, + RecentBlockhash recentBlockhash, + Commitment commitment, + ) async { + final compile = message.compile( + recentBlockhash: recentBlockhash.blockhash, + feePayer: feePayer, + ); + + final base64Message = base64Encode(compile.toByteArray().toList()); + + final fee = await getFeeForMessage(base64Message, commitment); + + return fee; + } + Future _signNativeTokenTransaction({ required String tokenTitle, required int tokenDecimals, required double inputAmount, required String destinationAddress, required Ed25519HDKeyPair ownerKeypair, - required RecentBlockhash recentBlockhash, required Commitment commitment, + required bool isSendAll, }) async { // Convert SOL to lamport int lamports = (inputAmount * lamportsPerSol).toInt(); - final instructions = [ - SystemInstruction.transfer( - fundingAccount: ownerKeypair.publicKey, - recipientAccount: Ed25519HDPublicKey.fromBase58(destinationAddress), - lamports: lamports, - ), - ]; + Message message = _getMessageForNativeTransaction(ownerKeypair, destinationAddress, lamports); - final message = Message(instructions: instructions); final signers = [ownerKeypair]; - final signedTx = await _signTransactionInternal( - message: message, - signers: signers, - commitment: commitment, - recentBlockhash: recentBlockhash, - ); + RecentBlockhash recentBlockhash = await _getRecentBlockhash(commitment); final fee = await _getFeeFromCompiledMessage( message, - recentBlockhash, signers.first.publicKey, + recentBlockhash, + commitment, ); + SignedTx signedTx; + if (isSendAll) { + final feeInLamports = (fee * lamportsPerSol).toInt(); + final updatedLamports = lamports - feeInLamports; + + final updatedMessage = + _getMessageForNativeTransaction(ownerKeypair, destinationAddress, updatedLamports); + + signedTx = await _signTransactionInternal( + message: updatedMessage, + signers: signers, + commitment: commitment, + recentBlockhash: recentBlockhash, + ); + } else { + signedTx = await _signTransactionInternal( + message: message, + signers: signers, + commitment: commitment, + recentBlockhash: recentBlockhash, + ); + } + sendTx() async => await sendTransaction( signedTransaction: signedTx, commitment: commitment, @@ -360,7 +423,6 @@ class SolanaWalletClient { required double inputAmount, required String destinationAddress, required Ed25519HDKeyPair ownerKeypair, - required RecentBlockhash recentBlockhash, required Commitment commitment, }) async { final destinationOwner = Ed25519HDPublicKey.fromBase58(destinationAddress); @@ -408,8 +470,18 @@ class SolanaWalletClient { ); final message = Message(instructions: [instruction]); + final signers = [ownerKeypair]; + RecentBlockhash recentBlockhash = await _getRecentBlockhash(commitment); + + final fee = await _getFeeFromCompiledMessage( + message, + signers.first.publicKey, + recentBlockhash, + commitment, + ); + final signedTx = await _signTransactionInternal( message: message, signers: signers, @@ -417,12 +489,6 @@ class SolanaWalletClient { recentBlockhash: recentBlockhash, ); - final fee = await _getFeeFromCompiledMessage( - message, - recentBlockhash, - signers.first.publicKey, - ); - sendTx() async => await sendTransaction( signedTransaction: signedTx, commitment: commitment, @@ -438,19 +504,6 @@ class SolanaWalletClient { return pendingTransaction; } - Future _getFeeFromCompiledMessage( - Message message, RecentBlockhash recentBlockhash, Ed25519HDPublicKey feePayer) async { - final compile = message.compile( - recentBlockhash: recentBlockhash.blockhash, - feePayer: feePayer, - ); - - final base64Message = base64Encode(compile.toByteArray().toList()); - - final fee = await getGasForMessage(base64Message); - return fee; - } - Future _signTransactionInternal({ required Message message, required List signers, @@ -466,13 +519,18 @@ class SolanaWalletClient { required SignedTx signedTransaction, required Commitment commitment, }) async { - final signature = await _client!.rpcClient.sendTransaction( - signedTransaction.encode(), - preflightCommitment: commitment, - ); + try { + final signature = await _client!.rpcClient.sendTransaction( + signedTransaction.encode(), + preflightCommitment: commitment, + ); - _client!.waitForSignatureStatus(signature, status: commitment); + _client!.waitForSignatureStatus(signature, status: commitment); - return signature; + return signature; + } catch (e) { + print('Error while sending transaction: ${e.toString()}'); + throw Exception(e); + } } } diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index de4d70674f..f69a597aec 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -75,6 +75,9 @@ abstract class SolanaWalletBase late SolanaWalletClient _client; + @observable + double? estimatedFee; + Timer? _transactionsUpdateTimer; late final Box splTokensBox; @@ -171,6 +174,14 @@ abstract class SolanaWalletBase } } + Future _getEstimatedFees() async { + try { + estimatedFee = await _client.getEstimatedFee(_walletKeyPair!); + } catch (e) { + estimatedFee = 0.0; + } + } + @override Future createTransaction(Object credentials) async { final solCredentials = credentials as SolanaTransactionCredentials; @@ -188,6 +199,8 @@ abstract class SolanaWalletBase double totalAmount = 0.0; + bool isSendAll = false; + if (hasMultiDestination) { if (outputs.any((item) => item.sendAll || (item.formattedCryptoAmount ?? 0) <= 0)) { throw SolanaTransactionWrongBalanceException(transactionCurrency); @@ -204,9 +217,15 @@ abstract class SolanaWalletBase } else { final output = outputs.first; - final totalOriginalAmount = double.parse(output.cryptoAmount ?? '0.0'); + isSendAll = output.sendAll; + + if (isSendAll) { + totalAmount = walletBalanceForCurrency; + } else { + final totalOriginalAmount = double.parse(output.cryptoAmount ?? '0.0'); - totalAmount = output.sendAll ? walletBalanceForCurrency : totalOriginalAmount; + totalAmount = totalOriginalAmount; + } if (walletBalanceForCurrency < totalAmount) { throw SolanaTransactionWrongBalanceException(transactionCurrency); @@ -228,6 +247,7 @@ abstract class SolanaWalletBase destinationAddress: solCredentials.outputs.first.isParsedAddress ? solCredentials.outputs.first.extractedAddress! : solCredentials.outputs.first.address, + isSendAll: isSendAll, ); return pendingSolanaTransaction; @@ -269,7 +289,10 @@ abstract class SolanaWalletBase Future _updateSPLTokenTransactions() async { List splTokenTransactions = []; - for (var token in balance.keys) { + // Make a copy of keys to avoid concurrent modification + var tokenKeys = List.from(balance.keys); + + for (var token in tokenKeys) { if (token is SPLToken) { final tokenTxs = await _client.getSPLTokenTransfers( token.mintAddress, @@ -326,6 +349,7 @@ abstract class SolanaWalletBase _updateBalance(), _updateNativeSOLTransactions(), _updateSPLTokenTransactions(), + _getEstimatedFees(), ]); syncStatus = SyncedSyncStatus(); @@ -433,18 +457,22 @@ abstract class SolanaWalletBase final mintPublicKey = Ed25519HDPublicKey.fromBase58(mintAddress); // Fetch token's metadata account - final token = await solanaClient!.rpcClient.getMetadata(mint: mintPublicKey); + try { + final token = await solanaClient!.rpcClient.getMetadata(mint: mintPublicKey); + + if (token == null) { + return null; + } - if (token == null) { + return SPLToken.fromMetadata( + name: token.name, + mint: token.mint, + symbol: token.symbol, + mintAddress: mintAddress, + ); + } catch (e) { return null; } - - return SPLToken.fromMetadata( - name: token.name, - mint: token.mint, - symbol: token.symbol, - mintAddress: mintAddress, - ); } @override @@ -475,9 +503,9 @@ abstract class SolanaWalletBase } _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 20), (_) { - _updateSPLTokenTransactions(); - _updateNativeSOLTransactions(); _updateBalance(); + _updateNativeSOLTransactions(); + _updateSPLTokenTransactions(); }); } diff --git a/cw_solana/lib/solana_wallet_service.dart b/cw_solana/lib/solana_wallet_service.dart index b3ff22e7e8..83370ff73c 100644 --- a/cw_solana/lib/solana_wallet_service.dart +++ b/cw_solana/lib/solana_wallet_service.dart @@ -32,6 +32,7 @@ class SolanaWalletService extends WalletService openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); - final wallet = await SolanaWalletBase.open( - name: name, - password: password, - walletInfo: walletInfo, - ); - await wallet.init(); - await wallet.save(); - - return wallet; + try { + final wallet = await SolanaWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + + final wallet = await SolanaWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + return wallet; + } } @override @@ -110,6 +126,7 @@ class SolanaWalletService extends WalletService addSPLToken(WalletBase wallet, CryptoCurrency token) async => - await (wallet as SolanaWallet).addSPLToken(token as SPLToken); + Future addSPLToken( + WalletBase wallet, + CryptoCurrency token, + String contractAddress, + ) async { + final splToken = SPLToken( + name: token.name, + symbol: token.title, + mintAddress: contractAddress, + decimal: token.decimals, + mint: token.name.toUpperCase(), + enabled: token.enabled, + ); + + await (wallet as SolanaWallet).addSPLToken(splToken); + } @override Future deleteSPLToken(WalletBase wallet, CryptoCurrency token) async => @@ -115,4 +129,9 @@ class CWSolana extends Solana { return null; } + + @override + double? getEstimateFees(WalletBase wallet) { + return (wallet as SolanaWallet).estimatedFee; + } } diff --git a/lib/src/screens/dashboard/edit_token_page.dart b/lib/src/screens/dashboard/edit_token_page.dart index 720a8cc140..1a1db86588 100644 --- a/lib/src/screens/dashboard/edit_token_page.dart +++ b/lib/src/screens/dashboard/edit_token_page.dart @@ -195,12 +195,14 @@ class _EditTokenPageBodyState extends State { onPressed: () async { if (_formKey.currentState!.validate() && (!_showDisclaimer || _disclaimerChecked)) { - await widget.homeSettingsViewModel.addToken(Erc20Token( - name: _tokenNameController.text, - symbol: _tokenSymbolController.text, + await widget.homeSettingsViewModel.addToken( + token: CryptoCurrency( + name: _tokenNameController.text, + title: _tokenSymbolController.text.toUpperCase(), + decimals: int.parse(_tokenDecimalController.text), + ), contractAddress: _contractAddressController.text, - decimal: int.parse(_tokenDecimalController.text), - )); + ); if (context.mounted) { Navigator.pop(context); } diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 3f5714be9e..d369978147 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -323,8 +323,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin with AutomaticKeepAliveClientMixin GestureDetector( - onTap: () => _setTransactionPriority(context), + onTap: sendViewModel.hasFeesPriority + ? () => _setTransactionPriority(context) + : () {}, child: Container( padding: EdgeInsets.only(top: 24), child: Row( diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 6d31a5af86..4b9811c37b 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -44,17 +44,37 @@ abstract class HomeSettingsViewModelBase with Store { @action void setPinNativeToken(bool value) => _settingsStore.pinNativeTokenAtTop = value; - Future addToken(CryptoCurrency token) async { + Future addToken({ + required String contractAddress, + required CryptoCurrency token, + }) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { - await ethereum!.addErc20Token(_balanceViewModel.wallet, token); + final erc20token = Erc20Token( + name: token.name, + symbol: token.title, + decimal: token.decimals, + contractAddress: contractAddress, + ); + + await ethereum!.addErc20Token(_balanceViewModel.wallet, erc20token); } if (_balanceViewModel.wallet.type == WalletType.polygon) { - await polygon!.addErc20Token(_balanceViewModel.wallet, token); + final polygonToken = Erc20Token( + name: token.name, + symbol: token.title, + decimal: token.decimals, + contractAddress: contractAddress, + ); + await polygon!.addErc20Token(_balanceViewModel.wallet, polygonToken); } if (_balanceViewModel.wallet.type == WalletType.solana) { - await solana!.addSPLToken(_balanceViewModel.wallet, token); + await solana!.addSPLToken( + _balanceViewModel.wallet, + token, + contractAddress, + ); } _updateTokensList(); @@ -117,7 +137,8 @@ abstract class HomeSettingsViewModelBase with Store { } if (_balanceViewModel.wallet.type == WalletType.solana) { - solana!.addSPLToken(_balanceViewModel.wallet, token); + final address = solana!.getTokenAddress(token); + solana!.addSPLToken(_balanceViewModel.wallet, token, address); } _refreshTokensList(); diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index c881284b39..62db9cbcda 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/src/screens/send/widgets/extract_address_from_parsed.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:flutter/material.dart'; @@ -116,6 +117,10 @@ abstract class OutputBase with Store { @computed double get estimatedFee { try { + if (_wallet.type == WalletType.solana) { + return solana!.getEstimateFees(_wallet) ?? 0.0; + } + final fee = _wallet.calculateEstimatedFee( _settingsStore.priority[_wallet.type]!, formattedCryptoAmount); diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 28f964a9cd..a631cde026 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -106,8 +106,6 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor @computed bool get isBatchSending => outputs.length > 1; - bool get shouldDisplaySendALL => walletType != WalletType.solana; - @computed String get pendingTransactionFiatAmount { if (pendingTransaction == null) { @@ -208,6 +206,11 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor @computed bool get hasFees => wallet.type != WalletType.nano && wallet.type != WalletType.banano; + @computed + bool get hasFeesPriority => + wallet.type != WalletType.nano && + wallet.type != WalletType.banano && + wallet.type != WalletType.solana; @observable CryptoCurrency selectedCryptoCurrency; diff --git a/tool/configure.dart b/tool/configure.dart index e24ab20625..30123c45e9 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -948,7 +948,11 @@ abstract class Solana { required CryptoCurrency currency, }); List getSPLTokenCurrencies(WalletBase wallet); - Future addSPLToken(WalletBase wallet, CryptoCurrency token); + Future addSPLToken( + WalletBase wallet, + CryptoCurrency token, + String contractAddress, + ); Future deleteSPLToken(WalletBase wallet, CryptoCurrency token); Future getSPLToken(WalletBase wallet, String contractAddress); @@ -956,6 +960,7 @@ abstract class Solana { double getTransactionAmountRaw(TransactionInfo transactionInfo); String getTokenAddress(CryptoCurrency asset); List? getValidationLength(CryptoCurrency type); + double? getEstimateFees(WalletBase wallet); } """; From 1f904dcd47f0fb6162154f726a547634ea7300b7 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 29 Mar 2024 20:59:26 +0200 Subject: [PATCH 017/157] Generic fixes (#1354) * Change order of currencies in currency picker * Disable Background sync until implemented properly * remove ability to use device pin in bio auth * Fix condition * Minor fix [skip ci] * make notifications red dot go when opened * Update Frozen coin text color * Update Frozen coin text color * Fetch internal transactions for eth and polygon * Remove debug prints [skip ci] * Fix Camera permission on iOS [skip ci] * Minor fixes [skip ci] --------- Co-authored-by: tuxsudo --- cw_ethereum/lib/ethereum_client.dart | 2 +- cw_polygon/lib/polygon_client.dart | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index 10dc245d4e..f2b25bcdd7 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -48,7 +48,7 @@ class EthereumClient extends EVMChainClient { final response = await httpClient.get(Uri.https("api.etherscan.io", "/api", { "module": "account", "action": "txlistinternal", - "address": "0x72067Bf532b21A096D2e2B4953d69554E1a61917", + "address": address, "apikey": secrets.etherScanApiKey, })); diff --git a/cw_polygon/lib/polygon_client.dart b/cw_polygon/lib/polygon_client.dart index 0cd671e41f..42fdd2e25b 100644 --- a/cw_polygon/lib/polygon_client.dart +++ b/cw_polygon/lib/polygon_client.dart @@ -13,8 +13,6 @@ class PolygonClient extends EVMChainClient { required EthereumAddress to, required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, - Uint8List? data, - }) { return Transaction( from: from, @@ -71,7 +69,7 @@ class PolygonClient extends EVMChainClient { if (response.statusCode >= 200 && response.statusCode < 300 && jsonResponse['status'] != 0) { return (jsonResponse['result'] as List) - .map((e) => EVMChainTransactionModel.fromJson(e as Map, 'ETH')) + .map((e) => EVMChainTransactionModel.fromJson(e as Map, 'MATIC')) .toList(); } From 62ef545fce22227bdd50f0c155c91f57d126a256 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 1 Apr 2024 15:31:14 +0200 Subject: [PATCH 018/157] New versions (#1355) * New versions * Check for Taproot inputs when exchanging with ThorChain * Properly handle taproot case with thorchain * fix missing import --- assets/text/Monerocom_Release_Notes.txt | 6 ++--- assets/text/Release_Notes.txt | 7 +++++- cw_bitcoin/lib/electrum_wallet.dart | 24 ++++++++++++------- .../lib/pending_bitcoin_transaction.dart | 22 ++++++++++------- cw_polygon/lib/polygon_client.dart | 1 + lib/bitcoin/cw_bitcoin.dart | 5 ++++ lib/view_model/send/send_view_model.dart | 16 ++++++++++++- scripts/android/app_env.sh | 8 +++---- scripts/ios/app_env.sh | 6 ++--- scripts/macos/app_env.sh | 8 +++---- tool/configure.dart | 3 +++ 11 files changed, 71 insertions(+), 35 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 90fcd2a75b..e6aab2dda6 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,4 +1,2 @@ -Monero enhancements -In-App live status page for the app services -Add Exolix exchange provider -Bug fixes and enhancements \ No newline at end of file +Exchange flow enhancements and fixes +Generic enhancements and bug fixes \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 83e18c18ec..b32cd539de 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1 +1,6 @@ -Bug fixes and enhancements \ No newline at end of file +Exchange flow enhancements and fixes +Add MoonPay to Buy options +Add THORChain to Exchange providers +Improve Bitcoin fee calculations +Fixes and enhancements for Solana +Generic enhancements and bug fixes \ No newline at end of file diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index ffd8b5d520..9c144ac74e 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -544,6 +544,8 @@ abstract class ElectrumWalletBase ); } + bool hasTaprootInputs = false; + final transaction = txb.buildTransaction((txDigest, utxo, publicKey, sighash) { final key = estimatedTx.privateKeys .firstWhereOrNull((element) => element.getPublic().toHex() == publicKey); @@ -553,21 +555,25 @@ abstract class ElectrumWalletBase } if (utxo.utxo.isP2tr()) { + hasTaprootInputs = true; return key.signTapRoot(txDigest, sighash: sighash); } else { return key.signInput(txDigest, sigHash: sighash); } }); - return PendingBitcoinTransaction(transaction, type, - electrumClient: electrumClient, - amount: estimatedTx.amount, - fee: estimatedTx.fee, - feeRate: feeRateInt.toString(), - network: network, - hasChange: estimatedTx.hasChange, - isSendAll: estimatedTx.isSendAll) - ..addListener((transaction) async { + return PendingBitcoinTransaction( + transaction, + type, + electrumClient: electrumClient, + amount: estimatedTx.amount, + fee: estimatedTx.fee, + feeRate: feeRateInt.toString(), + network: network, + hasChange: estimatedTx.hasChange, + isSendAll: estimatedTx.isSendAll, + hasTaprootInputs: hasTaprootInputs, + )..addListener((transaction) async { transactionHistory.addOne(transaction); await updateBalance(); }); diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index ada39a8f7a..eb4274e782 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -8,15 +8,18 @@ import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/wallet_type.dart'; class PendingBitcoinTransaction with PendingTransaction { - PendingBitcoinTransaction(this._tx, this.type, - {required this.electrumClient, - required this.amount, - required this.fee, - required this.feeRate, - this.network, - required this.hasChange, - required this.isSendAll}) - : _listeners = []; + PendingBitcoinTransaction( + this._tx, + this.type, { + required this.electrumClient, + required this.amount, + required this.fee, + required this.feeRate, + this.network, + required this.hasChange, + required this.isSendAll, + this.hasTaprootInputs = false, + }) : _listeners = []; final WalletType type; final BtcTransaction _tx; @@ -27,6 +30,7 @@ class PendingBitcoinTransaction with PendingTransaction { final BasedUtxoNetwork? network; final bool hasChange; final bool isSendAll; + final bool hasTaprootInputs; @override String get id => _tx.txId(); diff --git a/cw_polygon/lib/polygon_client.dart b/cw_polygon/lib/polygon_client.dart index 42fdd2e25b..d55ee22690 100644 --- a/cw_polygon/lib/polygon_client.dart +++ b/cw_polygon/lib/polygon_client.dart @@ -13,6 +13,7 @@ class PolygonClient extends EVMChainClient { required EthereumAddress to, required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, + Uint8List? data, }) { return Transaction( from: from, diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index c9649a2e37..882facf394 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -239,4 +239,9 @@ class CWBitcoin extends Bitcoin { return SegwitAddresType.p2wpkh; } } + + @override + bool hasTaprootInput(PendingTransaction pendingTransaction) { + return (pendingTransaction as PendingBitcoinTransaction).hasTaprootInputs; + } } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index a631cde026..df1c75def0 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -308,13 +308,19 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor pendingTransaction = await wallet.createTransaction(_credentials()); if (provider is ThorChainExchangeProvider) { final outputCount = pendingTransaction?.outputCount ?? 0; - if (outputCount > 10) throw Exception("ThorChain does not support more than 10 outputs"); + if (outputCount > 10) { + throw Exception("ThorChain does not support more than 10 outputs"); + } + if (_hasTaprootInput(pendingTransaction)) { + throw Exception("ThorChain does not support Taproot addresses"); + } } state = ExecutedSuccessfullyState(); return pendingTransaction; } catch (e) { state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); } + return null; } @action @@ -512,4 +518,12 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return errorMessage; } + + bool _hasTaprootInput(PendingTransaction? pendingTransaction) { + if (walletType == WalletType.bitcoin && pendingTransaction != null) { + return bitcoin!.hasTaprootInput(pendingTransaction); + } + + return false; + } } diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index ed2b67de5a..8387c1d1f4 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.0" -MONERO_COM_BUILD_NUMBER=79 +MONERO_COM_VERSION="1.12.1" +MONERO_COM_BUILD_NUMBER=80 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.15.2" -CAKEWALLET_BUILD_NUMBER=200 +CAKEWALLET_VERSION="4.15.3" +CAKEWALLET_BUILD_NUMBER=202 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 53514b39b5..7e4f214ab9 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.0" +MONERO_COM_VERSION="1.12.1" MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.2" -CAKEWALLET_BUILD_NUMBER=219 +CAKEWALLET_VERSION="4.15.3" +CAKEWALLET_BUILD_NUMBER=221 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 1654a022ac..1242945a6b 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.2.0" -MONERO_COM_BUILD_NUMBER=10 +MONERO_COM_VERSION="1.2.1" +MONERO_COM_BUILD_NUMBER=11 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.2" -CAKEWALLET_BUILD_NUMBER=59 +CAKEWALLET_VERSION="1.8.3" +CAKEWALLET_BUILD_NUMBER=61 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index 30123c45e9..b3aa44febd 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -61,6 +61,7 @@ Future main(List args) async { Future generateBitcoin(bool hasImplementation) async { final outputFile = File(bitcoinOutputPath); const bitcoinCommonHeaders = """ +import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/receive_page_option.dart'; import 'package:cw_core/unspent_transaction_output.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -74,6 +75,7 @@ import 'package:cake_wallet/view_model/send/output.dart'; import 'package:hive/hive.dart'; import 'package:bitcoin_base/bitcoin_base.dart';"""; const bitcoinCWHeaders = """ +import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; import 'package:cw_bitcoin/bitcoin_unspent.dart'; @@ -148,6 +150,7 @@ abstract class Bitcoin { ReceivePageOption getSelectedAddressType(Object wallet); List getBitcoinReceivePageOptions(); BitcoinAddressType getBitcoinAddressType(ReceivePageOption option); + bool hasTaprootInput(PendingTransaction pendingTransaction); } """; From 7eed97718e6f1d037b7f21787d2e8cd59fad2a95 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Tue, 2 Apr 2024 11:02:28 -0700 Subject: [PATCH 019/157] disable service status api if fiat api is disabled (#1357) --- lib/entities/default_settings_migration.dart | 17 ++++++++++ lib/main.dart | 33 ++++++++++---------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 8ce38e4c48..944d91cd3e 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -1,6 +1,7 @@ import 'dart:io' show Directory, File, Platform; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; +import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -211,6 +212,10 @@ Future defaultSettingsMigration( await changeDefaultBitcoinNode(nodes, sharedPreferences); break; + case 30: + await disableServiceStatusFiatDisabled(sharedPreferences); + break; + default: break; } @@ -225,6 +230,18 @@ Future defaultSettingsMigration( await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version); } +Future disableServiceStatusFiatDisabled(SharedPreferences sharedPreferences) async { + final currentFiat = + await sharedPreferences.getInt(PreferencesKey.currentFiatApiModeKey) ?? -1; + if (currentFiat == -1 || currentFiat == FiatApiMode.enabled.raw) { + return; + } + + if (currentFiat == FiatApiMode.disabled.raw) { + await sharedPreferences.setBool(PreferencesKey.disableBulletinKey, true); + } +} + Future _updateMoneroPriority(SharedPreferences sharedPreferences) async { final currentPriority = await sharedPreferences.getInt(PreferencesKey.moneroTransactionPriority) ?? diff --git a/lib/main.dart b/lib/main.dart index db505f15ad..6868348f62 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -149,25 +149,26 @@ Future initializeAppConfigs() async { final unspentCoinsInfoSource = await CakeHive.openBox(UnspentCoinsInfo.boxName); await initialSetup( - sharedPreferences: await SharedPreferences.getInstance(), - nodes: nodes, - powNodes: powNodes, - walletInfoSource: walletInfoSource, - contactSource: contacts, - tradesSource: trades, - ordersSource: orders, - unspentCoinsInfoSource: unspentCoinsInfoSource, - // fiatConvertationService: fiatConvertationService, - templates: templates, - exchangeTemplates: exchangeTemplates, - transactionDescriptions: transactionDescriptions, - secureStorage: secureStorage, - anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 29); + sharedPreferences: await SharedPreferences.getInstance(), + nodes: nodes, + powNodes: powNodes, + walletInfoSource: walletInfoSource, + contactSource: contacts, + tradesSource: trades, + ordersSource: orders, + unspentCoinsInfoSource: unspentCoinsInfoSource, + // fiatConvertationService: fiatConvertationService, + templates: templates, + exchangeTemplates: exchangeTemplates, + transactionDescriptions: transactionDescriptions, + secureStorage: secureStorage, + anonpayInvoiceInfo: anonpayInvoiceInfo, + initialMigrationVersion: 30, + ); } Future initialSetup( - {required SharedPreferences sharedPreferences, + {required SharedPreferences sharedPreferences, required Box nodes, required Box powNodes, required Box walletInfoSource, From dbb62ef5c0cac9bc1af6fa88594e533ac907de3e Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Fri, 5 Apr 2024 09:11:47 -0700 Subject: [PATCH 020/157] update migration behavior slightly (#1364) --- lib/entities/default_settings_migration.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 944d91cd3e..9a2db56afa 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -237,7 +237,7 @@ Future disableServiceStatusFiatDisabled(SharedPreferences sharedPreference return; } - if (currentFiat == FiatApiMode.disabled.raw) { + if (currentFiat == FiatApiMode.disabled.raw || currentFiat == FiatApiMode.torOnly.raw) { await sharedPreferences.setBool(PreferencesKey.disableBulletinKey, true); } } From 653a6c678d0ff11806dc1cefb5900861d92584bb Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 15:45:49 -0400 Subject: [PATCH 021/157] Add app badge icons --- .github/assets/FullLogo_CakeWallet.png | Bin 0 -> 187345 bytes .github/assets/NOTICE.txt | 48 ++ .github/assets/app-store-badge.svg | 46 + .github/assets/f-droid-badge.png | Bin 0 -> 18971 bytes .github/assets/google-play-badge.png | Bin 0 -> 4904 bytes .github/assets/linux-badge.svg | 1071 ++++++++++++++++++++++++ .github/assets/mac-store-badge.svg | 51 ++ 7 files changed, 1216 insertions(+) create mode 100644 .github/assets/FullLogo_CakeWallet.png create mode 100644 .github/assets/NOTICE.txt create mode 100755 .github/assets/app-store-badge.svg create mode 100644 .github/assets/f-droid-badge.png create mode 100644 .github/assets/google-play-badge.png create mode 100755 .github/assets/linux-badge.svg create mode 100755 .github/assets/mac-store-badge.svg diff --git a/.github/assets/FullLogo_CakeWallet.png b/.github/assets/FullLogo_CakeWallet.png new file mode 100644 index 0000000000000000000000000000000000000000..9720c0c9e9f365455b6051af83ec770f55198674 GIT binary patch literal 187345 zcmeEvd0b8T|Nlv*n29Dn$QE)HhPt*$tFa^^#!tJ@UJKEk8FS%{N&yrKm8B>HE`!rr(Fy)VhH+2#XafK4@|#`Q0qkte)K<4 zC%>_Jbbz$|U+LMXvcoEy*_m8Ij9%yj)#w{<4l0Br6$8w3>Pq(wP;(zYlk+uvH+@u| zOeZMcNZd2stlX~jbY{Lm1M~WJ$wm7V*y+6(20XXfsZCn}%+U{%bW!Jq$`ySzyB`Jb7ilP;@%{)6OcN5+2sXU6ToeYnbP{fA`r6nQF1QUcjD^z4u~oJg;|eGP{8k%&92O?S0p;`Y1vW{&xV-^ zoXqoHnC~^P2+lfQ>_utUR1(xwm>n|j-tyUg?cD)Gn#b7O$l93mA#y}(OiGt$SDOXl z&AFwt?8^K3e%#sK9Vm|dZg-enbd$lB6Y)9UdRy9s|{_!XCpl9vl@jKjhg)6h`%pqk$bQNg_BN0b19aRjF18kj8bvU{{O@+_ z2V7g~H^kvBWAxTwlYf?tPyFU<$BSd?Uz1}=m3(OWdgFX9VSFx;Q?9b!-4qJ!Db#*6 zR=?|A$m5?hnY5OpRXtr!A%O^z7u5(iw=1!b`>5@v_j+{dj=2}x8Ht@{z%_rrq~;oV zu<|fxXkD9ogc<)RxM$3jr>gvB`K!VRzpUxE30<{H*4%yb{@-b?`MXm~RGLO<21GTq z?CJ7CJfzyt{WYzdOZ*U^v>$>Xb*xsY^CHt%>2J`HJ?E0redkGfvnmtaJi~RrUk5!TZ?2T<3V0~SFzxZ!40y<- za*E+Y`S$##hD-7>m>aTSCFPao(jP!$-Yy%JNJ-LBDoHL0B)MVz&)MmM9ZxT+Fd+{Y z=0-Ne(8ny7(=8R_V6hXi$qj;&u%(rzbwleAxjbtOK~aT(;ybs=?nl3vs&n#DO!ASl zdjj4zj|y)f509qX%65UZ-4gk>Xd=91 zRN4BbVauGP=}O)wO(5HHX01*?cDxNh5?b|mVQ$XuEKg(9Yhsw515}&aEz33C0}j-z zboNqVI`<#ynwcG>e8^m%t~2&ApjzCT^NX)~eHp`aUy_N0>|38)riZPemVsY{MIdQdQ8=ApoZlU;(ld;0(4q9Ry%b}t zF37Vew!CIAl0aOf)YQr^rK>Kt9yQ7sru_)rcvN7nyv?3GFT-qmb(h$QG(CE>LA3zmO+WhSl-Dqf(W^X%2B3FE#T2|l-4Ocr1t&OK zz%_gF*xJs+vETU>X0E{x#m!Vcw4hw`wvv^K9p+ndeEhB-FK(z*GF8j@cP2Zp{}xc;Q{Hhsur0ae)E z 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

M^1$%3dNqM_UJ_x+CMb~ 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

-* Website: https://cakewallet.com -* App Store (iOS / MacOS): https://cakewallet.com/ios -* Google Play: https://cakewallet.com/gp -* F-Droid: https://fdroid.cakelabs.com -* APK: https://github.com/cake-tech/cake_wallet/releases -* Linux: https://github.com/cake-tech/cake_wallet/releases +# Cake Wallet + +Cake Wallet is an open source, non-custodial, and private multi-currency crypto wallet. + +
+ +[](https://apps.apple.com/us/app/cake-wallet/id1334702542?platform=iphone) +[](https://play.google.com/store/apps/details?id=com.cakewallet.cake_wallet) +[](https://fdroid.cakelabs.com) +[](https://apps.apple.com/us/app/cake-wallet/id1334702542?platform=mac) +[](https://github.com/cake-tech/cake_wallet/releases) + +
## Features From 7b622230017aa6241a9b8d2c893085e971cc8d3b Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:03:52 -0400 Subject: [PATCH 024/157] Add more images --- .github/assets/desktop.png | Bin 0 -> 62736 bytes .github/assets/devices.png | Bin 0 -> 485931 bytes .github/assets/mobile.png | Bin 0 -> 154871 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/desktop.png create mode 100644 .github/assets/devices.png create mode 100644 .github/assets/mobile.png diff --git a/.github/assets/desktop.png b/.github/assets/desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..369015e608cec345f80cc2033c3804c64bb256a0 GIT binary patch literal 62736 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 HgZ}nU1!RK* literal 0 HcmV?d00001 diff --git a/.github/assets/devices.png b/.github/assets/devices.png new file mode 100644 index 0000000000000000000000000000000000000000..e6fd7de436cdd028749bd44d899e065e89572145 GIT binary patch literal 485931 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

_tmC7R7vH{^%iF(gzzf7|!9X{+rJ)deWWC(Y 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

rBO>3@Q%6r7l2^)J88yuB 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 z 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�MCe0*x_6`pF#Icx^^HLl`% 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 z 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%0AJyrSMp1d@b)Hm30kWgz%8?oZtyMOJR{-Z)L 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 Date: Fri, 5 Apr 2024 19:07:01 -0400 Subject: [PATCH 025/157] Add devices SVG --- .github/assets/devices.svg | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/assets/devices.svg diff --git a/.github/assets/devices.svg b/.github/assets/devices.svg new file mode 100644 index 0000000000..3b6fd23784 --- /dev/null +++ b/.github/assets/devices.svg @@ -0,0 +1,56 @@ + + + + From 50ae2ef8f3d8d88c9ee4fcf0a6c6f86bc1949b1c Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:09:34 -0400 Subject: [PATCH 026/157] Update devices --- .github/assets/devices.svg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/assets/devices.svg b/.github/assets/devices.svg index 3b6fd23784..4ae84cf48b 100644 --- a/.github/assets/devices.svg +++ b/.github/assets/devices.svg @@ -28,8 +28,8 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" inkscape:zoom="0.18850601" - inkscape:cx="1949.54" - inkscape:cy="1360.6993" + inkscape:cx="1546.3698" + inkscape:cy="1541.0649" inkscape:window-width="1762" inkscape:window-height="953" inkscape:window-x="26" @@ -40,8 +40,8 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + x="739.67548" + y="132.02007" /> From 5e1d811cf60196113f15bbfa8279c43518d35133 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:13:00 -0400 Subject: [PATCH 027/157] Update devices.png --- .github/assets/devices.png | Bin 485931 -> 541506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/assets/devices.png b/.github/assets/devices.png index e6fd7de436cdd028749bd44d899e065e89572145..fd27a6a768f36ebf3556cbc89d74523791d5ae47 100644 GIT binary patch literal 541506 zcmeFY_gfQf(>D$xAc`VIKw2ymK_H??Z%XePBl6M6s<5Re)m zkWi$T5CQ}U5CU)R@AF>o@!WsG_m^vqV{>L_cPHo0&V0_9$!yFk9o3uH*{+k3k=;~R zQ_>?NyY-8V?AqKlDiTMh)%Bb-(7aQ7<4roy^Pi2p-{XfJiFwyY*~CZR!@u0ognALv`H!p@6?&2SZCy0PyM3_ zvVVc%A65Jd6#r=AU!eF$6aNCmKbrU#DE^-&{soGERPirR{G*9~f#M%c{QnCSrUXME zX(pq>#VN;^RgHag;FF$1^`lP0JT`23WABHtWgyRdn?F!lsh#NeE6YQros-^US8nk# z_;MCLv=A?j|3nDf8FU}U=R>gBc?dfB^O`VER~nMcPUJ%1M$X}|M;LBo@zX*uw&QHt z%%e8}d~VyxPRi`89%DQ3mc(8EPPE+eCEvnnk9_5R4`4xnP$+*^c(NjYv66+J^(P6@ z$I{84bkn(SPn%*?Ns{-TC!3E_kcD7G!KdlqmYK`ZwKbbsOI3W)U}-6SSxU!9ziGf~ zWO={hFR_ylTOu1;+~;zKZh_Et-sb`K2*FohwufGP@<@v|lsP#89I$s1r%!gRE}aSI zH!f?HDs9_Oo)D2uU~mv#6^w+P)EEG{2*rQv9IT481ZjEc&dHhY>|DDNC-8nbwvj^AzPbIo`eQ3 zPJ5h>OyU7Wv9Y+rW!Fwaxs&}o@#?S*$kw(ac0D?J1+mb~Pxy~81fUaZa&pze-*oW= zf{nX8NdS-ku{P`2``I+K?^>OncY(1Afmm%eELLGJhx-{H^dRF4qC@K&k(836NyHqSZdcq1x7{-VD+Bv1PA%;Vx>CNDJcKc~w>FaF0m zLuxHAhZg~P@?ju-;V==dv~(6ri&a)+bhLB1uV)}Mx8z_l$~qxlXB#(aWr+{9dia1# zCg2t9l8D8(CCF<1Co{LA_)qq21vzvCA3F{o9Ua-e$TGGHZ9E;&%~V$UwO@f}t`JU( zt#aNj0AV?MJ(Yg-`udA1Z0Q@(4K`AC(Vq7F8#e@ zU#hrRo#iPg`CJr^BG1v|@gq_~%+~zs0grbg;5f6(ESYmq{X5DgwxODiZ*1RO$#j^asZea^t zT;6a_+~qkeD-h#NS6ou@T4OQ@aYkYF5r(zp=x;EEZ1?smOUcSY&_`0rN;0O?P|&bs z|J0P>e|W~m#?G}SliA*t2((X7kSS1Dc*3Qzyf|f(AeWPyJ6&I2?-LSYuF2nol#-LH z3SC^BH5zGwf(VmP=2+!R&vtffq~t8updh$J z{L%7qxy0nkAm!gy?+7(G1#f#7-2KR*7{qf|bN^s^o%ovp0`c@R9nie0^Qmm zot{d-1E6*(lAL{K~0XF~1!`-d9Lh2i~xJd*Kkr6wlY-!(gRhUwZi--avNIW+-EJSm}AjB zTQ0+r#h7Qec^>F-YHF0}=pTZz#4HfK)nK&Q*3L=-kO0eL##>tEwI5)GA3o5lg6}`I z0A@LJlst789yCi7~*t)X6<*<$xu z(c$G@7AuoDZMdbJ1lXMwQBgQm9(>xHj_n|T7eQ9R81aMseP^jo8R@XSYCz}7*<&Cm z>;eb~D+EOL@(C;Rw_pj$?zPRr@X4y`>Vz|EHDLSUgeu^2nFT1^T9sxBcj#dLlJnI$ z(@TRNDt=Hh2gQiS+rmY)XTf16Momiyr_2(Pe>v2eq&R2lL7pR_BwuWO12H1mIsbzK z5DJM8tv44g)f>FHu*MKz&M4^a#$9^xp?A$8{KY}dg2gG1ihsc@QBZw;p3)S(kro|z z3Q0)gw4R1KTy!nly8&d@@2ORs;*`njHR8(}Iq7R5R9qAt-Lpkv^B4CI9xr`W-8e0( zQzSr3oP%8E6-V{(Z;(MqDN${Gf7F?GaN^+`X!nvoTy%KpX|Z#r9IkF|Dhw{F3qrr+ zlp8)%QR28LhC6<{z$JNCNp3uiU(tTIvM148u`8;5io5n}VQRzzwHCWq1R|<0b|*uJ z(reA%<=^VLZGkBEt5G;|dN4jfKT18B&aEbG0i@fYe>mMLg zi5}FWdQ`HMbO8!VveHbw&n3>w$w(-i6GJg8%2(8INK9WFX}*;KKs$R>11R=be8>0+>%XZ z$w`Cl=Z+F*_q5B3R~jvEE=p77O~q*SMYTUiGr{ydks zGIT4`Yxomd(*4LvO2#;6PE_eu7pDY;gfOf~6u|%m&Y4KxSkd@Uw#e_I+F7ktv8I~y zZeruU77G}#eVgUhx|9=ZBuRZxkUr%3S=b{BL`k+c$?bLE26#AKkBR>0tk%Z96z@U$ zuO(%Z&TOs--$2&B2~kN56kX-^NE=>c`p`wF5rhhvnf7C!W{rgTSfn2lg5j&Ik>7=x zV`buP=X0C9zO0zA#DdHuH&P~`kY1aw1Q>AmSmBGaKqDF{L#rq$;aE(X!6IIq+Hgc0 z*>tDYsz2J9&BI;6*CO2yAxOeL3`NI^M3}vJMPKctsiu!bu&enSjWYkEEz&b^MvBHO zf>2@_Wu6j5Oe+b*E8B9y1htdBAx&qO6Hw4X0*&6FbEbwfN=z4SqCeP%L%pl-*hNO7 zJe8IBt>*ngjT)y#<9S-E%2p)iIb0gkoKS5;k=7cZtiqHT5CYTz1-bA)pJE$_ZhdR& zPDXy7IYvpUepxX_RBP$Sn3g)B#QHqHq+~i}63faKzPLgOsAKad@u<28{TV*C{`-1^ zO=lR;Y?vG2M8a0u0c6V&6;ZcdLhQ)Snh!xca#^K4EyhR&$z#nuz?OPSaoJfxZ9Ds| z^z@Bs2Ci`_2i?t23Z^kK8nefaZOA;6<4rGFQz+5Dr5+L`*8&;cUXs~xmF8NgBDsTz zw(U-Jf*j@$<=qXvIL-(RIrGeZP>hkNn`T=%SzRQD65h4eFZh}7)j(7My-p~M3GrPA z>=6jHGs0q(RYmsKcwsklZ$$0`pDT(NiswK>>WCiKM|qVIvK*?aZiK;Jn>SI`U!Wix zj?#vXKC?-pM36jm!4jDNfeLI+Z}3z2HTUo zjx8a+o2~9Ue!!UcnF|M5+Mb#=)j8UpF<|FR?$eV=Dvu5JMGE~_tz;`&OzI*G^V zVekpQTD$XNIK8^GwK-^w-J?=mahrvB7F2uUgrf%UQ4_+y7qXL<3fR^EM4x$`=f@}y zaX`qPxtx@X{vzNxJ^g9%&~fobJj(_k^j*-!5&_7y2ww8>^l8ZGLkAlhr{jS@;RLRb zlWtt&w1Gwoq9~}<1d^u8$JY;+=sP<*TM*SAf;uA&+oS@q8(4o}$H{WDIb_?RUaq6L zHE1co_iz-Eg+_>lb|OFd>%qlHSVlr>0yRueV|GRJs0!<>bsKkv@@3XvZCy*>sG@1B9N901vVxCZLafXpM$E zJ_TosL4T*kn10_ghOBZe_!u`?#@{fY7Avy9#f9A`*Ukm zn1dL?xXwbT8DZ~PYS^v@ z|LcbZ15E&0fi@6|D{|%dMOQ>C+*-a7J*uaHYHb@^f-Sh`do!vC!hO(N$$ntr*;!dZ zMmS#zClv?X+WgbQP^$!^iiQO@7nCSJ^u@2B2Ge5Fvgz0M7cQag+h|@w+F3Y%-f8MO zD0viWWn5t>P&_#wD2KVC<;>!)-lpJYA;|2^(xuV1RvFv-fOHCgDx(DHYq3oT12m9g z@HR5Iwh6xtd+sbX5RV449tff?_}8*MK8O*XYyfd>%hqPzP4X8WeagBtfxC)zgjUIo zN5ykU%Y-!LU&9pp^iB9CBJ5=Isf?-LNnJGYK*mM>QkR|ML=gI-y{&0VnANYso&R~O zJ0O~K`Rnc3s>--*eE1Bi``i2thTUtw+=oa39&Ha(W0>r58}MgXd-J^iwjaklwCTe< zUH>#(dp;U7=9<~}yJhy1MyZKlnlF2E75|06tgXHi+=;733L%6ts?HIsvSioRLx-qlun^!{)V;7YBn0Sd(0tL zOpNvBqH^*0>2~zj{&ATzGSj=f=gFLp90)ZX&9ri|*UOGdKUJbt%<~F6w??QY;EB+A zX&DbOZAK6()sti5!d@vMm;D$nv(>)u6x`<9c4v7JfdU^p&08ItUsTuuCWa+RDQUqw ze2s4z{cC-VK$d7Zt?z55=;N)8h?;kBQ4#m#BynF9ba=jD=3|%JexvpJ?0=SiwtqRr{2~T!no25-v4F& z+xv6LEOv-qvNWS4DU%mL>^UG*`(_SS0b_okaD8HP+3@a}x`jXZF)<%`B@O;Y&_eEw zK7Ls#SchxQasR$$8PD=k-ENu(VpKJ*?(ySd6*nuM+r?>42gmq?cI>6U?RrlgG2mo> z3ouQzk3a2Mq|Xy0)=v^;QuIi%8CQ`OpzL*1&MYMHr-i-$aQ)n$>Xfrzbs!>WuQiRK zcv_8rLhd7>#!Wm!onCT{=sVPNs`8obd7q~mYX4O{hQFXsG`Gj>s^=2V#P6X$v?40&$>N@weN5bxSdbfC=UsGh?d-rKp)FhZCLrNt zxdD`{0ci{nq3v?pu}W$H^V8+&pjMf_ZZBb5-xq5^{^@D+~_nh5Y@ zkDkAY@muL>Ab{M1mL()gF<7MjHygswA_lAJutePPCs7oklK((I?Pxd9t=htcUpMFC zokgB#C`wGczk3)v-qO;Nsl%U|eUOsn@LJ<;D^zp1d-!9Ot1VlFkLg08rm{getr=Uzd$b>%AH|L?UN)Om%7yK=qyv;RSU{qeNa)te&`h?fQg-L% z#aVX*HP42*FwiPD4DWyGEh}}l;mndjM4A^;kdbxG{ioR=M1{ZjFamIXuj6RiEU+b{ zFm_{k^W17dy5+ogc3i?eEzr|PMhRpz)V_&aw==iu@VWTgwCg*O$-yi5Q|0q!XaEVE)WnM7rluT>x<~LIVyVlGufTDBn9g4<`Q=T-syN#&m-=| zyBS?SFXX@elSh48Af{Nrc@m#8IbwQ*qE9a40Ep zEH{M|7rVzKeeUHMn8U4i1Y%|R9z3BVSC!x(p_t^x`pczyn>AVb_iYsKBsl1I$0-MfJ3HPV` z4`ta_5^qk^SX-Ej=jT-OZ^X1#eQ#u5uiukq_k}CKMQbufd+Iuh!TC`jVQ@D^bpc2)i)7NCl1t4|NLb^ zv3Yo%?0l;VcRH76V|e%B!S>KdepS{Z`Vi2M7@kvmx1at;FCtFN_{*Te$25tO(pu(v3;x(l9J)Ozb1vh zk?LMu0|PXI%s1W*fNM-4Z~Yyqb#!#C#d1DSzAve=uC1piEiJX&7$p`t%EabUi zNci$Xg{V~zP#O@_9$q4=xsu&L*Q>(3<2 ze4$+u$kPGb#FLKqkH5tf)yDMny3od64yGh%!ypv%_7sByPI+%XsnxPO1onQ)i)PBMAgt&rdUQkDat7+0 z@9vT@%JO=4%7q4ZdSyFkiigv{aMZQ&P@OV)fGMrwS;lCvnOKevxnP%9;C1+H_GyXZ zS2xsN`gCz^*`@e(ML#dIdwyxUaS9x3t(`1_A-rIZw1Ve*GG=YLAtQ@aV?{!?oYK>*k!~dOb_o?l366!aP9sC7q@z>P z`=TUi3>7+8^?zLdEW{t5vp_|V-}Nj=lk>H%69A~ z_~b_&^vw)YA?4TCae>k~I_UCDVP3Cga(o$KKnSPhEohM7x)x3<}&27P_ zCprFM8;705Cc3OeLdPN+_V&#c{~Oo;H%+UYX@g$;L)WRu{yNGNW)BY!eKrP?PcKGX zhf@t@Lwm%IhNrf>(InULFmRkoopSL#z52FQ$_$g6ooy~BD+xQ;Tk09|wa{&?K5aT) zUA=15@7OlvAX$-x6in9)@bkJtsw4(Hr4a?8b?4pYIuE&KE|?zE`jAZKOCw_l=O?UT z(O;jS4>vE&T7EIm{#Nz@hMy^@X)xM9+0i6WopEz)5p|R;qnDkN&!v>nA2#RH%?b$< z&f*uD#|1MMxEJYTd1U?eAV}P{CZgDHoKe@7I|67OxHT4T;z z)SpQn2F`yEOxKS`rOk;!QfI`;swyTzG|55Tx9JAboS>6%KR@}Vj_x_%%d?|NQ^^|P zI|j;E%&5`4>!o7VCo(^S8-zmQD9IWHJ5{#4iq6uiIvcVZ=lSd3e!;R27=QPPE2QWC zc$-a8>WQZulTcx!=7h1WmcPq^2|q# zhGbPl2qxK>o1ozQ;DY5Muy9d9lFvuk1v<>kAXjg|==w`|Pj zJMXlJPf|B?2K6AMYM#LhOQ4K zi;$6d5QMZfz5Rv~Pa_epHi+3T*d5JYGm~W}q{{my4`M)B_5-JGUtR+P+Inm6A14rO z+b_?bU%?mz3EU8JeLD02$t%}EP2}QW*EcMv%%zHdxJXDko9uK&8Ko#A%?cLA^(XZC z?wYxF^XlZ3%6(d&HFJ|cgpnbgI*ppakH!68^9lH0FOTFP$Uy|0GOQ%a1b)!W-?wD6 zB}?G0G7n}u)V{k&b1aUWfF2zW(A*q@zRkw;2f9K&^&w%f$FAk&>=EVLn3$EkAy

    &Q_b{nm7(+H(rC!6hC8?C=R&i4CK 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

    HxKy#9*v}dz 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

    _tmC7R7vH{^%iF(gzzf7|!9X{+rJ)deWWC(Y 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˖x! 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

    rBO>3@Q%6r7l2^)J88yuB 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 z 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 Date: Fri, 5 Apr 2024 19:14:36 -0400 Subject: [PATCH 028/157] Upload devices2.png --- .github/assets/devices2.png | Bin 0 -> 220908 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/devices2.png diff --git a/.github/assets/devices2.png b/.github/assets/devices2.png new file mode 100644 index 0000000000000000000000000000000000000000..ee3c1eca7f01973b64e7cd945791ae57686347dd GIT binary patch literal 220908 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%0Ak~@^={LVZ zdg{zfR;?r1Kk6==8ScH56*42)@CW(0#Pk&qUSd!il~bhbSys!1E_+s;1U&+tKQwL4 zFAeV`(Tp3eR?v#qwOg875&gMh%j)-JDN1D1XyA^GCn$9biuuwxsK!rLU@se;rh_8% zTIHB6m5>Q2SE*+{jQZPLsggyJz{VB=4rLrnldu_S`0=nSQGQvND-6G5ecDVYBq0~M z-#`3~o$kNj)ouKL?y0*0&(W-9&vsdhT@91w&j5yC&cnoz%Acs#Kk%fE4TNXUdYN&7 zUAx>R#crTv4N9J0Cz&}p+cM~huRdxr8Zu<^&RQ^i?n46#sA-Df4Q`FGZ(L>NCs9#V zmt@N@Ep$ipiV6Nc;Fh1et`3^M&qlTM@RF2mpE0WSvLBHyn@>rP-FYF($GQK*0<5Dk zQe)P06+F2pdDpvx`0EwxJ!7D(j$tl+6&*Fi$B` z-wVyStye8`)_O@(>RA?2XMOjx)v=b^{`Dy6HK)fh*qSwIE@pye$(95Gh?eCK%YhnX z_%N~JQpE!d&n7YI*kvEC)c3r-XW34rFYi#T0Rxp-N3NrG9W_g1CANzkgVumw>4Xli zk+D0WTd}e)Zwd;sD*-R}0y&?Eo!M+<5#r@&*%hntq7dMz;_9at7=n>?S8I5TKuww` zT%1?eu?<=&x|}uStI!WH*=5tuuJaj@z8v<#GY81N_J=JWnIlChC?a&{tpPv_e_$7< z4h0PmV55asfyb%ken%QPyU5683|lfQ+9>5M`3%E>w_(NVcXT3-6Q9Q0aMlk%OI`S4 zTRy-<)ZMJ(!?!_3b*;&b!zLC0r7d!l}k#lOB!2%c#+3`T&2D0JAj3+&#aG>uK9E zOUM;m5){dJ$#MgeN_l&FMG5qE6sp~u$3c9tisg&*r3Jd)YF38-6NE{%bSij@@ByfIDEz2ULNqN2v`Sw?h zrq1&;cD9Xyi|qm`hQ(COJ2-z{WBz5eTOiFk8K(`c?}w_LMdsU{$tdZn7;DWqWU{km zJx3g*XPx4{@{5C6iO>sJn{$E!48%D>T5Et=-~HU{El@R)0BX!x&n~^2SJ_JT{-NQd zfp?;YDzVeU484AF^KjE1?E{p&4mcx%#Az!V7?jbkAs>KI#=pwPgO{dP8$9M~TFoe< z0zSt*_J!$2wD8V=u*#j^jwg3_cA^x=h0}{`!Q}Ng+pwsXmk4TV4u_5HbSN-iyns;& zQkinSC?CXc3xU;~P$!!^bJ=;Vx!4<(U+E%-l!{_G@LgyHWvG$){Djq4ayLp)YKdgyBB-&9|6BD z_Ov}V^mD&4z+A2TBwXU|?#Cn>?-C_xZL!3}tiM>Z)D9TQyT;1oySab-4o{InCJ<6! z=2jkE7&aKbV=ZUGaUB^*Q}JpZB?=VZ^q8UsBR-BN1fZ@%BCU;f+Oea-wak|8h1(;3khO z++`w(3tQR7Rf>2F#RE(hYnT`c4tjhjOcp=;OgGVTIzba9nW@_}?30M4jH76DTiz{6 zW`+kKh;2bjQG`LMu=(v?s4KXvAC*3ZKp->7`rU!%-`}f9C#yU4Xipiyow5yYm99vnqYKO?vj*8fr+gnm@8~xft*%V9dpW7 z2acbmL5?%plx(r3N*0I@a>RbC%e-LrO=hL9 z!npGlL%+g^a|qiZb&O%srfvjzSy&Wd6mHDD{_ zHh0AqUD6tk=DB+3mJ&OPAb~>G=`b$fY)gdJ`;gXLib?dUxj@#n*SmSxcWN2oe!n4$ zJL&jyYJFwRIMkq_(}mU+_UP`l^fd>Lr4Z4=+2wNcRC?A9C;fc*?dwsd<0ak??lSIq zn_SG@@^_8gOZYxJ>;ukP8g6{crj_TGPfywJzv^s(YY1dO1c^2+vjZO#@$WQalS3yJWJv*f{ zK7CxD_dZ%kji1_Ne}*IOPTgMe0nUd}(A)0awUl|@ZWwivwPI7$88VrLD+pF9%xQLNjtg3?rmX*mv4;G6`BOs{XmB&toivY^9i~SO?lfEF`#nBnq?R4UH2ABB zX0=jbUPR*kE$pG_0e(A~Hi8gp{nSjrWguvVSFfQdo796C1~skC?Vkc`(}zQYwC;aJ z8tzf|wCU@71)V*UOHV%&U@f=VuVN`hczJ(O zdI1JMGf3wgC+A@n0iuiXk#MCi=JJ_kS5~%|`r`5SnCW&OQW8DoshEA7Sy#-eRj7JB zlBhcCfT^21QK|%xntRu7x|+yRf3p4>^@UFTa$A%#FMuFAN0suF0wc&H zVEYT^+GDX_d6V*OP0v==mRJB;HgYquGX}Su@kJ~|->t76;`Zud$on}^tNSw{9&h(y z0fi|s7k5o;PM6slIbH?R@u;+&s?o`_-(l8gyXkwlAT#4|vv@mzY6dwG-r1vKVI2DL z?trQ8-Z=Gl=P%1q?fWm@;K9zKH~G@}gDzUbTyAER+5D`R-953^ORY*YM9%syMG*FW zc)AU8Gt!~SinC-r^)A-AH0qR`6N88oP<_x7%3@w_{5Vb!i{EgZ4*l%sxa}tIaO!T( z5>kTmB7nvj>bBkv_Z?O?9;ltZY* z$1ojzOwDx?%(eDrzR&Ri3W3s(zW9SU=VtC#fij5*C%YtxtXcNIE@Y(49~_h*IC*jjd- zoKFo5a134(0X;D|P?n*^!0xl3i`_I;2u3!tG9 z7~tXYng+I7x-Om>7#Z`_#us!fjrDyCn{q%TGDDY1%RWIFd@|B%aG*L6+2xY!{-c)@ zD+-61Q?L_`DDg!#a6ZRoQ5bDdS5_~9L+fy-l&dp%D8(klJEYCXO%3wK??gPojV4Hc zxKQxWO@Vi>ENzp7LR*5PV z^wqDY11boaUW!FsgS$`FaEnlVHnW?CKx1>7*U!%!!Mc@a*s)#)DK4h&2@cGL7{x-9 z3$Q*zCcB&oWJYs_ef*cRGl-j52LCv&8y~{m|J#T5%z)PFg;s6LwqcN_df5u%RZl(q zaop(YZb+rWcS5}5zQmiqt+ZvP#wB6Vbhgj^tPlR9#&kZ=;B%$WTCV%vMm84oxzVC} z#wT4ZySmm}7>ox{KeY2oTZCk5{{|{3ES4v{D5-PqW@4yLlqfRbsOMV$w4uSn3`QpL z(%X92y`x=ez_tCz4O}#NdP2W+PhV7Im8^@|EZW-$I9COHU0GqN$oSYE2`kKQuG|ak zh~n3%GX%JKxCe4zD(V#p=!nUYsmBPn5W^(^a6IMoab2B zn90&N(GxYgdDkX@RZ}EFbLW&69UqT*DmOYoRJ~C6>sg|S(dl`Vu6jzpT}E+aHLY;j z+$Wd1*-GCu2FLS`e9A@j`q;0hd8Qp&cGWYu6cT2QTJtmn%=(|i>YHm^XbA=~mB&6P z1M1v!ySZW&%>W6_SlyggChcOrfUD5=>*;%y#zq<7b$C-VU#kPVa`}X>OKvxoaai;U z4LkE(H+OBRn}gM+e)fxnT%FxfO&{jUl3e(VN}6hLK6jRGf`63DX1 zYY1b@mt_Ykne}?9D*hI}#NGZ-w#*q@qW~64V^>>~QV>)qp23Put1SIoqfW(zt(aHd zT)T7vOtY&j3Y`PW982`rly9@s##DCXCVizv^a}I4iOEZ1CftWAf;x5~1(5?S894QvGbY6(L;3ks#SxPr! z!fBjV5|OW+w#@kc)N}UKTrW*8EoQgAd1c6irm8thkJw&VJV7+fUrrQ?0W}_zE|REF zfgAD|Fh-VCIyssD?l!SYsO$BGRJFu;`gwwOO_sv}sbW*>)PW{T% zrsK;>MZ00`YBk>!B@7_9A(yWTClIZ1?Gn(oIhTgHN7 zn=2EW1&a#cs3;!{6jA736oEdeJ;HU=EI4jH*@FCZxD9gqI}b(YLH>9B=PiN!Q_o{+ z+iQyQg1KEF3$4Qz`A!1UPVG-yPX{@Pc*UH^IbuqgX7u-t7O=uRCbcjV90wO_%IY=U zx+?8?ET+ed^8ydhx_EcWB?<|?e!CM%zN|cJhDrhI@JeG-J8dpW^mzal6;j)|2`ew2 z!&e6|ZOY461mP87IB1L!84GO9`Toidh5-n-6i0WrWE#8R%rjEQB)*TD`~<12H#QZ= zY5VyJ+$_~&NH5#w65h03+GR1!KK}(C;`*8)JN~QSb202R$U%Ph!g!Do1D!A2glESg z-rvQxx10&v%qSKvohIV=u~_#Ks#2X!u*U8=sFIQE4H@GGscp9-s_Q-N9K}?(E5}He zUS@sM`lO?*wx+Kilg>^sNGnms_CbnR02S*(&3@?5*7 zJ$AdZTI9O^ra%MDu1vB%mrUB(!Q8>0gTCh=1G8>Q zc&4V}z9oKNBq70jY5XSJ}711lq!XF#SiJX8B1DQ&|eKEsVQYjP~I z{j`?g;7?*mVM#iHZX1Je5xs+cwTg>(14&z9o_|e3qlOca4E-{bzJvV&o2PB6%DO7Q zM?Xt;R#KR9yN(fUb)|~sqN~BR3U`^3%DDUV6j!#k>u4M$(lZM8)eAhQ1*^Dv9CpMwI-3_dtA! z%o(glpR2XRH=O!r0QuN9!QSq2v{ShQQX9GS*5IrOj!omdD*UW_owdyL#S1}`5AX`P zYcJeOpLJb_|b=eH=e+;S*H`{A=b&v1o_U+7az7sJqj zJc-xgyw)j1YZ|zUc5@5T0UoC4f9?)muEjfiyqiuRh>YEFG`o3QwW=zbkk_oH=Oo>s zp-VTyu9bi7;zvho`l-ZMZTn(#;vq<(Su2%WCwp~j zmt56h3CTMq{Ew`OA*4OLGxDU8fI6*tk%Y7bSmLxl3*)=7l?U)(#@uq6hyfMG^8nG~ zZ+8o$?*LEjr>NMfHNX>&d=VuC2|`}*9>=ny7Bv-x&E88d6Z%CF`3>xNomBP~Xf9Jz zmToGU0n`D zu;~MmG+M~7Z#$+g510ZHw6;aAE%~v-2SyJ><>G}^hE45K9aDe0$!R8oZ}^*`rT}}r zgVvjEk&LXkuT0r_09G}c9;Q*A-SU;7#H=M%AZuF~K|z+rjtF1ErwL;+))UOsn-pnUE{^PY&<>vQ$?0X)t?jA&E+g zugiA+C2rX$yXRV9<56#jwrER7604eU`~H~8iilQ7h-<$J6gYZA#FEF_JTZQi#clqs z>emA5B2>%1=rXl#3J$Apuf!gGhY%5$tv(Lv7{gkzmkMZH9d%|>OBgl}!aYRG*I3NX znH%jUsAmd(Q!}a)Y8ggQ=iT6fPFvw}4EAomm3uz?ZFu$bVOB~^I8)nj_9&HI?vzUI zdxi>=psDS04zXb+{E!_|wKX5PIC{sl5c^#VQt1PSLBUCpC!{yMf1r6oxp8Up4KvwSDBpIzXjZx0`;pI_jq~yn&7k&k}5v#!| zleku0+g)P4$cEnq93Y*fPCIu1!h$9U5fWg#Hz%J~r>>Z+No{3PRA47jC5Yd8tS?p@ znP%0l#?2?Z@T+x#LxGxQETHI@(y$6Nx0gn74xdM77wiJYAHq1{-I2J4cYVVOpcbI+ zVs)nhxcSjjM!+ejM@D;Cn^)>yodh2TAL|yqO4TG*k<+rZLq7rQk!XQzjD?1~9YY-X z@6Dg%mX1fqi@ONBuQDY!hiRobx`i`6f3BXEn669yMQ~$W1!VIk1?hF%B9VT$3UXi9 z3JG!o5*ypqYweWhdpb6LHsbv(Dc!i0Oy@PpkG`g$o% zB{`!xdbdIZC>E>vvyMndR4Xsxvu^#kw3QHKN@OmQ;3H>~98UZ~betD4`vn|OPO9RW zI$7}=GGPqR%C2;A1rk#M>a^!2$uQbQUhhj4I+-aKSYC8FjQ}D;PPP_ih(1+sKXPItv#i zJHpZ@*%TZW*r&SDc5E3Fp{!#Zty;8+kuLcO963$4A-V5rMF>lqU5TlLjf%8lZ<+0$ zCTY2~@0@gq)Rvt%oRO`xe86MCV!?h(Jc+L{Y7$tYazT=?75**b&x#gmyTj?{8V z178={3Xo8!+8OG_-sHfU!G6usr)Z%SQ+FFGb3et^gSZtM zpY!$XK4p8ghAEp#J%N3T48jd~$eX`tsJOI$Vl{4Gak|>GqOPwK1Z|uao@)uCIS}2p z@Dn{Z7mI!_FCr!{VeUQ{u+(kvThd|g_M=Qg&J!`MW{Nxyo|BxtAxPt@3IEQ@_^K#7 zlajoeXtBVaPI5hr8i9CiC5byXfi-<+Z%#H{uExu99JGe5)pA9#-qnX4Y)DDv1_KfW2mKJBFq z)4MUB_5&CUcpqYx$k4wOKwI$sS@^<_nAuRPF4{W?-fwkZ{IyK0s!zXU;}2Ttfb!hF ze?Ix&xHO0Q6^LfMSC&GU6+eDjJ^f9~FLx{TdpL96air0`D``kv)+#M=x)EY^awi7c z@Na$mb%*2M_bMx>b-8a3hzC9f%Lzz{`TqIEzp`-};!-VlE$6rd`=-b!KJokPXniEH zjNt*MH$A<`Pz0L*t&Q-4Hq;aQ^X>Sn*5UF=H%tE2zXhrU9%cOYD1JRy^6Vwqy8H|= ztG)cZ2%Ww>z0R%}_FQe~$dW9aubrwGP9StNcUc}D_B)A~hh*yMkcI}3Wo4GV^E2tf zoDW<&rt%P)a`c{DoL?P4J}sh9DE<4_F)Z)c8;g3W{PE2(10mXp;f79 zP?l@0chM(^Nl(jk=KMaX{7A(wzPpBz>+?b@mG5u4Lc!6JYSeIl@UAHd@z`D@X4taP1Scn|T>tc2j%Z)v@w7D%ksr0X2Vs&+B0PT=wTvgo z`Y1CU9-P?(%N^Bmu5%CS3F07*JMM1G9PYxrrR^FDdGz@4mO!*qT0r8!ZUV7GSLi~SN0C|rf zwUW5@&YEXXmC!ciM1(McRA>GF+ge%#0E5PK?&o*D&(Hxl0mC4`!h zu^GY_I@I(gGQjD3@1<20WV7qi(tQdy0_}hEH&wSUesBx$b;ob1uVxB)LE70;k=lBm zQQ1JFTq2vUj%;7~T~is^4(|moxOe00mmkbCaGuNFWq4*u;UCIRPiOzP3=-eAV)z2) zLS1J4q&`G*vcsY7=|+?SvAdDE-ez2lf`Po&uQ4zk!MSHdl66QBjnADPJ2h}EP#gV!zuA%gw>O|hPdq?8dD?u?ynEHy0? zV((`}E+h7Q2DNV4RA1MLpa0+243kpYzq~bt2v75^9H5}kkzyC48#jk@@wLBkxv}*F z@(lLc0joj2a}Mf@n-&|7|3`z}R>imsSKqPNxF_pAwaH~EX2qJl?S?HFOQF`W zvZpCNnz}`~6+NJp2^;hC(HZ+guFdUgma{aF?R)MmR+8hs7=7Sdq;h>cZeTICgg0IScm&-wr;EF9`+$$$jd0+9@*BRn z-ZWe^zDT)f_;vm2^CUJ>@LqL7=~3SP6xKB&2GjlIcZ#D_xPaVKb`u}s7t`A9&KZkg zUx-bWCjECFLM`_DB|z6pyIljqW~BTtBAVgv4Owhd%I!l8bYy@%xXR)ltFT%YOO z#Q%xu2RVG9__Kpr2|xDe-7Vh$1o_C=_g}~#xBBKQ{fmu!Z!xv`ChxN<$eT`YezOVl zv#<+GKnW!*$OR~_B4$MyOM3o4TA)yYN(ki1&-jzgY~yuuE7c2VueMK+oJO@rG6W~D z(gksw;^o&B*ywFZ7%Y$;W_hZ|e_t4~m;0Z(3?Ag`&a3QQdhlJofaS*DaIsV(t85=qaMt=CLpzE+KM=LIJF5UlVsk$>ly2^Uh~S4(Ff z8{m1y52X>MMDmmNFF(x>au3GQ;mSAfJYT&U4ruh9&FaPe(RX(IOl?k13dyg(gV)Nq zdK@b(p87l)*;qXl^8Zh!*{`2k@oz9b=zT?9<2BH0z7MYB+&Bj#3Iis7AtmqcpehAz zRXuyvPJM)iVtqz}yg+6F8o~Z!6Q3G<^8zt?LP*R7WGl@O`;K~Hmx7S z7yJkZMAQPzlxM1LFD9_j0Mhby!2={Odt3jTX)Q_xVD%_R z&GJCd9dSqY#R@fF7@OpZeLZ>%;z2({E`Jz*l0Xl(ZW@u_cSo>=)lJJlM{pznX zpwi>E&L}#RK4`g~4m#c7!2@63DCQi%dmf5dH^7ck|JD)Y4vW!?!*@Z*!AP80a|!-0M-K1M8+bL=xG&vWCYlBwHKz z-*Si6@hJo>2DR;B9Tp6HmvW4HdSY)kaEpT)McBeH{)zgF4JmF-U!h^udeO-Q%@HY` zf|Ejjr`+37U2zp?qy_N*1Z}gzQ1ZH@ZKDjgOk4%TbM%c=`F|EP3~eTh&rFO*jg(ET z#i$YJ%sggjBQBAMO} zYNCft6qI5-RHO%9X+Kfe0VBF?1&7K}cYR(t(j#rEypxce7!BcF_M(%yQ({n;v1Qvvizyrf85g7-fs_7&&k!Cbf= zB$kf8RdI1*8JFcK@MI#WA%OpS((u2d7;3D!aVF+Xn1bG}^kx~ksUSFaT0Wa2mVWF!c4&I}-v5q>^_-T9v>t1ZcRCdXP&dVVZ)vzX$8ylzA$ z{guP~z~iHO;oFMWTN71}ahL-^8SWg`|1L)#+QlYGY7F1@mDQB3_A%NbkMe>Rxe?Yd zB|tR8aVoGH5b55<8q|1kTF~l>Q~GbG%^XKL>7fo_GdJdG9Cu>vsxS&lqT65D+8g5_ zDwj+0@y~cGP_U2(xi^4|!YnZ+v&cBB?8*Pp%rMP6)Y(oK9<-9!J`EOHSc^S>c;^z(%;qPG4K)yzWV~|N^mduA;h!i5^!Rj8sD7Sd;#I| zbt#(ucN!F9Q=#&V1Pg-BAHjEuMenWR3w`-LsaC(8Z~W=(zZmEFOKU;<|LN;Q=G2OK zh29Ow+Mfgku?8=p6G8Y|In983tGugICFHW*{}X^GLwwIe+qXdl6MaIJJkFNgC8o>x zk#k4|ocZ)u5Ym@kcz7qDq*9*bQBvZ8TNX@C=>8oCFf@t}40bJPZh{&jhyr^FkftC1 zuQCPJ047Q)Nr$h@`>TJt)&qlj$DG#v96yt3{*&4P(?hy`noeDuTWIA2AjB`x7awW6 z+5Vop!Z42zd^_yl;Ae@^BQ3yA!Rc*aUwCW!r`LM&yW`z|B%RpGr&UBIi57XfYXZur z4*tZm1_;m^V~wEvx6IIeLbXukee4z!+WHX90k~x{4j6|ujZ^dQM_Xs$v!R1!x-*lK za^~czS*XjpR0aud29PfB*_Nq4%D~nUJg6u$9w0p?fCj%yV1sd5y-i2o9||c5yMC=O zVD_IT8;-nrJ`?9a6z2!d`e9l4jRXY+ivRb1Ro)uWbK6(HmR=5B)ry;%ITH=<5FW7X z19nCKquqe(*hp_T1s7ww%)I&Vs9M4Qqv}1t+3fzf@u;@iQq`d-rH@&o6t!okqUf+k zY-;ZnBXrQ3wW@YoMeS8v&{DI+Ozce%5-VaR?@6EE^S=N8eO;}qm7M$B-~IWV@3~I| zZ*TpU+UegQF^N%psUT|shB?sq9f&CJ_CGZeaS4a2YBJF|QT#uLD7{uLD&(-v5GSj~ z$TA+Sd+uveTi=u`%78AM>OUJeJ{aMBFK(A|jjOUq2WN5^_oPT7HGF)(5usKiLiFZh zajg~lcRHVGN*;>+(iDY+}oUAR}UEvubOrzuPl}n?aET)T528t7re)ce%;mvB?C2R zPMX>%O7%i_9T-@F%@>K@q_K9HYP0{F!W`W^ik%|u&7QRT>f4HSn#F+P@nZc9rM9m|q{Y$*8vZRhBiws?{4Ty#J3ua0lsKmj&KI6KY3EkoaYaOPkH+m; zzo7EUw$uCguZ)%SLeonpe5dYFP< zo+R&1+aWU)942qgyj!dY5tc~xcx^&$vK_MTULkxTElH(~Z609S!fU`14=kR{G&pE) zvu^*y9XXV+RHVyNf0*(&aHw$C$u3`C++C{9J)wL5%EP)X1b&!D#IJ0%Li{8s#=!HM z=%Q-#q~8;MF&Td&9uvtqrhb_EAxBAcokMeMH}kN)rI@!X<4PpA1Ghubld_W*L8i7V z08^C0^dB%Qn>J__ZT41at}@Ad!Fy?y92ZrZ9R9GbvSmG76Ya}nLM*?nTZm&4j7~j? zq};Ah7!<@Bh>cTBt8qzNm_am{}-(9gfbY0+J`?P>G%g877aEmYm+W+je-NP@XW zmOI|{O3(iQ|8{K^XvD6Ze%q`8oISX(j7nfyYe}~JJyPgDL zk;L=`CbC#MHZ`fc%4an&w(q(XO{h7^Co)0@3=47i?WyBLT?z}Z0}Z%YcSVGj5t$rX z;*Yizy8|pIXhBQnT}r;-dQYfY4HR*)TsBlLFZ%smG43&AyZ?LZ!jl>auDACMq=qpV0VVY z=?q4wRc2B<`_;k$=G%rL<+mQrzENdH84BI3jb z?M5{AU$2AEA?=?O;;)_BZafwQ5nO_TLTXQGE<`Br9n~#Q{@j9wH^cTxZ(pt0$u8^U z25Tm`QWA;l&6&EBzPti$KMl|FO;vwwm*B&YZW&X7P$!Y zsMZ0%x;vu0Mef9u0`>ZHy&ONk%-$zE78*O{H_qq|d6~&De?I{U*d8Z;rKaH}jOiiV zb)t#GCFJ-9V%^+;`VJYsha?=J8w~l_d>qk1y)r#LJ$bqXmFH`K49!X-%fjuk)?uPo z7meA$duc=wNsoYi7KBo?5g8*_?_zpbRW(|XenJ29$-{e#W9c4F4%t3c(_={?7KP{T zEkj(t`M*R9E9@`4Ff2m8Iphdd zUq-1wAa$^9IJbruL5Zx6-erRB1w=(h)8nL7^YJD`>U4h;y_0?uRJ@|%V78}vbrh3X z&>tHca-F7mgW2-RX?v;}5X7|cs3n~cmfnCaK&baenb(2TbBNY|GYLe-f zaa@DC)FdqR>&<~|ky?FQC#4F4L7(Ft!fexCO|OhYF4VLC)WK9GdZjJZxgS+zv_tvU zdoS$R7~GS{eoU}cD#;8S)UuxsJ%5mO;W#;HExfzZ<1qQ4)mE{<138t)mkCqzneeK% zuS^m4Us3m5TFJG!fZL<9zmsx+@@dQ+$JM-O=kPCty6tBlVDJH2;M@naiXut%cnAwE zsPMt*r!&z*GN|Srz2G>S<`}NqbbD+5eMm+_Q_~)^D=r}`)&YTi)q>+9>TnD3J0CM) zuNyZK;X_eUlV8_!GmHDj?w;(c6{bQ(5}|q9YH{B%Vs8cQ(3lW+kxJ{#q|=jz4qqso zz};2e;70DwmnkYgS~y3Xu6|;4FybSxW90~SGdF3*n2d=NpHMm{9kRfO6KfWC28Cq{v2kNtQ{ zOiUKPRx$j^VHK&gdsgCFPjL_oL+F8%m;%=`8}n>4{iB0i=PwWlEF(t~zdOHZ zMfyZlI1txFSRnFQ%$7UjP5Z0|N2cUN#XXuPsRYZRe4XQV__p&p%(I#_=yL2cxzS>@ z(`yQ#Ct;q7xj`s60_wJAR-jJrjV(A?zpq_2ysOb z{$Ybxfn^rDPT5oHOlQ&!RuRJN+?@;LXN~6y-m2?Be3$Alq{AOxSR2GrqKKY1Y}RY% z*|=wq7aE&)eE7o$|H8hljC&;{%zI_(kfX1p;h5=%-Qc6i!{*nru4d2CQ?6M{OG|ga z8^6-H^R>U~9$vnT^=z}tUCubf4PN#quI?lKKC;91E-KVGBmsGPu8FFwtOROd4_IAL zq)uwsTqj>*&NicWxYlRjiPNty*po@rb-SUgjO}GMSTCpXDxG099l2h46IQ8Wj5sZX z{@!M^jJQG`^dsl^pF>CG-;M4}xC7-^zY%y0SYesz{J?Do!nAlamYa1MY2ln6iXGDVoyb z(;JBAH1hlCiyg1_(T1FX_}Xmu<|)eYVbTlBV6f?+e^F2nL6diryPw?|6GyCI{iMXwdSO<`+J zeIUwGhSYYu0)PZMlg=+P^yK3%&cdt9P)tdzpcfmSy?x~C(+c)YP> z1YC?LSXxDpDfOG@HE~Lhe+)4WsI#|Ymkf4Em72Q^>tM4pD7|G=Ba zo0~%@h7;6fZQGN_{FYb_T64*dJP4s}r)yBM!L#nYdC8}X9>gVrZP{1O-rTRzcaZP- zqX!krS5i}S6}Fb=0QGn?jc{-yql03lb%KK;GkBAhp5*=NKEdt=w4oMlq6=|Kz3t{Z z0kuJGJGIlYy3`jvA-*|dK?im)G|*-}u2!qkQ0K3~9PO}rQR3Ei+j-co9|joG1Ed03 zz6XVsB~MiBh`acvf4x1#lAHe3r}3D{bKJxy@6sb#`*B^u!Jl_upSm2cNZEhWO{{#R zXAFC%UdJ$P7hq%mx3dm6?Dxo;Jj;`ZWhicL03 z&pyQZtPz)aHl!}H^Yt!wEGVW8DYPU#o>9MGk$&F$G%}(Dfx1uZ6+9y-*4AMt%ns-q za-oFm@z4v;gS^}yRYj~EgDbfi6X0AG+x3@$@D+6t=Ro+}+4hyz%hB=NKx799GT|SE zT4EmR*htc4z$j?-eBItxTElT5n3L)5180lI<&g6C!Jn*kU$93QEhyYn=yf=8w3nOV z9;d0W_^m2XOL6mLdcfS-6T!ChB`clO>iDXGEZ>rqykVK%KSNg7D)kpVPqc)$-klm_ zvC4(8vEi+wdXj|L*7UVwy>L;T7K_h~{Cozh_&~*Yo&qS}5fzr2mXepBd)sH${kC1& zHKawPB~E#pl9Wn9wEvv=_*PvT((JA+z=&AVDS2Aa?>Js%-f~(|9Rx&rf4`^x!PJ0X z%C`H;t-8>l7blzDYprt~kyNQG%)zBTm*dpi^CV#7HOGYaVxk@|HTGn1i|VsF-p(d1 zZi!=MHA~1%u3&nz-(A$dibl&G8u;)V$!R0Hs|zg2&}un+1#h>bPj9zOXqKo|(WwqF zXJa$!bidU+1b(67B&76tz(=!pk)lrOJGUe?J-(%+%6x8H`?i4idh?ooy+2Vg8Nuyr4uLu|B*Opd?vB2PObZs(Ke(m(iPg{i~wcyUYBD&A!$NhL2)K(nNbE9%1#7W!p!`t;|_B!!M~y=?NqjAc*8o+?_rM zVnqR3XJ*3&T}KU}_c4&kvk1(YOPFRJ6tEkvW4LL;aD`_~F0s2>B;aw$++*YUe^~;d zm`Yu9W&yhUr|v3mut73v@2MhVcQ_(NO=(*;iq*2WXetez>Sud6^e>5{Acc>S%GF5J z8?mmX_WDyN7JtvnbyprnEBpJA3q9*!FzC<_t_1TuTLud<03S$KpyHh9Au7U_kuuN$ zxN9#095g4QT`){Wy}W}n#zs?x2>^tv`{%oV&z8mL@>U=ytwk=~G<|uzjZ#E)y`xnu zyn6L61#3XqG9pE-Qm7$a`EfyG{^UCQ$^)7nn{A&4qPW8(|IE|-XMG@oLl-x6eZH5W zS$pnTk1>r;$%cw@2K`H#mX_W)b0zejpB@lp5gq)o%Y$b->-LqfUPGVL(nFL5LC!WI zh8^MQUhx5@dSgM`44*2!1V7BHe~CylJ9FkP!_Xiqh&rr_NXpE*S?5?JcY;lgf-;rn z=dWGAzU`LQA;YIid%7mwLxCw4R|%JS*T|40%VOYXxv2WE{e#~v(&1mZ6ogP0B+JaxW^jCLpbU0Ra3V(|)hUkK-7mC;7}OY0pKO{vu~4l} ztP<;Ds{1Th<%65&kxA;(wa+h_=1n&1(>njMo%t_0HFNte&}3h33Xvqz`G7_Yz`123 zh8@FA`9beIn|v3u|z(w?x4 zSvSB6&oHQf5lin`wtYf^cZnE3EkWZ=vAqz7ze^^OLrbp;1B^e~K~FZwwX7Jl)pWm_ zOD8TaV!B3`7E5SFQC)|H8u&AxEo&MBdwS|Ni;o>90a*!wsMI7M#}s-oxt^&&l`qLa z%orqd?GDab{;{4qJOG-}7fjQkT2{Xn7E)<`GqJ1MKeNaSD!iB>PFon#IN{Z2v~F9y zgx0pTk)VtQk$x3%%vbqeF90Jp1F*3-M9#EqOgc=SHM>RO&TKZTA>u+1K`S*f zvb)w_r2cVf{h3Igj~*gPo~Ae7P09YdK-+vVa?Jy9gHaEk?EoVJPwE zn*X7*qF_^_zWQ~RmGtD5(f%JVT|veH*UaNS8JiQ3W`?6eQC`Z;3Zek!WfXhvSLM;T zTdSv%<9m?~eDnRxQq=M%9kM0zrad1ME_K*2hN%@&&p@sRL$W(PK^8A zZa`-nm1$uNm)>rTVN7_&BfKNl+a4DSHc^)Ey3HbW7<8>)KSnX%YHX&Dwt_;Zven{q z27c6{CaEBv`p&zx9-4M3^tDou;Fj1*-Mb7zwrF+k<55?@LH$j?pWJU48^WZk^hz7V z&88eO3(dJ+EmMZJjMT}l(@Y$zab)OZR!3d?xPSofK6f+L^KgEyI>CUMfw;b$@c_mj zo?#m)8uW!uW`^Y*kW(Umk(2OZi``T;>Yfra%1{O)n}Y9uG$qf0ZeEqETiOYo#~4=Q zQ_t>Ps4s9B;es?je^r_vTc!~%z{NSwM$^J9cv)ZPwO6=+WlCzGVNWf;AO2&|ZHU=- zP%S`o`$gjJp18y_nEZAi_I)D*#@OG_+xo629+Boz1X7!vFx}Y< z>Vnm|TV+%Js2}zy>`3hX-R_?M0uK4>D?T{3LC;?|=pk%szrN@6Zx)^V)n({& zDon^2#K&a|G$f$k*8x)dP#W zeI_eW&AQ;s=lL^~Efl6HJ)w!*Nw%4up?^MJdup^sf;!|dQ4y{_?+elK=wH%@`;rnQ zb?Pd5+U}LSXwlA%&d%2_F-7=IUfW@S^hJnnQ)!toM2hC4coSMZ?0Yr9sW8F!e~m1^ zBXyUM%Atp=f;&Yna8q&din=*#CWrYp!ojd9`TDwF0N&8&BJwE+ZxFCNh0|B{DfUwO zyO6JJDv)T;A7``ldeYCVzC*~xq}Na6#kpXgVmD|Z+_}ifIwJ{vU&NHz#(FN@-lj3~ zPVlTRm?{UX_gh;_Hecbd4t@kNXO}@NZyRJ2Z2qVdiar)fJTa1d>at4zDKH*%a8+w>QGHpt{V9Vy4QSYKSTA#!q%o5i&Gw-R7IuogGgvm|cTu_; zRaFu-^=11N(({LTk%`&)orXgH%ygPkc_!y@f)X-wAaollRI$0tLo9(FJwlLbWDvHP zKXHeou_iK4;DXk4$)Kh}8Roc&z=}uNDw3$8VxrhRo2Vdh=Q(xkEh%#b>HnLWS3prc z72740R^i~@$afM>5WHbmG51kcUdhpPf%QVAS9eY&4g`;8WoeA20ag)G@E!pE<7Jk5 z$(%q5V2%m4an;TuLuM+U8$8yxtJ;^wpD#hE?t8WQ<`?Pk`Tx??ncjmAlNZ+Awd6+- zS)%!*R`_$zek>y#{K+N=nMdhM`Ey>(aMDXFxsy%eR2I(q6W^J}zPz89i2|GP4@cjMwDY}_OzBiW>73RH)Mk)lg`l{o6sly{0C zF_xW%l?-jU?|XSAn3}5DuIv^+#|eBTKGHzKGMY;xPeMzSf`XDy`VaA6^J@>YLOJ2a zs@+#azPsF+n8luFHMq@LPE(yV5#uINsj&h>)U(ctXRQoA52c zx&7CpNA>_~tsm$W=up-U{`u!j0rJyUF(%!=N>h$t6%`d_w+#T*54$Ykx{ccKuTSNC z((>Z9WbY#Var>~%-%NmT6*zOk#CO(%N0l!#AWk@dR3V`#nd4+s{nGPC4y}l9w7@fO z_FAWL-E<$^=--hVW@__w3S{vO6`s2W<2nU8UYilZeP!)z*&3`;s{`u7sE@Z&y(Zk+ zm)lK`-8G&R#*020N6MR|N;(fkuiGvIE%4J(>j=aOBt90YS>Bi39m(=Ka%;CgOwP3( z&wAXZkC^$2v74-Oa~k_`H|e+|qSCzOpfVu&LP}-GtC?g`RqEyT1H$Elj?6|={4v3Y z|4d;JnS3a6u$M^=!cLEjd=J9)lnk35jpBhLBaN{*ii+Ne+N^9PG>f01G!e|%b2W;h zjWNdd<6YJ2VyLc{iqr@%Qx!=+rPp=6heFho%sg%an2CW4CtUjkbY*=42daA5tM6wu z?HUX#?L@f8DBV!aZzQ30{6@#ecUjLict7DjIGl{25o;p9PW9Y*W<>ZXMSk-)MEBSf zZugEBCm9EXC?54|ttgRFO&!zwP4g*CL0%R7Tw!*1>D zSvKM*VhQ3dSS090dErLoD*ci3b@RRcJHMFZO{W_U`LPPj+4Yg2P;dNb zmXQnMMQ)~dIH;b#;cB)sP>pVvusDAldTp)H#k^XNsRn>LH?HWuEueH}jV2Kj(3 zxyotun`QJ=PPZvRcQOE*u0RxRdx@k*FTa_O>6bv0Toe7@*_PXOam#?^@D_ihY=rbz z(Es{b#B%t%Ma9lmm7^Q~g%3vKRi|MFf^sI4){`14Z7}ru+OzVz-}`T_j4B4tzMI## z>3$Dv|p#Ue9I-MNO5OYYuOZWC`E`WXvzg_BCF>LkBH-Xh4tX+z^y@efoTxYWz{ls zuVHFyDYLH@Vq=Rv_%$6E_0w+VwnUw!=4_}oS8fmg*nnaPHcVy6pXkd67TU>K=>3Bp? z1SvjRA+*|)D!Hmt(qPPFyumgZbZ9bGXNh>=A6M6F~|5t?9)t9_g8QC9aj(+8-TH>ktS{#qF8C&+&dp{{!c35z^}RxnIgI2b~;)w88;Z z8N@UX!lqWx-4}!6PKSs^5Wj#KR4HziAy>zzk3*)2N{Zk7@&1oXV2d#?1B6l`{_Q5j zm3jE_!$AC@)T$48rbX>VZu+=ZJooWlj7g4>OOsK|dXO=6pt{LF9aY3S_!g;T8fRs- zlPzMJt#r7pwUXK7k-jV6s8A3n}72WvI`qB-|@hqWwV@RnGouTE7!o@iEPuyP*Sx{m3 zdy+~1HI1zr#|=e@G(HCF06!=$+5~T6A4lYRHA+iJ6tTM0J)~rT@Lx{}2Wf!01}g$% zV-fNCruD1#fr}i)0}|6sjf}zY)s?^lRCNBmBTT<;_nkt*tDF(*n(Na_qhmo>C!ZBTvTI`T0nF#)erugu&mVRu zmdpQoP?K%*?R598vvmgrnM0M+2Mxl0n{OQ^|28NJDg*u^@T{X~!uKk%b;Oly@K(f* zZdvsYiA0w`m&gY0q&vfrsfDq0be&Huc9LS821M5AtnKHE);W%sRjiAKt&>bZJTpL$ zkMZc13rcB|c7=ZqoW|t%0&Vmf8s`7}S-qTj5I1$yriZPuj2WQ5ur}b+1kdtL^Rpih zVwHNbT!(dWp3F!~Llvv|V29$hj9q)MHf#=)b)rraHPG=YXB3E!+2jK(J}yCHArEZA zUu>H9Rh)MlY&$p6e}NnXYPTa15!=^-8CRS2z0FqF7ON za$psiidD*aXtSL|grC);aXwluL9C7LGc~0btBi}QjWzROgT^Kgt+V=M^87;^SgyMa zajWVTf2Bzy@>7HS(VVCsBv7qkXW7qXXb(=VtXc;LbsRL)D1JtORjfK}@!&CWy5#mB zO};;p)RE%oe1SZ7FB+MVQhqOhE;Y$S{26`gzO@Tt+QDQpVf zbo$(@X`gB8d~^kI2dsoYR*mcOFJXoIR^-^)fVEI!ajm9YRpu8DrYCTf)y6}1 z?KqqG99}*?!bY*m9pGVyIQY{z&+ejXhxT3ZI||}i1x3&OgvZNYI&%vJRm3|c; zhjG*`F>qiR2vy3!-zgt!_r~`d2Wo2 zYUkv=WrV=z=T~Aa@G;?EPlQ|Cz4Gj0wm$UX18t$t7DT_b6R*CW;Jm3(cV$K42jt7Q z4^Zz4>nWvsA3ft3Qb>wu#-82@54=Lio6a;DjOTJ+h`Mm?8=Ib#i_FZAEi5>(s3Oai zf$X)BviUc!hStZcF|TNaXX^2daDidFr^WQAmjPdaB z>=QN8r2EOWXzb!jZl>Zvt*YmrSa$?+Dv)N+c~0bxvv#IVfz(yGCFI-g+RcM*gCABr zSV_lh%P`41E>oYXr;j;Cdk3hOp_wr}-MZTk$o{ptdQvu|GDt_yJtg0pjU%QF^6VD` zb&D`R6@5yb=OszTdrV2j6VV02*w!%eaj`LmkJDY&cS2L1oypt3Z<8kT=aWGzbTPB{ zdN_Z%%l5~05^`ItnJO;+g+Z&gQ~^l0L|P8FRT>R z2Vd^@txa*~*f=sjER!eZH_P3J4Iu*q161!KL=+j=OOqx*SP)z&Lp>) z{q=T{RBOe2+NE)y7xb?2IG_s6TSCvbD}85YjgAS$HbpEq_P5+`@R?l?Jq(Kp@OJ`8o(3QnZO59@1>7P`2H|;VXtfAgJveRwsN!kF0jPC2)_Uc zAQ7xqhl_sq@o~(p@Ub_q@7`Xou6=Sai+0b8=*J{zu%)A$%2v@&xF(fz`0wdxy3=OY^UEtVt@u`n+q4oxd zRvb)O`@hYL6E%~?<{6IO>U+ag(vU4Nch8>@_%hLb0oM5LuZjaJwWRyi3h^`=LR zujjzYqzT{oC}Yq5hu^ZZ!KtJ8%NH;HT<*`>2aohVDrymAV6ZYF`NMuV9N$E4{DtA> zCn9|NJ#1Gx>L`-}Vx8ZWESgSSfJ2_O83Fw6$1L6YG&8{gE!o9yP?YtMuiYQfabjY}4{t_=0a$@sl$akyw$`Ev!@ zW@lYt_;TzZ=8eBr%5>hlYqoP0^$Cf^W! zM!yJUQ6V2Ozv7G?rs{3)*2j}ReflK6n)Xm2ABunhZsht2zHv#(p zlcA6b2$+u!*K_Q)wvkGM1$rf7Nfy=mLPEwhAB0Wn`f5Ee=k$_3$$AMuOOoVpHCfHO zrKPv&+2uQesi>Kif&xMUB~zo4#cc;F9rO-}c;rH7JgrsCG%zp_I79-rI{E0><(Y#; zE!%GUZkRbE2)Z_ZKK%sbo!@+v)ZSc#$frAYmsC|%<@XojDK}*ix48}5Sw5GpWnHQ- z1O!-4pP3pT@3G!#9Mh5ffMuEU`9F`MmC8*%@4zmq5btg(^m&9`Im*s)mDxLy>9Ip9 zv6~|#f3kli>^|Vvpy<7>o&~eIL0_L}_^dr+x5pj!_(?Bs_sTyKh_%IBwXT8AdG|$z z3aP5*s-4I`m;7V+cyh0fR#iVWb<7=nxc0NFAY!;_L%mj zChP8xf70cWGU24;5YXanKP=$AHZqG0)lgUG5*CgIX@8%ClUdS{SvV=;5LbU;@D6Y< z`;ex!(Yr zzHQk?#~!q2e((N$7AfZmeg%$;{PpDu`8PSAf6Y?pR%e;r-anUMC}LcPa7Awa3hax( zzVGelJMv=HUl;-|&ZgF3G5y68<*2#=cbrW8^W{yU`zhqZ2Ma@@fzWdCm=DPr@6hr0 z`*UPD+ied57HY&)wG`fr>+HIxa&mIMT|CtXeAQ=OdBt%VYPElnv92Qt+96A^S8a}a+f(ckbjcJN2^^p+}zv(4pwqc zo=h-)sIlTP`(uOHH^^hnn|+*@K}*5&lyB z{r#S6BNu}sBk6Y6Mqk^d7`u1!?5vH(Q+QX<(e3B{*yTJ^Fx-?hSlhp~GO&{!1_5#@Do%x*gc-egq!>^SO>-o`7GhOKO3kS`K>W&6d>DHfm9HbXiYn>`S@Z~==~B1COQ~mocj#CJ z5OI@vCiUL2`5Aus+IjcZ$0|XdJ|Aj++jIHpHAzQ(s|nD)x3|%9VgC@{R685WdgjcT z8*=pv`2hgbeFOP0fP72@;r2SQ;i?Gq&!Co)NzTAJ$hh6Y^^s+k?E{U0{^VVt!|28C zq-~Uui>UL2w3v8AiMD=3=H%lhH?6<*PvR)~rs>9X`nSpQzIro9Iug76%G}KDK}!^0DTSRy$C}?{iDua<^?&^zNr%Ydn6u}t(m1=8F*fPBPjtHUB+^o`Y zv!=X56WJ_e+r$R!ITo%kxG=()3KY|k2kiZQj|~?ndpT}Qlv~q+3GslGF|sv4ANIPW ziIh@MTo)e35%kG!FlV2*xUeweT@O;@=5!b^9}ch&VCeg^`GoYO$JS#Fe&U;(oATR# z#Obcxd3TZPQQ!AxTvvtkm9@36=oTb?`ov6$bRc{^0)>M?soCB4cNZ2GtUv$(W1k0_ zvF`hPH@guI+O9!$sP!H(ur00uUhV4_25h&##I(ucHIAR3|F6T2R$ywj-@biY=DTSD zRM!i#NV0^(RUleHmxj&Ll-vQ(aSn{I>IoL$K-v=ph4aDAO3OFZ_-HwwhX5m4q}YTs zlRw@vx=r_bb-3U%8`~OEXu8IY3pik_edX4;OH+TA$^|$?0c@o6$18xYPnl5q>*tig z9-4iCrGV|-6hZ6^sLIe>%wr~iz@_$L;GrQY_X4eL9%j888wmZFd&)zk^+|(F@nxe@ zAnw0cnpkGwF3WheOYYs*rD8nL!8qOeUTeL0Gc{h)oFEFfxrY z$4?;w_GZJ3;m3p@FZ*9L1|GWaZOn@Gm|PUpD{i$YbN$Vz2dO1ygTQJ5Fn7HVehCQH z8q=FDztK!hvdq^lI=7%W6W@ND4jQoe@M~7qK47=(P=zcWOMlE4yAmnIm`AS+=3Dyf zciNF+eGk7)fXdZw#SMR-^xapLCvdB3v1z1Bsd(d|36v${7tc8DZIAB9hK12vRXR+- z^eI>D;7gDrCxQ;wDb?VU4EbbW9{oS;UMTL(Py=iwO`PyZmU3ZNI^MagrMS-xK<`|? z3I~s(Vg|?>TfnRiFbDgXOoJaUFH%siX~5>G!5j_C-ZYsBe>?&rFfD9bxiXmR(aDq4 zSMTFuKb-%2XJwE@DM%i;3m`-QjnYBG5dcws{`^v2US4)D5sWziObzP4E&(je(9u=? z#*JXW4}JRc=ZPZuXxqI=N8dJ6S$lrE;H6$zT`_U-O&FqKvyJtR{m_}1_7=e0 zK7qkxl}LM8@C;B&7dIZ*Q!*LQ(IF9^>wqqPk}4Sm#xHf9{S^;m=X@S??sLTB+9+nx zU&a-JyCb1l*2=f`50Y3D7$72#W}E%otS5o*UXJKdbNyWTHTMQEyT4a11(z;Q)=L43 zz!KzA3fNmpbrEx4cnkrcqO-G;1Z{ry?3v?K150xzRf;W8IwSy?uYQqkC>_hM5C7aB z0bvILBUs=jYIAX|4>VsLt2_KjsT>Sa|uEV~;2nUAu+K z&`3Jk?XCuv-`IMR^HCx2|j+s=;a(BC62U{XZ6fC&<6HrPr)Bw$#Sl?0u z&fYa7jMuI(EP4|f3IK8Vj)Au{Tg@cSy<~jWmEp>j2R1f2O%oOG*esb(gThc|zAY*X zSmPRy9H_*Bkv{}l(XX^;q^6;_0<;g`jv{f&UxY#eP1bpFiHdH%Svq(2ta<;}hXBQQ znO-^u`OkKBC~q;tVc?tU4hX@m$AEcW0`-uHccwWrWgY|=z`_FFPXMrTF+TWAU}@vEuLl4GodZKkFvTPDx!o=gUMN zoJ2^~CdXe=6p$&ZGK-3XLK0)?O~(GSNZJ@tI_dyL zp{o%GnGye`jduz0gDY0x9)B{G$lw0pxAz5jeCalf}0B2NDO zx(rn)JMZ7%EW_iuc#D(q5+mb7630J0rz!*Ac9miDjDs6o_jftxx2$vipESU%wR!)} zSDK9;er0?{|AU;1CG^9%`;Rr4+gN?H}y4)oUi1mDVSxfw7JsGHIT08xM z^2GmL3%*0tCJzJ>lS_>Kp&uqXCZD+)vApQ$nd@pw<^7~Wja>~B{?FhjKNJ6D4FD*t zb=$l*PD|5vJUX{ug-Ns*2{4|jI&s_^akdJBuW%M%GWqWwl%E2BO`G$NNhs^xqZv**;?#Ympa0)4e!Ikf#LdZQQ8D_b{EB(?!l}-l zSG99~AzKYMV5DF_lGA?0Kn(8WU~8!%tySg!PtIvK|7!IYrvppqZ}*9Vm8JgX+Os^i ziA)w(1c*?p)Zec{LRNJ4z5f$2(6Z={X%cY-5Z6va-qNP^@j>^a@s-$TQMH7; zzvIV-KZBS&=yGa(ck!rFv=^=-fY*iD1$NWYbZ&Q5B#p=+9;kFTrZ%1{{5$k7+?h6Z zhF3jTee03{+Thh?8@c|^UI0{H#-PS{<&z?Q1^V${4@i4^1=MioHVx%TR~bUh&7P}i zj`cS#`cZBF3fVnE^liIzr`Gpb0fx3q|2&j3?Vq=Wq))WCo_u4$yt>QHY0DAuJDlq_ zUBNAgt+yCdt9Jz&_rIa7J@uYE5NO57eLUfO;w{%0>CaXcmFxC0d>eG`3VpOxdbL%> znDje?^|lmkgJhvDT|`$$II!@Xi5b67uP~hMsERSRlc!ZI%Eq*a&;Qlyf>0J6V81^= zTFjgK*W98{{n@6e*BJbBzVPt%^h5s)CiI~^eAkcE>^Buq%YwaHX`WaSK5YMcw$!rH z(4&b)joH>>Zu?-v7g00G9-vq$$PoLY1$Tz`#%;P|YC%pisM*t-X9TQldGpfh|9y^x z6kNV? zx(n^Jlr!-XwT3xl;<$O!Cb9H}%-F|*9@UX^Z)7gGeC4{3~-gL(lQ&laA%xK%D-V4yiLAa+|Le%nwY*Cy)bRbc}FxcP5`(-sD5 zo+;EByZlW>T>QD<`-kGdG?l80@@wWJRF_3fjOpu)c|nCmQz$CAk@A{Cw_CRzQNUC zcTPS@fGvsr#vM@H_qPh7$BaV`ijuV=?RTa&j z8Ut}NRjDOE7rV@RkF0a;vbT`mw$?efkT%PhwEu}Pmi_0|SocGKSYoU*K-+6V#!~iV zei!X$CdC|X5Kr`lK0%S2G!bc3N9*UKgDOs*KFx6LlJNp-mZ246aebYjW^TOF(k+{* z%x>oGDe|YSZXq^$xsZ_P7frr^^l$m>fT6XUF7^sp2aSj`IjqIf3K4*M_}{gk^z>Zr zJ8k6)g&D7}4%#k#e2HYbgXDOOq>WBWu*6N9-dou{x=T3PW(^GidpO^2AuqABt4+#Q z>X)y%^tw#G;*DZ0T_|Zf&Yn(`AmC%u*IR8Wx0(@?2G!<*EG!1hrzbq;8SglZ1^@U# zcjCl3#iwp|U_Si~qF`ljXNT^p$Z=|5S=e_&o>#0T^$BZ^e50C7QP)tvF@!R&L)?VG znT(0BSi_9LH|oO9>SoH2JUf=7N{d_myKR@QUj2pe@v_u<0xF)jbzb)6FFOUms)g1# zZEtqZK4#8!L{+`pYAd$J>jk z1#d2XLIs~gin#NtX(1Q-W_^Vneb@y_P^76KYPNLzEIs{+XrjVDWbUx}%c_qbf1Q8m zv^-IEy#jNKN9az1qK_As-1zTl2T96fQk9Mt?$pimhSI}6e3-d0!7f4{madVS#j-g@ zV`VG1LhdseDukZb)1;RyNCfLPad9td$g!A_AJ#M`a+R3ji&`(Z1mYZXBW6A;d*epi zFTYlqCBXcgH@Mj3*|Z+`GE>pZ@$=hx)@%f1u=Rxr==^fS)VQ6L9;qinkaX}=32ar` zQpx9k4GsML_;=o$dWy2wf{{B*HlLGjh%n#)qkWPbKCYVqBp3@jCJX0t?d^N9P9#PW5cW>y7d`|~V~PAl#IAEv$nD$1@4m+l4$DG5QPyF)@z zDWyAx5b5sj77&mYl#uSB5s;D?0qGbT=@>fi;rqV--pg9BSPPx^J?HFv_OtgPa$j&m z1?A}-nbyj+95znQgjZ^QO#IBBue{)4^LAg|VHw}mnlb!2b(LjI6a8&K9hCBD6&2`5 zkKcg+YIsX$=Ea*$houWVk8``bh5#f?DW$9-QrQp8E{JEdA*F)db zq>@W>m9aKOB8O$)CDh2q%_@PiWy)87%gNH&!KDT?r@1|pl{q`Y0j=`Kj|Gy;v&2*- zo+Sbi94#`DC>Z`cklPS4R^=n2R50}UWzGV0B!4XQxbaGJuVvSZfL7V~`fRMR<_iDT z(Ll^VVd&x8LA?VCV2aV9v$Fcv#CA=$PNIe`f&QQg1Vc*cDtJiG{T)X&&RyfJQ?XY3 zYNuP7)yy|!$^!+s;pc)^+V8OlnzMRhw=Ujv??+C*}(MSq^q(R1_;54^xWMaUu18w*sXvJZYda zz*hYEZr_2{*#Kxt*Z0k1qTF3qXY+4P45(Xi!k0vYF19i z`|e+~7-kOJWDb|UEBP7~k%YAC1JOzK*RujYm@&UX ze%Op!$bMs{qcQC*H{OmL^-zZ3Kb{2iY!a|tT^m_-EGJ*L zT99Um)iW^xP`>9*vA)Lm=^d@u*)rmyNVDwO^XGy0mSZXx->o^8>1AU46&+|8?%H$# z(bH#1XUXst667Mf2d`egekfr5;(-VY!xENZMSM|_0)Vs)?FopNa?vm`6SK1;2i7>9 zV*W7=ebar!MA8Zh!kQ&?WaJ`h+NGL7vNG5>1T1WP!GIM!*2+wLf%)z}ywOewXs{xW z!B1zo&pREmr49^rFWkB+1FV)0$%hsmh>-41QFX=+-EZ3i4Es+qhoxpePkx= zYKV2pa9lr(GxM=U+p}KFymQ)mYFL+vP0;)Js0&sj+DPse!k+Q2a;j4?l=^dbnIFfg9?IrpSl6^{3xvofW`U|=vo!$8m3%a2gN#_N(% zcrQ%w5@~bu`>z)O!UZkV5$bKrD2tELUzMDP{&UJ`x88(}}!sO2eJ!C~w1 zkfIO7-FxtwGa@nfUQLgzz(C{}kJION4FybG@wbUqd=y$9oWRP6pw8d%s#g$_8iwu# zFLt~=n64aaEj9%xhPKB8nz(?mRx;wJsLf0P5zi976)-=I;ABjGLHvYRgrPvECpwXY zcK~6}CV>z)x^u~iPkb4b>6xj_N-gxV#ct z;PVh>8QEZ}!>y~ST|raA9^^`kc?&u!;Y`_ZXTEOt-G$!8jfF33B1%{e!VZn|G~$%7 z6k9QD92~PBYFtT)>6*r62nu#qi+$vW0;SQQP$D+lA7|hlDdEtdzhP4|+pxFAsqd{p z0hAK1lo`d=JCvWrwVHqDo%!vX`Z|~X@PaSE4?ZP7-cM(PcaI*!Q%Q*Fetji$-I$MO zNy<(L?dFctV|dcOxQIlz>rI{NZiP!$Ds7g2Fg-a&dDc((zz~WIR)a$0#y&B6n?(l1 zx+ZQMgVru&3HoD+atewssfX*T7r;k)Y9B1%Y%=@oAbTN26(>77GpkfHBM3zG-|y2} z(of#*6ZCVEUQG4JNG2B-_M;C2Hbbj1_T-0=3b5(oG2>sBVSY2y0RqnB{^~o#M>6Ro zqrS#(>=b2I$bPzGokJ`t2G-YS3Je>1J*{Zwj~E?X92+qQ?l{z!s5=+tmSSlay`7A+ z5{6tOVvvXhDzz=I_};Z&OJ(j-tWTbNw9MIi>G2+G)_rFwc}XQPJ-y>VYXP#~7R-7~ z$9TtbvOTdF=zS}D@uNFD9@L|QINtHeSe+jq+_rDA6A zIPJ~B`an}9CB_Ey!|T>20qyHauT%PnjS}qkk(#UVDfx_Dm74!CKACF3#*4n%-ebmCPdwnMoZ*FX5{RLiwWw+syv9n=H+ za*FNK3)*oMjK83U&u3rJNzzYGbBfc|sRRA~{!v*-c9#Wxf6b=v?91Nh_k)}5-Ue!DxHLuV|I~!cEf1ruKL*YeN5QEA@77hvii99&POiuPQY->;mto%7gze7xx@F_iwN*AANa z@pGp){oRj>cCK8VB(Ijcb+xHdO;f_hzfW5%rgj9Emy9;ge>e|&5paM$nWaW>4 zOpjV|9FS%GhHeAVF=}Ky>qL2CZD)0sb|>b#jV2@0sl0g=+1F1@LlZT&$?m;9LOOEp zBMfCy*IbLDvD}0GqP2czDM|dD`##v4bK?6gk{)PB_E$xDuZI-Jo+7ORiS(Y+a_f2T zxI6pKum}ju{B170zDHxpg@ijjk&K+P&WFgz1~sgOar#J@u=rQZYZ@DA)+f=VW-NX= zLjMi39}j`Pl-Toc^%-aJOKdCpjOb5Qvzo8w z=?a&SUJ0w4u5}d(C!o)@T4}0n{(`Pnz=h;g0~0gyk)#&fH$7VjcG>!!E@s~v6#8be z8fZM>@hze22Mx%|dKR$b!`9Ow$iDWFjXiDgg*m*#nYvOd*n?5< z=Eu$ZZ&Ibkal3%B=+zmHRm$UczUiZD`QeJxGWw_pC6$C51-C$(Alf#aDRp^b)cqdGi zHr;Z#cW#Qh3bdOI5}kGZP@qWZD@NT-MNM_)HNP(d&lLe;T1$=U!vCfLx^bfKY32Q4 zJYqGAkhRL?0wYY)QAmk;(quf{7LWFp0Xy=koF+c&qaV*-zi#qZl2Xos>8-E?Ssir= zRg4~GhGkAxW0y?WtN~{Qs%P3wrc8AoG*^P5*#+`rmwzg>k|ewdQ5JtW@|||=UzqnW zeo(LY^#}XwcY~6L8~path@KNHLfoZzPd2KHbuE5d{nRjgYtn}_KY!A1I5=KuW{#C2 zze%xQoKBTu;NVCq;cWltZb;krz+m>CTf+E`PDlcenxg9xeNBv0P*mvZ`t`F?MHakw88)_k1})9Vsz!3<3~1VX(=|f_EgKB%{GUMpQ>uyUmNDLbA2PPxI7;sYrvf~!SRI?`$CB~M z@bvK#l2&J_G#%xc%t^fF`4<_8^uzhWE}lT7a9UvI&BnPq zWrAP9RHfvB)mW*XS={n=s_ADlouD|lb;9ze8jVxm8pYwmL-jUKHX=u2C&z8wZ;M7o zrOWrb@d8Cj9;+k5mb=?(8tR~B8?VuTe<$bt(kSgr*m%GMd7+`Uu zH>YAZ+l@z2Y?M;B)L!th@Q4U3$%}K@yEf1gnZjw%6On4fz`}yj#oe$HH|zP~cM`wN zQ~;nuw4EPWOJ41?dx+CX-oY*PL3#XmXFLPItVq8rpQ8dc!XRKE{^C+Ata2NAw%~!V zZ80R|x`rd<+av*)rkusKR$(5Ejfclx$z`!`_#)OTmP_)E>!Y^>H8u6Xo#b5*sNWOp zj}*UoCt5NNppM>Mx12d4-7~dKy z8NSmwCArF?pbillc^q<&MNDhN7r(v%&K~OcGGG1Z6|B#+xBRAi&$-D7gx~m6dS&G7 z0pq&)XM z%hT&*m-Y+ZFhXx6=CdbQ75=@0kAAf%IduT3c%E)Iq?UvbUbx07bfhYhK5@0e)g(GXyg zN25nSb}vtT(K0xk)m)?n<>YEP5U2M&mIOpIw)tjw&(+F;`TC$vjPC|5;E|ge`Yd^( zprTM-4L57s3I+uSd!CFZ08&&LprUcd4cpflQ!YBJ8W!GOZnNiobw8hcTcWAd({e-Z ze^ZwUs?$3Jn1KAX(tdX}C&dEFv7n|8Uc)|~YM=+7y773lyhU{DLGerZ!*xA~@(}&9 zRKU=l@CCBVnEDUBRr=TW5)i;vscWgT_}=Qo#~Tj^qYd%8D)ofL>UQNCu`!e?6wdit zZk1hKqWBs9_9VEUu|<;JYLjYbu5Pj&&W*SAr~J9LHdeFSZrAQ%X3uz3-*nIJDbZqO zlD9yLcbOTbYP+2hhSWl|Ih$aWpIQf99@wIi?&W=2zdWF^Li%F~C7jJ4L9DdGr<5*O zJ`j9%9Uk9)9%{gYDbnt$mM-)iu$&2S@mU`Icw6w}cs$kUC!flK?7P@enziN z-#rt|NPak8l9-tpH(8=70}7YsBpQUvXF+FZeidm#$W0P%N2q_@u3lx`<@_WuCK{a! zb8e?_|Ij}v59mP*nkAuHM!s1M4Z^qQ5J8P%In}z?57r0M1^}a+ihJ>`-?<|WC|uuj z6U8t8u6(xG%hb`)5ua(7QY%!x=bNLi`z?a`MFcp@xqk7L{{DNiSp~4(sVaNt1<#G- z3w_P9%Z&CrLwxB0O^(g!6=lF6`t`9xrN*S|1s&~yFrcx2S1TkXrWYy|1F6XXe;^qpHCgyG!xKa*i zG)NQW2EBlGdvOy#tz9OFf#>n*aD~-raj}CpXQMrB-h%bYg-b?mSogkM94YdU28R3X zN;v&(ww71cT*mh>{|22$!UX8SJNc4_)~o9TROAv5*cmNztSh!U*}5H?&G zun5{Na(g9ME~~1F#6wNMcd_B=(o!UVzctQ2IfF{$RxB6tuH6tnObUUdT!;&jBqcp} zzT5C=oB6iz^Pgs-wf6mAkR_(8eF^J6sDHIC#67pVL}9rVF4W%#l#HVabL}7QL4=!S zMo2fk(y;Z#j4K8&VE0lJ$Vz$??;zsB1^JC=8C5}v&4Dx3Yg!@c=Yrv$TZ)kSw9w)au zAUjXBOHI&=V}9npz_b|7l=pgJXPx`yi*&kx^%mTyPW&43AxON$ zbDJIHyHj8)&r#QrKwraCr&9301)W)ZuOy`b?U78Ht3>Uvl~#xPgW#a8-dm~`I|Xqh z?5bqGoCx*LphV|nir3}O^G-L?ZA_}=Z|Iv_X)i|z&b}7DJF$qKxrGIf)A37YW|qU- z&lHU(1ts9N#`6|QfKLKc$^tQwrCmlY>TVMbI}S|K;}qfLMJXKX?im_UFC$T22|KCO zEu#@8d+Box8eeQ)fc`x|3I(vVsVOhW=-*F#V=yu40GLWrCXJBN!%46!4?!(F&;6$Z z^V9pP&1i#(1VCXn_I!cA*5$Vk88=-5NLUr-%KL>{24Z3pfYI8_wgK9y>W9hV4gdyY zX+=%|%5tB~p!RJ;Y%@}&EsK^ffsknO1*%R9F_qF=kswsBQv0vY6A|6M+% zwug5BTe0oED9fmH*c2^LydsS@`Q5m3G3VoJ87A&1gc=sJv;y-l0NH|*J#72%LJ>gN z1Eu(i4go~X3ea_tz^ZR%dt!XU0W&x#fyv0?4_igbxhv}Xxdvh`eE$S0KEIXJ?_)SS z+jE;FGj$T0Z@=5a!=tm91Oy(8@nd7-bDXrUQVx7SUuZkW_~f<*C( zvcOMOWScYr=N?8-ewLJHzQCqCED;Y=-&7AF?6lI+nLl2_M=0{uQ#p;2UuRN)%_kP_ z?d`gf5Xj|dSh6mDG3DEG)u9#RWkqxaAyj+J7=xdYr&I5P4@wA+9t&h`S2TVS*cL1y z4exuk=;nRyHoAY^>Lxb+wHVOUL_D4(yg0G0@*CqE9pwYKxbKGKX>U)m)$NWAg^|kV z{!)>F=xOU}%Y6o5hO2#hCF||t86=p5N^XE~oAe*ypZhe9hxMr32LH{v0%ZuCFyyCC zschz|qmN^3Snk9@kE~Foo3G1WX+gghsox58dSHsKH9pJRluGcL39L1)n>*r-0>}n} z*Oj(GimeQa0#u0GGhvjSpF2`$(q0yV_OTh#0bRpA9L*kko09w=R5M;?dqsB-OaMPD zGx>(oc*hzQn-I5S1HrR$mcKJc`{u?=z+uX^LEjEQWR}*)3#P;OoTn()RV3q8i+K7O zgG0}Cr2tmRkeuEuj~CvN$GER`JVt%;+lFEMO5~inKl8eyt!8SUwtAf!PyJ?4k1p-O z53m^2wiwFn0Ho9D21m67k=tu$WWd$6JdfrAded9{AiuB>FyM8zbSLene#jEi z;>x*ij;5XUwrUv<9<8xO#K&9y2zYt13r)MeMsWQpP1Boy!p>g$W9k_(F_Ib0kVE*~ zm&?9{ujj{O@u2%xBhngxY%!i!98OO9*Kk~}%Qw)CH2zJ@Fg#jKW4+s$V{sD`6UwmX znwl5IFK?Q&g7$ZJ6os9LGO2p$^~lq{f6T{pmmfy^hjS)MP6K1>&dxzb_xh5fdN9X7 z!X?1yB#4WTy?%Im_VLrF&V6SJ#P*<6<6?_5XolvOyxd2l^Zm>DP^g$t`h^AgzR$q} zpw4V%Fxy`%D)Fm`c*C!2jY?Efo}wVB|Mu$ZC7$mV0{|L30*ow&Esv+}M!!SEB)v8s z)A@fB;(%Fot^^x(Y`P#HEWCt+jLQI|DIBS8n?Lf*{hdvk5e>&p-olBWIv-O&b72Pa zlze+{{L%%fxi8k+?W-LT1Yx)EjJe4xL9cm7CTk%Zj#HX3zG{!Hw8@6jH<)yrv(fRl zVu8Wo%Q~%gxLX!tbq_c_plPmN^e&%m2zI4*C!4DG-Ka_|cP1xm z@!WJ;8=Ggz3$8B$}-?}2cz@WJvB0y|@d7ubzrI)r@CND}#|)n#-*^HRp^7m2~km z5d126cu?NAcW1fxR)KbKQ`6JYd~3^6NGaeW1J=lPzQHRcCG)G(zbMX%8Mka8-Zt)A zEPQjVD?Yc+(B!f?D0@T4z*+uR^j9Z0o?XilMs-b%4%E&dbp2fDC@X4zx7{z)6~R`a z-vUERrAs6dA$gPnr?dK3t)whnm4=A>@%!}}lk>%x(sZdZJJZUbK z8Tk9nHvQXlf0lQab2*&e-ASlq$WC-YW$0^v+9YkF*qQIb2BJ~dNP!Ii$XPmSEonw~ zdv1n47x=$^v8C}^(e#}2^9v^QyVzO(y^?I(Sh)yundwG|N8unEw|?P%7IbCI5Y(t| z0W86{CHC(-T_rSIpi%BA{(aMhzKQOdrK>|JmEJRdBCr2?Yt@U>QrlR*5#yV!uCy(g zcX{YGz)#y_reZR!dAdn+AVEJ+kA+5qf^0ePMM?1IfZ3dWhB&1DTIqMJD&wpQZ`yi+ z9{u8Iv}D)QoLgb&{E0&Iq+RpZ**!0`fokEM#S5D1JHzuf*!q^2-__Ms!(DE-tb{l~ zatsER+dIvLI&a#yys6z`p+*L1mj0N^ZFqF8=ydJ0=~sRbhu~vJb>R$jF;-RrURmR9QH~t=;y=r0HY(kU57!~dN`JIlez78h?vV<1+C!* znPAR|{#`TNsS97|t+smKWclSY(5*H-eTfA$T-cO1Ec0@#OJq|&ilLMEFyQnk>-EM$DlA*W^PlVjhYFjayHu@rutb zdk)RSwj7?~>^0t`GLyW@HaL0)FavJ!aUpy#_VImTDU*1Iq(PF92~I?j}Xth_CQk2i4_DK-eFxcSls z18A+?7g?MArQFAq{E<*|?yfz3)&{f^6@gSnQU?55u-~kDvX_gCYhze!e;IT!t%OnAEmxe~#u{_? zt)&|E=vZa}a{(G0JV+-E&IUNoi~yy-z4_Lw?WU|mtW4}MgtQL^vxNIn9Q~FhTuq^d z2p{#?WSm0cMAE^xDAaDHr&>Sx*1bK$_QFt8vq#1M)Y-0Slh8|Q9+yh1eU@?5Jtf;g z{u>k^e-GyxsxDVx5?4P@RKUO&I;NK~k4Pd{XO@}MGpcMdB1u_@VqZMv;5Ee z&{$^lE=)Kl%AYF5#>;o~_5V?~Uk^6tN>a|pI9iIVC1s;g@;m&QOZTE(B=EN?p$SyT z>kk%-%0rmx+>dT360P1AF;RU+$@hVov?soUva48No2Q4{_7|GXY(Yz2RQ1v8 z0+lQU6B9{rIA>D&va+(IxTo2&><|0v!=c7EVNT$^d&TzsepH%-DpE>?2`%U2OmrCn;}~o7Wq_MPD|qm^GJq8eUbQ1wUsWV9Zi>7j4^aI&aJI)-QwXzZT76 zA;TH1QY||19={a+vDipg4)u0V+>(&BRnlnADSJ*F`MegX6xr*R+s~~y>L=3B_XYgf z`sP+cc#r?+=JCk9JxjH<>b-5K_uvVXUL9Y#bG?K6ovf;BsvJkFkCTK*apzy zgcg;SnsxQyQ_40=_4RyqbIx=>aeZkg8f!nj8lNfWYA(W-%B2y&8T=Z#X(uL(g2M6A zQmUhRjsD;o_f5E$a5d@ubDBlb|5mes-^$#Ik$iXf&kvcVe~66@Yzw8}LkfN@S^i+i z>92P-^5GJ9ms0opQ}G=|>=%rSnIsl}>QK(?ePbHGtE)h;e_oezsEQx9X(+05iwCXv zg{8-GT%d@d5ZRY#n=IXiXodD#jD@l#&+Uyeo`x}t+u3p#AJWMcAyQ3fd28_bIDDN8z7^|CSYelKuxP(y*H@&j|D&vG(q9WpRkn>4R`lXgqDLRXVF!}lI z+0txSNMiG>Q03k5`&Zr4Q(G$0ScU?FmQWqIQSk-1OI?uS9y8wLgZv94L|#xBX5}jj zakZ2E^RNjz?6_bs?m6pRYk6G%;$ITFoY_lryp{{a`rXTVl;ii3gHkAQ;`|Jf(^ zEeC9XLi=j*@GJ)0R_1U5+;T#mqNhn{q(d33a`jO%tN;Bi{eS$=1X>MlG|U_{|8w09 zS7jm#_5h~gu$#Eh8Jr@{;8=Q@Zc&dLsae;e!vYqWTUWj9eE^t1Y-8OSo0Lmt8^E51sslGh72}Q$5Bp{l2!k&we+L z>LxE(JRe{X4cRK2P4wl1u*-5&ny5QUn#aXP{r;EZ2E;&`)rjEk9G@&U1XVeNX*h&< zWhp;=iNYwrg{0gco34S*&;6--a>vCTZVCKh;!?r8SD7B9RV~*HBJB~!2BOK#boLLo zOd|R?WssX9j&=DT*1fZHPTh7|g6?m~?3dY%ndtO3jx?LF9Ujik)b)HlqO z{Cf0{cKl3oRG;*{PxoC0S<|8NwhzRCoo)74t7}b)?JUMhfs(7|wxcd|yYHhds=c0I z8@e6KD~K}=Y}PCEz8B#*hNo@ai!8z5a|dOsJrOY#3E?$C4{T5~Q)t|+b;uSTn6J`# z-L=%3T7$?Jny`U8y8WJ;3)yH~-Jn=6cuJN)`;muVNN8k^hJGsnEdIs);$tyWY~6J@ z79M6^wdLqd)|Yvw*1vUKa0(D~{<5ts1Dti>sy9`pv`0}m10(N~7@qUCbzc(j?ETin znWPXhN`{8Wxem-)0P7J8QxugKUx?Ull9eDMo<@HP=s1RYP)@V8 z2dq%9t1|T6VpyOJ(t@KMLNK>M{;aB@-!^H!*9!Xp9P&4R-n0-Pq|@e9@GivYKQY5J z_C=ct1R|mAoT*hgVk&VQQ1*t6TjJ{CO30aUf8M!^jo-F#FwmL|mN#qu$Lb0}MAcgfemDMVS>gSGXgQtLCa+a5 zIujPR7by=Ne^*y71TbAj)Nbc7vr)&+gw9;LsEEFRBi~e)YRCIsWNapybRFl_m6J20 zfR2+7GBWD%eO)txAspuMDjyFE_PB_!irP*p1ftwFVP0b&=Y5p07|lT{M_K7jjP2tHu1;?EHH<&mKS2lxY z?lUKK3ABWNKToE$u%4!OaW+AcR@SUYI8KS1=!e^m@)(Va>5nsCeOQ;XgwN0}GvjRJ zesiGXm)HN}0x)M-W52}3M*FIrvIl*TkQKu-y-{r@VW%sE_OE48*uNJNWRv&swpPfT zE{qLcbm|k;D1{O60$zs?-l8!E3FMRJMKVr z^^&08y72yIM|VBPS=oYUNc2u$PzTcEu5e=P@b~Xyl9Zdzd*JJm(%7)4RE8n; zK42X7l`Cpggn~VgD3}stT9ABRWsH%L_gf6yNp`>9$nrmn>GJYk(OwyhugmzrJ3hOO z*XrT_!hCeD=JG`BtAeniFil=@Q=Er03Vi=Uetumpag>+<-IIqTlB|52U|Hb`R*yQR zOf>6Oom`w!Mr|lp-(jq)i|6N_|Iap>L34o@yUec>@ZQ_z404in zliX<2%*{yoxKPb*GXUgW*^Mz*6$yeDDOatvBqA-El`E3KEF~4TGPU#mqS0IjJd2fx zfilW;7Wv1Ar|-u1zbnL3CE<=qa0O?)T5Njd1Cxcu|IZmj*cjbw9JDmf$YrobDWmv! zuH~;UR;w?hI=9)pF66k3o>7dj*UiBuEuE3G)%_;>!wn0K>D&-QD2X}i!%z59@#z0nCg*1G&!ZHdKd+mg+Oavg_*xS2 zyEbg8^<#!!>rmS?jR8Z`jyU@)BN3LWy87=zk-^|V=?b<<%%oj3tk5IuFhsTOjJ%oZ zl=8=qq|8K739kealm)B|jsA13#0k67_a_y3cw>`itK%|V+-R#hRiD_>yiz~i=DMx# zv2auc8DEOB$>90;y6}5(@va&X9ZonFIx0t5W_ZdDh)`JKA5ZUC*^Bl*~6w4}5dXctaNu<45J$jWZVuk?}<9@|>z)X!=!;u6KLViU$l(noEtS z`@c3qA*bl9IN~^7zS-DbkHJWV^J_gWJhtDUTBxj7P?C}m64v%m%k0rK2jUwc+p`~z zGT^);pXf9Vy zg$ISmGVprRb%i}p{Yc;CD#0B#bBQ5tf2H+SB#`^9K>+!*iEtp%$dm)g;j`=K?^9`` z$cW;|Om&)InwLHGw2UJrQz=T%rWK5yjo6Awv)ljt0%vDz=8ZOf0_1^tc|7>Y=jp$Z zL^G!W6={OxfSG8M^oqEzo zBpmNNIIDvlQ5ZT$@{kD|v!u0`8u73|nj?<`6s;9L>4w!C_EbC-83^wG_jZCBASA7* z8xC9;&kQOv@zg6D|7%>WDYiXiGP!uKSMzZOG(flZ0n_Z?wX0AWNRmqZ3$YqzMa+q>62Fsmcgv%p1lnw1 zK;GZHA`A`kC{N8g6Mxv@Xrn(lRA(*J)^XMvcb1RWB>hP45!q}T>w^SC>`;Uw-zy*Z z?pYNLYsg9nhOs)M9xx%&k7QVA_m}9%I~;Dm#JzHR34WnVa|voweEQ$yhh}>8zl@`n z*&8dK^IBxK+q}u}M4a_?sr@`%iGj{)-E|qEuz=Q^jUe*PXvLm<-~*Pr<;lp`SEe+Z z;n;8?b&bh)YHFC2L4l7n#$CC6mGD~d_)5D& zRlOa-y9hE)qL^CsTerL3LF|x9+gADHz>TTrG^`OD`Tw~3d-veqcg#BA(CDA~&0(1KJk}{^O3Hht6SlfgJHAgKe`^dsCAcQM;wRQMeJ}eO#L?F8b5LuS7 zHhkx20{j%7s2x}-Yc^0ss0;%RF0PfGU5_KpLu%^TGJ3;zGP1rBextaEV+Z<2=ykUeKBV%qb)>PrT4cXf5#)qEF3?Q3nP z$>cab1a;8GY0G&HgOfhJdIIX9-x?Y|C$niSU(J^1o%!ath$=CYFp%N6;`|QBr+(oq zo{jq(wd0Yzyu2R%Z%7s8{hG2~2b#ZCGf=X%wQaU#T;i_Mwvk448K|b@v%o9gey8)c zW2y?`n2D5}{J>ZzCWkvPnci>e>vt}*zk@?1Ya8AzLmt1db!Km;>jGf0+JPO*A)`)y zP!j?|t=L&fR9hy>sAY>wsxKuwS{Si@^=7@so0f0?O`p9K?!9apL{GSW-mdLv*f|v% zvf8t%+nSLA zTJ1LdGciFD`vMyySU67B?>Vw-T^%zCc2KVBURZ`Sw}O?`(|Yr_hK2-Yvd6|xvb%eX-PBV?LSB)F&%kwa&p3)^y>AC7$jq7b92r=m{{RmWcbuQ znEUNH_&223@A{dUUc{N56l;9?^y#C~M-^WK-}bh4UXRmXCF^$u>?Wn-&C1B+VXxdC zNYUJ(JUx@nE~S=IVA@IF4XI?OhScAEBK+53fS=6|^HuH*iv7XNVB?I2N1XXuki(co z8V^SM+E*w$uKr{fVs1}}Ji(AEq7eqpxorcm8=pHm@*v4~g%M++J>lSZoYenOxo}!v z=hbG>TQn4892^{{D@>a3^z?^`;9Ye)x6F87$$N@GdSe(C&GeKg$jINRYAZO4E5CY$ z9Vq=}o{~i+d+;w0q^P8%tKJqU()WszuP%Rz=I|v_%&WjC4w~NF%F2&;Ldv4~+UXaG^20U@q?Z#C1JzZu^Av3V+aF${ zdmJTax;}JX7u`;=IqJ}De1%rVsbuAn(?uUHnF+%<*i@f%9*t6fpFl5ZzSP!!(l(@H zdh_P#vuB+sqnrHQUEwR#vbNxY= zNfA-($|cI)UcQhN5D?ha?G_Rex*u#aQLZBkHY&xOIP%3)I!T&dM<*qH2^d7%k;l{1 zQ#dYoa#UF|soz+PV9DXL9B<@?=XrKGn2Fb>!ke7eR$e~e;0p&?@L?>^Pg5S8=%^=b zY+Yx*D1iYp(ETs#KR-13Z8^*B+}@pG>qx@WDnESVRV^;pxqOO@Y%8y#hijgt31+myT+xUBcf z#>NIDW~uc7n|6(t02ta@X!a9JP)n1yxb{;)&x@m@BT6uuD;6KWAx*Im67x{vA?|yd z55FV{DP^CVFo3a!kFxq#X9|P_1xc_loH>?eaYAK);H$oSC&Qce?fn!tV*-{^Z0xzM z%nlEvce#;s=+Gk-#sV(2AtNV$r>_s1p_vjChzP=gN;f_`)dX^orpPk6JWtuR{_8c6 zlPc|)mTR9a(U84r$T@=U&cxiBi0Zp8}SR}Ft`#Z0WB2-Qm+b{p}Mq| z{(rl&b@GJq#@NJN6C%R;sK{dV;R7QV7a{Phh3|Ihn)k1O zM)8>cB0~bt0xw|d>8Y5>9hkoLVRX~w-ozXX(_JtSvw5q9id`VhrM)EbJ;+#eZEJ*N z>>zET!g@nYLvn5f$PYqC&(1q8eKGxhXKBy7{l9r83EBVDpU7h;W`4U4PgFV0o!!{H zx6}DCFJqp$ zby55;H+tu}Y9=b~uLoZU6OFk++$-U~`+o<2jiRQrzXeIjU*VK}>H$hfUDg>*pJqDL z?^t!4$IA~{d=^JC?X+qBot)VdkL;JcX@hmqskCFgI6|(ioz?w=5`jO{+Iv@%ZElcK z7ASX|E^WOX7mqj3aDt4_{7aMSo7BgfG2*Z@>%lqoQP?~g3ezoA3|-MfD<8nGm+-7{q$FkL=>J9j)#ark|OaPxSkfy;D+d!;AF zY&2v>Ds!{17$H95}VA;3{N^dVuVSrNoLMu+m{oX;bqQrjNIrN)mH!pKgX)9v81f?R>Vo z9H0Cw;%mBRJ$X`OA5*iM4{f}N^FLfFJ_(i#gAl;u<*x<{zBPOdr}NDQwa;ewD>oc( z#hf2P72;q<8Vj%0^80t2cq$xz_>m`AnhKU>fcU#Ksh+h;VhFM-H= zx$6qK&*Pb;d)HNf^{6zKM^BPCH1ZLAz1Yd%xnSa6@*!cpi8<~Z>i~Sa9K{z8)|-Qp zON0*2$G8wP8T%%B{EhzB}zb9H$27MWLB`}Y!+%|kMJ~_fyxSgg6(acS@{ES z?#Pr_((S+}CQt}|8*ub1-R>-n&zhI7K>15?Q?~hl*2r&R;ba%a`R_$VW^2XcG)@Q4 zh2vtyR#y0PTyZs9q6Q6fhHb&XzyaiFPsAxrQ^)IeDpVDzE7A6*r3$oQWM$DMRX>Ll z^c@LzQSV)mEUgqy`acM%o1J&rer}szvSsVrQO{p$U zDeS4nb8~A$*hJXsZb-6H7wds&UZ)Y~B<}7sJXHSCmqM=lY7OOLZBqQ=+*mwBebWIi ztf$A~_Tr#s&S|6lz0KB~#Jy_hUv|Ts`jEX7D54j=B-b8{>-!^a#OuxlMycGf=puK9 zL2TkacL;99r19zlTN5m{yEx|sKhtUT!f(HskM-HhtO;}Y#`_zfqNzrDz+-`w7N}T< zalj4v;BpWws}E=>G9U_|x3?V{F8JDWwC(e`9%*xm?yC*v2n8z$%W1gM5{e(OpGh3x zfhuk!gkbfL3jJ`=+s9_SREEC3=zzz8RWh04xJT9NxYU@l+O4&))ZblkG{of}*VOc4 zxb@uMO8Fa-@P6saMdvhYYFu6( z`z&liR&QJ7r9^fAMinh>nM>WFb8a_KfYa94`HJ9fz?jMKs&h+$^26s_noR|eoGp~s z6Qd;u2B}C7#B(&Pe|gP|y#Dtv%`EfD_dwF6Aw4rBH#Ctg+tko7@vvC-sY;Zr82vI34(`t_q))I9Djz%;nwlyea;Q{Nw^$i!qhqs zT}g&q68+AZw)vH#O~zMXj~s;Mlx$G}Yt3vSd+fXeR8Qc(7HV*!!Zx1aPV}0F_3a$X z&W3j{k_k4pDtzLSl!ZTa22l#Q;>XZy{R-XijnZcC@rT0l~ok7_c4!^J&uxjILACE^Wfmv=l43j zKi}W|c=)4~bKK{CJ;(LDuIssLCJUT!SMKj-%4ZCut=QQ)I?Hw88Uo@HzXIa`=&Y|G zfRe2Ww7QJoh;(}E#IqC(`oW9Fh{GL%+~#G4F9N1`!Fm-8u>f?I4n1&F<+XVInq#jy?c`x#AhQ`_!GlkWvwb3utG$U7@P0tg zvo4SU9n9UuSq|_rAAG210G=OSK|( z8wgyB%^0&!Q{`=S3a$^;z1tD5#u;aA*m$_^9z;NKJmO2ps3EH7&I~H?5qExn_x%=N z>&pFxj;$|bKF;{3slR51D z{bW?y{5fWH&YwP&mXvCSymYm14~ZTx;xlbrgQBa6AZYJ$1-Eqa>X)+at$Zu!jWQ0hrqjd#%*UV zuP7|>ic9WJLaz+x#Zt`dz?EiPNCBVCueM}X=DD`kWqtE8I339)nbi!bl7%Dp+`hB0 zF3uk+jbQ>HAbx$+SRCQ>+BkD*FstXtSE9^`b`d8&^ddKsfY~>*!R-4xLgkT!y+aJ? zageFf^@mBWV9k;@dnSbyHuI6q`nyw(0)=yRw!w_L4BJEAw6zi3BAw$0^PwqPv>Bb?G#mG>H896c3aG4JVf(J?htxtn1D=w$(BrG5X+imZrV z{tN1Bh-J<%sG8W32jA;X-%-?Rxf_8);OECD9w96RO_(Oczy_fB%duz5{MH_x5-;gH z6daqco4}xY5;_-ZV5;{yH_O9iYc!y|Jq1z|fwv1^`yLlF-s#jf_|R1=b{$T*9zU(D z;dEU~p@{{#a^j)`g-Xbvx2c2n+8utBl&t^S%<^C28ZFlMLF?1*E(ch)=f}72AD5P9 z=id>9I}R507?Yw!y(gtFxTeVG+3MV5qX=$1zNRUMmj@5Wx3a4+Uw_R$&oP>_6((nw zmp?zc@%+ZcTS>xZ1A&YR?X;qzmOnRmPZc;U%j+?L-*SH3${6MY{iw?OKu4jqQnaz- znDIE7QQzgSWF{-VbbihIg}7Ur0Cq65H!ltn_VjN191e3e!HwoDrviqbTWg_{(EFQp zir6C2c)VV~t!Tq;Fzfn3F;}bqxM;g`;c zG1FC%4nNsBuWyQ-9PcqVZY?{kC9zY$6yZVlIt7fTTnWd<$B9U{fiYxWWA=?h9{x$K{2JqepKX8R@zvT-gS~td_d(hn`k|?ncQ`!(;RiF_1-BY z5ju+l3HO#z)UToO7$?+O&NQpr8VZ>JoODA5YHiIGPFxsvbL2$vWw^=N{hIQc&oB9b z`#y#y7odPfd7OHujJJL-^Gsi3O%8lS#)E_QvGG8B{QAuHx{4u3eGO< zmt$PH%`{)HwBGEY(#XipjgPlpm7mMR>zL?tbu+d5oOHnJc94v=p>BeQaOn&;P`NY? zK&`|@(r#DC(8Th{e{>aibUWkPmofBz%~l1+KZ?p2-(Tm9v~jis`T--6(bO7LHJ=5_ zt`AYY(db#{5>V}VdE&7u?^jbN7bCBdNgXSHKgZ46ohH3BS~g+T1a4 zfl}B7t)=g~5%$43|HlQmr~X~yUvW6HXiF|8zvb4vEe$$6Fcz3LL*NNBmdJ8Un<1zF z&yyqMWzD%_Z~d*Tj?#*;%wbu=r<}((bUx|-0jxp;hRI;=G16v`sXrl5v(#k{+zj_l zTi9I2qC<*=!$rbw`k;&R5r?R#$zUGD?VNtll4SO;JDqI1sgQ*7oF{udr6*I12Hd_! z4-k9%TF{Nt{&Z5qGB2X?S%8@@4w}^c- z?Z57k8GzM01sc$C;bt&5imh74q}i}?#|q?!gWa-whSP*% zy>itnC_PWfOJt**&i)(@lHpHpsz27fMpWok+qA*ts(XF(;wVjyU0NK zqtGS$%hge*Hw+tdh4_t56ik0?gyESS$D;aI7U?tLHtewN$A-IT;!h zzx9nC?Rz_|m*myxT3h^Lowver(%3{zA@k}*2C=|p*;9bcQn{P*Debb?K)r@RQU~`i zf7yDDduH&aQ{2(`{p?@o2-v5V;CnH*g>72V{#K!HBlrp&I3l(zdYrGWO*$6EirW}e zAQS&0$^}Ywd=QE^66}LKrnxBGi-J#93?Ig^bvn2>rh2_vT&6$zTaQYWvAy!n>iy?Q zD#T7Z#C0`3nhjFJf~v6xJ=5O4jKPF>tytdmVzPnQ6W<8wU|WLn<~_mwOjo1MuDFUy7#?4d8QN$OLge!16l z?$j1NhhW{@GG^ml4x?57UnamN#umIhX;{!un$#A%in+X$;c-_*fHT|5hlxHG@ZsQ> zj3e(W=RW1`<8TQaT9ZSYlt+k~Zc32xB+#ATWH~=HG~Qq6QZ!R+EhyHht!L5&589(P zHLXu~vsAlCC;MkqrhK6TzGpr{1s?gSKn!!3in6%yaIWsyA1H=GiGR@?L!vcR(|dP~5V_ zyRcrO=&w~1zM9_Cc~5-J$&-VL{fdjo;Rm3im@Ny%Rl4F0jdweA@{3&-YI7J`YMjV7 ztgR34x=%`Pd(0mYa}yN55FXzo&|<`J>j5QEV1$);2k7Whn!0WP*u{5g%~-FY+x&?& zr}Riiie&GM?OfBc&#R(ydaE>mxT!-}UX7p91OoI%KI`E!b=%p*K@iF?fakbuexmV+Zdd#2SM zud8hypA2va{?_>s(?QK4bUugazOq2fH@DSd($R>Nnk%4RE7WqS)%oucbwr^{53;PW z+cZsRcx~+m6~?JFLBwWo=pFI+LF2Lc^~21C8IX6)OWDKjPeb_k5Ekv7Pn_%K&A`as zCGy$-Lc$|00Z`-wITS0o(6^wfU1a#=`Tb;OeO%fIXh%U_6o$4`X#O+LbU(S}{PfuJ zRQ{B4ABN{;KdA0hK(8i)K6%sFc&-$IIP(UA-n>wPbNktKNxUfkjmO>g&oF7X;bM~2 z{-HzU#;@-6f@@4apWHW5coTk&^ZcD4-E%Q&)?AX(-%q&)Hq0Meh~IOr-^rRH&Aci( z{B^SlO(eHFQ>1;fQI{glu=sZ#!Wn}b{m@bZ=BCRll;Yoq7A=IprvJH*GflMq`%T2x z+Mrj*Is^Oo_>3~p*X)ob%hQx9mH{5`o>_HaeU-?W6RAMFOTcM#RS2QY>N1xZBvI>-i_{7By4f(U$0=l@tVyz-*tnK{IWwgnZjPz=)9ibLW+ z(p~OQoM7#RiC;HA-ZBl?nHCw-8?(l?+#@6#wD;#%a4h^3)s4zY5Jc_RN{6nhg3rRDU@7ux8EZj4v(Y zpP&EV=H9AH(wh6|wc9Qf8II35TdMf$I4Fr8Q_FmbE9=;=Lw#crMn8E6{OFp8iXR?) zGrQY`TT2bnJT-Bp)`jNR8aJlw_Wyr_D%~_KzK~N5)X#n%!P*gBbO#?m(OsVdI$=NI zq$kx1-fVaELXBQDXirz|!$lKuPDHUz^D?OL%=}|GT;>0d%i`DUfnH+#2MXO;G1JHs zvgVj226%stq2!yD#~}4rn2_Q9F|E1L->GmAmGNV(ae2F#s}UgAYUKuDM~!yt_@`HA z0GxD_h3-Q1!)}Ml5E^V9%VMJh%(nB-X251|7Gd!HKLyQt?IwzhztvF(#g!Vn-zB2~n?7e~!7I7UP(zwx z8DA9h%&CD<4Y-Wek26r@XoZ*or+H9uTK-<6(xHp#uThwxHl05=T@Ifu z&H$90UWjdviesk z()M`D57(aV+xts_IEMmx*=bOo;1faLhpS46n`vSkoAp&v3k)#ZO%W?M=}MfOq#_q# zU>XDkjbjBV$bVh;biG*6I=-;`-tvG$b@8^?MfMAR7%&MESIs0*a|VdVq@K?UrpVkE zl&o&1$!tfyxkaeRf_Pl#^bZ<4?RWK@Z4fOGK)woJ8`BFq3lHSDglVvz=%(42Znj0W zV_YfwA)E{cl66TIoh^c}Hm$)3D?-w-BeiBd-Qd9s>A%h^$NFR)jGADDnLIzy$C3a! ztaP838V`ZlX8LozA!FJg2jT)YsmE&uN=uv4X$KYKL5@$PnSZ$Xz0_E(1A9fJ>90h( z$J|%Yusy$$_8Bf^HPIm)94y@2yrvwqw?><)0#yk8`*mg^}7n&4Y()S`mzbL%(Wr{3qo7gxh z%u#@pmvr8zFN8q4thxVsmr$WsHuoUvk`={X>R~I4Cqj@R;`7!nZX72dyPWRm!!XfH z^x=xhV1W2ve9~!EnwC`hwjg#wELk(`7;>7~wrwmfY`G#Ru;GEKm3e-@Du}3TFry)N z`^v&oO#|X8(pD}FhNz)w;xYGtb*72S9of3I5idh8n{di~I>FnkLG30(pc>)#B=u zG9xKe5>r&Ozdvab#t?nCQuXcaUSr<`68jZhKs9z>SviK$=(c}yQ^Wg+2-)juj&;`q z23Kzt`2=%;4DUxqonv?;K7O1#Q{b>Nq5a}9-~85WLF}hE0h_t7XDHm;K87_gx%~C# zPd`A~e2$BWKY+^EhzRlZM z>w>}}m7II4pYoMDJ@&=XPl`xTHG4Af05)ln@hNng7rv7%V0f}dk)w?|^mX<%`8*(S zUCK*u`H>};Y3Tp-yU%#Z{5c+PR+}Q}9x!cC>8gIn z;$R^bXQO-9inDp&&%F|e3RzX8wXR}$X-7L9U1NXuqvT=HN_?0h|w(VAe6H3e<=7sTB_-+#hu_}4>pzpmOobdTI>eADC%`79vh$PrGO#A zR(vI8s-HDC`Dz8951h-LW2+4HC8_%Lu<^*Su56wllG~v25Z#-<^)u77DZ!GEN5Nah zwFEWghOOW4ci$6!E4%iBi&xWdVQcGD;1A{~<1uLNQ&X z{{gq8o9MiFzz&<)hGO^tV~s~SFp_tI)lpy zysZ*Jhu&|cxOcp36QTR!PJTAs8w(X`x0#c9`^WIdaN#tyEWbn-QxbKizr7Ma7x6R| z{p~*aNGBssaZ3pKe-LB6Lw3jSsaQ(9v$}00rDQSnsJHKl-RsxwKw^T*_8XQ4gEaa# zmZ*MNJ1{rU_%kB&?3w9(`^Nxr$S=5ZUq?qU4gP2ChiL5T_c&RP+gbGsj@$u`(q@PF zv~uBSWFYqXCzi|B#MHx1c_D+^^csT@lEM*hW-^a-!>#1YX1>wE(BEH}Cu zMb}B~L(`AC&-MORIMn^{(SBen5pHqZ+y*>&ngXqYFB4E^isDxhSWA&X%3Al>Kic^G2|BK)GDM1l7(d% zy)xkAnoXLL8)`u3%}@R9WVtiuD{~lje};ori>PP)=C-KdVpO}$)^7Gq$8m%9h*&9* z=$Il07PfWb7F#2;T6d_tSpO0#F$--3E$nBc+0QiEq;k@ya?V?zt1o>CtjFsn|db3cc_q%VX*qXDta-EbKphc@*Ln1;->@T7R$B=@gc4Zv1F<<`DkuQ+sc zvBTyFme2@5E3cN><>MI{X?nGEMvTLoOKu2_tg{Qo>kIW3Sv)A?w zT9|098F6XvV_e-E*S;Z3brntZLnLGuyK7%7P`Y|78$Hap$HClRj>v)7$`r3Q4iZE3 zODfV|y~7@qAV)rOH(37wia;yTuML*G&&#Z((uy8oV@K-ZALMa-?_6+N>52XGw2;{7 zd1@ROL{d1J^rs0`z`@qkcYj8mYzHQHcaZ?V#)dr5{gmwfbCz1d8*Owf+lDZzcjUq} zo?KGe{hA@jF9j?Ic)dR z9^zW6J2(jqQ$fUeNy!@h*p4}xprB!sfTc>FdGL^Y`TjjNYue*7I8tJMe_UT}-e6QX zxY*pdpB1pNoddcR`SqZW{FxalLP;}Y&7{jb2QzLlT#7MrgiBDA35+JKEC3?6mspWa(5CT?~$E2=`( z1v7Ebk>ucq0t-Xqe2+{t5zxs#go~`A<|0@%5lRAPV>}19oNH zCl5aXoo{(DVmFuvZp;m=?hV4p5bCpN8*0|ct^fhM#LQIu8Xkgn+mSn~hw9n>b1&Xb zTMYf|vG1X~gATrH{8Lajx?-m5a_g>e6Xfz)RxJBXd7npBvX$t2s1~1dMydut zZ@Zz)KaJqj*ZlJBaMV#AGro`Koaiax&PZ^h3@AElm!5cp|9uXGo)ltl7Xvm}`>AyS%=e{xXC`pwgaVkJJzHkoWf zJiZJHP&GV~vQ=RvlUDN_g97hfBed{O^b_;nG3IikSNbVMfdo_&3h2{c`#&A40e}%% zOt)-sbK!8UVfThS#y-5hr;alB{SEdgI+h3ZKF_b@W6+O47oXke!N~YT^;-t+roF?& z!=h>i8P+c1bO_3|57EvRif^d>AzNPKH~AU9E3AOb9OGwl$gZ}h?NO!8O#VIf_qXu; zp^xcD)yC9OtniKbfrIIrpx>8yS$WR1mfv7^_-*}IC~pXE{k7T2pPl{U!7lDoI1?@* z{`rlq<0c+VQE)XpinPFJ-X>YW=yCV!7r&GG=9VwBit-q&=Nh3>D}}+QVFa{am2Q>@s@JMd6C7sa$DLA8Kf*OQczh6jSqK@9?!TK;uo{qBk0CO*yvcr49+Kae0dh z9y)aM&ilsOoEV@lB%i+y`w`w4b&ibfwHX%bJ6AVkuuJjN5d)i1x$hKzoL{Pioqud~ z)d(1WNaXT-$iNCFi$%!bMCU#wz-HfTnRW{Y*GC%&p?BV?s_p_sX=d_S7u@0dRZRr` zHXC_yp>MODQ<&}g)P7K%!sVbKxqwYR*`14Q;ukgd3=Vgb)?AUunbtJmSA=S2d?&p( zt{u)DDEC;UWIw_IlO%_2+HDWfm($7Y?Ri40dLdapwhD%0&}Gp9$d$s!$)=)`nw zG=It!n(7aUrw4dn8mk%_(x^nz*(|@+N%3p3%H@^~-&rZ#C#;cPxc=W7PYV5G8=q}h zll-W9tAzKePlH&Qh2h3zD)wN#OAPmG9fsNBR@jHH6E}}D^@sWA?~o>Ds`HNajkNEw zX_C$c2r3RfjdGrFU8GlT@WU{2O9PQ7?-}v~Xew|^SW1|F$rt+jG`wfu?l6o=lfajFdTzpi&ZLX1@Ged=F;{5Os3 zE}6{@DF~czXU}qE{AK2U!wwZRI~G!~4+)~@CaII+^gxOyQ-jWrj$YB^AE&yrhk(sj z!C%0CuZ>>g%Etu=2^5Ep5RWnzejbOJ|HJD$2oI@ zv3s%vrQwL__}87p?}|fvKA$vkolc}p z`fF6euHOvfy*XZ!aN^QR!sHte6+f-|_EEK;H_>rrL{6wLx7O<1 zS63#WH!L{f?BIM;&miG<^yAY=TvH9nGGcE5VU6a6=19!A9P3``XYvJc6 z@4VbYv{uL?eN*K%$crtvP5G*-obs9@dGX9iYudUB=lX81W~G01{p9-1LnijguHvQm zZ1?+LvroAH9Ti|DarHmcHnq0Lq&)OXK%|_vcbCDX&XlW#YJ%A60NxK{G z`4p>UX!<$Lw;28S>VcIS>;1YqFRkl4am8rDBqA?45Yr|e^frgQA838srsQ>erfd2m7>Ugz zJ*og{4F~!;vh%{fYx@HkI7!f?oauan$LVFKt>&h`X;fMAu`%*u*h%jt&|!$7uf64~ z1R<2*#|36O2^xHy20D4gpp@SgTz)5izmwIPi6*4Q+<6V` zkqa^@$%DG0-FPU*J6GoOAAEyM)MR92f3?KD%j7od7UQje791o_=ix9$No~-H*zIHR z5&u?C)VmX4eCRJqSv@jjfI4=&x#)^r-00LPv)@_g$^pklB$rHK{JH!JO^7Rhp${(* zKW)HwuTqE>lr2Ck=_`!t%wCx>QQhSRjr}!Fnn`8;IX9roBLq1|GV;W&)U&X%{u&*9 z2&9dtSXo(FE?>5M<0JGC3WcKGlB~rn=2WHi^b;Q4*!_zG#x3NlLhJ6@^V);UYxvl= zs&rTdy5L5J&&%~n>nd51f-Y~aE1iSL1|wrU&D`23wRO)RG1I_Ggvl54@7P6GR~w$n zZF;J3?$@w#{ez&W%pXtiY+;5;tX0-pE`3EPi+d$A##Z;(qyuEhdd-B##$#ZzKU*(y zs%F^pP!}jr?>e##41mVK?O{xQo2Lm7M#as~94cjwp#ynY&I6f2$;zu3AaAt}4*vH1 z77#phGFZm6k};^(8Ycy0pFHe;Pxf|;AY)sR|L?@btOy;^aBVi{+M<< zTqYOpFvGgN0~1#N8Wak=4e{V1xnFbTUksv88E$%fXD?RpSMwTH_CE~*qK5rjKH_0bAI6GyOe(1jM zy`~a%iIpi%bzIkk{;bm!kmN=%p9ii)lG0LQ&Z`D5UmD#K5wV$`tfu3Vj`=VT^p8Lg zN5?LH;~b&g0(>~OJZKO-$X7h~c zS1_DxYm6i0WOHAiVM%VS_qOC`xToaWdKCh1uKhsd#rS-{Ka^gkb%CmZ0$o6sXrqv zd!Zqvi#7CjoL_5~={AWQTs}{Y>f*W(5X&fg=4DOc0|dwrUs#@~o=>8S6b4=l_ob`! zVa$z7f7%q=t!ljURgvjAw#5^}5=BPJU(j_HjZxb&mUIIe8b9aVp8wEQp1%I_C^96RimNKrhK+GroB!lW%bQO!t5XQnZ?7| ziRN}Kp3p<*u;yc#fTJ|mN$WerXR@1ZUp^i{nyF-HE}Kxt&t1Jr!t~8#0CU}wjYUlB z_I#+rPovrOEUGTm_o2{I!*jE|DQ>(9f&Q-O8k<`8*ZyCQF{H2_iP-}7{nH1}a4ojM z43@jJXZGu_>@C`w&qlZIUPrza#c-b8J7px(qLCE}w{2z5IzKtAA9wElR;=L6W&M`r za91qHi;r5)c1``HKW>veO& z%M@Q;^VWl#${a@)mNUUwbZv+1{4KGfE$M2rwpruXN$}{XRrS>q?l)0%3h}zPWlr)P4pdlUTEUS2u7o5ZD?6inn%?%2~(V!+6< zViivd)4R^ZZ;Tj)_Tuq@=Mesy7xv)NZT-wMlaTwzHhb&Tvj?ycd@G#9t(!p99ohTx z{sd*)8YbP3AUbOICo!Hp$u=_mKM0 z&w0T7zJejzM|arS*^$N1+Okg_90W60K1OwID!{Y_RC_%uR}$WR;d;p%e>MJTg=gQT zP8bhtrQUI(B3xUx|L5a`sIFJw57w|?4Un7tfPi+UwY*A|_t(Hb_Nafi8se<2$?0Do zuR1yxg&UR7pLul(8BVHWd(p_=2$?G?K|(R5785JV+JVd8@8EmByuUKTjEO9#K5KD2 zmpogqGYLz(L$M2?+m&ZQ2i!Fn8)Z2=;wja7*!fa+W!QCnq*V^ts9?uL8qc~5n};;h zn6ldj+&+g^zdiFUIs_Jc?0h($)K9Mzw1oYVcwp8{OPfhMD(rVl@dW>tIifj;`cm%L zF(Km1eG)joZ`1s?5*Z5qlD3@e3TSWtf*kp#NM7FqF8@Yz{I8VLyg|h#OqP_F?sFA( z$-hWC465gqteof#5~^BO2#ol$)i~_OG?C^w{(;0;o14oA9HG3*yj$4Xb2ZZL7MnE( z1)>i}M_-(J`8ln@*i47{C`XP7hBJZoVFwgBo1#|xvL7&&9Jh7tk5M2u(SFD14<}?n zFGwqIW-R`U6uz(~$&;wy3~JYV#>bC{5p8(Lqzc!>&B@SG)>zoSn}Ny+0w%kd9$?j^Mj01h>xoF zU~R`4&uOQKkc zdI*jfPp7L!hR!iPFTU7@tWDLdEroyS@IUQ@(umx}bD?SkRRMz}o{L?q@gqfU%=}bk z+~UlVjzNvP;);y(EY=9$w+`Lf05Z0Q-}X*cr5$cxB2!h;hR@t z#l0Nwz-)Nqzm(J@O-@cW9)nFJ>OfczHsiKb2xb4u2br3QX(^bH873c8hASb4V_FQ8 z+nZ$Cre#`~c*4}1hmXY&j4<^1$V>*aJtl<@)0UD`+$AUq1%YAQ^18@hpTosKOs)SqU&oT!4aq=8GGfmSfr@y;eJH|shnTeD=y)4~Y$mof-UHECPxrM`r@SmJfQKN?butjdl z9*x0ga>iQZOQ{HHS)Ou2L6lg9Gqyn&l}cn6KAe#B4hi6m8gb z5ytPk@oNHr>*=>4A`rue0HcLj~MKY;M!CLQ@mJvY-Cp*}^{+WNMn15GRA% zFtWsYx6p-9dYIK$QhG%!tPm2Y1aw@M`@O`9)Ae|cCr{p&7gLp-Z0|Sj9=ziA+5YZa zIy){s>l#&KkY0?cp#USsm}9=!S#^E0M<#*HFr}U4^}`$1Edqj~wy*ChxV(PdTf(E@ zbLYFYwQA0@7o{%~>4ypn3ZlB^iwqE)mUJT=GQX#$8gqtqUS3=z1s(*5>}~X%l9Z}` z&M7?i_j)eVc{xSU!h$zkU%hd&cIU3aFO4C8lFJv53qPUUjYiEvvd-2A`1lDD&FvZh zv^8QHMaB_cZiiytm{VULX_p7Cj9HvW+_91@@{t(F$7r<`z(cf;26?DP#yjx}nZIoss)}NVZ zrY01@rCaBczm)Ked#!kGY;(EJFty^!t(-S}ZJS@nP@X>ixzsvlx3r@C;IIH5y2f}U zodQ$L%xuf6W;!{@*xkp1*CPeU9!$-wl+8?Vkx1ZVH<8=H^OqPSp?($2VGC7AeP_>c zOhwTQBhn)ZA%Ue&i;--+CTI>MM2oGdnCxnqv0ZOoZ!( zi#$z}j`egH!-nHjBIzxU!f1TR7ABmoEvJRd%0p^KUw~Mh<{jWYE7!7Du9qIz`Rk`8 z4WOSYtsfAFV|a`@)R6M;ypxO9b`AcuG=@7bHkJpYN$ZWyD}FwIiEH@F2)0J?Wrr=e z%7rJk-!3Yn2*z3`#ew@jQ1#q>Wxqg~y)oI|%I5X0{8Hwj+DUz+OHXj~!P?A7Jf6Ch z_;KV=^HF4{7$?!JH~8!t8}#<_#U{sSMc#544?Y7jn((WpAr`~2E2cm5txE_Wx>vfT<`(eY8Rl6sYnWe}xw&Um7G-t;Y`4j_t zH?JmE@LC`*%l)jzK(WHXf?!omXR4$HOBat~LSmuxhtvh^o8wNmBQXiXiU6)kQ_~iB zNmGoy4!@W!TE5?Rp6hn6I-s^ouEGIH_HcQL!Lq(9I9^lIXh_@`6^X9jMCluc&7 zGLN2%ugVR)nn8I7mP)HcFj(t&dMc0EImJH14E+Sp_t9T@{ViCq;=sqnl@yYff7%eu zyxLY_RzNDnE>9PBz|#kT-0b4)2g;xQL74N%*~j1zZ=GzlXtb&Wt6N5Lf!P|7_{j$) z?&7{)yU$gCZ1~9GWsB87mbq)%{xyzw-V#mrE{a-J(J<2)&&;IX6kPzB__EJ;6&FqPv~O@$fuc1Wr1Ra`4Zjt|8ybeKGGtuUZlZq@8x1& za0kt?PJQaCv*m8@F8G@6x_a#tSihuRYl^=;Z;g+Cbfcm#$r^xlqXX#u+mUo%D=I2b zfgf)rH{b&!RuDx06L(xr5vnY;HMF;OFDGv^)Wt-(N}#QEIL{o_iur4s;l*N`6(p&0 z8{o;|vVdpce_Z!JtJX#{a_xl>Gk-*lUYeOA2GW^Nc=@MfG8cFki6Hx7nKZxUUwlqW z_eDyu%Jx{%0hV`s(*UrINKx{^(0uUC} z)W~`tAKE{JadwXXYCp6DW+6&#u>I$rri*a}vM%-;nIv`eycLyM$!@qy`VYIb z6&r$0_591w`n$ z=cxfeEnz2cqhL5cVDU6F?p5+TRI7^0S~?NrCD?SFl$ zzSD1vO&yYF_OZn}_D`4Q#3f?ua7(pHvhY~Tx6J3g&to5aBTXzVan>KoF&KoYd==TH z-Sy<8W{SVxRBnE&?**dk=jL@oc#s5ewpcKNG=`f^Z?IA&CRg}P^BIrj6jh~=P7W4< zdP~B`bm*7OBWp_FL3nfku$Dc)U)kq$_~O21H-4)4{YvEI?+?|S2StX6I92fnP<4(@ zwp<>`cbk@lz=dyB#@8{Aps>By7qBqJoPXunW8V0=UwNj})@IC05DpnfbJ8)9pOYcs z$@l!yQhpW&iJcY-!%7?a5*%>Pz1h(b!zB~92#zC6SVSbZx;nA5v(vfM4FsV5S$L^c z&z9#DX(QUv#Sxo>%XlPt#iC<57Le6Kd})*1`=3dW>m|dQ*NReUD_|W4TVA@W08vp= zofW{$|1K`_&@<#_I}@`8wy2x7NyGG}pH0wqf5qFz{Q>z-3|HZh#M`u<7nO%TRDS58 z=c>Eka+9Q=--3Odv-2`}{P@!|J(YJIa}%DOdqpoB;+f;*QXbuSDxP}gKbPGVG^(nr zON5ugOb5yV8j*laKo&9@Bb|Pu=TNY}4s%(=K~8w}+Hb$(|M)5K67(2((rGEDyz{P$ zyDcc8tHK`Y1S^%XZxaaGPY|_;xpt8T)ZW(qDiWkdJp1R*Mr1;gvD=aynGzU8j9wAA zb?epN56T(b+yx~QorTcL(33j;jr9sCA+zeBu>j?7W;ZX=Jb9x21MH&!D^BlehdT#k zElJn_th>f3;VGYCd4Mna=1$#GQXJaY*#?j-T=4bfdji!kG2kO7GK9o-n zRFL5JTfaSw=*&)&8Fqo$wI@fb>4~KdEj8Dj zw#y+PPXHxY4S59+LnS37>(!3Wi=V#B$b3$*$sEiwqwA-9Po zDAF4LA5m8U7S+~vhZK;Mt|63?7L@K%8l}5Ky1P?Sl#=f5?i3K|k{BA1W`F^P=0AAv z{r>YXpw9zm&g}i}xAxj=y|Pfb=;#4XmZUZPg8i;@PI%zV$)A5B49$K)}>O2<(AwD)tvVs8i7IUe@k zt!P#!l(9Vklw#_5tdYk(({X_P6xyttaZ|>eBtJPu&%l4j+}4d;4CcB^FrId zXu3BI6TgVY?_+>Nxi9RlyR3l(?f%DYQ!;#qEKcwW19<&Zgu{IMOq9BS)nOzwv3obq z`5d642`&b#91^8|VTt*Q14wjgo%%5f!7jMNNo=F2TUd~$>7^M-Mhg0POMgRSNj1Vg znP|g>sRED8rfHaW=lE&j{#DoNQbV6_G^fpi_BizZHjAx^UGD^JaCbDi0H1vg@qksB z=^g#cZCT6yH&Dri_9cC_T3@N5^#1JRu5Gd4mQ`i#LnY$YdSfj4`{rd2xYC_?TQGV&D;1) zpQw=I#b-j4I}({YJ&>A~PxU(Qw;nc%c|1WSbkdDr%%o-{lu}mw7&3V$z1yd0WW^-!;klsl(UYm^4m5y zr{MnPJjNgPZMyLIVk5iNdnpAE=)>J#z-6?WI>X$PDi7ysRsfGK$g{7oqV=n5^Ye01 zNlm<&Tr$8*IdbW^c^pFnjzba)SecsY-J315va(YLz$<^Rsqw#Ad~ZntCkbR6^$$@e z^oes~(cJGb&!ZbZZ{`cOQdt#?7Wl%|?zQ}uc z``_b696bAHyMk7VKGAc!KmCvT5&tko=}b%y59(kFW!P`eeP?(b3(N3NX(Sp*@BZdC zHLV^@Vb#C2(_Hv+1sO`f;k<{b3mIP=1s4~f|ZNF?-ppZf#S z*6CgwMikyNm^P3NfE#Ze;4s^RZPUC`CNb&O06GExUbW2s1m~}xY{Wb3JbyyGJDS4x z0Dh7w1W$S!Xz9le*iewK-l`!V3XYDXS2uh~ILl;yqNl!opcX09g>Iw&IC4SXt*uL^1V%{MDWk2%M02@9(6g(9kcCHwZTVuWV8enSf^Uhc2YA!*mQ zEfJV#1FLj6UH{q*@Z(WYiT(FjAojAmI-P{>UNb)C%CXD$3~yg;onGJ4wF4>JAeav+ptjbSV$ghc@uPZG#lU4) zP9h;FnnXB63R<4qSQ-BqjZ&T$PX0>H>UN$U!UtbH~RP1ZOpf)n47$SFJkz3Br$ zrvF}#&?~pV47D8i8AZ!>%~X%4U1%%xW}$iobRwBMK1UeuleukttvQq`Uw{@KOwUt5 zr$RAE6aUs}n(Al^*h9#3av&x4KbvVc0V>_R(lF)ZN;0@F6{N8iXAI!S+rI(r9qr)V$)$Taz060PMN-@8>^pFFZ=fzW)DQnSU%9l7y*4(N1(Bc7bBhGIbjO)(Dd0Js&JeD zPD^DKl>q>ptl3cLrQs_kdEr%JYO^hH7y@nMRrDZ^mVS{1Z4ruP4OYYmt9;Zk767lWk$$MQO$!I7DQH=70`20h zvR~6PQ_{eHx;oDFlh_O%yJ2xa&&DWvy+Vq)wu@PE1sV-qZ}Elx*l0lqM9FkK^h*Z| zwlb4@NhI9IEhEpuIE6clO4$DWoECpSXJpN7`=1}*sFz6O!zW(ihmlXg6$QpV9o=}s z(xHrkIBy!Ms90GUe)G0%Oyk94F9C=ag=ZKt-tO)DHHPbviu(rMzK$z5C{L5?4A*1F z>&$e7#>YybP7r2iqOFeAW-D@_8_w)gO^c-aa$#}%;t*u_QkwVu)cz9-$yQ@PS7$+5 z3EyR0Va=Ni0jY{RtU#MDaSN4SBlD{>^J`dV z+j07>PSub{w4^vskEB~T^|9q46ws|wyzET2TU~+gDhTql$h};Ua=OwlU4xdH<`RyE zv9%>|=09V-6T$$30dSFu{v8El67o~#pLf_jP4<|T+v}d-d>uz~h@*M0>y(&x;g&bf zAD*UZwe8I94J)uj{4#xF^x+pzAo9T9(Wkm=NfmGkpJ?X&K}*sbxYR!uGQ&uF->1+& z1;|@f8Up7s&H_IF<9G-p0m#*v0FCWrB$>N?Mg^l_XoE?U~$o|VV7#JFlthb zD*9qevWd?Mjy?==zq;DG8;9!wIQ!<36?aa~PMPwC*j!7L_}uqFol>+y7SS|`HZ*wF zFPonR0a!Yu;a(?k-pOYNmgsKzB+L{&P81VeQc|Y&7MKHY4!dU}c!Nsck4-8r?P_Hx zHKa_T`Hz`P#fR)=sn^$R9pDU|{-_^ETZJ1hj1>q7H5es{7oJ{rlB<65E?IWN;vp;= zt)in~0={}`4_uy*hNesre!Wkd7*rT|ORwWT1TQ)fdRCJiDWt0!xhYv)?RK-8_R4|O zr2EoC|K)O{P-VEil;nkRk}dwrsu$cIBsr(D2f4;JtHGv-!wNy$K_@lQt4rBalUMF@_67V4ufilZFsfK-L0I( zz~yD;U)<{@Y7?h$i77eorN|g$8(w2814!?h0|b2Q-b{k*3#)m+zL*_v0U-evm4e4x z!p3c*{?wY(k2TM1*UEq?#}w4N-~V3A5zm-oNosyTFp_VTPqzQou8e+Gwd$u!Ji?<| z4?%f;egZD~FbM#Bopu#)lkje6Z3y;lHPIp>THC7kC5{(jLYs^^VSEV&4it?)i5D7m z#eZRp<#CjW6&8JRGZU#}s&TUP0*oOIq(`VPhG}*6-%akk3z7XJ3Yb5oQK0DSDlv)c5K>8-{i zL?;u>LSjORZ=Y9wY7qf%{8_ef{RRx6FMH!R?!ljb2-6gI$HYhQ93}DnLyYFeP?R6N z;dq1pvZUK?DXhbnYX_>0w=mbtbTFW8S=z_O#=vckar6WIJ5TwGSe z&Jyg0`I9?pil%Z!=RAub`==O{)KCv_!vVprL1r5D5uM|Q{zK=f(u%epY!*H^<8r{k zswamLvw?r}LR8#gH%2m{PnNTq2Zj6xdx?gsR!p=vye8F)sSb;&)x)Tp@|j|#C7JWr zgqJ0f{&9+uPJiFJLQ~6@9t#6ZJQh<|flcN7?W}!UAgYV&W`R$v#U8WKtfVCQhkkEL zHrcX5KYD21Lb93b@;5-NXAJ(n*^YvTv=8QfVd|@2dxSraxbfkMqcRG#d?gk z`hgQ70)S`PEl{N;JXOGrCO6?nFiNKXK{t`~#Td<+q1+C5|-(a|l3Mh4B5hQP-D|S16mznCGVyoV01y-;E-(#3baW z^bBKTjk@qVYSnS%HGyJLcuWuMuKnWRcgP<yH{_e1vD%PG63|&-|K)fedCoZJ(ys`v+}1i0AC)2J2X}@Xur;M*oydj+joz* z{mJ|3^CvpJad>d{(nL<8_sYr@;m)_l!*9y%CWb3|!52$!PX5bUr$ksFg{G%2>3_UN zJ=th$1)ARh^Ohi=9;v6g1bDNB?Y|2`Edk;-buP%_BsUzGUAt6UJ|^aI)V}k(-W(7g zUJm^|0QVMg_$M|4TeNjMJ3}EhPuofw0mwG(X{TAgwu5#W<2Mi7Vv({R;KyBhjKaO8uD^YFFFhGi zGvAQL?+PXW24L83Nw&E;;m1TNP+tBJ{(G$8AO&gQYI86KgW>DDXG5kps1VfQ-b+7y zvzB)nS>#jB8AS%6uLgdj{BI0u8MFxEAXIHF*ux4(J^(~&mwa`wvWkY^&7Xx~=5Y`# z9tS~Oi?iF2MF7rZ5|vK>Dk<>+*~zZ#!bQqcWgaYx#Zt?}JMGohO1KVy8`;uaz&yC09I++{2TO1Zwlv1ff2=ww>D- z#{czIX{U6g^5{`vndCq{^$2CIA#Z$ELRR$BC0E$_YSMo%q3whO{Fh9Fl`BiD67hbjDk?oQNH~V`$3}*j zI!&{+HVaMw>h#*%5-`4i=hB)9c;h-y9qgxMk(Tc~mWlk&d6*}|HoZf_RpXb`msk4$ zl=NQ|5wkPJDqMjPR$e3JZRR=HGG0g1YG$OPzH)J-UF(i9EzsU%dw2aW)*Nr)1MTwx z=xd*Z z*zy{M3@+q7qu^p0s;@oj;%O?NZEs}#UY8c-VPuU5x#+!SZ7Ye*#WMl4mJSePvnBI+ zD5$Gg+sw2s2Y!d{Y6+yk+I?ZMWiwoZ?ie$#ss6>&NBjUAEnvt0T-VfDfjplBn8AWA z#@0H{$$?%v^xX61%b$E#`S_kkS6V=gLu!#efUhJ7$X+b1a}w)&AdHK^5dl6$&wbY6 z4T=KbmwJJ-iPn-vE@H&U~Y-PI3kbmv|2Dc7``L`)H!DI^> zW~e_YdB;hgl<(!UbnNgYE?V(4e$uwy13PXu;dn5ypT%n4+g!ZSc$8N{dYvG7qhI^R zo0k@9?LDs48G$L!XA5B+-g`Cwh6K>=yYUN`fCM{!^^T3b>3*<)cJ}2nPKgBgmwBJs ztk7+zJ4;I{i(--}OUehVG3|L4>2u$n&2VKfq~Lp)i=n9Wpye|1p|d64tmg4yVZEAde?{ZpVOF4PfbUal10nf zPDrl;7;s1g+%Uti+N#xI0H8V7dakk>a>$W3y0ciorK%=$lybD(+H2hKz5Xf9M9Bw+ z`L73R!dey!le8RUAo2FMdfo&KZ|4EyU|MDe>)1)#mm*YURC{qkC zW#VVlR$uJKx+2{yMy8D1d!*)0Mt91H952q;1fbp65_2b2=g%6T%r%VKjpWMN(jRp=GBP!zahz`k*m;Lj8{%+;p+PQ zFnEhuJy+t!tr}7Wu8wWAUlqQ+87hi5=#M`6YBn@wc6m_8cX^!m%>#Oeeg zthe)RO;*@WNg5*Sq|l9caA6fK-2HCLWkm37lPuYIE5f8X_tQhjs1A8#9dg)A`E&hER7{I;SHCt`?0N7CY$OxwHt5aiBGqc>0-Ci6KmhPkF zPjWE$&I*>N_l4p1m>wvAO|Olb!GdeW`$2*+G6?d(LF#*bHju=sQ{!sQ2H-X#z(TD? z)^>IUP?X6}9JTRO(_REL(;laYOID~ND|?A?N2I$RPI;vF^N@|AXoqC6(T~VR9HQ6b z(b>Y23lRt|w52u5hB{~wr|D~eI;$Xf8|K{TG35eTf9z->Mi~P<_fL^g3xRGLWj~g466f@s?X%`xhJb4eJ&rawNP*QqM`bSpy*S zO5%gDZ2&AuI=aP;n*#gEijOlYK*_)Ns{{#fA%3@`ms`nnDSZ1MxGj~b=He)WlMOs6 z*)$HuHP8Y9z_j62WMYoD2bYCkZW(n+F^139981CX3rc~>8i{c2dnW4ARF#+|j}CWE z`JY2d_3x372a`fAjo92b z>o^$>JU+*Fgn5`h?jY`m(-C1HEK)eNd`kCUcOt1OP}+|n^)bM0<0mbHF*n&nnFY?{ zQUO(4eZZc2|6wx!9scE=U%7rAk?-{dDyZIm6+1Lkir3+o+6_9^S8K++=GNwLJVBEp zPyd3BjzLh#(Gi`9P_TOUBY%y{l-x!9lzeBdSk zh*truxtgHxzCb|p&Ss&NP$89D+UfnXdQnh@fV;T4IX$;Ru1a4R`YLnX0%p;4iB8-q zG#v1UmnS?lLw18rtG-nHM=tzEZ_@C`WL$EiKOXd_`9>} zH$$Isn)d{S{t$6vIie`jsFG3~GY9nqocY36f++>uj0a;gNH~p2_GT-hzI=I>Ur;bm zuA`=w?tf2RZ$F1hM^{j6&;@pKZWHdY!LHU$cIwtyiJtlhQ@y~|zR8sm zSwD{N14c7E57Vl|it~^dQcSG45aP>cbQlM`?=f~sExAJJw;KVFq z3iDNvc;W;pNoieh@*-M;AwSsC=Y9j_Q~fXn^f4yPhhRwF!wG)P?(rkA!8O1?JcdMgk8fSl%ZT4wx$ zmii>_qF*!9{(EiSUWrK8>eGIg)F8OzHd>McL+;));Vh*~A8^jQlAC%k%XDRE&{obx zM1bdS@H_E{3BPT`^&-=}K^b|MSC#*&t4BmU!T8)SfoI(A-GS*(ycKT?QjkEx{~NL18bZ_;rWXPHuF+_!YwJlkHst`YWA8W}v-#*{&yJR#;xjBE zejOr!`><+r%fOG8C(1OGqTBpfRMmQb;0I!gPyG^vinX^H)U*AZnVIWI+g6=?Z>}ml zQ>ZOZ57L;}nGBA5BA3iM=xS0aH5g0z7<_cS4=n-dJ>%&@iX{#^7Jj#b0R0Xx@Al%`-y9fb1hxusg-XdxS4=%9$G#fs;7FfS1Es<$!op{4^yB5jK zkWuSAoX?*FC4AdHQHI<&9bZUxEWtVO01t~$#5|vrp%PlQrp{d@t^q(vGkG#``ZatE zMFr#A_$4JJJxCyKRuEcXe*O#13iW1PHVPoE74D)cE%hf;l0HlZr%NI;cWaz|y6wCr z&dvYL4cHn1F~y|Nm8{DvlF@e@S|60)uRbcMDBew1|8?sw8yCmYHe~L5knwyBnR@@^jonBrpZa_4NFZ}MSjh+nju7U*U@%&! zC3N5oD(Hn>9EicpM<=tze9Lcag(5MY*4RJz0R|8FdJ}6qw)})@hK2aFw#PJu_Bj_4 zs}A>IX1maQqpv_@lpNrxLlP29AA^S;zk68j%gfVYPev9NWKe!lf$`kfGNUtpjpwjB ziGp;!)iMTs9=co-+ic>iDj@Wtwh5tYX=%MxlI!mY4nOWshAFG7hxy*%P%|^*KPInZ zdTrIt+iV0xggN;yJUSrm2i={%H#x-^i%r(yxw*#WT6ILiSvY`2Nq_u^aRC(x*w|R} z{QBhpc!1vc=Q59fe2IimZ#zvES!z7=#mu2acRsZZOB}7CK$r=frx$wAIc?6%}TEC5o{ zR@Me%>qpV-mPq4JJNbKbQN_(jV(z<(}3T z7Fqhg8J#16d?Kv&r>`(ODA3DwpZ584q(Kaf&uM8-lc&-1h6vcE!IXk=Kjh=Evo+8z z?DV+*P6O43Q#;92#$o7hqJi? zN=wzSJ%EH@=HkApLd`-mAGLtn@pIysopc`FTucipP(clZ#Vi1e))PP zL`3PpHf%jF<&{j*X4PN0?qIwOH;8pT{w-`PeP;K95cLITE?#CvJr=&7~?EvLu-~ z{-~y^}1WLVA26X%o?hl)41m z_u}9xpA_7ja#*DASV3Xvh3J!BF<3|)T3|pSLb2}^=RXk)_+CoJM5kV*9|dGVfK$W& z_U&5$@+l1F2&BNL-fof%<09bnlvH=stP! zMj|U|gD@3d1|NwiL#}pw#3*AGT7-=7r&3AOp9PpAD2!%1CUGE_)$lPDum{el^Owrd z|BcAAr^txBK9^`fgmP+47T?B|0%>qp{#4II%$tupFf7KhA;}F+RCcV;M|oHuYJ0H!5SYfW<6GkHwKRw zL+;nu$BKoIbmUcX#LH5!MclU^zLU?xkRl9fg`C2a1B7Xvm#Z8_{_;uu9oF1By$61T z;@PEN(*kSi&6OU{l*^iUTB;yw4tft{h8$|vx>cC;zIYi5kHbY)#<&Xh(mU~$Qr4R` zjvGX;lo?At)>H-QgDt@SnTxK=M==|K_N8T!L(kaW5iH7jf^CPr|09!udUWZ#Ro>KhThB>bWk zTsirGqUzf=y(>wLTYSn#$P_$eCh4MX2+D{k9W|Ut5T(v8^TfySlMrQ$WHV&L6Peac zXbP{LliCITE;CE5 zZ}>_gFp8z4QmAz$I?9*C51+=!9zQ{Yr(kA4!u!OYVm^>>n5SvAfQLMlaPq{H*}S@+ z5(TSyuO=H#ZQO?Z|Lf-g?=|?Ym3PbempLoLCcok@KBYnJPtT5{HlYUK(am$?#i#7g z1-w6ua2m`puT$K}I@q60j?=Wdebmw-y@xHq=3AUK8pgDqadb0yuBPtTsC4+dMnr&s zLi0H;;bknQ*Hhmgf~P|Qdfr!=e90weie`hJTE+a{uI1^SC+O+BU znMn&5%rLXOP|b2j5q4-@CX$1Dd_jV$v^tDyIq^(6Mi~RUx84q6WVkcHVKB)jRyWG~ znBi=g)#t6#Z)E+JllG0 zpC4IUTd#XR&}daXCD|XrWb8flMrKBrmPNwyr9ilt?JQl+E?GjyZNsDE*H6^?uHf-god+m1TusppK!+dmKhHBHI1e(z(|qL{(I z7kkyJj}FX|$pCML;_Y@z$$Y1;Ov89nk!0}nU>5o0LeQhbXo--AIdBO2i6~45QQgw= zQ&gFHdsu#7*+>j?kHW4Qs6DP%1oI+Zh)Gl;#f#U_ z6jatcvEtEcfkwfGdioyDT~d#0{mOA_`zeH#N{O}B4Z9b2&@7IMdp0)(J$BJu+XpPv zvFDdM@PM138jcE`fZsgOU`A%_%;8K#gK&hzN+I(YB8X!wT@U9L%4J$uaE7dvSmK}a zGjfz|LU)8nGR~}yDaT4VJBbCX>n8{{&ISQSF=PqReA9 z!S;|=KK--{#!Ua~tRHWcVjxAb$e+L1$b6K2A5*lm*g{zee%-#fNuVZ`QI1K1=`)rB zIJg~`ld}$j0)G!-dJk}Ju|t*!YV5o5y`X|mZ>?X+9(fDA@c`2(H!;Z`W#l|vLhQ*d z-)!7A4%%LCV06G~0mr^mLZbC4(_4HW1nWo748KmXbyzwj5xlG7y+=1Z3=4sX>}ROM(r(4_A2;9OGvx{pkKD=aGK zQ-O}+V|Xn1E7Aw4o-C}ceUNEezh|AX&;S0zUF~7~FM?zE+uSfe9^yJ>_W>^0&1V`;_(ic*eRa>-VYxT&u-u4Y<5;xn4^K;B*#LUiQ zHU6UgT7fnDS)nEB*CftKz4g~RdJAq=3SpbSio~~nec@7Zn|}T|?AXGfUfQ9v$^$g!vfjf^PiDM`g~La70j;N$F5|^ z@ahu~sIQY%8NRLFTKQJChlWuG{$1$Lt~=k7#DJQ$aQ3a2oyZsx@uz`>Y31wilGc57 zxSiCgjz1P^7xOP&4~{>+#nH#DM)Mtbg{wpZs`SOtobH6fO@lS#Ox2?*Fp#ShAN=4T zJ;kJ__HcZz*v13pKX(pmNb8y;h-3uOV)_?vt+vtY>7NH2x@D8 zv9efToVkPXdY$u?>NjaL1U0qn(w7ORzW5EN<#*^T_H;-_`s{%sI2`CvR=*vceCeh=X;Q&ACM<`<%1QUSsIHcbFezHa|-Wh4w+b zUm(UTh7BI4Z*25;(tkKzQ1jLK){D@#n! z#O6WVyC1ttT)g@$_LCCbNV*7kJEf~z_05%B+%m+3E{E?NvdZUZnc$sq^H8S6uyX7XqPs*W%WIV^71Y_2oUi zVLtJ%-4hChEh{upQPzQ|a&c_yWD{5ubB+@GuTxz1d;vHS)#%m4P( z*#0V)%PqTqE8(i|$(uqU80by;<+EYG^w5!L?qxo%sSlio3s0&|dt{mom8n3YZH=tQ zdowcC*K-T=&8N&huq&77Ru@JBskN21L6csEJe4Lz)LISS(5y~hDy?t3mXqzAzu2xQ zlx|nEYD{|ue`s-0StpP5WHiM{$U5CRod7-I9>A;jw-#iX3@_SO8}%or+@InXYw$47 z6xn6S3mzv!YJ4VHY_x@_x>(bq{DoX_%GICNzM4LnSS>QV%GG*&j`G_p{3S0~Lp7wr zar{vv)uj@K*{%&=d;pF-EG4Wetbi^nnai~LCn1R6(n&uOgOl03 z^)EX(Y;?#u>jLD5B)PvOpbj2R_tH%lgh>{3+*No}D_3dlG`x2~{^eN}3N0a|2stcE zb~RbrMnQ_7gtnZg@ksPIgQ|TV-poh{NK`ePc^$h_Xm-+*>T0A{iQW+b;fcPz@QVpY zvPg4wn_?YSK|JYi6*yVkAjBG3_c?tCd1;ExCfLiwA?wnqcUx>K4ZdH=^)V5>>Vw>9 zkoEWP$GZAF<*OZ(oZKgxa4DXBSy-C-Sh$ymdt&9fF1Pyvkw+RlylYEzStDEj=H>YM zxfiGHqTG+M6#^E>z3%zXMmZg?k*hn_C&s@P`(C%apydzdyq1)F{R|D6s|6W1?Hv*2 zJP~aIf}3DYx0mD}K9HzNFWuVk!}CDH>`cJJD3ZnvMzQ~4@0OByl4}-44+^-j)mguV zd2J3?`G1dpe${%fpGEb-z?1mvkq<6#b`LR?+bZDZ=v(prbg3CWx9uXXk`NsA=wW-B z(KTe)k}L-G_Hbp0*Wb`y@a|Sev(|?d6O|Ay-$H7u&C?egr`Qj0Jck7J(h8n6F#!hj zG;8D@71nh}8Y)Fc;tvsV7&idRI65+cy3HH1?V)TQCk=21xNn?Ee<@aq69kJy7n~AT z$cTYWIX1WozQ&HT2YX$FL;ea@E=pgy3nLACBtY$N3VQa zoI$;67$##=4#BzIbFCJ=e7?5lSupv1qVLFB3fBINIEqiMbX>!e($W1T)forrQ%tS8!7}hA)fuq z0c30e)>>ydN9*CrUDik8A{!Q#`X_`55pZ@q);t7?CSk1Np4x@p&5*5RC1%QP`(I3& zZ$xPGmM(_4ROU2YkJj<2zxLuFq^XYtdljDsl-C#aQsQ}puRhtoowKeFbC%Ly0kh~{ zeyG?!@#sk5Kco}9n&E1A3DM7~uP4azyYQ^orpe`c`ge!9_@ks~d+x-a;@0>3 zlP_hf0cy=S!@?F!FdFL4@C`CtvdWL?af5*0(R}<4Eb#>1_xr@;_&ZmX@mXRIzOnye!=4q6I4K#Z$C0<_N^m}XvuZ;r2sdb!A^M<-^L%1xO^#qT- zI|3rh8G7@s6AuIpS0(HT_H-c%%N4r&5b^HS`n<}aYIiw#p7S+qv?_*r;>IL(oX$#O z5Z(~A?7c9WhShDuSqJyo;%Yk=H637fAxP8W-JI*_^A^G=>n{VF=K7D__}K;Bdk~5} z7g{}+iIqodLL2Hu}yb28zLn;2R((4wf4j#F^Vf#@29(<>W{w*v0VmO7xU z}<)bY59!N`Ja1<<`>ZcA_4j)?ej8_?=cen2G@n>*OW zcXT^tDZWcNom~*ZEU{pru8*jnTH&yCL6P4Nwwpn8z{vsuo=ifhn(~jDL0`SGes4G- ztrgQZ2P`ToFIFG$e5YUDlp|=3%#pc1|7^k8CQER+kSRxO~UWOff=?K z+9(Ldxj0zx7XS5n^AN7Asj2BHLwl`f^w`i)Q2Bx>>bWLx8f>K+&_;`f&6H!MJ>r++ z2p2=iPJ}AFe2KW5BkycSA`8Ts)~!RK0QNt35ov>ZfmuXV-D=4=eGusAKuu6?O6O?m zo9{c!GTD0jMAh1?mdah&^3r!z)OJk_1cGrhH4@e?yE8-v57i`D<2tw>$K{ozoN6hX zlv=?i(gujsDOz^iWS`Sb0j{tLQ=&!#5m?vJj>aw@6R zyMh2bWfrEP{1kgnUj{Y6H3ZR0ZgSl7z|e*#8L9UW4P~NWGDOr1>8?4q&v7`oEHwPg znh7UDo2dPXeU@A>-7>-@KbH7pS0|z=bpj_Aa$VaYl`!@?JaqAPv@QFf)j#B@1zm;) zsCfw|HlQ$UP^w-R))z7;|DArs6k@hwzlA}dsQGhIl|J8}k<@~fDK)Y)uF~eZ087z< z;#-qTBeY>9s(wLCyy9u(Se@rVD}L->R$HlhNpG^nx#x=8*7rH6&lb-h;+lT9AfWyh zzHg3i>QB1WP(|K*gH>7L_Y^3#!cT(s<8Mz182hgr&C#9X(lM>D?C}h>Z;)nuTM{b` znHDJm{vUD z!T3&WwET4(0g95dg;wAawF76rbOr(DSji`2%!@CAsGdHzDE^@<P1XIRuJb!9kM5_(MCLS((0HXur2kA#Nv@~ff+}G2V}Clkzo?iP9>1$iu(<-6 z`mSIb3_Cl!8n-VD^E-Q2(9WEHXD%3&cJA)fR%`#S*mI{vjvj z{?VIkxBd`)0iynFD6$`6$Q6)6?HQ4~!xa zTV)I^HsFHS{P^wLARuG!g+ObM`IfQoGS@(c96g*@T9zfQ;tCghAB^Tt$nzJH9PB{H zuKYM-D(+$W%%S1&XBQ$bmmhSszXDatZnLlWw&f~L!3TZuJuaRXOL2NY=Cj|MMyr_J zbG>@6a#_oVjzvH+H~kyihSWufw`$P`%&JblO2 znoFtG0lUL|kq_P*bUwFZ{wMGodJ~NmVbg7!zD(aIDt}yh%TNyQz2SZW)O;3Q*&=P2f5V31vfj)1MDiS##OOF77$*@lA zWWyS2B5|QUZ>x?;&W}5A%5vSC`;0fk&IP)Nu*!N#s93~Ipv=z3B(<`F^j1j;P#5Q$ zZ+wm;S}oa8*l+&+5yOxH+b~U=`6*kqP#%qs-ulUh3wF_WXhZfmG!cB|u(ggeTA3g-U>u z>6hF$=jpIhT{Z1_?AC====yYH1htth6O&ZsuDjlj2Gjecf3}9)P>A z3AI1xUNt7$cEEl#ne2@3)`#8W_2-O?hP!ULb%cMna3T%Rf^*3vhBibQO$4v=^rgPJ zk+KI1I#t0Ud?%$;2U?<2AL(}$yS`X)ig=KKukAoq5b-UeddNP9tDJ4&aNxSKE3&7HTP@{PiePokwP$KjIOZ;Gi(fy{K13PoX{> zPe6dpuAg{up8T1tUSyefU&AdY;yP-95tVDD0c`_qqn$OsOVtll|GUD z4)z>%KXwxqsYkU!6YHh+ll#MGWR zkU(@|-?dK5eXl?Ah*-aA-$bGQMnezUUG zZS1Y2+D_7!WQ{E0obGA`n{TU{n~{Ny@f;~wVbRttuoqh+0R4WDqbO-X|F|i%NYKyn zA|LZG5R7*mJBFKF`~#fKNw+HH5WqG~p>mTOKE{O1&4i#3jEfkFt4u%`m@3Q!kS9sb z)_M-R{XP^TxqdjS38K9{8v)*UutNb4qwG>9>GAe2y_V?IEnloFF{;;F)H)fG6>Xpe_;V23O7>A*aoU;kg~1FE~o^*RGU8H zrzTtEnfPMIai2^n1!iYBzy+(|{ag4~;**0HgO+#wf$>g^pTZ{+WJXOH1}*##e{t zR{zIowB2YXhLzkW^v^QmMFiiEYOs;(#&ZDvpu$8038D0&{moX>TDw(OpgBAs5`WC^ zdw4BD@uliNEI>B^U%MP!ya&C5j0H4N@CJ#XB{I)WbvU4|{ z9W1q^ebSe-;Cr;j)(~Q0QSo5;&v^RxQHs1U-S1fC`-ppkSKTTqQ+l+`RISPcXgSsC z0>G#-sV#1YYOGFo+#9cm`*7MDEp?_AuJ>sfJic}peT79by=mHIaz${v=T`5c ztGaIZX4KzrbOVl~4|qihxT~n37k1ua7fRPRSc2Pkn?5SMS-CrgHE*^HQ)POKbqy{v z+xtZTTpgr@yS*}PG{EK1Z|qFCl)=lV+f ze4^vc!D5PoV&75Bu`5P02E1tx@53{piTdaHobAcAP6wc9J~l#3RPY!uyD$2q zBF28c`MuQ*IqdzYt9Rvfr{BG=*uL#+mJ9wKQQ{G>smc|RU0~Y#+Q+9^Om_ZHr)B|l zv-NjLOFXmRF)d|=Kko~s924dLT zf*_!zpweB^-KiiUB`Dn>Al=>FARt{L2uKJ5(s1c+Bro0FeTld4_y6Dj-aBIeV>sk; z_Bng6HP>8ot>sNDi8Feb`0=YBUC?_h5v)69Ow>V_@7!7pIEbEi;se|6OJDL8nId|G7tjcoSC_;8hj z=-2q$ReiHhb}H!NZn_{V@aXiUj6!%Q$ar~59SuhmJE-z`h_|-!( z&+gRY+^NgHcgs?n^p_c)eu8e!eXT_9`+fKRa&7BZFZ7P;O7ILDrS93liHqK~v@W^x z@XM6Rd%q~yP~?nlV?dG?YG}F%`!TlZifjdy7xo zf1TI=d0aWn7Ww(8UGU+&cFM2^8gvFjeXSM0N|tQO6hWR!?19iybx%*zbm#i&$K%$L z3xS8nK}4=4uz=mA#*4C?DTZOC0K+MiunH=foEGO^>m1`D%frxmG5nAwZ3N1teG%MW zJxw!+U`gLROMjTQIxk0qcdB02^{J*?7Yc|1x!x!@atDJO7N0+?MWR5dN?gg8Yrh%- zM8gM9N_Dh=(s)NF;>e0t4qKfv;8lPOOf@mTC|vexUrgl_tPiakO|*ThTw6OlU53#y$q+_uKMM2TRPZh#%6px1^Qijo5y4d{ndb6k#NOEYQ;axj5L_un^R# zmEck@maYsF;H)IRDW@;-q*%YY@0KUH*nIQ#MJu3$nlbAB8h}g)LTkm!@w-T%ZA(sN znHySaK3)f@_~;ei0pz}Z4NuQl$=5ZM;M{V1rm+%trc`3&JGU;C+B+V3f-H9HI>F$p zI#!F!(GTxnd);td{YeWs6ZYt%$IcC65qyb&UnlUiJN6^YI9Pz zKqVvFPOtN)@1f*2M_9%8r8M4qjP@bSqZ*8RVWe}dZ(ECtZvJ*4bgV$Uw`~(+`bALdD8a&P6HI zrZ4U?ng8+i6)QvM{T=FitsVYWCfe_dNN|-b(J|_+|5jMFI6DIC^B=-;I$u%Sm;{3Y zm&M)mPa}Tkhd|xE?W$8`5S*lZOPMV*|vF{y!C|Xp~R$j6lBWu36%MIAXojhFhXYjOlUdXSF zN>6UTm|*h5K+XO!iaX~hw9=#;Ln=NN1qltT(L#_t6u~&R)9bK$q@_|X>W0;Fv#-s8 zxGEl~cC>XNI%SY~X;E6X8I*wAYdc?t-X-y>wQ2bS=d)|G*S(9OYf}#;o@{@r>g_O_ zl=-rq7mDje!)rsgD~BhLpoV(q)}^eWxTn`%(@mb(lfR&T)=<|Kjn|Z3&3(nl$d3@e zCJC0C9g3FdXGgPWI}i%f3x;wa0UAy2ovP|1E%5{`1ixqElBRXYk{utu*UQv=9l>Gl z)ccJpn1_+*i@&a~6|m)2_~$zqwep`UQx(ILkNW(ly`8)V5r`a&W0+{W4bsn_Ge?SH z{zC-|Sh3sO61J_5ovVX= zHoKa;Oy-0cG>qQ=9h-8_WEl%l3@!vQSw=m&s6~S-kaC{@zr%iaLH$>v0k_O#Q7un| zm*`$?etCC<9H@#wMO?`I47<%0VcTwm(9oBfCqI?+Ld92Ij{Y3R0{GQp5M=kf4S+8I z+$b7V7e8p$l9YQNQ+;wTpRM(_wxa*pTCt=Hu*DNSv)t-0ro>+Z0@+R3unsOWDKyH~ z4kh}0>Dz!R$xD~jFG-oaZ8xOe65s@F5KPDP>3r=qclQ-x0Se-h6%_ZZ#<8hVlf^k37_Zi`{PvJGpaPEo= zEYF{xST9w{Z@YQm~xgpfIkHP zuV^0Mt!ZKTk09mfA=)L-Nm_h(uEcJkt5+fW?g=Gr)yZ9-iKJRxzPY`xasnF4Q0yg> zjuVP!C)0fM4&3+s@1jThhgM0;54qoe|GwGQ{o0bjL_U=ceCyCgzi1vLEM- zj8hizZ$a=s20*!#15T^bnOJ3(zc;*yz}DzL=L@nv- zg$s1R84|8qGx{BtC!enf?TlFrLlKYMZzjD_4^rj9GDMDRtL-%~e1 zYyagxJsJM}t*;31r$+5BE*`FKN-9&H?e4DT(Rk0{P2E=~eevvx*}p|F|16?N(Sod@_dtIKX=8JH$m%XwWRD;hop$~rlv9RbFO5o$7 zR^+!F;%Kxhcu3Eb&ma57qEX-+wH{uIpL*h;UA3ZGz?VE^J!TM4HBE^C;2%Yi(NAtD zMYJgz1Rq!jb2C`GuGlL9w>6VKh-RF+xyC zJvPco^lj_6`jU9OV&CpT<@<6_K zD2D4hw1)9qllh)n~Mj>y758vG&obz13qf*e{b-p&F``JgXpKF?xiL_h8K z@gTUU@z;p$^EmRQx7W#0S7Rpe=+6=~^_nW*p`qQ6i37Ze^8Psz^Mw-uMiLyJ2ui<- zK%{fTjgn##KEQPoF)`p3d^S4M{fX1C>x?hQoap9k8@o&?niczf`@iuz?tOc({mZJy=+mW?jU+)py6S+ z(ZTpZLyiC!HzE`L2{zxqEWZ`h<{J_@L(zEIjD6m6ks<&O@%lgGJOrr(t{22o-iluB z)&v2P_*LDeb6%sH5b(TW%Tv;lW+?gLILdz>&-pB$ULyyE)tb=e$O7B;JgB(3Yw(>C z#m6Guz7ch9P}>K1PrV|Gpoy&3C4py|FW)E|R_C`_$v*NG0+r1OwXg#r`w3NbqpqkL z`}?Jw+RxKy^4Z6{THLnJ@Nj$|?y&8y3z_WUU*{83Oa7?jQlM}+l1;H)0$b$0`H3{B zbv?S?tQ`GgImKA2psLz<)7SrbzMkjcel>d}*Ni->={{s6@DZpXLhu8nA1gCv*jTl-UB0!sjj&Q`ck1*9E`<^6N z#^XU*eEi`KIKm9|yC@XW>k9)Z>tB11!@0uPYc6@C@&Ug6`-v)b*{Gq=p z3fq!z16p)dZHtIjD{i76Updbr-@Yx>ev0_9DiO7XhapgNJ8{pOOh8KN@jNZ#h1RA5 zCpgdJZ!n?;1f5%_%97pK@Kizti|_L<`FL!u6AxLEi-1)p$9!_WDJi_RJ3lV4N8~t*{cL z*_*@c!mM0_#clh?wAF$-hhn#HI~jp0NqC7i3brUY3KDuR?l$tRjK?J~C zbWoCFz477w$z|sm-<}S(QnuW(?N48XF6SB2FV)WpTuO>>8&%pg7L;Z`DE*zl872Iu z)|!<;mFM~VFE@5Rf{V%jyrH84-yYbmnval z6hVHy@fd+|6YRkHI->+4f&ysUmYzY_zjCayqUT`=UZ%9cQ9P*q((qcEC4kmHBbrfAe?fj)sctD z+}M{_Sk4c;fPF$JL;>j=QV?+%XhG1DIxCHY(R78!xSQ9ZMz7$`I_;r>dOYUw!4;7N%cO1(I{3o9bUiiCHk&(`R7u0gy+ ztEo(a<@n=x2tUXpWU5FdU`pklJFx|Zy^=(GY-;)Rd9bEC$URnom;G8z4ODb-5gT{w zg+@i4Sq%TSH|BNOpN-ZN@dQb)&izV@2}T`07ZQ-U*Isvr*4Uzgklyohr@L0iW^cX$ zpGCVG=u|-$fPnc1*VTL2;oD@^%s61a;bq*zSt3Wr1DYVpr!~0VHb#@C{G=jCfy|7) zFkwwk)C&ZO^2GSsDTddRp%)~m*s7y&xa zoVatyqaLJm;5A`@-hU)m_^dTH2hW~eQ^7jfe0m$NPZ=1AIv(zhIYhND7$6UKw%aq6 z-G;-@Fi;qnn5bD+nchb!OtYO=WTXxBc>>2Pxbg+B<(WScRpHovN@SM;x0G$@6+ zAg{}(aBe~B-x2oCNNr&Eh9cy(!I9hTDl6@@<*S1ir?S`A=W)gnJ=?N~PR|4^P?jzB zt=*TU=nZX)BZcm<676lEE@#c9tCyjJFW^&%t{eGvf2V}3O0r2v=Ha2Ry0+zjj+Z^= z#m&wBpt3(2owYWsoBRQfhv(0n(<)};{cQ24yaMtIVJzvZQyX@It?ECTYPBA#{?_P- z@}blY-X*>eAK~jYvCrnmCryVBer0o)Jiu8Inhs^OVv~7S^;euw>3_;0yF1poMhKab z=wq|#P_9leco?n9@U={a@w=8#nr=gpQ8H!6Ga+3r_2ItPH8@Yn*2G_{kT(T=CD#vL zw(b&hc-q=V*}WVkx%TP1ulw7z!kM7{BG>9WgU)Ge)uJXAJ2D=}T{a?X&w5fuT~O$B z;?9nNRKUf1V*5L+r?<1320%IfFfU^<@2eW4J*yR2s8N%s#QS7yvj(xf!$L6@1>B{a@7~o8$ERU*C zb4wt^>tDuz$ZDH-}g^f!bCWws(q< zm!C&AX+JDv`&7j9;?r^)wz;{vKz*mH(O?=+M^_hTZQ&~mP_-_2eSK{;UH+_{9W=OL z|KsdzHCrXX3Cfm}eCnSUjQ6(qBQ;nnP!%8@cBCSQWCm8ceaOSF^IUJJRrmGF{POM; zbMf$m&Q5yU#c1)4FQmXfDA{M;WcX~TqxnufqhazHGeOj55o-Oqj^x@}9zuN>Nt29U zLjpG8zNp)D_55<6j5dWx(V=?-=RWF%j4e#y6T>O!=dk8zl0uN*R}eIY!vq0$kR~@A_^SG)ZcS-5CZQD*KJCb*GICOH^2w?;TlboWrO3k^l^`izDoKpUX# z0Bh+9P1}A+TXa9^OV^6rfQ?Mfw#UnuS`sJwfm_xl^Qxk1@F(%&-c|Q|M7d(LIR)pC3bZd?!NJ=CDIegfXe#V;+5 z$mcYD@no9(UWT0j%Zo+7IiTU7IW!bwz$t`WMYdR26drn5S~*PNi&23vJ@jUa3D+Kh5(McYRXTx!Y~q+(Dt`)91e0&Bf>Jo5kdd#jUC{}<5r7) zoAN3A=>#U<0oRV7M0vdhn~ng(Mfb@Od*>ywREf1A?)vLst-%NK5MV6$t%pI9aEr=8QV$$MYC6%GZI=dPf0-HQ^sVL%k}t2x7M|bv zLrRC;p=yEEOLYoPqJnYmn0G_}HjO$79vNFP={G#%s9}zbh)}ce!-OQFX z;V$^(lg{`rINbyN!;cLvvp7XHt7F8MMrOqHC9g#)Q-uv_utEa|wJ*z^u0!ye@)QL! zv4#l6;%~ENkOL_f++fCF!ieHo#lK|F^MKrk%zw22;4D&C8niyjt%L~fxrhv4yHV9o zxkF6_lbq;_oM4EH+JT#WaIhnAe#Sbm-gY`{bQb1ML)(S-RFj*Vx6-N;MbCXzf+$@W zbzY1|!2i(uR1EVFR5Tyze?b`1B=qbIH#N-T# zSI<{c@i$L5<^nHkiAUJ74~53qt?gx1D9`(?7HEjdGt^=Fm?8=@UyF!Rx&h#e#FcW%Vh_T}MscCmu?L6^WA{EDSj z)liIYy){)8sI zs|98@gHZ}&zgwxhz1DIY1I+HOlm338Ejg7@?R9K0uzu=+wNZp(L(6tc%^u*J2 zyqF?1ufxqIizo9jd1+o=RRuKW^gguT+`@*EgEA&#&j}ZA1(86g{#8-1KN-Snb+Evz2RGEw$D=Kn zImL}ZmnD)>*@e-{j`6O)$i3-L=*38@H-YcQd)$@PqpB;71|K0gQElH5XP=`{2cK)$ z!+Y*>d|&T9p-(3H@#zVQMn)tO5jX4}9SAD%+EW|H$J-~EV4Fv`-IB0oiuzyG5@>08 z35&tJi!65p9M25E`}Q{{VAiS#q0J8NFZ2}FbJ?5i4$HZdkyWIDn7!EJdDL9gpfu_uLbVlB*Hju}R(j@8U4m3xVrqoR%pOze+F)Je6BG$$&`yWOezP%kfApmoS#=7 zYoaSVxhKLkRJ)SBSAe9X(X}-m*T-0zIxqSa$vy<2G&&e9tMW59xo9bex zq7{X@ve}Z$+oGqrlHJ%0a@TBsamM0JvXtHQy~MoH6!>%ZEl`Q18Tn3vs&Mm<{P>BOx(W$|tr&21kqlgQLtj z>owBT>uc|}Q{i=RJR zEj)ewICcx;%gI0(3}M+bXVIElpGt-KDw-j0OsTiog3-))zJ+wnOa zFB_|IRnk#JH2}jNcKP;Iz-j!?CCX<($4n*NXD7%3?E3y>#SYF8mMv^1#15y4<;#NT zsqoGlbJ&u=2&)cRmXL6nA;I$d25VyiIu4t=2@p{_RP4@Br>}wDWf|_eAErjO`D3TL zvsO46i+88X&FLF1zJfEHO89fm8Tx|Mm3?VL6Mw9M9lO86&34(W@p!2FjB#Lf2+B&& zM;};!W18euO$HGYH1;}gQhk3F6RXTDc^b{ zXf!+EnY@_j=&G$dYdg;1@Dl&)u9-C0Tw(F3700F~vKMdIpf68Z+4$zHkD8Si#jmT& zl!!>^P+DJoQBw0QkIDK($zoODO8nCn3b0hDZ9R>Jl~q)_Xw!*ZUE8JQ;f(fBR6jk} zMiiBi(HysD<5%^+E}vms?rkzRmxJB=4i!G*tS`M91ESMiD~--KSQmlH?w>2}ARhxn zyecm2VG6a)H}}!iq%S0GFD3b<7OLy+f>mHG-pZRP*CHR|@)px@iTV!YqW+lmV zx$5X(JUO<{jIp#hIqHdhkUVS?R{0PwBd4$ioVn4~Qu8OX9~@S8`WDc~i_%!TN-9Re zA%^ANQ=()KP^(5gF}!X}Y7rJfKcM+My=ai@k&!brczE>G<5L0-IdomCJBDmvTKR1p z@g-xC#q}K?Te~DI;9(Ty|^W|vQm-eeX_&CJ7 zrgJH+dvhP&+1Q}88iY+P-lV)NW82Yyx_o`#SQC&F2pcJ8kG0Q5U3C$dY4ju~=H1Wx zUX(;umntt{=9K3J%P(zUU@0~=fV`2y!bI(r>o0cS=)BJ0aY36J6wU^&&%u%NyUj;8 z#|0ywV`#zE2}`p5VkTF3WVGQx;p@iJg@P;X{#HKFDm1$W7jHE@+TQhsNL6j(c*&J4 zSLu+9hQ2c)HLfqSMo%hRPo(ECZqU!?T6xv=fOUNn;vEsuN2Jy0(|rABmjeS0IpB5+ z|G@zGk=vc_OZ$sd32ImnGt2KaDRi>;lIePKK&5@z8x8g7%jr( z1@0dShg@FUHs~^3#Oz`DpH+|T=NlSmE~^|YGqeXUX*Z&>K^TGGq}MZ1B~|4)|74mM zAOE%GdNall{7urXIvrNlbkR8CU#U{Djm$>IbNnQ*;=#3bQ_068;~x_21lu89(@CV; zu*~?3u+f|F)qvBXHSiU+XDm2SNPL3zi3p|j%UcO!JYv4XmDJ>oO1n`;9aegE9pUiZ zGSTeDxq-qzgdwl>6a}-Hb%!r9X)#FWLVdhFI9JDdYjqWYqns&sr%!s}?YP`r!B}m@ zX1cW``YDf=%lsA%L9Jw=?O=tI*LGeac1|9Ce!BJnS2Afm{n}cWx;^BKmY0`g=|J^M z|Dn&l_}@9j0_q)m3Y@%|RgLo9z~w3QHk=pB%!(P4XDB%Lm)|DvT8h#NbxxIc@Xi6Z6-k~NF%VBb2@ zG@h8X{$%oFtVSLC=6t(Vw?=o!_u(Y_tLon>pCtBI3)-#H*(LeEa>Ca--1-I+FbkUW%FHQ>%>AL3l%Sj>vk%70UiWT`uOIyL>Cg+S0tEJHaoEP#0-ZVe<%eT zMZ&Av0uRAtorjy(T}D9`{;HO{nPzl#q^wGap&_*WljAi?u|4)4FV-9`rgH{r_jD+9 z#=PgdNZp$53(p$`Tsio3JrP-x6Ur8N67(L|G3!*}W)CYF841(E7=K&WUiO2ohGE9T z3l8^pdqO%cqd}7u$GTp0R;s!mlw>tufcnkObqCJX6GzPoC(^o^ZRJ%htw!OC0(^$O z)WI*`MdbxO`Q7VMF^Jyxq#B1D4K>Ks3y1vgO)A6RWY5WZze0PtVAC550+ec#*9}?g z;`}l;)h6-5Y*vR40%@3WWBba~R>b`kcByo-_H={inIUT+AY7w4nbjuevN^+{1CKMb zeJviH-fsD?J@TX1;LxDsm#&3FAQAoRkKlN=m@ON$7TxjR|4j|Nj%Kw3wSJv33RYy)`BZ_bwq!v=GrIMIde zpS?Pc>+Zm8OGW>-PRC4lRsJv~0{|BAh6v2se;Dcom4pDKmUeVR4}Y?3;0bB}g{G6RX!{Qzpe^W?i?M=3GsdBu zRfS4x{Lbf~v<*VqA0awrrk^%^M0v+=?B)w>jE;9_9l$4&0XaC}J;Dt*--71zUc2Ew zne{G9HVQWS-2SO5k+P}bhzadlgT7RL5;{H|k!ZqX#h8-f!MsZ8lcPJnrSqGkn@2Qs zT}U_>$UjSVZcxzv=l4F5d4z?@R2i^8uREH3$!!aJ)KXpk1QjBr!(ZM05WZ&|DpwV% z#nm+Xt_I4hk*VWYZJquSqEL8B&h`rowS0I?}))`mjiT6T#3MWQry~Gf?wmcg-QUYo@DYtMXQ(m;e?9Zx1zq?!v%OH;)ioo zJs)FASYHtuvIOXW1X>Y0J1YQU;oXHQ$3virn^t2-M{N%FZn4jjzCws~C|iAl&e;}E&_)+ggsTlD!QRbEy^L$v z|7E`fG7j*Xke>;>6(C{7jdzSSj{$cVd_9wwPqSjjj~2|_s7DUsvA+|1ped*ffICJ; zI-px7cmkuv?D)VICzX1Bwy-fgBMkJj6FACjc(*-69XXfb1h~j0>-f zUW~Aqm&~Hfg|quxOwisVa#jp@3BBMt8oG{UCw?@|mkNU{&ktF;fypcPMFdCEt;q)- z7-0m4gqVV8RGNYykLlR{_wx-iz{&Z6ml^T~1cTsL3V!!WNO?R3q=8*s2KX)D3r5Ra zl|X>mUo8^!2J~J%!-ObJoLfOPaTE8mz7i;9>$!te$I`JI1MAPv-q!Q*&=|zT9v3}S z0QZKP<5n>55T{M+>ck9h9$L&$At2w9X{8kd!NS_}NsY?%{Mi-2MG8Ct+C%x%qm%Ce ztp>@e_E_p(5W|kym!`&p9D~$=fopf^e%8~IYp5{AXG4xP&TY?65-N173t9AS|tMx z!_5EspPu79_~JfVK^Mq5Z1>%LT2AB2h6qS-I0zQ6{bD+ym5Uz-s@wq~+krFe<=tVwIDI7)q*^hds5b=@-Tp+Y{ciCelTn zg$8V)qKyA;|FM86Ap#%&z1G2{kWe{H^3FxA_TdVkqnUc$b?1L+PDNG5Wx%TC{h$R+ zzT1BAVYaneF*A{H+hSS}OBPkQrgAJy9?tE264$PFhYdL9{;{nOj~2tB!Ko5FfHONM z0+rV3GqyfGp6JO)%be@~y-zBKoqxcSjLw{1Zr#lKfrn)6R2}AY(u-bZ+lM=Y)>B?o z({DAyDtrn^AI`Y|N?xNefbu4)I+J?%|C?m!`6)~J3al1%;H7N0b85WqVh6o5t3@|P zeht(&iP4eOmKeAce zy>0PxhdJz%7GRrw(@uKZ<6^K~#`Yg0_n+_ErV--dGBp+ZcbZ$v2JV(i4d=z)pXYcl z%;JcvNw0VKH}CJ>B)xS?cK*jO&aZv?@r>B<%dh`6ckB*_gZ;B8JH5L38%Jo3i@m*7 z|H2}qG4kntCd#1s6rYF#Khik&?>9ar@4qz+!6!Y$B$WA{3;LWdULN<8`vxD1co8GP zUU>cLj*Yf=JS0`;aL{<@sRrP#*<(t+D~3^Us~NC5L!^BAFaMOf8nP~WEJ!}9BADk`e=yFjizpjX+v+I4l+FD5sP@iT8XcrkVP8au1*ttg-^gng7koK8p@Q8 zKq8kk{xay}pF$U6?f|f?ypSt1Fn7blKCzhTE{I=JgwAydbwU5f=GO;gIbQ-ODld&+v)y&eJw82R35TSt&UKWNt^zrtJk z3H)9(x$<#WU4VCPKP30{FD^@YGfbwrcG+WkT{H-fNq5Z@+qp3Tj}m_=rla`kQyh2# znCklCv5oRBdyLCU4{p&yHuXV!dro6239pI^mu;1r73HJS+2-AzXc962`qp?eYpmx6 zPQm$Xa6d(N2(xb}EG%06BR~!kj6FQ+nbIz%jIN75kCRMBiz$*(4>LQ(9=Jl4#GnY` zYNm|(&Fh?CU(VEdk~?nrv<)!je_5nX5b1nzyQr_fF}Yg+NChd2caPA;^g5@N17#Ex zzN`CS$t9KMDwPS_G~L75A+MVm6p(MoT?MsJ|0N6*2|;Qnj(P>?z52^BAYz|^3_x?o z?TQ#y*#m7`;e}NW3L*DHFD&;H7Z}=G*yZ0KviW3RPAh?~Uy?CQ1>79{Wf5M1bi-NpszKECG5Mx5CI=$H}e*cKy9X7WE``CGZv-A5h@wiL=vgW$me+Un`slU>U-0hkv+h z+)}|5-=H^?05ixcDlV;nu2CZuqhKgSy;>Pq24i37(W>g+k3+wQ28vRmaDPkCtN zoV1+_H&2Tq6!=oM=t|1gcq3{#X}f9Zs*A_KMTSq@Ud3R{z*1&<;3-!JQVCsAj4N$F zS7j6<%-T0H;anuJ2YMd+NWYqmp2Ep~pE-7r?{GiO>;$*Y+?Bx*2J#H>E#mkA{c_O} zb0+mCnEW2r7N7&Sr@S`vgWqW_Ic7~dx;tv!ma;6v!o!zADyy<4FW@UYpjJD+Z(G-~ z@1;RG8#L<}xsM`L?WkBMPUTtk0>*fyQ+=_Z`qwi*;<7rws=qWF%{5C5DX`lhPm~mo3Md(LxW%gaTJ=cq$d}3S5`-O51VivWhM!4UzqB z2kWjgweI)`A}5@(N^+)v|hxfTl(Vf z9Nv7oZ*KB52xbOR;6TwI?PIr#MU9lytal(hdC8*L4*m(aJ{1t7#KmO|xNk<$F)(B` zdwV=OI;OXD^SOWlHX7lO^)||ciTAge?NxptNWjKrB@Fvm5MUXorg$30Dz3BkWF(Gm}(%Z zS3!5;LmpEy@bM*^F5HB>ZO$tlU*CZ+kjwexb9@3W;Ko`jtVC}rJtqP_yLe{!51odVH?R0sQgzoFGH{tQ;{+f|Pt zwmL%DsZzI;33v9pW~xd5=tGT#GG=2)XBS}~fXPzSla;k!`&6Jj!WH?lEOx%r1ca`# zfN4@PBvTAUf{3*M2f0)vH*9#={0zg zzf8{St(otgtp9H2rKO<&A}J8{!c=_mwh;FK-0>b$E!*7mzgmD&qmJ@>jIHEhz@i*2 zc~@?!ru55|d5c?H8|Q_30=$d z3>;*kt1Wb|Vfy_6Su@IfI3UvIu#yo&xnNq#ctTxwI@wPsV1@ADZYWCoBQfscO_B*v zjQ%VsGF~f31m2aFOXRWN?5vc})hXn6Lv0lB=Pn*r0BBv`f&vYP<=}BaFEHcBxh}SS zd8uFj9+!}i5KtLFq&5#EK28LDMpxxMUgP-+CTCm99i5$|4hkO%vbt;S&B)p{0V3`B zDFvdOwJ>fT)pXta!BN>8H#6@+?1HJf(U&PT`!eDS>=;(#{x6;`omP_^#KYquz&aHf z19Tfj&PM{RzTQnJt908IR4aq_&Fj|(h*QYOn!i8*L3wUQK8NI&(aR8q@eT zS&e4DauI^$Az&)Fd28P5DYws_3jvg20$^S?>!SD@FOq+_RS!Vynk=uVf?LZ7J%sq1 z#wNp)U8e0W3vQmz^qVZ{l1wVsD$l{xgZ)YG!NdIn@ox z_6!9F{VRaNAS1bM87_?Ovw6scH}9*`bdv4~@#?PsdzPXU;u z%Fp6Tg9u*>{xDH>YZ3+A3pJn80W0ff(r(*kos)ZQ6bvMxUjo=ny9j!Y?*YaJZnif~ z?DwO70ZiVatI84`O$NsZ9Jvv8g7R6}cMHdN zfpFDPC<_;Lpd)>Dd%$CIDKYymma-v+UluFrZEBcqHFGH-|ODpn|x89k)2>ipf|N7%_xwE_hW z1uqa}X9X6PGUwEP4>Dl4YgAN4_Pbis!5x39bjBHz+P*D1Du)yI;cNRc6{WysE%|1j z-0@3MLcqu#{BTcyK60}8W6SlQuGGUPt9sK~&nmwztpBErY_bfSlEFZv&`FUw4i;{j~m-SlQ;WGUPDh3fO# zq#^zwR7H2Ze*cmCi#Ub2vjWSo$mOFDLw4h?#7`!sMg(Bcj?F>_5QMy9gRe3MPKQX6 zV8wEcwPe`&33*LfS&qzA3nF)8H;&is+kf%|e2gUOytSq8g9;M+{`)ln;2{LO|NhM) zBkTg%VjzBs{hSSi$jy@~7y8Je+1c@9)Sl4*H>^d1q8(1dwwbu@7cUY&esmf(3k?YH z8p`${Q%p_(KBfodedz7%pDiplj_L0MrgqnNQq?)kS0ooaV3~z?NUanPw^Ip! zr}*p^zB<+!%w7whpK&3qt*@V4`rbySrD^47iY1!k%de9^xW$L#b&uytlf~XGKY(Jf zp59(iB+2F2mB`J*D;2N}W@?h=4iWU4^{YGe*F}I+Klw`E+(TnMKoK!H-VQ0ooq;%0{qeZQg=HfE-8xz(>US z=3f#r@vh$~DjrnVfnF{OgM;9f->ay!g)O)Dg8QhpR{N#%7MKPuu7sqdmt*7Of_o5~ zd5<)r^qwA>Zt|mqq^y^+C$Csoa*K+HfI70t49MM=@4(cvwhEK%(Xp`r69AHv9Hy*r5Zg5dt_SSm$ z7ljAdXW2gW+$UFQmZqHUCp3EQ>#D4cc0^52(HU4+XsNjpS`bBgG20EsI-X#Vi$+yc za2gpIv2T5U^WECmAjq?(yY|>as5;MHFw+WJotZYP1+-Z6?~GTs7so*7=e3XD;Cc$G z#Kgq>;0a1MQq~o+Ax1s}U+goN*T;nj?v~k3(2D=V)KP#n)wQRn_#t6{G^l`-fP{2d zpoAdZU6KPvj{ydvq;!XLgTUw#6eK4(VK5{|4;Z84zf;lwKFH&v=brPP_q-kFX1rP< z?xwdn;eJmLR&FPR^bNdj_O_378)24*jwJ zNms_)<7YHZN1_JgwVb58-!OtJjpDA~R znHll(v#gMa$dlD&+5GfrUU0!h^;QJ~;{Q84SfZG3nFDSWyR}Yl5 zN##3j&cS+xhK5btw1kba=xfccI(K9zFIX}NYT93pFgKra=~$k>cSVfz{1MaHGl=&_ zZ@)QX!1*0m2hm?j$tE%IsJ2L=B&lYg!r9DxS3k_Fq^*C&#%gCxim?g|ba=R|5xz*Fz^A%Dt&cM*nmpV84r^?D_e`bbD=hW4`t*a9kw*T=|%|!snHQ6s(+fRPNc{XI- za;bB!DVvU3kD+EB6aw-Ah7~ez7{jIa7t}jk??Ros|j_O0g|kSJ9%Fz5lkL+T`+BFa#FreWk$VCE4=8Zuar z_kC&rkxd?FW`--p=X8axt_`ZRWJNQ*srN?h{1DLzcJKdgxhM#}Q|W1043g--bmhu> zGyR)-lK0LLF+#h8k{#*n+y^zF_S9W-TbCW}JUq{Yo80yMfi$VRItixvR249)15v^O zx!;|#3FmVHn=f=KcH`&ypFvLU9Xx^}u{*|2O2m|60eQqgYYbI)IVouHZo1*i?JDEW z5O=BX6o;~_dA`neWPK97>rE*WvUdQ!=?D%*p!_WtCylR&)t)=c^y*9u7)Y-GPsCa# zp~WW2ovn@Z9alG6SM1a4^N3aVNr^2ba0>T})iiY~AwYCV%X~BeHCI14IS%?J&qBF1 zg%fsZ0h0rB6P}L8gy4wTThpYlZL$~#`W5$44A7B6yyo*Rc#RlZr7ti_@HRL`cVW+V zVI&#B-`-P`?7!F;GAk7LQ<&f?_{(2Th|g)8ayp}W#u-(Wc^0@pydTllKNslg{t>N} zL-27heOQMtNVPx*eRgloTbltE*GRo>fQbUmvU~sefS3!NOX|XTpu;VP=P7#ZK=SGi zaG4*3*eaXZjmBUU48WTP2x99DeXWZgO1G4?SKb>%zVmtTLksA;r)@5kPr&@z)Ge2B zLM`Y->urX+9e2yfh%)irRStK$)k(?2ly1S&;+U_o7y$^o( z?Mj6Mz5S(bk}IU%|LscYe7v#b^(PP05d~=f0iKnSQX;+ttjc|C(K%@ROWv2j#*%~V zQMY~q90k40$g4C6#Q#k4)T7@qu%Ox<$x`({`j5%|4n=*#$o+~$IaXIZQb-6rQ^nXP z4sLD?j$ECBiJ#~KXQlj1izD6l%kNDPq_jGr;^V1eGODr-uG{@!{ z?mnCS2vhMgwTe&I)WYn2%*LidMU;x7fuB2f!w_@s5;xCt-y>!S)P6n^rqZg=eI{_Z zrih@(TyqI&#K#88fu^Xprf{p*uP6B9C+IjtK=zkVRe;YqbNS3xl|2M#|Fp<>RNqG9 zzbM)+_>1NVWFHj~6ED}@Q#vDY;8Ij$L5gbq1SQ%im3j*uCT38!3SdkN!E_O?KTCce z^Wkc$Io4`=a@Vg$2FlLGd9EeweePU&=})O0@uDnOQhEkUiFZ&SfO{vA%-uEk0g6!( z=-rx1@xJD+a9h|!SmRp#Pu=PHL)x}UmvwxtxsB(p{3{sZ#^R@X=TgHTrXhYk0iGo_ zY0n>AsWLV5UV5*4NVidX%#>N%)V2%UH@4p6`OXA8^&^L95cLMSsQ;z;usNPgGs2lC z4jpXWj-=S5tJCgbS==}Pnsy}i^b)~G|CP8gM;#tWP>30ue0xmCbSN0sWv1rmM62_$ zgqZ$9FA_$L9nyE=OH&*$W)2If7Vv(4&`m+^CF#F)09bD6+i_TP_ADkBpQZ4UmQNly z(_SE~mCN^wLu-oy-j6NRUxP@r-5vntGW$6`-?CW^8B? z|8^U-O~a1I?(Loy88ec#7_57p^yH6Vn}lP_Wc|2n40m(da6sR%P16)K-i<2j(EfT@ z(8LtG5iDe$o;llcpV70#EB=k&2?)e36`q3v`Y0W4&H0tIjd~l=+)gcI`XY#17Mk4U zkXMley%Fr5;GTEeSfU;B!`Kw{oHd(-)(u{9H@FqLb9AL5|ANHN)lJwtCsCUQO!dz& ziG_oaI8v?b;xTW_m2Ji5c%VV zjJNsQ((jNy2vB_9!ti5Q^E=hGZi8#*U&GR&YB-|%xJ_q7`=*vhqnGM@I;%4zQP zTs9C4gTu{BwWB@6jZPl+jg19DBKZYU*)c^KchxBS`ltT`{dx++7}0rM>PC0Kv!-*t zn|z@rdIfNG#L*$nCBZl5WJ$9kwGB^J;IrfxC-O-jCbMgyI9D#R`C;F86XDVst$=_% zbASmH4?vCsm9q1ius&H=QWYabniOG^Ct0(5Tq(zI+c$o$&#;W=|l?(F0CS_@I=V7 z6VZ6PC5>XI2AFKFIS)moZN*TiO}?#2Dxb}o?$U2u>%d-hNbB+r=5As6Rz)94x*hRZ zv=$VE`)#jaME5Cc$Nkkrjudhx^z~ywuMD8j-}5QH%B2q!aO!( z3umdeIf~M>BO6-dv&M?H6YPCMSv#X|qt+mc$+stW`2lw3i=3&1pzp;bhHvlexBZdHD=zTjksW zs1CT|I~fw%yeQo9(}8NvYAqc)AF`Ez5pwo4GPcfq+U}{qdQE{fDtJu#H!8QEO?~Wm z8hLf+=+n#*I+antyxsz7AK6>F>J#=vro=rADv{O}O|t1R&Mi^-z}*Sv(8yn5G4{N)-6J}?)x>99Qdl_r!@*lctK@GlmSRpyTOTp! z9+x(1qZhWrkQJ|&Es2rcllTt}t*K#lS9j0`(2_tVmbgWA*YC#PltQbu3Pt3FN0?C? z$2$03bt(q0$N}VGmU%pbqnN6C>2A7ObFBxxqefP)YS=@D)*u?Ucc>?DG|Ll>@n|mA4h*7PnsAc zWO_l|e=Q`ei$<^l>y3dkS|uP1Mg?$^j>C>2$?(tvJ#%*v#v-C$STkuh4IEL7?DdFwZ+of)tu~~7fHG1jfS$j4O>cgp}$8!lQ^b2=T(ydtlh zk>!pfwF`Ks2_YtF#tei3{W;Bm&s&mQziDiR_$sG-WP*7~)qjO>WXhp#-8J3?1~@Xt z;1-*G(-;`)ti|J_-LcH* zR4CoA)o8b`jEmYV$jGY}DfZ^8Yj4WMc__$WrZN9JIhO^vH*!9n1GtXKi!3`p?uA0hVO za)PZ+QoqHJo~&a?e!x#Ws>{i_eZke(3xM@Dcc_^j5g#F zT)rCD^R%z?T#Rm?YNC+{N=(g0J~BTxhdUFa!#qh{$|G~6L}hef!-j1zB1#ieJnkcA zm3N=8de*cinCRJoj5!&rk7?TPaH$1k@L}!PIFOD|za3wH74>FV4{g29clRQB|bu_qX+}&f*t5kh%c5rBiIZbV|>LeL*5~(4!=Ngl`qi0!i z_!3|~S2Ug%Rk|df+o_>Ix7$+~U2~!mdT`a_CIeT9~R!g*K; z<|s~TOrsS(8pAEQ<=kbkUA!$q3IdUP5(JfLWT*2r*@)nbyvD%&J5!zv?g-Mx6v&`p zUrJO3ylZ1lHp%#Cq+Bjb$O?|$r)L%Y0N$g z6E2}GPB}{KUw;r;vAMnSAw+fYJUC)@=mftb+zOH3lw;C5F2s&3$QTz-(}FekJ!G^u z*sy?H=vO%2^Wc&>vgFAnrx4SN)bQ#GreyL>zUncN_XSq{?VP4;1&kswHK`g}uVfmo z!P89+&g&)dSS>C5I*AyaFNsUrG?OJ}&hN>dwD*#Zq;!y0_!`%wpCic@*G15fN|TH1 zv*koVd?;n=wEOR(BfeEQrBXHnqRN;g@g|sOZ{FXoc@2-Bo!i<3slZ7uC^X;{-n`&`g}P{Qr+6!rqM}k7)qv%-LM_hVOhrOX(-3_n< zVzS}ldg$GE4HKx@fm*$H#)YWr~|0`(8HoeAOw%O!| zqg0~ovjEqf!wmb>ET!8}Ns2GLD@= zL{~HkBci|Pa43#z%(F%y4yJxwLX0t_0Ew;>IQ%V?H6)q8Por=U5>Mx6?Z8D2E};~` zcWuO8U+d)=ozcbM-YoQqc{P>ZBZ8I3G_=ck+~IH~{)O+BCcZt)NwkPq!P2#3J)k!? zPg7eYUlPw2nf83YF4#)y$#mcHTqsrpUt`@#?(jjRs$xb=O~l}q?8mD+lU#ln7)hA8 zZhw2**u#x3PDEVy7B_5F3*g|*YXZaN235vYeou`|i!2)ztu1kOS!G=6#T+|01UK-< zW87{|o^NRO?M`)4K2!HoHfNSo`AV?V5@L z0sOLoOzM|9Gt1`qr!tw@<5tzDV++TOE>+qI7aVF^chY<5Bycy&EW6P|l`(W+ns1Ir zOAUbKLwp;2%m(_N04c$fr9A^KQQVPWw_DxXs4;{dx($v6yqQYHa6d0+KR7*yHlv%-fcWUP!R$M^vU0mscEg+~JYHYPPBaVsOEKUMRF z$l|^cbj9J3OQ)-OqhgMR&mweI0H!c;NS`n;o6$r85T!oAL_vI>6$HE1c{r$>EN^{G zrPC7EWweP6wp8`i*N4@$M zTx^znht;yHaB8Le^esQb^!5I5)r~C?h2t$dzy1e-1?x-Uz}=F32UaL^#oT6jUXgTw z7kP{J4-@#bUB7?qGT0*`=(CE9vyAt(U9z*-y%bol@@URGw)?PA`wczXki&aPNn*WY zYxxBtTgwX6KBb#|dW;wQP2#?{q5W}GOzz2CDn2h?@vw7v?J!#qk8nzEZm2!i1mv%6 zk4*JZTcY<@;<<7!ulj0Efaeq<1>%mF2|}VP$~aFdtwE!+-Z6TWUc+-pJ`&#Lw^+RC z4z@E8g!HOVI*L7*Yd(|+g>A+ujC(ak_YGS)9{h(tIXIXF*B5@0-pNF8NN&-@s2u5^ z2m0G)8Ij1bcILfv0ZHMJCj|Qt-9ddMwZ1Kx0T`qDQQ)J<+vo$o=o;JwuK+2Ms$`D( zZIkR$R6!446IutH(>{DM=ka3N5Mw*-V63{iMn4xSm9btnL*?LEsU~ugv(adyd~2 zvCubb<*RX2^U+$n9@y4k(XN_Hboz0&W1ZPPgQ?~oU-P50pwNsMKIB<@6Y zE^CmI0jD7^hhB34FfP_*uwj_6In;m{PGZp9?4!2`nsL|x7Jm4M+54kHZllrX2$koR zQ~iJ|qf(o894w%Hl-GYO8QU-;PIfeSNkjaIj3mrABLhy{J=ypS5bilWrOoj?wkVVLZ$nlDcvN#tlb@q-Iu&y?LtI9EOWRJgKm%9dq1QACRl_m zSCzuhrL9b3WREss#;Mh1oypE;zNpPsF%*VWY~Fqn=b9?ZFSmI$vcln|b2r^gFYLqz z^8)5SdjN0!;5ecP$9He&#bA(W<~3zFk9uF@LHvnT%ge9X7H17Dc^>a%d3sq8Yx zNB5e$3x<~u!OpTo5G*e^7BDn}M;7w>E~5QhDF?hBrE1x+}y zJm~VkQ=;H+#-3I5LdQ!cUdUNWoQ?sNkzV|M#+8TnKDh7#_Jfl|FX5UD@)=P@xO!rkf8wQ!_cPy^k zquBm>G@glyFFvH<1j_j33J^Bh2L|om;q|(6EU_Zd3iW8+ueS$ zB<*O$$I!2h4ALYFx9px0KUmpWx|X(^wbp#{GR#gGj4nbpZu`B!-Auw`^udF*7}%qk znVHBeAL-I&KYXFSA zt0~-$63330F27filx=R>6e)=A-j72ZR}3shOCknsa-~$NCw&9^ntwh#nw~c1DA$@i z-WI|4c{DY`4oxPaQnwx-?LImANS(6rkc^zv-2k|kP5fw$ zB7K?y3DNv=X(vd;QdU%II@SjRtvlLA;U};@icjoE2XNRcAW@l{^cvdU^ew)j0PzOT zCt9V6bd2{pAZI}1N$iqoZob~vmXifWi$+Qr)$YRe%`e60|8{!(zgEPQ8{C2qpk9bt z;H;#k{tHLG50}wpVS#huAK&_Tmo%o+f>mDI5C$))ov)6}Vm@Bz5I;G*v=zmC@*HUd zO(|*GPmIN-IJIu;11alnv0O#oy=>ndR3SbY zBdH%}=w7QVh1Zb6l%^F*tktLkC{&QbdLf3@Q}-z++;%3qw^Be(Eebgnxg^|;mrR=F z06vxte!VGIf%m4Wdyh$jrfN|1&s<-DyeHae-{0kb7EZsUviuVcTf!=;zxm_S_1JqU z@Fo~7ItWqbkQ8VXc<&|fsT&)ov2rF`&rXtw92zwr<72$%xKFB9n^2DRhStd&S5y2x z2P78GO$nxLkQyEaE7E#O+t4j0b-OZ`i}cZi>)0C9Aw4r&@f{4s z2W$1} zD7X@O?zndUra2u}ea>#NdW6PD?AX1G9lxKiy@7k_vg}HZL#2=MRhGU#qDaB<_lZsT zbn`Ik7sPd2PCyV+I3tg?w`60r5bN$wfz0TfUSj4ucE!@$pTd`)fqh<=G%YC@HsBu` zdQOd0*?NE$&d2p}a48pU3Hu+>odKkyq*FJz@l&T-$0Q?sX(N^haslHW>$TX6N#ZQ8 zVk#f3WBdi3Nv#+?C)f2^f!aN4z9U;aqPX{q*=1C*KFE6b;?LJ` zd~g$0lgP5ywfApQk1KPRnva*qWU;Fy^=l)lPnbqsR=%->4^4PXW?oYk zH8Q1HAePzv2-His9;|vS9OC%CcN_c8XOt3yQflmtR85uo+?R+hrE3EaZ#|Zzn229g z*bJz22uH$uq|&5qy6NNr!O{5RkG#LmL4#t8>#e2|-x@11tan|7BNrR7Ueyuu4!R`{Pp6z-DN;wd8%=wmGhw9mUf zDQrW@c2xJA>!EXpd?Y~tHEw0|0eQO*tcweo;UfeFGxY4&3JnQ)@#2LJy$BPl{HCNz zxK~d<9V4UR3UKAUxJ&Js^XBzh1c}1;X@DM7wol6Kv%_qgp|_>(OCJM(}d>? z^HzVjuTo?*0)s!^Y19Uyp(r@)fSeJ!!oPn=-INE#)~hVK>O}&|q(LP!6B@k^V}xy~ za$Q&4udgu54rKDKnQ@!kY1*;%eDQSARRQePowT*yhT8fBkuDK5-d2N6U&AZ_pMK23 zA)4>!N-rnWtqd41#mXGXv!`vHgH7R#htiI>*yRUynoo$14y|SS!F~r44(JA5dJ%^q zUF$~g(I#yWxg>8yw4x>D%FX-4vGf45$l8?fdcZ%!&zE8l^N z9RbWCZt~<<&QgHZ5QmzSk9>9G1MATWMh0oZSVu<(yKC>gW{2^rk)?3I23^0ynO+CG z6iD4nn1ovgqlY^T28xf{Ab8KUg-1IS{%CU`cK+2a(WA*fJM#K-F=@s7Ow4%6(m9_$ zr02_9R8R-4AOBewgC+qnIN6`1x4Ouin%V;rgyAwlg7oSwi(wAuFQbHdMZnTb+9CQF zizG~1$AenPAnto{O3B?co_G)Ck+JsL-*c9EXt+zJbD;R*luEa>KtEedB}YG#71-BX zkDL_(HOl&vn|unN`#|ST0;*CW2pbv35WipPLq)P+^T$ zV2gQr_vIh50GG!^7DzAyj{ge)JP#^N!GvUrqr zuQLWs4q9mri2$-ez$)Ba&x*Gk{fS5b4q$uV=3oxQr$XIVH(Z=#9;jfeLJ|d zy#Ziy5-3=8!6%Kk<}JP8rYKv-JEFjG)+;%k&!Y-G!bz zJn*$*&^8xfg&RU1h^e0xY)^`QD*?RL_i*dC<9+h&m6guM-|w+?($JbyzCCm8`)@m6 z>qA9EkjIg#X`PC@(}V(;7_?2#o1|T16-D^hDm|mcRS+>NFl(?0J#dK!?7A0&6H@wF z2da0ft~hWW(kl^;uv}i&?^A7l8}aznA6ui`9-fh3@2D1S%py_do?T4@DopL(=GLp$ z{d(Z2sY7E-nDq`}RsqIH5x7$+LJ~VvHQ}!6j5bI?GxQ*_(HpzN=YL_YjPG60d8)PD z*R6+oqo48Ijf@~2xB+kJi=#}92CVS;ObKmoiIy{=lq4+~tdiz*ID{reW44@SZGN>4 zIA6%v#2@h4FQLPvcHY#ExQX!sY^LdpnXy}NT_6|Zh8EH z&T=lf3$>XYCgW(y(gKS@@o3&w`;%_tdU+#LB`e#9 zIeL1FjAvWQfds#S4_5LTnHR^f-Ty5=f!AB4g8)K^6vbrK zWP3|7g!_FGwVSgq=9&;k4$Q+i)fSZkuX+%``t_LD5KiqqM46Yo-TKluC}pw)W|mc# zoon=OtmHd{kYk%qR;Q7J)3<*cl9{GmsIs~4%|~lKl*GYwIuq!{69883*)B_it8w>_G9|oKk$#r3Tr($#}e;KT|cN)X#nJ zQk?7RZom9w9KTUR8e7V>zpK0;__-w-g~Q&RUOWS9lxFq&&LZX)_RV^Rb5elyPoD)g zg3^=ER)agPs1@IX8aSin8@XVgE`IxmT#^1(AmFC9=qe=vTu{7WZO3LKu2ia>&c}8x ztwOfGB3Sx2*AeFY{vQFI8r(4>8WO3n67M|65J~wGro5fHAjxt#PF8hj@Q+DL7)?0$ zf%uo`2L}9WiA|2jlGd_bhLBxlVert!5wPb_m3+^bww7;H~27;}|7NcBm_H)eFqq0XD=?ZeB{?XN_ZX#V_ zHX){6=(wW}1j$ZcxQ}4d@+Jal#Z}QRxH+~X9os*R-l^f5sMVwQlvkL&zD;vF5|n<4 z5Z1bjNv@x%VjR6edhG!XUA~srT4F)pjQbk;tW_#sCD(+W1YjAC zA+mBUa1vjzF8b3waz3ngCa^xt7^!SS*D+?5C&5llN!<+oyOPOuV5J4+9K01|xK_yA zaWCXRk7+P#kADN1lmBXhW^hCD@7Vi%sxQgY6%(ph`fBxt_au2xGw_rzre3*S5IcvN z1Qyo!mbD(Hc7*h|gn3b=K6VP7#2m0OJrY5vyxk54Kx10?)Q zyxQ;idVIN36D(5{6J?PS1*w{I?)~h=&>}J^qW{9k_y)U5*gC^sh`Qep#Hb|wY$8~M zt8=xd#YbEyjW!ILiX5ndSzX#muwn|$a8iZ-Jp+&xAtx-6&?oqvt&?_8m{=;+SX%!s z8VH8=@IPuiO5MX0|AT3Qpj!n)K@D2o(jJQ2qfGVdPh4yN@oc=lS+)qsB!)B2lBMu& zNXXEbuT;}&qI3t|Yav<$Oua#YqwBQYJDy-?ldV^61FJD4_aqiXM(GJ4IQgVRc z>YV=G!1H6x^c$mbo7_uQ_G!r9HMa=ileOq>hrsbW#z^v^urEC0)MEv(oEp=5h?X!3 zRlw(rzJJ^9x&6zR?&<|9ewz5gy6bI_(h}S=MUsd(EPI^Ozx}5(QURj8*YzSoKTH&v z`BQRU-bhUVom?yRcj+=30u4lUR-#j{gw$IqS4pL{12OSGj}8;ze+A7i)bZ!2x-t1N zPNwQY(7{};)|qT+{{UL}bie zcH;{XGT7b~oQ=_~;X&LPZnlW^7$w$Ob{|@Ei(<{oZ%AI1VPr&3fiN*8FmkRmQR5Y? zF1Hul>bjiZYY0-!4IOoTt&ew)p+$keog+q}fGE8j6u9EL zgKix+oB~rOLXgkNqNHj4v5gMo-r?Lf4wOUE*Rss1y0X;us@-++HPpVU>0XOcCuw`? z0%S!vQ6+l4uU@2ujdQ5x z7n)21;Y|GUTdFr7t7HT+TxtidhpA90($S|4-EUHP^xBK<>VH7+x-ekn??y)nuw{`` zE#OO2AOiwDGNp!@JGtj#^#u~Xudn;Jattgi)O5uZBtteOGc^P_5j#{GL;_- zVr=GFA3ry=mKj6aZ(Hzy=}rmNq!yTULHTy(jmoA_Ye5MlU50+)*cQ%vWP&n--aM9} z;EAcMsgB`*n15p@PLhm#t9u6~wfXH`SIk(Nv3bb;feQgGshE5XE;|cXr5FWGRZ1KC zh8qany}RE_&GIwUY>wCdGLVT)Lkt?^Km1iLf-{yoUv7DE{(i$TJc8An?twR-mr;3# z^|@GWfhq2!-n{4WYT0x`VeCG}M@KN=xI))x)y1RKc#~|#!NtQv8mcb9-}6J|P7ws^ z4g#3-)=R+$r?mh8qlQ###6XQ!r7=JiQ!+X@c1@T>gI9%TPqGCa*_ky5P0h(s;E^F3 z(S3G3$AU%wQisH$r$)icoFFz!0Zz87O|Nc@2TPnD>Ccu&fZk*a7Tm0PSQU{#pJ_zF zvvZgw*#=~tner{vR4u69sCI8~lqV)~b<$+Q?E*DQG&JtS>W%2wQJwqfgNVXxU``p( zf3Cf70~Fg%(;46HgR5zEpI=2gcj3vlcavK-`BNjJ>=-?sTNi8Ij*7&3(M<^U4@^s4 z*G28po)RmlI~b6k+Ff(}!!8>mcfX6V>vF4uCwTF`$F;1Z92)tepGd7Q#0J7kuKOY) z{j>{TlBmlDm}0h9j2M#nIw&Yl5%=OVsVnG`RS17lxacj(7c&ukdffTflSQ=K#pMgC z6OBr|N59G8_|9%$G1amAoVtE3D8m+YG^e0xO38VgU_0-XGjdisWEXOJ$}L9s0W_V5 z^eqPX;XLx6Ex&EGg95`Eo?lW}G19WlVb0^M*#|o(!5Bor}m0$wZMs4mHbO^7! z-t%=BFH`=n`AEv){o{uTN(yrdvZhb}n81L+=E4H76`4mDX9tRfT#94WD^;=-ul7t|0`Mu-#od zuowlZUWTMoOn|(@3C8O^VrZiy3VoeUoHOVl|7E(u0Jv6E)Oj&XrMu_zMGd=m(z@{j zeG&b!B#=p5G!~1z-((yWz!}56T0D8mSoaBGt%byxD0me_$1xx$G)@#B>OQ@{W zrDUWXhWPPDEkEmRATbcL$(0ZmMS5nw0&*w(zdz5FjZYwo{#M8~D5!0P9%%=4_#69Gghv(*Mrq2C)*Cs$;k<*U4Bf*oHnHK>9Oaj3(;Z(XtZ?h zCJfwa6wl?nY@qnni|=-{h;}*=aPe7k*IW?rbG4~dLp}&smTJ8(SqyR(oN?F2q_IhY?U*Tw9s;y?Cl-hupY9?3eKjG3Tql;V z8h~E(6fyP4oPa{uphpa$=E}gQcZ|n!PLBrUPo4+R5Y^hlB9lF&-%=ojFfLs>McWDUKnFIsuNP*rUJi+{Z>dJhKqXSG%oI&y+>)M&5Xsb;`Rd_fKqs87<3+s(V{hb>m{wri)=g>;SGEC%%NhXNgqH>w9HDR`o{!c1a=i{{ zj9>*!Vs-p4y2`2v@P14mYkzs zOrI}&(y-_|xb<-!u6Xf>U3h7VP?Ex(JlTJ?@OQFbehuqYW&C}Ef`G-)mIkpKV3Oh9 zJHv|;PJNsSPdSo$f!{of27eKMpS{uvC>FMbkGc2I4hqDLf9>$@rO~yc(zp%vbNoAu zVVyu*JTk|(N+iKHZPJ-32L^Qs;Xt4a9`P!@z!qLN8|40Xw8?D%5JmMg2c{=ey*v{V zy`0$FLTR0HTEgYQzW?C8OHIJIur{SMPMY0~bch-@XOu$nca}Ut)Ee+oLm+hE;PcHVYT;uMkV%8u%GviduW zVd2FT5CyP$JKI|wCxC6ZW?fta=Q{U51@Su|MHu*$;O4wan5vDkWt-k`z<4udbj$aB zeK!4<3jEPPHAc%cEeoysrM{Fx*|CjP%Z5~o;aZ!2dn+T<&|WVtZf!7vt+DFbL5*Ml zviLPp|IvuocfiF&7Uf`)M4rsb6+;kELl$M%Q*i_GpCgoCut5^Zt3!b})8$6w%WA{0 zgryde0yoV(7~@I*JVNwzXWW6miK$`(DHrLi%D*7depHr|NRph2&Se7{9%$XKkrxi+(x$c?VWZ%LGix&EBcY zPMdE~A~f>GG*2x*WrorCmIXxOtnojdPK{>p|sG6ZJ%udOU1B*{B%F^7n! z8k(}BtA7B}x&|14F0}Za9UHTZblb}uF-iq$#RVFP=^% z&>}kjphivQls5c{E&%fB7Y4?^bzXVMd>ms4-3?Il&j zI*g2LUNc`qNLczKM>$-XtPe0o0iEs*_sX)pTp%vo?^y&_UPh8}Cv|dMB;nq@b9&yQ zcL93Wk;Kdv6$gyj7K?iH!S6X6+dDDozs*^1DaT2wq+;_WH6!8hv@@7wKr4Oz>e~B(O{FlD*_E~tu?DGC`s~AR!VdkE8V$#^l z_SN~aQgvBxq_;D<316^%mMzP7bvD3X_<-HhtG9X%I2Dnz z2dNh>>|01?+TOb%c}gZGd<0<+_av>|XpqaBxHx3Z>pn2f9m}?SuPbfMrYS7{%$13K7@(p-_QVrXCL$ekSj`otvM|%`xPN^6~evu##)>xQTxnd%VibEyhYuCG#{U5Cbnc)jgCisOue^euAvo4+ zkC-D1G)KM9*Rdw#+-P+EF6PzV(}Rrbp<$WX0E7gPY)?#1RuhgISvN5vB0AC&luU1G zDhkPRsm(CUF9McUx-BFmnhv;an@2D@x~@XCVqq@iDgU%=0%ff&ucX!jWrS3L2Cv5c z$Z&cVWOO{TUO6o%KRG1BXPb{^puHwczi~uOb{VCsB1_6sV2%ITTjhMr8{Nm^M1%y^7f$U zhXB*8iTaL82r|z-EX1~>?+UGXbhjnF-PQMR1QIIS*-3zp-$jh=r_^h5Q10!W0&c?h zt3t2HEi|OzvsnHkJAC^cS5Q!qL#5e{WM->|YOR4Bv4akfkRHg-n#}@)lLEZJCA+Rw z;=&);05^=PQRA-q!fpo&Yn!ZE@b;SCiFO zPe86}`5O1ip(-=IH{m;JqGRyWgD!hT2wp!kpmppi*Lr`A%goP$=k;F!@guI1g6D$2 z7;9ALBE9pAwd7>@;7yOf8?gK{qCEd+D2)>)QI@(4CT}NbF9iJHzs6Hsfy%rI$|mE> zr&{ean4=_EoY$koC;&}Y!nf!Rm?NkA_*IYBlHnTEHe=J*SG(U~g#PQ@fy&Mi80xDy zd*))-x}26#sWjFN=Wg|X5g0-YKu3suSRbyK1K76a7E2BjhQLjr*;OXF0sm~)-=ztH z?L)5|?6T(-Trsv(GbL^gh!Vy4zq|gGJ@|Q2?g4Hrr?*L*OcRL*YWCP|6uIQtY_zNE zo;$c|R!iOOVln|y*b{9B@R8MkCh6lj;b6km4Sw^baTOUNSC{SQ9e+@ch%zATia>iQSwKi6Nh z|7XIdNrf^RL#@|9anv&ph~^(j%6Wz8@m_zD`Y()*mOJjori-pY5qKd;O9SvLNCjNVdh1Uj7$r;pQe*cmyD2h;*w^8Sq z6rX#2D)J7P%J<9l=?)vzU(|wxE~XR3ujI-cJQII`cTysN z#M54LFaBBjU*`x!aplaP6`TcwGg%lu9k{>e{YQjO2EbcN+k)%+7Pxr2YfNd{_QVrVdbs^@6kxROo0ynu&Z$SH$>em=PAPySO} z$yP5Q(7r{E+u398<#tlltz5D{MWw(2{hD~W`|PaM2!&IUycO}XH!Sn(KdN&w`32il z;7LzbLFCYR1g@;gI&F>DYvp{?f3N;6CCvhaQTdu2U7C*n{v(L#%-IFd_EjF?D-e%_ z`d8VdXg4Ifkz#_};ET?O^Fcg+350<-f&(~$uff#U3!-koC*Vn(IgXO?NPrlUknf4_|8?K*Ii91Q=gGZu@67yW?#$eKWm@aQ zZe0oeIr#bYACjf&#u<3)D-F(^gCCv>iPd{6$84O zO6is`Ez2Knb~<)B{SK`?P9~Zf=E{42d>~)k_Q1d@x9tiNm72blL zk5cs@g%bmWj=UaQImM^z$J6^!e|XRA4PT*vlLvEUzMuYjB4LSPGr<^pT=GAwo(5n- zljb-}l!Y&{FGB^<4uvj^(p8LXgz1S_Ri)M+9u5LcH%?2j_W+NjBzg`v!JUWu{YUj?t=^xE7NAK2@8sCGZrX`e96yQ^Ts&d2Egd>{!S&$3tL^!AzLF@g z7yP{}hYAM|oy5;XMD$hR6EWgM%$&h_xnp~xe$swwaqe1O{(hB^hIspbmxTP;Hk8JndVj?t>-CBb?h|KR>Uszhc{~hM^u7h}0ng8#zFG{n-B(#yHv9} z@x^N;f)p2-(mgTqKL(WW6fjPGyY!Tf8hx&}l`?{{#>?gTQ~lS!O~8)FHD-q6d&R#?Vg^FJ4C0%<-!ydV$% z^e336_&aJna=D}ftyqD7ffm`2ckjz&iZ9SDFRTpPN|;SgGE zHz|c-69Lnd_bt@VoW^^n$!gNzpTZ;%nZl>SZ3VskbaJlzDq6dsQl=6T3Bo&9XJ0q_ zA2`(KPv$)cZ;eK3(89(03sO}sDSu?HdKrd^821<|jBfl3DA!H+vm`DqK0>q{?->C( zccipJVpXaiudv%oWANY4?n?~J99sCPpaMYKB`zvCS6<8#U7e_mDl$tgZ-3q$|DRvX z>-_!ap4`=f2-0&||JURPit{aWKf)*$o%UBLvyk#Wh*@%O z=lR~HUjP5wSB0$^of4K~8)FwGtP zAJJ-7;j_Pvw?*F#_#>e}sJEKSb6opK^tx^)$)Ca>58n?Ir8gkLKoMPN`vsbXHf^wz zMA!DwEi4I($V1i?{3Kc6oiNay4NKH$cj}x^V>0N^Sz=bZiS1A0m9yRPtrum2s2K;&iqOaI0dApo~SGTuIlC>%TV zFIl3$0OV)Ha<_t;fwS*Jm~oYiN3Z@zKHULXxtL`)Vb|(9UP>0FsYJ~A{}b16;%kHd zzqqk5NYfJ(kUq?_AHC;<8{e8CLGRM0nP0!Xx*MRen8o*lI+ZUV8O7i58X`~iHPVPI_lU8~mUj z&o(v3lKBkwseF7@KP#UcbaRRJe&F>aR{EUJf)N~E{ltha%e)@?yB&75*=){olB!e& za-W&KzHuyBBsFJ}^>o0i-iJ-{xA)N!cCLOq;hWdq)LV`nn8-YDu{&^&4$I*6vBH?g z{I(@6eOlN)>^7}FBKLm!RiajXMZxu{@8(p}03pb5db6N*>8@-L zTCY>RIiX4!*+wWu=ZVBPoLquTgQ;{=arGxd_U}B_YC!XRt461%Sqp@B}S#ME~wvg>(O0p2kh&&R@KZF zN7%E0$8Rq{DLyI_lS*E;yyFsdSzoE+=2t9_hmCkWI3b42SLCQbHRMBkt!!NnBXMro!bS4^zJ?E;baY@Uq2P|~Crr+X=ez*d$hOWPj@RR`C6 z^gCt-bC$F;x@W|+qCd@;-cd=dVbp>t^Y{G26OJAS+giQLlg+7o!8Y^Cntd~nV9?Pz z0|?9+ft!C`u`RfD4;Ck4mt&TJ8}=`~aI?|C;CXk-Hp5!_HazGxHuRjRclU-!L6T_O z$8424_}*FNPpz!X>*Z{N)fnzSnf=A@d5V|Vj0)D=Oo&s=@6*NiEoZ*@g$W^(wu8Nj zmqJGa(x27DS9mr1?r&*Hz$E0&nun!E-y1cP%kv@EXlQ`Y)V{kpZIn;sR2)1EUm!l# z9;L8cQ4p`-JPO2~b_3!dO;7U%U4vWjCqCr$M(SR)o;W^y;=X!IQ`k}aOLJoI->KKg z!?!1@Uf^rKPAmIVxkptQ7pTXU-Hx+Ep2+9{p!xFRh~3cMW>YT=L-4j(8gemDSzqM#v6ziU+!wzoCal8Z5)-2It@R6vSQfw?ZgSc3G3X!r5DEy zRURk4=k!kaKJU>tG9J;>DcEZ+zkb0}jPl2v#h^M|spiYw$ynO^abPFWvO?e6Gl>1u zze-O9YAkz1jBvPtCjFVVI6GaD1mKv(}Fi->+HB%H#ru{J2!IC^C@VKd4jd{O70A zN`G_d{ltU1X|wkHo7QXc>n91JkFO)O)6>!Rj!O4{odndZ6=yWs`klg`=@0?!8`9qI zKPW_-6E2XOvhA+8X|toFn?G>vhtAU~296WV*nm0gzQmAAI6iJm!cF|i9ABEV@t8)h zjhp)kiV?#)T(vLVDO3=)R^$e7=}~E>49r!0P0~LxB{i+vd6}Qp3(0R{1zuTbvkUtR zow;jawkpDMS99{ezjL|>HG=>4@q?b@WbBf~eZ$;>vcsWaMYria8Pn$0{@O`l%Qw}9 z-;a$wdy$vWmmfPyeB<;0yRv-Gki!#5p@K2WV;CWe(Tgc7Sy6@U$o%gxWv7XKHU5+P z8ciPT{pV~|gYS^Wis8VE7Z&95oes!8GaJd{DL4xijg}~4_W@6u9btRA+T{pytJHIj z@NDT)USn@*Q*UV=Ic1SHeXMr+HAXSt!Jgd@uWK?ab+I}oZ}x~69eY^*#tAs%7TQe< zYDqdlmD_g0*jcm$TnTo7BoFS+IrY`mofEso#ce4JEl!gIZ`KmsA6H-hl+-=-mptLp zsEWh0*ZF@`J#}!XFZ-GWOC1cd#@w&dqLNO5*Oo8~jO;;hM3!uK)`U9J)`ht1^+G6b zVo>nb33#`v%ig$>RvJ1$1^+UJL?uul8IESd@l~5wlk&skKG1 z!4C@37f7dOL1)cf3`ao0+AhYMg(v#+L-V)3j9}R8mwCsjgVK~yANkz1s$&=H19S~~ z!h9~2n-R)SXCpQ?5@u!~QiQe!3;e(U!R2m7gPU}OX!eo)ebgz)iFClxNA2@nxnwTS zy#O6*oP6t7QL)=@+q+eLZ?Y>;6 zaq6+IfMLD?_>AV>b8+mo%#lg${@$-4MDBEO5X*hXj)N;r4OkAC8^||P6{gX$eXV!0 zcDky~tPM#!wiZN9^`d|I z>bvKXb^5F=z7Lc9kcO~D-VIlLl=OK00p!(t_G2n4prylS5?i29gn zr5*n$rF^VTj}$X?d23NwGN0i!9f)DfMdZg6I}>;9y*nnluputkNYS?wjicXJX#E(G zpfgh^>?n^e-YneD>8}gb4Fbu0zWizIYlU}K(wj-*ADc;~voqIr@ncms(#|j6oA!Oa zd}XowhUWu+LcXKWEV}b8)c@7s0#TFDE*`a6v|uAr{Zy`*EQpArCEdT<#MX?*}rJN2?6`Cpc^}~*-Q=h7MJxoD$lN8_9`P2n9)wo-dx0kkaX7IJ3MK>dhJAN?*DS>{){s1f8mdd(t zvuLo-VjSUg?i5NHT31k-IgbZ!9GAz`)x`UY6l0|Q?#FenxHz;^#-P$6Piu{)b_;3ZEd;;Y3cy$u>^PX$q;jr ztR~}TG*H`O>AzGfe6W;*qFxhZ!xV5@CM(B~io`bIxZ8P4My>9#N&<02pWZk{WNDA! z7~cIn`^)*fVCXwVVk}MdNiU(%U9_ZuV(=s$GqjBeHjMc@_5zP9$M#u96a4)1sb9bd zp8IQI7%?9h0yEQ9?HXv+j#}}SJmC+pq^|f z5d5l2C4DbFqxe;*3Hm>ch%HB)n;Y)H@(DM$+P* zO`8K-#=~L#w952Wqx%tQ-lptu1kxuDDzOkMu zPyeQLsEy@fgi~I&yi?Q5iN;~6#^o;O+n95<-?|tlv0XI=w?Wx$aeg_9Wc?!s zQz*qXxT}!)5XCAk85cYH@&&GmH5)2(I%Mtxck@h>xad0Ig3c-cD;7C6Jf4fh&J;a8 z)KQb~^Qs$X3Tf1BtXoIF--FwA*v_+t*Y(g|@AdGl%qt2Tw|jX@>OJkL2P@O;(_miO z(t;k^Z2XUE3SlNrl>W8rtigC))23s#V6$?YP~U+k7Pl#vSvOf1a4gRqQwBV`%~O!) z?NItS_6URxF^~SnG>Tr%##;$e-@+nQ;j8bn9!@s~Ft*;|y(7QtAdL+?p+~?S{Fss` zu`9}0`Jq1Zy%2K8^GTkPpJ%|?O@*CQDT>fSjiM?&dbbnIbW~82!3GQHNIP_hGr?IW zGp|LiHXHRy)bs*PtfTlVV+EL(0~RjZIk?UJ7`|s+;tnfb-w`LU{(W|HcRrWy9p_Ie z=tUXKx&RY2U;E=1+BOrhlFe${67>s&ITw-H#9sR=`#oj}u8&}FPa>hU@KNtWzdufO zp;X#MpKpUVrn32q%Sa{u(sfnbJ!XUpov~9JZI?M6`K2uKK;WE}q^L(lucKQa3$s{{$OoRBH(0@Os)G~0oox^5dX_n2yu=yNj?x5Z*>F+4jIJoO(hUGt)!{E z!<-#RcwWeh|HvfW)lT@hIHgLL*>(Vk=0BaWSNIL9x)+8&zpjx{xm*G2cYY06roCAa z9|jKows>W_vEw%nV2qtAt{VKcug>uw1Nh7tT4)3O0)wR6R~gh~<}_c7pj~n){Z8 zt#gVRuGAU=R%I4c@(dkVYQ6t*%KRS!0+^uonC52Yp1=#4=YbzY@R3HUwkjA&tuu`6 zc+AOcUI46wK%ff=1)NBMBJU44)(hl(JBdKn5g<2EQu{!O3IS8r!ZiLFw0kI&0JO49 zdWq!WoZ%SRrjo`8(r30&19#~kNaoipflkPq**!-dgMUf?m3;|lU0~Lj&(HASjoT+q z(;YT*>mIhiq-;yo4>CnX?F5=3nfje~1C>-;^WgjWZ8s%I z<|MzoU8@hHwj9350i#44nfo{OK865^&4*1t0zn1dJPb_SKU{3jW_DiKkK?)mLA`Oq zS+MNI`90+S?_0xox9(s^U>pB&D_lTDwFE$-$Km&i0ulerpDCH&6U3j2wI7tIk_x&h zINZ=VKlkVWb$8~HG}xaM>xMFjIR7^g;6nW#xnH1}zEKEV{0FF++YdDh*h(9$e3w5s zll_$xkBjnsM0;UUW;^H=k!d3k+4^8>U#p?c{{`#=_>ykp1d6X$*FaVb8wS(8Kn`oc z4xu^ak>Qn?xSi`Gm(|wyw0`HZW7t(nE7Vf6eK9ed32;SG+9?l?Db3 zVU(6z!POntBl60HUsZ}!2#Wp+()`?h7qRb&VGnpwP371_%#~-qG5^UjoF)1AM49OSFF zbOs^v;1(qC?=9wV(;oJ3frkG_g)<*8`^cWBO}6X~-jy_YfcCOvW_oQ%h=Hs1t~njd z$5AROR&Fy63yd!M8EykO3xHrts3Vd3;-S<%0Q&%1xcrdcwCWP0Sh2MbXX#Ks4MaR% z<7lx!o@U!%$;6dwLbdQJ+V$ul)qSSIwXpAl5&35Thx>H)^+c@^xC?$qRgmf zBNYEMB(RaW#Xn1STv(Tdj`PU=-E3{n{S{mL~dheQORaD(;h zl7F+GbZS2AeNg59W&p;S;saac!5^@P;AF_)EpKz+)BfQ=+IY+pBb#?~a^LAz$fE$S zLlA9RU+r9CT9=3ZLhar79;34H{oB`d|C23~J_gXSy`ZPtQdUtxLkB_yMZDx}#tLB3 zIJbjWyh}^ln6HlIMoLWGjx?V_{1;ekfZ2GLlY+%!Gcqz5)Bajh*1G#EW5TJw zy1Hi{0s)%!8$ktt`11$*qm$oE9F1Vxt6_F_6;$WivWwMJwBI8Yje^1gA0tG>`*8I4 zeb20>?Go7pIJ- zkWn8%piY?8)_9)%1h&06mJ&g_V`s;u5re2S8!|7pU%02XK;RU?RNlKe{6Axlgz-xZ zawfFrlw@IC4lBiOtik}5)o&rbHUd(+R?gMDi9;BUO;1Z!pP^61Iy0H_s?d7SBSqA) z^>>DU&1;hXFXKm(`aw@y{JOhRJF|_>-6lr3DGgNpl6@<UrY|N%D za<{eeQ~W`(ole5TPO-G78@mBPse(5yr2n8PHx0nxw$@Y%)*I)>Sz)D!&zV_+n)YmN z7f?n(mE%ugQXWkn(M)1QSafthZ1|DT!^LAsCIaFDG@*X5z|_ZBzGvI>V_fl@>24sS zDEgat*6MUUvZ7*x96Zgnx3hR&=c;7eL~PPl9=EVW7*33pTAsV}NN6_V)SE~`uB2EQ z&;(SH1_S=O_ynLQmbJ0+nO+Fw3CY+TRWeYK@j_N3@o0l%wJp*fbn*9|GN-c54Pu0t z$vo(5^Ra!s0;vnF`%)J<|EVV-X#se*3R!k=M-&!t*MPf|?hWicQXU=F;#gMWmx%h% z=vFPO(H8m51XpNC{Mu8H>@<5I0l=@-bjEozR}5f90G9vAn1yeD?(W9WTRCv%TztGF z*mhv=XSwnkzv`J+EqP(eY#@cZwF{&BX~DM=zS<6u4rk>8X3%h`S0L?C-H#N|4=9BJ zF{*kX`yS8HmWkaQ>5ehV!QY`-2%poi3B})Qv8|$(*r9=BV76=a^Ge@x29MjuB(VoMo3;)qSMjm1 zvIO(diHWQem3G=sF_md|7-KfE%*FIe2%H#$St=N*S>`At-L% zK?^0)_s)DhyYwTuw0@DF$WxBr^aU=ffFZcRQMGZ~jTpZcXH-X(OQySAwh0R=wY)umnVv9>Ik>2`!8wW-ezfqpT=?Ybo3(m;#Md`;wI|LvR-p*LRI*toe7I0SphA{yB_!CEdaZ7#7w`DxI_CZg8 z;3DW~o11)38PoWCnh|H+G|x%=PoQE5?02QJ3%GS*s&~)q35_=cd)6=9L0K@TXySkx zzdOxuJ3Ksmd#e=b#&rh{B4VnV90V@2JeOYU7Zev4RMh?1j0|Z3CdSoQ3%pOxU}${S;WL!Xhxtnc;lyKVGXIv!xi zIu=`5li0G~rYu24RW&TC@!5XAgs()A=wq_(%HsKUS?%m^z0s@8_{q*5lb6s(zjVfS zH~xBrEWsXytRh5Nr!3a_+-!CSOkMMH)p*#qB?c~@>CPDe4$hN`z*p43WoE^c$|@8< zFA>y@4ePUi#VG>Vx2)Eq^7rnvH)8oQN}nkKcGzQ*_+c^d)1hkW+ioMkm6ondI;r!K z8tsZIk+1FYp&rL)aeZPG6ucv1F0ybpQF;m&LKvkBsV$E}b zQ@?rkFZQBfK{0o-WzD#cPNh?&v`7v*@YGw!j=H(56)@zOC*K%@}*4T zjR{gL8k2RlV`;eY zrJ%6%J6N)H7>L@04a9cMJ%@0`=ZH)Iyw4FQQW60+czXGQzXnINMTOL`IJSUqR?+qXmRYs3 z_iHdzsuTmjbZ^;o-#>iqEGQ^k!K!wQJGjSJOS~B{FIqcd6t-5lE42PSh<|T{!EILx z-_ADQ0&3v`FKpE_=eRP)?9~aG_+1u#0y|+gLeMVq&XUQ=$=TU~Lv4EjPfFHF%Ajcp zxzFS(sanm)g)xFYc}_LXxoeBE=r$X$s<13em=u9~l%aFq2$?b2K9;&> zYT8RWYxr@}8?T#gPK;+diTAof*-Ih)yY-3%>;~1t%5x})&X(SyV-#UK7Qapi9^MM? z@@%PITrC+Rky*4FX3iH0md^Or2uS~i80^LZiJK>fV^kmnPlxYddojl+L#TV z2_i?`|L`>QNG*-tr3S#vL&9~SqF0EK1YnkU$8NXkE<2vt%Ok~qr@Hgjn5wEO{v?zM zG`|RLK1#(SFB$8OFvL}ln^;vjSa4hiBQ1v8ZfX##CM%t#L3Vb_K!wQ&;9YF(Z27hA zZa0!zb)k<}Nq+yRY`LgtRxfDJ6%<-J?7H1%PdS^+Zf&e;@F0t6kfvBl5D3heLe1q) z_Xx^iMhi!=CP2(pdV3ndJnfDDPNoAI*}94u><2SZ+f>s5id7Wxd_gR>9<-R#g~j{N zE=8lMg*QrS2w>@Sax-Qqg}h!Hgym%WKovtaHlLtIhIhUeXVm<0ZKH#}+o5dC+IVV# zfw02Kr7`nRyq+|cIaQa5H^FS6m1V$-xATnV(mV@Gv(I7TqzXz=bf)Q(Ne9V`l8S_y zddqC;U4LVVe4f$RVKQu$S)^H0U){5+0K3-66gBlR*InAVX`!l7QW8akJuyWfQN`Mg zFD2`!C!07VsSXi0>CY$E^a%P9L_ch8ogbmj)!Sv&jCque?P(C~oow&rSTtc(V9=)L z%O%-;Y&ZOD*?mfUS4OiIGSdouhEC@*1E3c^f+-D2;S^&5|4)1#m8^Q z@2c`95W6@Yr?1bygcZ{+UEX#FaLl9WT;>+wN|s=@r@|McsR6bQ#;Dwcr*?Mb6$!3# z>30D5+1dWVYL^0c*9VQxL5~j#L@fg}X2XyTghajH1Uhq%nhv-EaCS@KL4!+xZQN*q-k|He65-Fku$u>de<7P z`<7SV8kO3%cv1to$Ky28V|IO9VB2kyW0?D9 z`b~3tww$Srh(S|X?&4hp$JIOE^d?nh%^~RRB@egqlh&1-U%}P94OW& zeQk=RNhMgySf;j<@QIrzKInBo1m4#z;;rKvN%7Sea_-f>^oeg;WooL5ReNU^!({|n z?b&IGde;(EihQvlNqz_qnlCd?DIB@k})`=dB*w~i=%G3i(8U5J0R-zoVZw4;s z;!fNUF-OqZgh))`XgghP+xf370(#(9s6%QHxIko}jDU+~kb+;n^}I!htV(pm;I#yG|m2b7Io^`~qMVkI{5z;7@&`wV&ic0h#Hrs62 z4*B(mw**{<`U;bagl?C7iJF^Z)~-cL!lBc9clFpi!;N>%^hGLXg8CWGMr)2O1u{9T zmg)#jsZai%w&g0rj!cSHPY-DbmQLr?Iy&Hf zp(*8}hD~aacjai^tn!%rnC0@)1~pp(Tn`Z%;(F@354k%@-)mVVt9y+Vlg+6itI-}` zPubL9tMMoCQw}9>4K)XI<>*u_rZ(huJZE8ZyUjRHeYb`IZs*a#A%^HD_6uQ6W7kf$ zJTjnwtLRd7?)`qsM1X6`0lCExB?lR6!R^rkZ$FM?~3^Yl4FZ+w6FAmNCO5o zEGkOZhYu+HeHz-E-tpVsAq9rKBzN8tln3wFiRZ1r+&N41+o~!mn`>}wbZhJQ1RR@D zNw!;~g~vtRm42g|T{&+ddrs+uFb;Z@k&HywDBGn{#H^!+p9s z%uAdv|Gi2wtiG=Ol)b$)Sv$L^B2*pTZDn`fn6n^?*N%mdlS_R@-~B%5hGM8*Ew($< z086bqdVHp%Vb{8|UHGJD)D3Ky^7LT9A@!$3l1zm<%G}!}v0o+Xc1g)F;Yn~_;#MGY zE6u_7gwk*drbXk#y z+Q(>iwOW^6J?9#q$~ezCM`^5@fnik!cWzL7qQl#!*wFJq?o3jswXVkT zz$vk*nNN%xi91$-cb%sv_BGmvRd?{#pj+M0j^W@&-@TH)31w&Z?XO1(Wt-jA8smKV zvpyqZ3Ffl9w5P(Y@RF<6VS8Cc;e3B5(U#4ly*28!t}<|t6mCW66?c^9Zf;ZN#VY^g?glp$OC|i_II^e~nMM}+c ze$T=Ui#PMBAgK$K9mY%+ZmSWv*(DCIdoD}J3_k^|!~B%Rg{$oqm4R4M4Se38JzN|y zhAuRW}DzceUryEU9{C@{h)tyN6kI7M~o zA!>`Zd7$ecrMtT2F*nL{hMtDhX~m??4Y>3p8d{WLW3(`lU>zS!n&EN0;ip_~J8Qi- z)4lCuFpoBLg+y4;mhO@4TST4V%?qBHiE}06*I~%P7=(u6h;MyOx!noe6{=TMh+o(ngy(vHj%p%9r>Cn zfD)bDH~dIyCt8;sShHiy?pBT46^aM!D=v=F4c#Q?xUWtz{dT5z1H$w45d=v4xB>##qKvr9A!lgbQEA6@B};!{)YzibcsYN^sZmg!4i>6${ercfy8)@G~L*44dV z%f+7p3kC(h=$FyoJ|`NnzStPX?%0O4HHK6^jiQCrU~~Ks0y|-Q8%>wpywRo#f?xZl zbSqC~Kbf<4GHR&VSPMby{fhrJ1@@?Dt~9(2RH7S-vn#P1>R65S_?i!S5HEpNmB8Yk zK`3v_DV3%O{B|4k6k6sq8Y&$vQ68aOxn+1yeqwpkdv&^_tIe6S-PBRgddd=ERABI5 z34-gnb7<->dFQbc!S;hd06Cg)r&Cq0Oh^L>w(Xe8la6z>yJtR6mAw{_X5CFy096xmGfbx{cb;Z6cq`;=K{2ePN?z6~_qQ4ExecGct|=+nv5pYS3;z zEv`O|&V44sH$$WB;O*1K_)wvevB zd|;IEd$TddX3KAbTd@(&?pLRumq_Z(eTlMZX|D(013Qg2_I=Wn>SD|>V!V67O`PTL zH}OHHl&QMa+A8Xq5;s*5H{tY5JYgGSa2hwsns2E)T^e)Y9Ix&0 z%gs2M@70)a^QhAjP=x35=hOwtVS*wlfNnirFDFNiFn~Un}*YCF+wv_eJ@GchE#ef#MT} zAOkdEUP(5?PE<%~H;6IR03Khfwr@;OKHw4>K6aBj@00JX@h0X=W}e$oEv~VI&S0ru zX`_F0BVJMd8D7}-xTl-$>?|DLklM#giHW~4N1y`M`SYUjbT6HTwBCI@kO{h+w8VviDUON4KD@bAnLax@6Pi2wDZ3LYDT>T3#% z&+PNP9>hXivTJ>UG0~)x zm?h#Rn$eYSrX+qsq*a;kBZKQp8O$8_j%86z>Tbo+1~XzY%s1*+Omd^gB+T7I`b@*` zgX-LEY>!U)=jg9;%62eTRJ8VH+H&wUPaLubEruj+AbNB%+fSv*xdOwzr>GO zZy-ZZc=H03l@sN;kohpo$W3?9YX3E90j#1)Z;x`0cUj`LW93>=!`OF%g2U*h=@^+c zXWwUYV6|s*>o{2Kj`qzEilz^OaObSH?ZTyEJKKCOmpH8Zc6Fp`>CG`nZmmxy16#xx{M^T6?v%KuP`0OmN0HaTr2nW^leD(ckE z@T-d9-Sqt2vsM0NqFbkpy2818g1KvyUHp7wnmyjBtAz8$#D`<=oDyWkFmN@lgEjc1 zjpy6I-et)#4%j|?tKah`>A>WmxvI&qzZSK>q1Ba2#%Uvkl7@b<$+9swM5c=1usntj=6g4ju|`|mFZv1ybE4@ z%b^`>mUf=3jiSTdqLdv;Scov`h=?M+&3cDys)!j?rKmL+9|nO%PkUq1%8PhO2@7EM zUFRpHOKw30R<|`YW0cY#Q##e#o{smdjXCpo(TME*+9|?W^)`kl)-%0Ey}HZ%Pj}K1 zK27c$c(Xq*%E5^YAvcs)e=^Goxa!$7!^0$h4v#CJaM3Uh<9RzhSMs;@_##$$vRQIa zQH+5rVvZhB?r8PNB4EBrIcM(yUrEcnraLkG&Y+qkD5S6O2JMO6n5Ifcy!uT!3^M1E zGHdytkzU@dWWNIq-@Q^WODyRR%>trlg@~V zsoy5Pug`06d^^CzO{mp$!21Y(DgJlK(_5wyoDy|CRsD^yJB3}0&E&0IN(&aBZMH~S z9c`HAWi(RTZv6p|FD%tW82oLR>k9X3nyYLp>EHfV#Qmds>=~}qF`f18H)~SL=7!(j zMKN36gbulZF?o#eP_Jrlf%PuxAIPeZr?b@97uFC?(J5bR9p;?WMkPL1SFr4u6-9?> zsv`pKG?2XP{iz%1Qux|s`)ytA>}A#`Zxy&oBXXHp>i|xb#FWTC-7m%X*0f)yw+8m4=28f{BP% zTZrtJF(RReqtS|t4&0^jd9BmA0gLDd7pgx;;utpJWYYe3DZ${?lfe#!_?uNY9~Slb z##%i@_d0QX3dj{iN&)o|0rPzs=TXmASA4^)6V2?(&?@72P8Jar3{B`esnJ(kRZY#&fiwABn(vL9w9Ru$F^06r0N%0mwGEX4kP+@+(lM1qV_jV ziaE24?xbO!Z(CWtmhyaM65*0BG^zNe!AUZcH|bd}p|uSX>>A^lvM;NC$`Zk1;W4f1 z?ool&l?P?=Ec22$1yeTtRk8hbMNzk_1Lv~5;*`?EG~#U72U0}ydW^(Yq_R2(JFDlC zhBUy8m(JlLYsb8Rb&6gAE=(Or#XD15BiW>duwuvqq}nK~g^}$}*sEI3S?jO#=WcGh zY^CEv3w|4jR-VL|t%t6uwa$Z_d}el^IXV@-WsLP)vM~z4wD)gryt0xmTkE-n&A@dW zenuY4qBK8>iU5t2-jzo>S-l=~<;|$#x~wkW#j-q<1n#V4H3?G6&-B&5iX-jBJum{Z zrgQ1Txn4Wbu0~cnEe{)@X@RNQECgjcuk0yWj zY_0T;x2K>t+_rlkEtX(SwGf*yx?9k7v?;#Hbc`Ny2?g0Dw;o{V+?|@b6az)q!g8Oc zPHlgypVOvQ_Rvx`g0PV6ZTRm`H+Gae+9g3ed2XoNQ2!cdw}usAh>*wQ$wo8!bpMtm znM3UqpW9b~JkNhhp#tWw8}E#K=6%nJk8+AC8?6pGc*V|6{;y%Kon5g4Ox5EV)~?U6 zL3!wnftI#rZJDe6uF=)<%8$Og$uM(`yu_LhMG;bzI{|hYHKT*smD?!KOqd386K3y| z<8bQZcx;&#^f=>klvAzsu9lXPh$;k@5bIxPI#>EO{+Nv-d_zdM#Gt^vq{Z@9Y7r-t z5cUDB)MSDDtmA$JLiz|Lw1c~PP~I)Grau0{I%#$&3!)IiU~L8;F4B=!M3yq+l{^}F z%KAcRb-gaw)l{rl|GuA5O{kf@y|&46L14`4U;h@rf-b9%60x6sdRp;nu>%yAnf1tY z4!hvw+@{&T_FUCQ|F&DLww5YBP7TA5y{+FRiP@3 zVe?VsUlv_jDEy5$tx-Z_YWKUM1+ZV_dXs;LmY;O9zM=lu*m=v%9RgHHF^UMPt+7Me zCqrHt+ODyP<{I^J?`+mEM)fRe57Uf!$~3UJIw)dqK0Gsv->WaQ8UwGo#pg z?fm1(7nlT+nl~y)>F|Cxv^utm`Rc<|EpZLw`AW9KYes$Tipf4xstdIX z^0wp)0jLux4_9(gg-xp;E?`G{PJU{so`s?cI{IS{XHf}5lHe|M@SA4(NqE32d%oSN zM!eizdaZf856NK6^>;?(8_}cWEn$HiO>?Q9!UO>VMnyC&{jlbiNVw{y<--k&#QMWN zqxP-pgN%CJ`SS%uy*l&H&~HW%-&S`Ff&pUl9Wi@T`B~pUM+YycCL;9=8No@~$W0Uf zDfX|jl~L@usc)5*^4%2E;v(zX9L_3$?9OZ=o&8(s(cr|yAOGzBn44lQPlLX$UzsGG z0^3#vc!b@%bNS_PqoX6F`WT08&)Rqn4hhJ(n6&@)yyM~z0VhV&R+AG&kytG?Ic|Xf zLGZO>8if`7SnAj8B2P}Mpv@N6$d%{RhkEYzn3+6~5>m*f@wT&I9St-D|@ zFzKyPQ~`Y+BF;UDJ_|0#1WhYK+VADH_3Eu&KdU?_z+zdXM7bj?5sT-*4FEmvaiG?B zTvrZww)SBo zJDhoCC!@TxMX?@O3&0?jcYBqUbkCS>-Y|ae*}0qk@?_A`(9Cu_!CIsDl!B@FinIf; z7fgs~J(7mhh;Ho<$NrhqCQ}LAG3>oc`W#dpARUQLD(G=CS2WlO?F-W_71@4w*ho`}zrEsa5i9U;Lx$YFBXLTH&C>R_2lAtmT38Y3@=CJGlPKK*d~GcC^X z#|t^Knf&`ka0_EBilE3e{LW=O;~Ht~1~gh73qo}J1r)R!E43~<*yZi0kO5I`TIe`S2k|^x zu)b|H4!H&joeplqmFLpH(P2#5;w_LYoqX|Mkj(d2ziSmm{lBmhun!Q@!5@X~I(+mF z+h0j9`%7x@VjXwg*^z#D@Knx!(w=5`eapk~R!Q7J`RV%_ykkFy5#;A{@2z5OF5nt! zEx66Hi_?JoMaAui>y+qPyU-_Y$MIBp$CU%q>e^*kmv@(gof9mng4*K43F*6uJNcEA zgCjojPTR#Q&>Z_XXqRotje0vbh%qUpQ#)2&*PZ@ArIBp2$Uosla>$T=Md1wNP_HRs zFNP#>F+A17CS6JtBtS`6a>oeuNy+d1_GxHbECYjxui8rw>6gxXc{>`t$l$Kw)!!%h zAxdZ!y-;P}fK9m5vXcPQ_W6jEU%uz6Nc|hJEe&tlWUjDQ3x9$GL;b@u)?~JmoG*0r zOy=m)*b95|59e3Ky^%n$E`RsIMA?X3%9U>fJy*CZ)dfa#gR>%fPNw%RzOfNxmu@g z;s+4ls`JkT7!07TgE%%}A*!+iuY$b5+OGL`y630Lc1_ByBSNb|8bUgE_Yu8SBj`k$ znAf}<`9a(T!lIQk?HB+-BUmyOEZ0rSch>8ykccZJbJa=SW8WFSvQf{joe9+=QXjjU zv3r99v7WkG*|h1O-~x%CA>4_20$E8z|E*S#>LHZLoaB3I;C1yBR$und!b zjG}Em)P0+?_MLWvp#Ai7yK;_eDDIqUq4&oKNd0FPE-*wwwu=Uh2E2%8JZS+QE~y0= zgQmR!Y{_BLngr68sfo$^M7fJUmPn$a06#$V3_O@1#C+CN+H7RE(v%}AMr4)#ro^5| z-8r>jLJmYMcjccPVwHcTCE#DT1p|R>ca_N+yKL;zo>=k{geC4iJ#Y-OwOm=~X`@$0 zY|B=HG4!z|94_s*urLHf(i!^bM-8;2L>yL>YsRdg8@_8g^N>o44@2w!dI4aeA!Iiy z*;>KAxu(P%*Ozde?rPh}g7xUiP=EG>-g97p1j0w4;BVRi<~Xpd!TDXgrnnA@f}A0~sc3Z?BNXK0mgRXXdT-^^+MjlE6}D*JLa=LYV< zUumVQ*Qv`0;M)>x?`7=|JC8N(hJ_WlYU^soP8&y!#9-@_4`KqxvqgRy|XOk3%|Z&TlL@Myl~9y%h8AGq23Z;Sx@q5 zQr`X+)G@WaYrUuscfUq)`l)^Axz9Omj!g2-Li-d?f#__-_rX}^QqKF^GDWw;i8O!6 zi+^Vx07`U;T{W5);>A5m)vbuMJk1>;mne1WLrl)a21oGh)_zX{=Hl0)%P8q^NJlx6 zi71Gu$rPP^v_~2cmg>{)awXv{(-wpebcx4ZCQPnzS`bV{ z@ejK4qd1(u_{KL(;i^X#R%2ZklcB8^;^+EVw|}z{bk=IG&tIT5;CV#61z@i6s%fu$ zd3!waXa>;DQrc<4%^a$&7-m54qwAABD<4LtY@-G7yx9pIHA=R?ds6SB+Llxr|Nb=k zmVH*3zg*|i%jYH?6rlavF*G*e4E|}=e}X1_|4zG4v|?H4KO5!0<1{sgb3!V(MVp(u z75H$LrZ`JZZt?=8az>RK9d&bI4uBO&)s&(Pzz`V`cp|l!>YNH2^SA2ITY`(DijvkH zIJ{sH=qstCv15Z1=+1>F`(G*lmnt`9L|adRMpS9TtJT^aaz_lcY)HRZC7!Q zyIP-S76k5K6_q1bD8xxq7xods`Gn@OmNKXiqg3W(v^Hp%-+A{2VWmWt)BOQ+J15t{ zJRi%ai_6I02HX3m^L~OA()EXfTvOfkZHDx08m@)1EqfF99=Ex6|F8!%W=tj+y>`jl z%6+EnIJUeTPq8ZfN~`8a-J3tn0(~2@le~QVB&3w$@>6co4#_F>7~(7n&E(lhh4wb$ zOe26uKlj<{k$x>9#zt0_QbJsqiR_N0&kmbEG#O_4mk7)N1zX8)rb@`#Nd!K5nAUALG4Kz!yB$3p zVFV!ylK48s@l8A@_N1--kRWblCslU!cA6b*qa+AqC0&@c`}U!cY!=lxbVae$_hHq+ z%eH@EBw8E%g|``)Kagx_?_)b&4LNApq9tCnqn$KxY>v=YJdT;2vcSLQj!SnkXm-~K zD7xBxpKUb|P~G7fC01^}7)HSd&C8LeePj`4$M2e&xO$4&XdQQP2@<5MZmJf@69D`P za)!Huax2`$i-J`cg-M>kbJ#7Vp9=hmkanA5-hzN@ZyJ1|T z9xEUuOk_MY#+0oE^E;OL0zHfMJ&(asEhWC^oq1w0QeiiYV#PjEdOLDwom=r#j=h)t z&2sDiht)nNi~AnVHxk_&d2{+E=c*Gj^iaK8t6bN8I}zM}?hj*xU-yC5e&h#YQ1VB+ zqkgv2@J-B>=DRAZ8bxU!@a$(i%K51-U4Gw+eC@=0H^8#N{5cZpCRvSs?#7VDO$Yv7 za;*PtrC1xF1<+=FOM&I^ZsiUS8H3=u}oLXc=p(y}@mEhCj zsXp_Iv}v|rnVfcl30X367bgufC~~m8ku1_Pmd^!26~P1=OOA$xFTyQoUW+8hyUi(| zC;DgM)2}CbhCW8LNJ1n4+@udTi9_?7)N|xI9TDN8#yJib>NpsMIlnS^WQpdW%=f7` zTOsO)n?kfPZU?$3x5!KQj1qsLJZMvyBj^jqh4<1=<6sTAg+fa8mQME833G^YC8tDsl}2&->>4L<9fZzmktEL6LJCtl~+8@|`iLGFTMnmj+v!Re(k zuZ1)I`V^s7i!s9ceL7OIey8Bj%PLEsn2wjw?ErhTA7QchZwOtn)qo(nE@@e7+oC z3$A%J0W=KCsc~^o-pC?t&ZJKg`|u#-1{8U09hdCF63?UrgcP<$v-jE;TE4mTjJsL- z1&a>4D>>`c^VsAL-@GE%g{Ai?HWKxa_Bix&U72liUCDgiJa^yc%bAVe(C`84%;Z z_&ba_R%fV&IxVQLbBo^MiNaIXW&UzSyXk@R9NP=UU&L{yr$`FmF&piDy zEoe@_k1o#nlmRmb7CLBe+!)1`UYdx#SQEnJ+ZDXg}`s-GZDoK=N9Jq&SYTC-c$`Ny=R+6w~QK zPT%RPzf}$t#8&8$cx}V3SiXLoh?;#ay4^8mOMoLgOlhs$(>9W|)|OCF0iCMJ*s=&+ z6sSP{DL+o|rX&=CAvOSXT2|ZIf~4 z_vjQFfa(7$1)1|-7FdGEQz=bG_=ne=efWcf*Yr3#BbGi`M%j`9{kzn5y_t_&@-Gst zkvF@OFvGKi5dtf}=N7{@A9b=GH<^~Jpx&;R+ex?cX+BK~@4pzEmtHDM+dZtDvg`3B zBxEFG)=f!fO*fkuI8t1*3Utdj*N5L&zt9NCcZOks8<;z zw*#LXXBc&o@W^%@0eBya-D$MY!!Hs?Px~)93DY=X;wk4BX0gl` zq|GRV205AT5IcDJqg0&@HMiRfe28fcEIw)d@<&?XzVBCAbE*cnPssD?(?;WZcfixp z1-S=$(N%oRr2Z5iU>+s zl3BdcL+Za5G%q0&)3q#$`+Lw&`vUJ`cQ0dZvtf9+kshJ~pYLEFL$UA|{no0WuV$jRzj;NrhFp60l1Lc@3&dKRJWw_fi8w-Q- zuHhMl8$9Rh=upqaz%m>HPTUL2=)x_wr!j*HEd$V5xez-Pw_lIrXg3`pJh#szU6Upc zK}o`-534~51>vh?=oZ#n!6Al(WiEcK&mZnZ(i6V@Oc_Rrd%&vDNepb$7(1Nm-GCA7 zUW^Q^BoRw&DvJZWq|Al4Fnyabd)jb{oiFnMiD47{Dq3JIY~u+3p(WBSA?=JK(F7}M z4UU03HsywR+644vWq%g`yz!FawnZx;ftCLe1wv3e9j$^|_22p16$}l0;3Ck|dFWxrM9Y5|w?DV4lOU zsMyq0iOo4TLe*a$aXH^O`l2r@Z{-h+j3ONJ{1XJCKfvr-*c*KeO;E)n4WoS5XRU$7 zaWEfblhRgd(^+^V(~kJ%tBK?YaYSO8&B@OT7b@rA#iccCPl6>sylRsXGNyH4>(HXN z%p)bdeD^gc)Wb6Jj3wcFvIsU78889r*0eILg zf@SNO7!atdvRycBox4cW>b#SFa9{y=DvAW{?ur`+p3=5^p09ksna%eLrG1`p{&+X9 zK()=DUz>!Zx?;^2T9aB}ty0NVH>z%QJ-+3Gxbx}J4|HoRS| zgfp!mqqJ!g@I8orIkQ3jxJK49MN7fd`Ijz9CzV!>e$UdRMF1nPr|a6_Isb*Re5&=V zZ-0_k;h=8vcl)pz*`RVz^gQ{dgmrF#WkDzp7a4>nR85F#n};GzAYrsiYt=?a*rJo0 zG*@T;X*2u4wp&{-+rXDcDwD6!25i~3BEglI)K|e)3OF~rhduHY7E1$5t-(%*sn`-ntLD&sx1-u zmu)ATnJ}BfI?1Y}`B<$_xws0TefoS4$?_sN!us~A(g95`-{9Wd30{{Dzy=(}X=qyM zDE|MlHXjED?7-Km@3#+=#|J2*qxfW^{QO9fa&mM4vVq)-g_PsL4>)Uj4`ZeXEb5|I zS{%X5oRGOF)^tNdq8Sy4Do1e(%IFyTjN2QNIa z6V#8%lnge7kwnTMFR-aTv9+QryQyccL4E#FK*ERNA_`NTn z;=#d0cfd^5W62oCl>t?6wPk1n0v6e1{_UB$>+GB0Pn^d^+LcFrP~-TW_ctW`qu4~_ z+)bgCr3sAYubz+(U1y0X7?B?ryV2)d8b_Q>QVvyv%)!KZ9HU=;_&Z*UZ`P*k2<>OHFP`RAY!Y{RqBHcKkngBcFR`@%g@hW z$@wRqI`umR)fMm$=4|F}x4A3_DTTC!?l;?wUhqz>iKbsspXmNV5dH4Apw_3BgDS13 zZY=hrV)Pz_cv_(WE>>S$^wHj{+eIgGdO_nLJCC#~k~{LBAz`}0H4PB}kASMd^97$V z-=W?}S<<7VL(2fbeH)omODsxY*p2Bx+3$#5<@_vF`UV@`^7sQ`KB7^7DGkh|L9;iH zp)$n`P*EgV^2Z|-7&TU7&&tSu1(wBgTWerXV>1zl`FtGydkjnsKMrZmLLXRnXMStb@ZkqMk%D9au!)~h zj1$5FJADg#y233g->r8Tl6m7WEPERap)t6KMSSP6qPcyD*43V;v7T1HCG}r%;J;Lk&;NmB;fE#70~^u1ALke%9ycZ?exN;! z-s=GuJAw%Cea4#@9L~jjxbJ#Wd_$@28}9s%)Y6W&mN0ljq&r3}%psG0RR{i$yMr538&|#5nK0-|F^UY}_=bUw23T`Vu zUX2VZI+)#skTRe`1AL!%GWI3%-MUwQ!p;ZdX0{7Ah_FKaVqK#U?bd!XD~_25fhlk( z={^22ufc|a_~%SsM+YVg8&=XK&&2%^!)6J!K#z+A8Q@;M{eyb+kGnmsbQtBN@1*OV z(G42Z6_udpr1!CCw+b&(`tmc(PJ~?#@e`2hkjWui=kq2Mks8~-e@1!A7X&2XwLo|z zWM{biNX#>3O+T0pg~NaX95el%e5{M{$eE0vgZAd*_X=#VT+&Z*UC}FHjo6GyP_HcX zSDt~4$#qfqS)1v-K$5*~#I<7&MeMtDv40Ycrhu|(2wTsp;LQhDplsuU?h{&nCTC2p zE~qPa$;W$SpvL~JbHWU8_@<|`M*ev9T@#~wlY}HHoFeDopxqfg3{@(zWRUtlGQ+`# z#DF9*vw(ZGc?oE#1Alrdj$bggOJOjy`_h zPjbCU#@Kz}W+19XLSl{FxQ?GqFDqwG`k~`U%pF_lI#KI-h0kI0ucYCk!GnSctIbto zKsN}{bB0pmd9IlJc{7Lp#xI||h@?$=ylZ6r&c}jpg*8yRZZ)5&Q}!*XH+q7zaA&yP z77o71C>G6M(WChd&i7XQIh7B?LQn}s{gw!BQv*B?sS&UtYbrK!KefJV&tKK4_~hKe zS5H36_xnN|aI>Pl>~AQ)>gVJz_GJ3EuImQ*mNM0?de@1L@PA6($1q;0pCI3(lm3P7 zdfH!gGHi!5^@8W5bi@E2J|2wniD83M>$X%PYnmsx;r9VE%?vES5?$7q@^OTYas_Y7 zbE?mwvmHKDSmlKD?A2e8n7D!x9Nq-VK*~%d&@JIXoOZc4oVdg@u>e{W=zuD|BH?0` z(@gNRIy{uHdc@VmHz&vKQEhW^)4`BAqNOy$T{?>@Awu>heKOS6lU!Ct438 zsbY6PPmy(L%Q;>w_8Yrr`~x}v7p2@|MbohEr_%`a7JB+dQaJ%p(f^>>cAuMK`Pf4q z+pj|m%F5*iFTdZXn`4JOx%#BD7O$*f{s1GS#5kYycdb11pBC?OF%NAY(K&K%cR%T~ zW6jKZ(N3;o0O%K{D>ZK)4Dm+OX@5Qy2b!PIcZE|dx+f9`>R)ZOCok>j{+qCU?ck#$ z?7Bc&YG|6~jiY02odYS%;v0%D`uWu_}Ar1R`_y@V9KHkQOqh( zj!ncRAjz5%E+l*Ah{ks(Oye*4!XKH+GSzB5$G>+$mJ0Nbn-g8)#7Cdh7ff2Z5o$3fj;nkwlRjClUyy67Y+k0){ed~0E1+5_ z+?jj-It8VR^K5)Vx`4-MBys5q6WaA?|7XSmL~G1)& z{>#4pgUa_ktGsC{c-_ya6>+A2jq8I$WSIB@#AHZrRAZ|)i)HECN7FvkgtYu4(P`?hX_wbKI^6j@_GKIar*vVb zgNrTXjG!{NpExCct6ruOfA_fp&U0=t0q;lQ4w;l*LlnZv`M(I+Bf0Zbjy??-pK0kW zl#$hn)#4%foew^=+>($(q1p{osa+%;P!k5ni*-8Q5K9k_yXC7+BTG2w0Pb|T;a(zj z!kf3j5iYn4+vu4uC*jcB4}%6URMc{+WvUE8qb=d4qn++)?9$BnZAGa!I}9Yyjm|A} z?ksA-U1AVGG$D`rZw%%jhd+{Le9u2$d}{(2H9;yK?dU~v*@$jL&`&4b6)kdPUOxvaHp}|K-@1|<`gf*Xg4?%5+gWWYY{0y+M$sF1ZNfv1<7X-^ zbe2CN`jrKBeO76X&{^UHtjR2N3JZ6BY2H~wkle%*=@)j55vB+v~W11%PQU5!6r9NtL-8p|nzO>&FwyLCZvejJ*dib#SMFw6}fFc7yqsbW2 zw-f*JGwOnF5_VIP;8yc7!RJBVZ#vQ-kaE(_vx#)i-LW!}>f1@eWD5B!5X>D?=l>1> zJOYC(dC|Q7tNMAf|8F{w%1>`wF%k|}jy{4UiT%B@#dlN7|U^DLlvYF%H@#I|{MLppw+)2>ev& zazz-F>(hNt8MTE#IfrN)Mqzh5V~SB*qCT20oVxuyr7Vee7V>kZjkPp^F}R0?!4)`) zrCkXsT>U4k>D4FL&W}vKsQ#5Awp7i!0&YC?B|x&%6X_HsvYlct{L?Q9yR@$?in=0+NF_TLZkxEd?svV!BciJb}Rjf*YR60ntzYS$07d}VAJhJY5} zM8?mAiBKX^>wlk5EcK-l;Pom?xQOzsiJK&J&MtqOK+_DD^CuEA`J-#w6Ps@mJ`lHE zmB0J$tS`OCi4*_7UVtk>$h}^~(j!6;Pi9Hjpsx`G7zUPJJ)Z@0(?XLYRNJQ`5_<64 z_k(#R_?-^#FSMMT(LoHfiwWo$chh`fGeSf0dzloDw1x(|jv9J-J}#!Kbg{pYw*zoa zI-ed?qW&mIdg&}IFbB~Ky9HeR>z0SvIUl;;R0wkP+qJGqpSg-ud9IAm z-?KBdZZK^yzI#_Ie@ilqev`()_7`CdyxbwEkHI&cb&Q+MV^i!2Y|;6nVuy}h7~t=TsRNJB>${wg3v!CHeSv$;lShT0fw0=AqEvAO_;C zXw!DW(PWgH@+0O!*clty6u5TF|NPZafYuK=+24GO)w#7DyOzN#?`wec%>j$sSClD$ zAlaqx`cH~!iThWcbvK9A{;cYSjsB${M}xC~lY*2D{8>(0M~=z8I8xoOg@1m%rRrT! zQ@*y|kH3x-dPA)H(Mbtvd#+w@rNnMsGmqf__ps!t^u~eeJwdPMfn`B=&KaQgsIecD zR6$@dOmM|}_t?6^x0i|Eqo8r}S6A)~-}_h9iJbS5QBdd3(}YNB`G22e!ax7_CZm1= z(Ffg+T)l(6-)9F$XWt*5$=+8?Is#wYUG|=Io&I#Bg{_$p(3IvaSa&NcT!G*5g0_uN zfj3&@94@Yoc2dCuqC|Ya#Ca>rdna8>q&CT{=fcN*rb+uFU+IxOUxv0@e zUN1uPI7YYl#6+pFKoHqXWjJ?!q)BFje%us1nz{WpZOhxlA;&OCs zDGF#7ZcS#&J3eg&j{i0p&-LUg_vc9BN88x#vLk_adOr?7^aTq&6poRIYiQefzW#?l z=GSDSO*(~XjAIN0>2XQv_o+BIr`|E70+U9iEOuWD?+KJt6c#Fj#-f3l*uw{WBYftM z4C|hiBQTKc9%AT1X3SV!V_S<}MtQ{dgUHj4(y+G#m3r-o(`~@qk(u{TyU{&bzlK{f z$9J;RPt%+`uSgOxN{YO3#~v_nD!KXk($QBsJMrc)xr(9|eHe>PMH8SBbVBQd;LkOt zm2BYIuDm@EyyUkiqN^OujNzWbN&zYDhmy|}hRZcxpYCA9EtCbi>jSmtMLkAY}@>czBqeZsBx9B)s6vmH}y8co|^u4gNgy)+g100s`y7TvC zspdFqfCkY5{!iD!Pzm#0tDAI6nwGEXMq#jy)bds|+eoBeXZg5XJ447TkNP=|i0t+b z#v{IY=ZhTZ?1-RBfnTIr=GXt0yQVU#aK&jd!k&lwbK$CW_RTVPwgzt0G;&-SPz~lt z0dn^y-nL3)YcK1V`nIjK{hu&qa<~+sd;Gd)7>V(lB-yDvsz{G-c~%CvQHO5yokqHLnYj()=R% zn-G*+s{m@pYu8)?-TCmlLyvRjP-V%PM+jlL5G2ibX-*X_*-q9_HNja@4M7ym`d!27f3{A-*OIeZzichlFG+iywL3BazW%j^*g)ixfoz>Da7@&C#g z|B(K-AkmAvJPta^eL(|aoi{_zVs5XH2f4^;S#)%C%eh?*rp&OO3vvJ6pbRR^2}k_60{%^%XTL?FY?j089jpw8t5@sqhAX1aQ##VH1Z~ z1Gmz!ld1|BZR6smlsRE=*P{GDHJtFlMu^kLocdT413jtOmwuDokVtV{miZs|Wmd^f zmXKk;|D@iEO@cN1(e}r+U|V^PjSeY>x2OgFig|sw1t;hr9Vfy62k(UXc>HUmk9d!A zVG5u!ROe9yfw#@j^pC}}rYXMFxL{pqVj0O9+Os35<=cjIiLZ(Tmudmo^jB-FjGj%= zn8=H5g*ZzRB^&HXgO)r3BeL~v>0d!oCPQA#Dgqb<0CWZ76~yzDe&(zB1MeDM34NSy z{M|1mH?`w9#XoL2l~L)a-yIOA>XL9=TsBJ_)W2>PneZaJ6k3C@5}O&? zPOnO{6vV5@SgL##x_eqF++UBM#K^cs2)F&J6^OU_8Q?(IDL-O}aC}pRl9^!^I!@CN z%-%dnG2ELz@cT^IFj>e|xIra(_pp;XM8-R-cp>yC04xG%^Q z|98Yp6*RG4P(snX4LGR6L@&Q_klV^-wnvYCvxu- zt38j)y^q~jLC)^}{wyCVY2&(sC5arNWTF{?CDL8lK*x2Kxj?{QI{DMqs8l$b9vnM5 z_giN}4hxDwJ+0IIAjT2iXrovvb`pm^h~z^TJTse`!7SCQ{dI+S2%U_(>DMsC(<{5| zs$rgVZfJa!UxF`$^8KXC&Litk=@qzz8)*)6!3IFp9$$=enWXO}PzWjMCqxi^QN*?j z!_`2BNWq7KO0%c-FymP1S$xV`Zfbc`_^ZIgu@Uj+FxAtRP#Yk$ zfIJri`s_a~e$xCut`emSj1$eaI<})*h#~dP`{8?|pURt(mSSJsDMol#;r!;Vq6vX}IG@X5$e*Q~N>&V}>10qjR&}{Y%bCtYl zk0w7{pO=skg5%aU-6g{@9;@zGwCW14r0+bN&H*kR?(+Q3zfU2eT2T-jd!^e5v>(yE z=sZnr5gC{Fa1)BMN2ygUZeT@x>esQ|um7@k<>Zu~O&Ll|zuw6LYz zm)bBwXAXBVmrsI!d^(!MZ-&$|qh_$ziLhH>@+Ksol$xw3P0s4q z8T^_!g~mElooo7&?Q8e71mpQ;a6*;vHQ^5jnT>O{Xin#|`|DeRv;ORxZQ=}rW=yqS z$TqP76FHUVGsjPi+LdiI2!Iv-apbaBy3=m7@t4%lw6E#h$AP%x5rH3a33hu;N==;f z51?rCV~cI!Bv+ryj_UW@tFB6$H?tKLUApJ05n;WkpajGS2eg=i?QgG$qpXPR5YH8( zkI&tQeQ=W9-yraWnml9h00q3xqkQ{%od3WadrTGd$SxDO=e%(|`=7>ri;(v(ofo zUTNB76J1C72=0NRFhBu5>oVx(`_~gGy3>QxRg^i&(1>&2TkgMG>6uZV8G{ZypJ=>S zT3ZO=LQ0|@$c>>&&2$LDvlDwPHt9@1ewSI|lPL~Z%jf+L@9Dcqpq)#;%hFpQke zv<(d*aw^3Ev@bx$p$Ed%aQn%eW_g0Q`jqU%cNKvM3b?_N%cn?M&Aw=lrLG)`8! zP2`L){9)hY-H3B5>Ydb;{v9k!-Al`nQxyI)UC*q~_#?Ak5+Xy+rc-~fj^p1xnmIa^ zfZEgb3Y*?;K9Q)(`1K&aPdA=ygzr!~^AtQly5)eQX%0BT$Mhs^)_0H~ zw&S_{-1gce=Mb;Ou-)vaRl`NgRn`5?bE*r?7O6;YsNB4*^g92?_cV;xHP!L5$hz^< znw;C0CX;l&9iQJur@&sm0?GFw_GkxmnfzzXB%8Mc>-V+%JZqwiI#DJY`c@FQ?mcVE z=WzI$=G*^P$Q;GJQPhV8+3)GkM+r7g-2W5rlv)lL z4)`Y?U;N+vI@3P#8%jDIqjt%RBLeF`fOQ1!ecbFSo<&F~Y~FkL2UVI%?mtYE9Z6#Q z%7~4VVrQGD;9d}uhD}iy<|wcaaIpv()b`*3Zl)p0+*mu&I!bFC?&dHR2t_ zFB{M`!3Klg_i}4h?C{-;#Ksy=~iH<{yi`dFNybFelJ4h$3eQLp`E%OEOHc{Q{Gfm5Vo!Cc>wR{3{%}?R z{26voqJ5U+I1+Z@cc#`(72ZQm{0QpWZa6y z9`5Jm^$i*>D#exKEd~1WGv8(2#9R244?TF!B+ikaR%Hnhn!Oi~&;-YE7zihy(C=|XUzIFD%=IGd8SPHmtLmx(q&fBF ztTNtSRX)sLmQksjb+7ga^Q2nZjmqtvkhxF`4;7G2d{G$2TPN&C%%6Ue9SD1iB33|X zpYDEs{j^O0Jfez=W8$Z~ZtJj!t?p}5a2BQW>^#}{{1DMM8>cd7Gd!YSfB1eQ@F-&Q zHb){Ag@gn;rF_xrl#ING4Sc!o-Sa>{0#+BCAqr>+Dw#8V1T-rs2F8v9TmT%6D1`);Rz5oMqw`&05^ zvF6;e`5)+4SxUA-IaP1URFEhQwA*;8W=REsl{_@o8+!Jwut4+e2;9K1)vb37&KpTA zCVg8`P-L?IIB!!Sc~}BWjm5%nY{yzWKEXlZ;#zTgNq7B}xbWeQie%q!{JA&*Wd)yy zEbunXB85L}3-B#|-a&W%akP+lUv9_rLNFE1r<8YAfn%;Hu!BNO(KCy0IR!$FLohSs zSU7!t3=s|`)532vi>Omw=H0vUjZnj;I^ya2pfw6JBpi*t-ctO7Zg8}9fX60c@tX?5 z3n(%%-@d;p^y%IuLBQe^z>u(6hQBS6n9D`d=~W5oN>{0n2G%(lZ+HmMb~ByOD@t3F z9vsC-hkm$wdx(KP!g(dET+PWJ6@-Vhn`CQI73?i`!(p$qRK~l5Yv%hwF%4e@_r9GV znPpF$2C@`fGpKNrRkBAGwr&{wHJQoGbwu({&H|e1p>~}2QW6O99CGT>mjzJg$7(&R zweRw+AaCF|*T8Op1|Lx@f*Z;}ut`^VKJ>EI3xCD)(6omjcUf!8`l|cP-&Sw-RSl9v_tD1p&2+Nf8bkk3$T^w;;S#YDy4&-Nx*4$bwIxdKPm0lqS z9Y}w6u`C$nF2fQpr5tI%Asek4{Z(me%5u@D2lHQ5WT4U9{O)4m0jIzY` zx>mwG_~~LmaN`I0P5QtYZ^Ss$l;KsqR-KKZ%eMzzGxmyPK`y^cw}rt(rbiTNJsb5E zhbiRuynjp!l0d6;sqm1R+lyOicj?2?<{t}MV*OUgVzU4Z39F$;_h$0sl;`aA#I(2k zWO5!+FiYK4{cB%uRf7(>QCPDXK(kdse(k$lAMW`I2$@&pKk z&sx!_Nb!7TjB11yq9UWvY)fe^X$a6asX&BCJv?^^ z3e0B${t@157`&8J-Z?J`199SCJ#yLCwgU-{yl#5In3J9>v=kx=iKZ@gE<%01SRO^Z zpS5~59Qd7+`-904mMP|FG+>Uf&Sd+5&`(p1siyP@>Pf22dP?G1Xh>V{;_uY(K$vd1 z0KXu_UnTxAj^6H6SpHw%tZCuY^o}PK(?eVoe9NJE7bBBYN-3HrGF7y#J4_LoHbKob zk0DU2OTNfKEjk~C=Q+Jnsy&=hnLP{?trPJ+OGnCTg0D5N^J`ix$g#pRYC94ImC#20 zHWP>m7!yKZ;k$UqV72dX$!zsU?h2=8b&m2{O!P7NV`+ ze9HUjpU(%vvgrPGk-FVnVuNZgBydgNj1Lr-$?d81gIZy_LsU8e2bt6bd+eWsCf)|e zj^_~t%mtTceVFC1nsye!7&8)yWFHmMJw6?HoW3)G(GR`higp!&*7rwqG6hrjMz2L% z$q@7j@(F}ePRU!DQTQX1_mNGeM0By$56+HW@J#H_PW*+fSQ1!L=m>zYK@ancTvv0= zced0t2v2@7?riDt6m8CD-o_Qxmg8xtr{5*eRhV}OfQK;kg^a70MlJ}6EI*Wd^Q(4V zohDqv(-mDnGwHOn>P0*t+MwytEJz+DxGvxvX(!(!2oFSjaTX_g5V=>#r~gjqn9>DC zu`=sC_Cgf3Y#Qgv(riMO!_1nD0y%FJ=kY+~g;LH%G{emBj(W zHY@Budub_z+(+%Mf&8MG4OAQLZY_w6IVSGr1RKzfl=Th@VljMGd0(?5=OPLXF-F7h z>rM|8MiNJa{^|&XKVs7BS~d>2>1rzMEy!8lJ>(iq0g7E z~laz4XP~~qh ze@><5mm)W*wf`Ts-a4SkFKi!2LP8Nx5Rg*omhKji?oJ75M#F#&5EThQy1S%HItJ1p z-8s5pu+cF1?$hu4`@PR!W9-?^dG2%WbDjHK_jS|ZMfj6Ze!0+p68wuY@Mm3zaK)fb z6Bha6$aAZveEc^;zZogNc?MBm2@DiHs87RDyR}LsE&)6i*K4A?nBMKK6ELGle{;l)a=1% z^A*or^!Ay$*x7bZ#tKLV1WIL`0b20CfZ_{3eu3DSBFZRHWOTCd)Yq+NDtW?})M|r0 zg!a@g5ETOn346yp#i`p0nmw}FHrL*&k7dND1}`3*835faf0c<>R;QAsx?}&OVYlq+ zy^7!ok!+P8s~*06k1KGJm4zt7*{of}%tufXS@kxO4C}aL^tod$ZiqBi? z6uh@F_@cg*zvb@GQI7kOkX=52Eg%^&?7m}w-Nfv{}ffo&QYPz zq5JW-E46_1FN8KxqvuV+VjD;^(R1bU(&x+*_9s_qwG|7AckzU3{!gy13(YDicr_Pr zyNpt8mq4xxEH^ZYN!-KQu7&`h({9p$mr>&9NvKo9LK_?UAaN88TA{%1iK5!>rz?M_ zmu!}~CUo1fE~9}?;zr5n=wuP2pUuCYN{q$gH&n(Nn>xPKQ_4dl;Mi9l|NfCs<7FiJ zqb|2FzSXbNk91caJ@59h2o8SMB002*!zsCI>}_*wN7Y&YH^mZU24)3Oa3^k*odz&MRlCZ(T7AqcpLv_{)x4n;m zK008A2qgub<)yg|KajwSWCC;E_A&<0it)7kf;x_nB@G-B@EXDoG5pKuFc5}khalUs zB1=@b{OZ=_LGX2+E#S8AP8nk}Fc&Tp^c0F4g3BarvYt8$kk$+eh7;|r@g;|`UKnj+ z-I&1b3?wLxCog`JG6+dGj!*Xy=AMuz%dx~_q_^g z<+dOv_<*z4WK{*t-xtsy_5S$zev%4KecofTth&Rr_`?Yj*<6~_Yx2ld%4VGh+sjJ+dw@l{(f0ZQiGu2$ z0E`h)j<@kc&6+gZ7-4$WGZZYdYJo@_>OOJhds42M<@F@pRma7HKm^{W1GBF45c}b7 zH=Y3X;hNy|cHd7z#u*}ZMuEx+D!njaIEQN&A{jJjCH8da`4Zo$7reu1iK(RJX9oEa zy>SO~FQRDrp@2W?#Ctj}_|a%r5^0AxB8xKX>$dAr2vzgiP; zuXeYgCVqR17$MNBFeMTDCcgP>$5J(GpV@<`#o0mJbC|L5YOmA(tU@}X>2+O;9TK@w zb;cE>g{Kp4zx=>?&sK5)Xs5sQ4;KKp#a9qfej{f-FuA%-sEnuNDah2>^3&EAR`ug| z^}gy|b_Xro=J`pPBwHJ{@zk&%Cs~9?LJy{+ALmNiv7QsVr{4!d(@L{ojpH_8t9@|d zhf2N7dh`|MpmnTO^>fNoErUKVmpO%^tkwwTQWEy7R*gXXV5qSGBF*XtdQu*OWv&?h zMm_bVHY088irpg|8&8wsZBkA2aZH$)!3095Qq6^I-~7!ih7GDn+fY$qNwL_=ONy?C zORa&W9YG`gx?FwE=wI^G9-rDt4EO}A{C*))frZF~h7T$J003ywqz4m4z*1KA;Nm7z zksnaSOSl~7*^M{LO}Ti;dicx;tm}?yu_U8Hx^X3ZIn;%;$;W8r$w80+dR=*CD+RTo z<&8<_(riG8&I)~%9>B0s=EacP_`6cEb}ttQXw7hG2`lId3bHM=i^8rQqSkIZdUjwf zA+p8#!O}M3X6a4Mm-4=*x;Yzm+D8t&g^v^51>(4er~O4S8(r6X_Ovz=IZR?^%mP3< ze`V|*FaNcp=0E*28Q$hAVqkmfemCb?s4OWFx%6DOc(=kDFQbv=b(`&DF2-K>7>=G8pLd?Fubv+U#Bs$o@K`6lFqFVT%p*?LrUzb+;GqgWx!0lXE6`}GZK|i`zye9PQ z*SEdKW4f;9I)ic<>rz$0B=lQ`7u1n%sSjEbZ4Wcs59kBWO%&1Vk6)EvfxeR!4m?~V zu4%PKmVnVuokoGtgTf}bsvmqcZwsCMv%s-8z33(*jH}JXV6Bdi5$pqndk#s_ zBgG2eQy;Bqb>hvg#@roos7u_$NoT>K5Aaw37KdTsIZR%*(!ykvn6Iwzb&R;q&sM}ur1Z@VGFe#E9@@@ zXMpp580!s7xd%QpLc9ND!TESgOZ*{IVuX`<^}C*<<#e1h;ACMWU|-^9k>>scdbwyL zaWlIQXd&V-Yh&w`m*?(If`p4Ro?58J?B83bSUr8$K)>iiRr*!1gDsUjY}d?nz)muX zwE0%V44-q&ek)z6Ptu$1Z`O#@b8gakHP9K{Fg4@=f#M)}HDO9R|%;i6! zcDpO8tkd=06xpWdHjicAvTqaKSE~NP7HC=$l@#r)`b1iYq>HXB+qj>?Aky(=vd;`! z#4|@`1$MCxgEelUprW*pri_7ML8Tm_6t6SS4<`+JTnzpx6B(})Dq{OSC+8Ts`|?!} zbLVUG>s7>jsxx~?{&Dn~gTnP=0gwxnKa+?sTH)hkbvz>@nEndCp6FaTWrju1cara( zhRdvK767_^@w%|EmITbnuwx4$!ss2lx#d7>00&SY?!(+5T6 zO&$^;lDIyZzxh&}VOkG)hqu-PXYJWp;H-pq*Zj;8eh+-Y7E9l7V294ZW?F~q zx|M0f=%O^pntk}K9()@rWFZ0)fS>XW; z?k+mkb8OzaugEt$g~64iA=(Tt@LA1%t6A4qJ{xMD!P(Vwvh(=@PDYZhuNR)BCA+=@ zlh)jJJD0X<2Lw|lVE5nU9gm1%y2fv3d1?eW4AMfss_0gw)Xxs$86lLawhF866-&U^)RnTVt`~ zUq=T3sXr!}48`>yWcy|5%PBMDYV02+HSanzZ}JJ+e6H3uE0*S|Z_^XaF1JEZ^$6#N zlsH@I^vaE+Q6(-F38P(8+%$z5CuOb1(>s}WJ3^a)L^$t%w=}WpLH2V785Ywwoj+My z87{tVO}eig*}`I>3#oj99l{Kp!0VG_nvAmtBMDq)puQY~>Jqb6zoYQ6U6Ts?(oZ%5 zweha$UZ z;IRvOlAsaDjP0{fSLwqlc@3bN9@FZG;g@>1ReKuVNTjsV$gw?FT+d~xYJnnX1Z>qk zDp1;_*?i&LQk#WorZ3hvgCjWh!QvN}M9RH74MrYwvauDJ%4p?^Tc^UBeXKO^={ZgfK6)z##jux6G%JUp7WmXcVQa@6# zzwSY_oDJMt>1)fD-)dgf3zBD+`@YbLq%*IpS-jglkNv@J;c4t``i2^uwzG2~mp^XJ z`q<>`+DeU(cbJ~iEVjjL$+?D7YZH*u<*F&w%^>y_LP(F@?rs$4WpM=OJYbdcT3cRW z6Mt45`WZX!-n0@8Y7?@^{Vk49r-3YV({D z|D0cLdONc31ovhW{izfNxeZFP`Cpk7QOV;zh1c7}>vn`U)vs4kndE$ZT=f%wpf{9Y z(9YBQ?G-B~?z35yDf2P&t&NmbvtBuSW@Q+VLd{X)2hy4@)ACG*IOwu0F2P&%P*=F0 z7o)GD>4#1DS;Vwju_f+e(yB}hGm}IeY}3k2j8glSi^dT})^`g@Duo0_L*SDcEjuL* zW&3r^6wUUco&Y1bm_Die^8?meli&FWIl;=MC54R`;qaYIO`4?pG* zAwman%Q52p;8t9&X{K)C?x}3)p39r^ZNkvdPsP7u$Gi?6uIB-5O!WMfJ1D;J5@39! zRmNF+u4);=#HDug%h6k%WQg|@FJOZM%Pn!C=Ht6xI*B~!U%?+aKloZZKA*jNL6=hH zl8K?w#Q*QYxKl~}*KDQ6f!s8kHF+SfB#;~75|_h}i~HMvfMeABzJp^!&ZjDjTY!iH zN-CPcld))29CbVIH?NBOYq19$N84RE*qU*geNxpLq$f?(?lG$mF|M(|WWAX>m+ z2iP-j<=-7rq8wNR?p$kU87DKpmYBBp{2wGHwiyI_ld3r!*P%g>tx6d>m%7Im1Er1v zld_?;LEoA>$dpE6qadL2&7@qu>sk74O{2P<9lorguvP0ri5(HRu;=*CLGr}a?O63EkAB`bDhKGqZ0Ek z$|$f!C6-^nj3B9pFj2ELKho0O#Easirxo7U-}du?lQHGd9|p~S&RgKK&8->wH(wgE zK%$^Sx1ZJf{RPge2o~e1j>bk{Bm_4JBy&zte(Psj7_58H&^DJ_<3W)LuJuQA3x+Sq zIm;fkRuQo@AZqAau5V1is1x}6=V!IK=?Pl|5dp4_bFwxZ+N+-1KOebEZHXZsxSQ6k zKd&g8{X9^$&%nL0P*Sm(!2ggJC<#RC{p7pl`Ei2uBkIIAV_`c*!iu)VLeMsibW@YPD5UllhDV($I(gNqzAF>mj zoieEWgLlo5+hTpbWwl>9;CmZiooy>rsqLe+9a6TImYO7GAeH0~pP>QhOWuxO_&o^m zPOlvw+h)Lhp8L4de9!!seGZ%<8OulI>XT&{7os;Duus}^ZDqbEDQcL}>}^zL4}pYP9)eViH|dF_Hp zhv}&(l9_)ra8@WeZMOn;>!*f;BdwK5d(vAE(b4N(5Z2XuAK;jaY#JiR;$sEI=!6Ip z=HKsn^MqCfGpZH%UyDxbO&={34v7F%*W&F;zZn~Sb&XC`lo)=P&A|CK@lbl3zftVf z-1mK#m~Oo9+iJ4!Bow%%Kx$D~*1H0~qRGk;{#su`Q!knef411SfwZj;oAg!sQA$PbJFQpw*UI&=VsRb?OcL_&O}syGx#4 z&r*52t>Ro8j|1@0>IN~LxP$SHDyNnGvh20A$qd54k(22@<-Ed{|I&W`Fb49Pnvh`K z{u{e9&=#72^sO6MPeQ4H{!H&Rb4Zi*-w|jP{Ph|tV#~Yzkag=5JJp*q`ne>%TaXvH zO*{zf@)9K(WUBMm`A?#ItUJn|rPn&Yi{4 z@-mV1)JVTnPb&Q(^>hcvGK{_ymvSjwSVgRit^QpNk)*>zLKt!26Tnl02~*R?1mqTc zw_cB9eL*($`ZEsZN`o_PWh-98Atg{*($(yRYD{*^$7fK}@5?nMr^;7hyXW7(`&a9U z-&8+W@K3doK?M7>Ij$ zr@Zh^(Vd@nzBOXWypr^dR4Gd!ckGF{P&CSXu)If1IiF-1%*Hxsvz$w5{w$1jKXjYS zQ6zHl!ySxb?sFcPeq(1bOJhrgS`z3Sw!|6J1$c5tctjHmlqEzf`w&iqx$~Jo3;u3Be_)<18#qj?%noKy1l1Hz3|R4u0zFGjNz3 zz@nHw_P$GXRK4oDa+=s)y-fs8-pSqdoJtk<3LC}{^u|sXslqU=AEh9YudKg`h*j`w zjbAoz)VBg7+T=xekW{B%o4k9YBpv8_87uGIJab#%TiWBvRe&PT;&Z~Rh<6J7HER5I z)}xb!mMVU9RH_r&{Nj0aZ(6?7c-~-~SZ;AqAAHZQy-HXxds_^)xWo|BC_MUN4lmQ8 zI;N*~2HBjhoEq_%R;tDk#1J8y>Z#?BFKOO&O#G-n={=P%4ngLwO(d)Nh_aY?b4;#r zwTqUv{MaHa&y)rCNx*8(KeYMv;82|0111IEk(Cn(`kwgHz=MjzXX1pF}9(CwuK*_Sl+-j&(%m2dBGIo|3wz%X>w{je~TNxx5s!Hu}& z-0j!vgUNSp`V&uNAH6d)!C6{Y zVdxZwX&0uFKj?GU+@KY4gU5OO*i|3`&o6EqC;Cp#V{LD7NAjDl>d@sm4V@L*(jT~; z^#%&qtH&NU1hvy)K(?*q>WJckKF$vm;@YB{a=Mt-;*M?xmRzsq2eQ2}neg8G3EsBJ z_$IU9-rlC8D*Z#^v$Ru)TSKTJwO@mY_Ln4QofGF%eKLp}6st{n0b``(z1{C^esr-U zSK{E|PlG$op#t*G>$HNS!yPAtZ!4i%G(4w_m*UlJYL_lDxdVNng6?Yx2R&g{heddc zO7=1!Qp+g;qdV3?OiztS9ByCBnCXjKio^*c6XSq(w?niH(w|#zi^Hd9gBw!TV`&%W zPpGemi?%1;)${dQUMp4m)uX>j68iB~$vw0@p_}3hdffK8tZ4z6iCNXoItAPZp*Qk8 zk$*btzLCOqN!6{eQi-NaSO)^dwooWdu{wWY?ETI?b0I&$)(??k?`RDay-K??d@%f| zf$}n~9g?_%4%%X@ke>@-b*_flcZPJP!ViX8@!Lo&g~bOEh}$1k1q}C&r`V#e@M|;z zw`a4XXBkD0KGc4kOpHF0s@`s!AH}Vx%DH#~Brckd^L)SMO3gteget{dgFw89!oW`b zwkR%S@PGQ=m0w#l_v>nApmUL#%**b~`^y{W7Wg$mrt=65dCox#fnPHf0pzUA=Ke6? zJQZ>U03j$woXbs`6JmCn)RhXy_`b7RU@YHYhNNM&frw3HwL z@dr$UK^(D^$qepd4dZ>dMlnUg>7P1Yq7rR7NK_&=vKXSj7AC&i-QBvDldAYN9J6mPz_!QV)|ti{85t@i5o6M_L?|LZ4go8WQ0MH!*8 z5{0K-X1mPD@P1P7XGC)`=e^85Yy|Ki(7ebigR4y}$cLvdtsF{ef5Zi+zF664&snDHD zt$=`S;9(Xh=l5e^M79mPZ`sRRu@Dl(*ZgmSO0WgGj^(WTq`K%PQ0u3B!Ogc_KS6}i z%*a9he3(i=U=#X?RG@Yhb?osofhh)@Q=SR!ExyP|A4jtG4N-F8=-iz)qdU z2*s+bSgy@}D)8Y4WC#X(BV^W(R%fxL*4{a;-}G=%XnEXUru0^b`Jiupt;~Kw%zs{U z0aIS>>0ueAC_ww3&7$|$b5*LFYJyepb7?+ozIC>^a1DXxXwz76(R7`4{WL;97Msjf zk$f3WHh_b9Hgu`UQ^~oaB>{=jA9P-BY0Pl`D|#^^`3HO${SsWC8iXR1@V>u2GYi-w zAp#!qpn`@ooQ~orb0Gm%qECs0ARs??pOZDF*KWu241JcbQ4wk0R$;&vHq>u58dW*(j|BHmgd65HMXHrU;o}O@WGRKsLPgrok%wny3Ko}- z20W^|Z+kQ_I6V&x-_k|qb~ndxNQ;NYn&+)ZCa}^k%B;OlvE>?pH*_R0 zxhg84<5<`NpB=QXpkayV7c3r;W%b`XVF&Q)SMLw3YAVou>eykJpy<77C2ldzBE?`0 zey2Ks-)XM8%>v_6ZKlxOGk=%Q82S|5gpavam2p~jPcQau#D|37r`Kc$Uopf;R8E|t zue>l+c415!ZhhpgYFf_NJ=xX85wp)V_8I)se8%09@9hi|wcm?qGz}v(^LreFtvq6I z_LMh*KZxPiMFmn>%!Mw8N*$|^%*bZVugH#iRt0*~1FXT?8}bFoN16+~(njLP#%Rtf zsImIpIn@O-aUXg&aeaD8YdX~SMvlpcq8DA5a!zcRKe#i{f!TmYcEHYkBr|zCfe{d4 zKQ=b>*j8q-4S0|iu<2?Yp=Dht`g|Q$Y!;@?uReA5algMeY@YXK@@0H0ZN}IbH6I_UE+H~#j;p@=gaS)O(cmT2?6Xw5n z5nZXakgnC0#kM1U#hS8R~y{pPe8Mb`v$pJ zakoeJ+K6cGWUTlCCH|u}cmn`k`$4au;AFMLGe`g*?tU>bn*oO9%N z^YPIycUBW=3}&EPVN-rGpMSsiYsSp)M214rb}F3ty0hr((`}X@$dZFNMbeKe>5Q+~ zRaItSfE_27rcY+DAfG8`<;Mrq^zQ|suL8zsXR>h^R>L&t9>1c;VbB8H=@uu-NsoTR z_9X0HOJ)(DmL`sVg~hnF5j&m^lryS&z?nRe@_@Z@)?)IZA^vgtilESlMFG*5SD98k zBdJo1FcZ94=0pY|4MuaK#7zxXSM%R{veryeDtjS~9I_|vHa|*ze#!7^7`igOc!;4~ z#S)~e(rQ4@Q)_{NamyZL;sz-Bp^r4pCtM%5l+&fsOd z%FjN^vVE?9CN-ZyEv_6#*1rmybf#z4*{f?mM>Bg4@wY2^#|b=OuMLCp5Z9W?vC0ok zMO5tZd;@Rqw~WD96!yUoioH8iKgB3U$lW+%vkrdj17{l@j75tHz81gZD08gZ4zSB1 zOymAd5=F&B?RxOIJ^AI8lktX(=rRB>d3h`=B&?BOfH2VyCKP-+ep=sl8((pEuzfd`NZss1T;2kQD`5kcoA@w8A9x3-t?Q@9 z`4R@Ic`hj}UwTM|c=NMiT|pIH)JVL17G7nt`KQ`S^zonQ!o4B3LyRinsEuYngvA{%1g(QR$G%rUiceCM~;QbKs^HoNPt1C|AoEjKeVg~jQ1+By9 zc6T>dS1x_reLOro2sbW|CF@g1?pxA-qg=ykMvy7jSH=mNpDR=Tp7(M03I2G(>8&WC zyhc=N->GUrt*Sgfa6zLt<0V@?FpKg|VaQF@E!3++OrnbM*r;KjhtprY27EN5VK}f~ zuBDq1A>FcP$0YWx2gXCQYZWCFuRVspYxQEro9(R{o`PMb+b272Yh|j?vrrX|-Vu1{ z{k5`nf)2n@k{or=%Z29L&Q$-2_;mOmE`TUq#_vK}dsZfeU~}LgcQF46rk}V1Rgr2= ztaW~!$Dk`!jEP!r_Cd157q?#}F{%4f$?#-++rcnZwB?w#Sdfk<;cw;|{e!{H&xgOy z%LbeyOlJ8xyf7QYM2crO>)iI3eQvdp!N6EHJ$8&*?=#99?ggy5$5&O2a=DRj9bYpu zdRi7~?LN8@TeZHgp6$&Gl1bRzt-)%pV-!voHXaeFW8R3(2}Y6c_se5QtRCJP2%mGR zFx^?-$s(fzdwEKOEkE_<@_m18v)Nqf5tF+ky*TmvbL1gpATt@p*0=c$!S-3bF&`)| z1IH>q)SAfu1416k;tZ%r2SP#=Fq@>}t8inXgPP zJ>hT>m#U|}E%IDlLk==nC3iaHJ2%dI8lG^K?4tbd!LY4~gW z!KikieqGPIMU&njxvIG?6WluNEGvjr+~FBaa-7EHT;Q9Iy&CLP8!-`~7|)E=lAEvV-AuVm z^g*BZd8!ql_v1Ts8b;+&43$hAY!Do;Nhn>^{UK2vENbQEFyE}xV>ih5i%!Q#S5R~@ z4;$9SR@WUfOdiE(7A`M??PDz@DpGuDQVAKDo{QY|uE`)8sN)=r&xBPr4meYsj~&pk z^^}8mj;mv5rU6j`1_gx#q=yMerpbOEBXI)#h0x#~&U4yNVz=(kyk=Ke^oxUAczg17 z1IqTo*d|VTLPVmsRaeV$YU@B0=grSRC1TW)`g{Rrx82P|)3Z>cIT~uZ`I}AvavFfV zByBtXOk<>VZb@@9TQeex_+4E6uNoHBhn+vdWj-*e<-B{nOt3Gaq3`&Y4aE2An*hY` zO2U6nqV4z@jW0a<%BdxHsb2t)@rhNBqbpTF?N>)fHY)!?Fp_cg*XKtXZ#Qli6C^~_ z?x(ib1s|5xEQO);#~k_HmpWy_A+p;W8+5km6Iw=h8*c}Rh1r+M;siFyvvo*MSP7bU znC^b<-&Qc*#IurCKa-H)6s>Mcl6xfoC@#cg^9cLr>1J)`i&?$%|0LZ1X#cVKFQg%~ zHQix_e)Q}_;u1UHUgCb(yZk<#&ojdx-X8!j1Az7=8Z-Sp|I$`r_>)5NGdmMC`cU#} zzz3Ipnb(v2NZ|SDgc{_|3`q)cUWVeLBG(hETAA0{{@1&O!C$}LA&b;NEPH-zP~W2m zYZk)BA5>aRT54T>ZY=8*cJs_gr8xjEF7?-dxbjMEe1Eprv+(wS^9a0iA@{8jM*)hXvsetuU08nQ;_rV;U>R|L zmQuYgc!#QzbC-HEr1jU9W&7^~*EE8)zxw-seZ@bDgfOu`;n+Wa{x=-{*E>?z0;sX^ zulxU>FFHjqrODoY0dth1dI#X@LQ!m5myA)LU1k6HcdGvX@%scgnB*6zEn=8S#c zeF;yrcK6r#HCFXFRVMo7YmHNhKkfQlG6@v*wab-t;wo9Wu->`}SrCCzn)2EI5>Z(H z*5X2mO1Q=7&nWNzY|(%0|AmL|XZyAWbcFmjT!nltHRdR(m1Z*(1VxC1M50{~B+-YB zpX?5Bi%|`10TF)edQUhPhCKL zdJ*f-*xdj5w0s8NyPt$nik;+9io-uSzNK6AmHFi$@!iGCD9{&uqPktSA=0mAJc0bJug@QIM9NWql`Wob~lbgLk^;I<;r5 zu2Y%U?A<(oYQ>bKb}(q3C6YzPVTrGP~3xefs#8pF3w&Iiyt3j>i?)6!lHCE*r(;F~A6 z&Y+=ODuyHjTr}CreQ-#^Q>Pk3YEI}g9sy;62TM`c9=&3jS?7yA$%omJ*nfY?&t^&I zpx0v9%-`eLOTg)+n`ZCI*S*=$Y>jr~O6O}eP2x)rM6rCIe4ogLr0B6}7k^+^(m*2* zME|2g?jP5vbE)~e=;dG%7N%$&J$47AV!tIFLmjVpy%7s6 zkA93#yz}=hf&A~~5vc!s`dIYofKQ2z@z9$NZO30!ZTfl&Z@OG(c*TTxPj}1vHJVu` z@zFmwIX&-VR`)n|nL}COh5cAGgZ-p6k6K zPN>Z|^Nl7SZ}nEU-(gbdfibl+B=@|)da5#TbdS-0Y>IVDcr5aFW6)mKV7fgb*e^}OqeF}9(-Ve5AnxZT+zDOt54V7Z0LlK_#KRAf)7=o@Fa?8R3eZ;HFr zO7j#b?RCMHyf)%aHGEe%@B)r=Hu8{>69o}m+&z7sOW%$pU@h+2y3@YjPU@k)^7o*# z+Q_f<-KA$GBrG&PJQO(Tr#TQJPb!!Gn*xqpmIecR^}(g{EXmsAFhOX{QGIL-ErFif zEEzLl!s1Unu=_@RWC;ZR%KF~nBf64!bgEw7wF7lDX(-F-u84S^vxw;%w!#@gESBv{ zs{Dz5-_;StL;~H;tMzz?2x%JCGZD=Ycg35cRmK3_CY#S`rX&Ly{(e1)J7Rw4lgF!_ zyjcMOSTa(LktHE_aJ_B|6{zs}oK2>lE?th~o2+MQf~xfN^eika@Ku*MR{f=NNqGE6W%EOd(b z;*NFFWz314zA0}sWa4LQ#9MDvhwj3#H&Ev&5&2u4oN*C$%wrSGkaZ9$CU81UBu`lY z2Hn{2j$0d6TNSa8a_WjwLv4W^3R6>4cn^bL2psX|PuP{2wiX0y0fb_0W0tfFOT|gT zKwJxd47AVx4zx{^q6s0ez4RPYf4x!$l@xz0M)`jkrt=B99@bd9MqP+}n{ z0Y;Gum*}jG5QUg=C;S3Pg z_g|;$80``Tu1>Y&?r(r<7?LUBZ>y=hMbXCl!K}*)HoU@pS-j=}#K`?x`-W5J%_ZM* zWtOqM(;jyK%CIH36sqw$tvR_9x$FjYF(Q!~7Qb=XX-nDtYC`;?9f1ao_LnD412ht< zx=!(XoQ+BhV|m9Bc6gAhpUN#&!N2M&?&G&j-{iF{4C}ddy;nT)&8jXCeHp9#WA{@D zox;Hy zBqi5-(hGil^jGm;dBul{ZGXK-Hbj;-*~|LkYp>sur*HSrXNCXQdw)h&VvQdSA*e75 zSbi?+YNf_-0I|TSZhPcVcHa0oU-7WAaFH4#?nPY`F^(dXX|&b0P5I1?FXK#JL38>P z!X$Wc_GB=M-(oHdxkDO8;}%(3t3+(ftE32M!|`gmh@WVUD!umP{#MIPUfujxsO5TT~^${RiUg?Cp;h_rs0w_epki#<=lX!L5IIT=f4uuE=La-+{1RD@_GR z?z@;YYK$q5wGk5JO$9_J!!P=(=LjA@F_?o}5QPxaC zX?lM8GbOi-+YAPY#3h?-fmq(bHY_?+z|MU?MMR8MJKzdbJ;R}Mlup`jYQn4#CVn2m zDPIjM`$7ZFo@Jh4_Fjum7Rzs5XMzvp;(_np@565cjO7iqXkv7X=$oG{QPyyM{`^_^ zU{r?Jb6yF`G7{X8<$JM5ukgoPbPC9uidE)8?73+K;e8 z0T<)xM0Bd1m;bG$Lp5xl6$eD7c(+lVdV4;=Neo2x>n>=C9F=`RFuu$FDovxTVcu<{ z$x_rq1Lg3W^WR*)=b0;c&T@OsBTg^Bz-=#%DxR6(pL1YybUD0aMoZ;lM z5_D72x@gs17##GoT_i7LWo6Al6>4>u+M9Btl$WOhHps#F6r)71lZuOr`7YMg z{1w{{OM48l{GKGFlf+M?J)se(qSm^k`=b~dd}+4|z6CPwYcK@4jPPjNbVBgE@Dw}ESB`1A%l z>qvmGMs7BwMDno%JFYtlPAI|IK3P?Xb_G)iUXP}`ffwZnKN z6K$^kfpuu3ji18?+St+r#Mr&$74fO)CnmF2TD;rlZRhMo16qEe%rp!wUsBHi%$n2~ z0_)Q&j&C?UTnvA*S}G*4=kuFoC~5j1Fr(}O8>Ru&i6%}~e`(t9uQ}ky3v=RfSwSxbOL|9TPgSajfL z?vr6Y--$;yAirEH+vJ{wrKX~k)BvBxn9d7mkJVx4?y~%TFNC2mZ>0X>Y+33Aq&C0N z=hcL!? zd(g8eF1clXHdfazq7b`_C9kDveX0Ro0haH2JKm482LJQ)j+!s))ftvgm$1FE+N(!4 zHtRT|ORw#PK;X);oJ$ddy2X~)27Dz8Oz#)qIahAseu^D{C~36|%F-SLK=(F_2Ldux z&EBg3zCCG;N+iVrJ3x#Um7Fzz%~o=~Cm)G`9iwsqy$iqJIh$6swB*!5&M#Jg<#0H{ z(8;LAs|>xa45e~X*7V^eq4w+O%OeaCqGwV4!^81aPLNzQlmCFPd2R&Ncaq^41^yeV ze3Ft6wVKeRYT-BcpyV$v_-K5W3)Fb!`j?(0luqCC9?2m#PRW>>eSv<8r@_p20j$sU?xi~#Kku0+;0Xg^fEznWNNH?jD> zKXdbWT-|*9BJz#F*;IAnumf!8@b&&@3D)b8R1{2{38V4(LYI5ZN*zNnq_>P;I8bi5 z<=u6@sStBD+^H#ZuHLzM!7SwQQ#9O{E>@evG-q+q`0U_nDgw7iTamL(P{;COL9h8h zv}Lnq&w*`le5X}z_m3s<{d=hr5C-;7Wp9Y1!PXM5Weo0|fsw!-b$i0#V5Ffyn`MY(pCTX_lrW#J+gjngbO7{M$=4PsnrqLVDzC3OR;q8h+-#gR(SPMoIT5?)WGR-@DM$|g6=l%0M zUa^nP!mau2dqi~0w~Em8VzQzyO0WczR^!HJ6)4TxJJ8`KabFFafy&uo^b4q#j7;#> z$i1>3Ow3Rz!T&7d?lM;G?7;ngnz=A7kBHW5rqrNDM@y?D=BRt#bH-${S&vf;zC%}L zVl=hqdvhQn$73_3E1Z6`Q&>Hu%<_u$7mi1km_`=H-<{_lz>^oY4&qQ4D|FUC#s_Fz zZ$elrU8cVr&cy<>Y_|sOg;!blj6G77wbEPCq-9NkZ-oeq>HVDcrG><=1%>iK@!mIB zR7m1^<7o&icJb#^KkBl@X3oRw%|^oy)Hq;xLX02fE1P+lYCVq2Eh0tyWfOdftD1wU z_<`1KO@mqoem@mXLQO=_x>bcyRrJ2K_{8GNSlfiL9svJNDe4$cB|YFy=mmG4G>Yth z_2m$S4uf<{^|ONsgw+|-J#tb~QsUCn%Lv5NvKce|75Ash96ZyPycTq<^YeY-p#h$! zTDBCsd8IC0Fk;EX9!mPZJ0AG0`s4ee*vQexV0ghF$oqQmDBftYW~!}yt#JT+u4+(a zxVZ!hrDMLn%xu%iD0~>Deh>j=z9}-YE;AZ?KerH7Sc+QYSFUsGOGO2sVuwJ6z7%ea zf<}$AL}=m0*G|+vF`D$TLJVpvH0g2$;#N5eQ@xhx*GCzD_EJxyaU8>2WBv29xOqDX zYq5X|Wm3u@YOq5!+*zo3;?4;$@JlxQv?GMaW3j52iIcN_s*QwIcMnM*9!H1VtO!Wl z2KpY>&Y-XwspozH4K*mw6m*DRR%S28BBn*gxCEbjoVE1kf6Q41!Z_nz7#YPj5Y>#_ z@fq>*CI@PrWp)0&MEWPd|k#GqlbGQ${KqjSlG7HZNVN2oQAV+G>Q;1a@uw-=UE z6^RP;o6i&KcE8#d=BcHc461oeac?fUX1^G@lbAB|s!+~Bfp}za9$Xs2hz;vqFB@j(gk|%Lh{_dM^L za@Bh?po*LKa(AHMP9>g%H^|E|w?koz3B zJ2#a=W^94Nqj`lG67}UzJVwqqvvRv_BE_if`yUV*g)B3jzK;f&3M#3>s5aux^;W{k zt4k7!P?&Ji<2D`zj5Sc(3B^?7o5k1@h#GCU zsm9n~hXz?O9X})w9^@ts1>UlU%A47xv%jkfZPMXW^Qw>B-^dQ72`Lq64?-)Q7ThRp zI=vO}LS*JGH{MZ!FSApG9O_V-Ce@38MfF$()RsHubH07j%`m@7Z#COoU2A>_Bu$xt zV7UMrlN*Qj-yk1_O~i)hQBFVaG}C?0#FWQ|Y*@N$Yf4nZyVd#(-Q#cq68+ngL~Qc> zF9+F^-^Jp|+*>w$2d?%#@gQQ2DuX@e#GnI$;+svnDdb*eSc|X%L*1EHxJWC@r2h^O zZy2Z(UC&VeUNIo~Z4LUP4=k1DTVI^!I2Sp|m4 zU45^yES<;FSIgNaHp5nOvS^-r-0}tX`i!Z+bYR=4LJT6WSDBzV6*(}{}@+2-Xy?$z@ zN{>VPa>*thc`HWFbq!86s7r}NhNeU{y^XdD&^Rr^H8}$M83@@o9P8$LiA$b`jach& zF4R5xQXO|BqRcHfCJ!z|_0Mx4RV8QahZhtifDg4x^1V2kD%STh(Tk4{=kpsj9!lZ6 zG16+XDNZ2Tu|`?)oZlpbXs5m4U%xK-W#<^Z6{;?a{=mRfXTdEw(k8+RdlR)A+2v9X z8W5_ss5L3%t;L9`s=M=NT-vpHZtLzPsUmMyutj59+&76$f}FwZ_qSCoFC zXAwoaxkXZcOXWx(tIAS&s`c3{K=XWWfM0n|Jc6s5O$i7DvalbP$Fu4&KM!|G>S<*? zd96W@2%9?Y_gnCw!t*enNc!~;#IMva6{i3E3*38oC#t5%XkB6OM+^}%@ly;H;r#e} zJrDH&m$--U-IQ(yYJ#~5y7;A<31iQA@2;WR#24kV%T%jgUZ_#SRLkNz=gH}8LUDJbB{3=h(?~&`SWAg3M{k91n4&_2ayMKl=pyKuIY%yp!?0>jX=N1LiKO)e=k2uK^D59>YFm}fO z=kGDB!$sBbFp-hyXy5bH-~JJFX8zycDI+!^)i!}N?2-x#%^Z7UpzoW&O*-bzI6C;B zz&M(R=`L!EN2`%s@DP&gI9c9&R4fkiRmv#r(O0HvxewZ-5Vo0yJ^d!<+5X^Wu$oQC zPClH4)b8$fWTWYb-%LbA#7N|jR~goN0j8jH3Xox8`Pn&2W$5I${!O43jJ#$ShWx+w zt~?ydwr@{)%JU?8Dukqs3Q3_b#!}e{+1Dh-8p5DK)0E;ROO2fdW#7h5hB1}b2r+hL z$y1Cmw!v7(_FeNFZ}h%@e8+cue}2d3pE>U1zTNkA{jT3~UgvdQ_x33}AyVEL~D_dK%eY>LdV&QOgi3dHmH70+Yw9O3<|8Ts%tgI^N+_UNFi!;?D z^-`n?0D$2iS5ua1rydvB_h>UlpebBPSQhA|eUrW!I-AaDSF{4uVW-ep zjfpxRvgze_^YC*KR|H_r=}$kP4=gZD?tIG#?yh1{A~dD|(H>$Ww38_yDX|{8uiV(- z>`x7$6#s5J5_m7biR)Ub*NtCC22hlXC!VmM#0V2M7GyY2Dp~6!TI%L8=pm8RZ@r_K*5C@j$476Fby3>Y-~4I; z!u=K)-G|<@x%53$da?O@nl?sTTO0A$o^|mVxd2*Lf{B^gdHV?U$N?iB9-ic@KJkv^ zqzoo=KVg}9T~sE+h5bDt*5k- zuh?gkqKWVZ^7jXtIat5^J3(IIu5NC=EUUke@Hy1m*XzPuq=h#fg-(~;tVA>$&eSm;G$tp@z*~&7 z3`NyG+JSmycOc|Oeqmwk6?GQa`}nE(yjoXEK*(3i|In zx}_6;DK3+f9!wE8U1h$$1}`S4yR`JUfDLx_!nDkj*z~Qbq}$N7kgs#bq&+%AIaSR5*4s|^0ASeU>}l-%_u0w8&}?ujm)OMPFRu%h-6z_+xT(jL6l4u9d>kFB06Y2b=;A7nj5#&6o3hsU>@)nPlk zH))b_larIiCMHEb?ebP2E9K*Gfaez~3JKY7^WXy#zu;u{smgsANu3e6>Z;GlFQvLN z^eAWfWNq4hF2VHBlUucCUj2g$HU}B@rOt$_XF%7d%efEw)q5p^j|ujJu+PoS)r^NP z_H@To-u-Zc4aQ}looY;?B_HJA=d0$ zz%zMOGvAi#9~%kv8RCborUx4v8orHI-ZD2a={>I4&al3fx)BitWnLhx^$iaACSaG! z(`_-t?VvuNGHO(4k@jak%x~;!3|ZOTzMi8+7ZP{Zexd zL&ksBdN_#jn^qV3F)HrBfdhy&c*3MCaT9A=WX;-@WYKiOKVoZs?kpw~&kP`Jw$}32NdUeAv%eukJh9qO#9_FR}Y8m-*v zOJr7h)KIQ%uCF;=bxga$ByQJUpXx8}U!!6RQan=AMUAp2pFbw1m$yTWFcludP#Z?; z6nAt}C0%Jf_ukyyM;p!Oq4Xh+*o1@}kj-qoX^qE)=%7OM_2hL|poXC*5Odd={YLsz z@7WG@{Nq&yprA4}h2J{s83Pw&HG(CjSRXSBP-09IC(R@VwmNNE@nY zEk5k%$sV>tO2UIxODn`pHRTPv)=z`Q(x$DJUnJ|~)W91CU$L^?Be~JDV6AHHFfsbb{Y= zfI;52A~KgeE!_)>i~D0mjeI|bHBH4ya%?Ruco(fM_?iQ5%R@-{I;fSVQb~r;VX3Fe zuQWfExi3xJ&JLWdH|n+xu=s9ZzTDrp64iJQlj$Iqg?2AUKV{3w840Fr66-1V!pBuj zzGZ}Vxo9*At>4t@`uO}sMZi+B-y?~7oy&a2Ha1w4SDPeHm?~nS`8@4==yvvK)b^{l zoztfDP=0A8j4+_Bv@kGo%oJ3LlxuZcR>G=E*Ra)X9FHw7teioALs4xAjM>1+&J5k0 zG{5kBrHLR$#*nGrZ{;x+c1gjPK9o@$siHNDJ|Kk;?%Q3$bVTAZ9G1ks)~HE^QBX}^ zg#o&>GRyh+@rH?+iRh6qO;^!l8J)SpE;9p_%pWiI;V1LOeHp8Nph&~Hs%Pr$hL?l6 zU@96y$Y(<7tn8QoNUi8+c@7BI!`Jkvx_4iMl+c6quavG97YANK@N)b!_+U=gEOh>#N0-2BjyxAP&PK^u z8)fTu-;#~)PYs-X!^Xw8-rMepXauB*nM`s~T^+2quP?tO9iF_*g7IXLj#fb~G({<$lk0wBAV@5pDO-s||WZGl_>RfA?v8`<}yU;^}G@!cketY}t z6SR7iU}@)6p>>TmK%g@AB#oA~<~X=7E)LE11bwOQFPP#rnpcsnZ3cLnOJj=(KqjWQ zZbgo_ZR<)qwPUWRgHn{*zvcn?BH$roOEV|D&Q=HP>8~T^uU%+^GtkmcQqeqzT~yE$ zXFnPAGF&ITx4=n%rfLv}pC_e&j8X_d?_~TRqX5O-d~?^iVP0QR(L#0v5llCV^^BUr z&f*d@5 zdC30I<_vwi!$@CoroTHuIFhfX7Pm>cdK`rU@Ncr8h&Mf?xM-%hO+U6cEv-KV@_C=) z%1}Y=Y~4)-&g0p)GnPAI^taq%`hx(z_idV~&abGb^&4Dua8n^D6i|%>sM0G-3m}GcWUeWQo26*xxC$dNx;7%soc?JDfue1 zUpcJCq8~Fl(_1| zd9psn?~7e1r?f1B7c5?Q5|*mk1^q*KFPi5%%UFptHU=!0Q!8D2#jvOWQ87T-Jbk*? zq^PK?bsO18|1{Xnhg@sazBqZ~?Bo-@c0^pQ=g;X_0Y_-V;{_OfKtjIH>$P$XF3`qG z3FSw86RuhYSh)FNcK?@HKY{F2#XxP>Bn&en+7Sc_Jl4^|A}M5Ml}#ewx^Q7Zh&k85 z4{{GHV`9CSF3kDH1SbEcRatrYRqucPPS_$H2Xi(OUnGBd^?3WHxv#IUfZSa)bBUfK zskD8Ag%pL=&K!>9E3Gxmi*@|G>f8`Z0bh>kO}`#o;oNyf!qPYo#Lnhl>^GNY6O76e z5)#DEpU)>NZ{KSeU7>Yr@bCni0OtJ#uf&4y;_Uk;Y*!!7rJD{aZLQjK=H+&zcoK?K z&%F8G5LzJ0+x_%8hl!z#<4P=wo*yDQ+>wp|?&O;kn1XGH>s~$_ zap7b6cHh{K$3Jl9h=(^<%}6M2P#mO?4^kB6I+}lBIp%6rs&5>oa2?NjKdGH${8mD8 z*p5qK+F)~Rp>;9mxJM5#9K~M{;axopz22HoY+zy%cd2&z2-bf~jg>P;N=pbO_p@5r z^SnBnwEHV(ZV7M$9>o{e_;Ymtf{jm!5HEF18uCyS_QmC4tBw8qsyv9BdW5CEL6pYz z{i`!e#QsU3R7y!HC@0IOEeM`y0fG=Q(~)tCJi5)Eb4Lxut5axMXmC5P@O4lU$&xr4 zi;WI_D={fTPOaP+fqr1YIJ#6>?>~2A9m+ZUPlI z^YC~x;stbC$nW>%hg*6o=Im>lpRqIsyt}J|1@D^Q-Lw51A2VWe#}CK4+#dO%o`lBcE5j@KCx;G>lLrM8`Y&oiJgFy@YLNk*K<+6DruVws`7tG%dTn3_FSmC zi|ZP0p{Ox7fyj-&fdgI{OBEN7Gp`+@%Ry9k7zbxIAYlxbNGw9wBl>H1pvW}c?8o|b2G*=E#l5Nz}nZw|b;jd}K$r}EmS z#fu7u(Z#z`t_uDf`E1gfbgV9kvdDKz^7Y?RJ=osU@>!d)2SR$~wr^%l_N`%me=qyn z#!o3BWWurzpwc&w84D1$>~go z=#KM422z1Cukr?s>Dw}?sQO{ydf8-Oi)&#Vj7&#BI_&B|-35Y{9E|H$P=B754x`lcR*2K|0D(jck?+9ynTn`hp7p=ed3NvNO zs9|@2?D&C-0wXrxD#v&;U>}DzH?7mm&n~Z!BmlfR$@n834e7WxjUIBYuN(64wl)jv z)rl*-(~Ow;Rs4xKNH)rMEHVUAB~=Eu7%l6ri>(FjY`3vw_t1qH-OD$Qs*Hn1oDv3v z3vivGyQ;JhOOaz_vwU2#h&cM-?%+2Uohy=iFa=nJ}T8b z9{-A#ml+X*vDR3~l-y>6ocL4`RDKcZXK)~7Y+u8|jaTuK{8`7{;w%Zev;o(e&-r^C zWOn+A_Jo}umJ%a47CA&rKd72^#!XLKTUgw-kbhpb_cXu4sb+hb^JqY>3ZEtWj%CGo zAN7)-KPO)~H70ZQle=qd(`SB_gzGzgI3Wnr*MprqFBH>Pu}d7-~cWBZ|8(} zJqMgTwd?Gxf7IG>4Azn6+a0+WI8r&X(;C)E%x<`XqnH2x$p4jL(KxYbmM$2rdvnJ- zY>c8tSPNECx8Bpi&)l?tc(GdiPf7 znW4`~(!Su$60SqXVjDit}wtr#k@ z-=nz{H`M}|Xpm_?sr*~f4;ofA!Yn8l?oVRF^X0zH8b(qRfCmy0|X;o-B_ z7FoJRGS(Ex^%IntLVg=q#$W5;-)W{w$nU@HbrWp*`eT%+@x&wI3Y#$J>H;+rZlR^s zhM5!*5r%6`5-2WvAnu=Yvo4JMIJ8pr7xG(KR1oaF=Z?i*p5FUJC3sX0H}DwQ-jQG{ zkI^1jD}_L?iB#kZU>SsP-_PhrAME_{#r%Bpk^(#A?z&xs1;u}V`q^LFGY6BTA-@R_ zeISsk9o?XqeYCvdOh)bvI6=BB;pJ%t7HAl+zvv zLXnghs7NkgD6s#$tS?V>Fz0!wW;SjM;fT=aH0W3PMp&);G0 z5%Mkcix6~#sr%q^D##o!Hn{e#h8_O7$>8M&7+EK)n^{g#uY06KAJBhs6#E`1+fHbrFMZ@Q5;(X&Ena5e?*|%;BEM*`(RgV}V+W7IXv9)XNAA@?Hk%C-ziH==2jV}pwg;kV-!CD_ZP zFW(_!Qlc+rQjzSo5#BS`R^dKJth__WBM}!B~Z+QX4n9_B#OT_FtLsiypuI+cyTe#hE8; z`cK@8pm|2nXvjPMTEj4M>s8WNZr0^Y8P!0B@Kr5K374cyH4H%FRxX3f$C@3yBQq_@ zjMq_IjuBy+le`D_2lCm6;BkXwzVhJAJ(v~|-vsXI3F|Mj8^t|34^z#YBJ$!YOuNMF zKO2%6N-;9ZaoQ4du;Kw?qKe}$3c9|8vtC7#MD#LdAw$rUgT!}M^pvBI%DNYE!yDG3 zm~OKZSgbyrn&tiNUwr{T{|_4e8)&rkIMDAD%T}kHA5W@jpM{{ccao;aPx(dqk)QEt x@W)Rl$^Gr;-X-H5&llUl4{ Date: Fri, 5 Apr 2024 19:15:28 -0400 Subject: [PATCH 029/157] Update --- .github/assets/devices.png | Bin 541506 -> 73544 bytes .github/assets/devices2.png | Bin 220908 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/assets/devices2.png diff --git a/.github/assets/devices.png b/.github/assets/devices.png index fd27a6a768f36ebf3556cbc89d74523791d5ae47..7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115 100644 GIT binary patch literal 73544 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 BIO+fZ literal 541506 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

      &Q_b{nm7(+H(rC!6hC8?C=R&i4CK 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

      HxKy#9*v}dz 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

      [](https://apps.apple.com/us/app/cake-wallet/id1334702542?platform=iphone) From 3d06a7d354cc71edf80c58b518bfa9766435f903 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:18:28 -0400 Subject: [PATCH 031/157] Update images --- .github/assets/devices.png | Bin 73544 -> 220908 bytes .github/assets/devices2.png | Bin 0 -> 73544 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/devices2.png diff --git a/.github/assets/devices.png b/.github/assets/devices.png index 7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115..ee3c1eca7f01973b64e7cd945791ae57686347dd 100644 GIT binary patch literal 220908 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%0Ak~@^={LVZ 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 x@W)Rl$^Gr;-X-H5&llUl4{Y&(`v3su8z3&a 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 BIO+fZ diff --git a/.github/assets/devices2.png b/.github/assets/devices2.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115 GIT binary patch literal 73544 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 BIO+fZ literal 0 HcmV?d00001 From 23da88d6f4b2fab538f4b25716711fafd8171643 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:19:09 -0400 Subject: [PATCH 032/157] Update images --- .github/assets/devices.png | Bin 220908 -> 73544 bytes .github/assets/devices2.png | Bin 73544 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/assets/devices2.png diff --git a/.github/assets/devices.png b/.github/assets/devices.png index ee3c1eca7f01973b64e7cd945791ae57686347dd..7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115 100644 GIT binary patch literal 73544 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 BIO+fZ literal 220908 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%0Ak~@^={LVZ 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 x@W)Rl$^Gr;-X-H5&llUl4{Y&(`v3su8z3&a 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 BIO+fZ From 9e2868de00d3a8ebe96af26b3253ee58076b7bbb Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:22:57 -0400 Subject: [PATCH 033/157] Upload logo --- .github/assets/Logo_CakeWallet_Transparent.png | Bin 0 -> 140295 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/Logo_CakeWallet_Transparent.png diff --git a/.github/assets/Logo_CakeWallet_Transparent.png b/.github/assets/Logo_CakeWallet_Transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..21f985eaa582e57730dc42acd43851d2dd227ab1 GIT binary patch literal 140295 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%0AZ5ru1LUBJfc`W$J|m%>2jG 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 From 55f6e8acb1814c2c47cdde8d33132d5bd686e5a4 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:26:00 -0400 Subject: [PATCH 035/157] Update --- ...keWallet_Transparent.png => Logo_CakeWallet.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/assets/{Logo_CakeWallet_Transparent.png => Logo_CakeWallet.png} (100%) diff --git a/.github/assets/Logo_CakeWallet_Transparent.png b/.github/assets/Logo_CakeWallet.png similarity index 100% rename from .github/assets/Logo_CakeWallet_Transparent.png rename to .github/assets/Logo_CakeWallet.png From ed4c6211fda0039540811061bcb607faf979d3fc Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:26:56 -0400 Subject: [PATCH 036/157] Upload --- .github/assets/Logo_CakeWallet2.png | Bin 0 -> 159969 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/Logo_CakeWallet2.png diff --git a/.github/assets/Logo_CakeWallet2.png b/.github/assets/Logo_CakeWallet2.png new file mode 100644 index 0000000000000000000000000000000000000000..459a6b37cf2a93b7da5d11bfe23a0fd0fc31de46 GIT binary patch literal 159969 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%0AxcKM)XJNBVRNB^88&$)x{4-`k1P5Rgwn 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�s=xuIZ~)Oa(Zc#OpZAsH2`)So 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 F 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 CPow() literal 0 HcmV?d00001 From 6fbf49286e98f6027ac4973dc058e68d6d70c0f1 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:28:46 -0400 Subject: [PATCH 037/157] Update README.md --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 7aaa636536..b6d7a5a3c8 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,9 @@

      -# Cake Wallet - -Cake Wallet is an open source, non-custodial, and private multi-currency crypto wallet. - ![devices](.github/assets/devices.png)
      From 2e2089a97a789b8500e90f6f8016a0102354a660 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:29:01 -0400 Subject: [PATCH 038/157] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b6d7a5a3c8..970800dc62 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
      - +
      From 458159ef59446ddb9a8cf6ccb92c953ae9c3c20d Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:32:55 -0400 Subject: [PATCH 039/157] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 970800dc62..5a1c74b5a4 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,21 @@
      +# Cake Wallet + +Cake Wallet is an open source, non-custodial, and private multi-currency crypto wallet for Android, iOS, macOS, and Linux. + +Cake Wallet includes support for several cryptocurrencies, including: +* Monero (XMR) +* Bitcoin (BTC) +* Ethereum (ETH) +* Litecoin (LTC) +* Bitcoin Cash (BCH) +* Polygon (MATIC) +* Solana (SOL) +* Nano (XNO) +* Haven (XHV) + ## Features ### App-Wide Features From d0d155bcc5db9e6d087ed78feb5ff10e75dbb55b Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:33:42 -0400 Subject: [PATCH 040/157] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a1c74b5a4..7823734fb2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
      - +
      From 8fa0730c029ee1fbfd0466cf1a8815fa9807823f Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:34:23 -0400 Subject: [PATCH 041/157] Remove uneeded files --- .github/assets/Logo_CakeWallet2.png | Bin 159969 -> 0 bytes .github/assets/devices.svg | 56 ---------------------------- 2 files changed, 56 deletions(-) delete mode 100644 .github/assets/Logo_CakeWallet2.png delete mode 100644 .github/assets/devices.svg diff --git a/.github/assets/Logo_CakeWallet2.png b/.github/assets/Logo_CakeWallet2.png deleted file mode 100644 index 459a6b37cf2a93b7da5d11bfe23a0fd0fc31de46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159969 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%0AxcKM)XJNBVRNB^88&$)x{4-`k1P5Rgwn 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�s=xuIZ~)Oa(Zc#OpZAsH2`)So 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 F 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 CPow() diff --git a/.github/assets/devices.svg b/.github/assets/devices.svg deleted file mode 100644 index 4ae84cf48b..0000000000 --- a/.github/assets/devices.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - From e36f68f1855d7e45ab4b1e65f9e6216d25583475 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:47:00 -0400 Subject: [PATCH 042/157] Remove more unused images --- .github/assets/FullLogo_CakeWallet.png | Bin 187345 -> 0 bytes .github/assets/desktop.png | Bin 62736 -> 0 bytes .github/assets/devices.png | Bin 73544 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/assets/FullLogo_CakeWallet.png delete mode 100644 .github/assets/desktop.png delete mode 100644 .github/assets/devices.png diff --git a/.github/assets/FullLogo_CakeWallet.png b/.github/assets/FullLogo_CakeWallet.png deleted file mode 100644 index 9720c0c9e9f365455b6051af83ec770f55198674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187345 zcmeEvd0b8T|Nlv*n29Dn$QE)HhPt*$tFa^^#!tJ@UJKEk8FS%{N&yrKm8B>HE`!rr(Fy)VhH+2#XafK4@|#`Q0qkte)K<4 zC%>_Jbbz$|U+LMXvcoEy*_m8Ij9%yj)#w{<4l0Br6$8w3>Pq(wP;(zYlk+uvH+@u| zOeZMcNZd2stlX~jbY{Lm1M~WJ$wm7V*y+6(20XXfsZCn}%+U{%bW!Jq$`ySzyB`Jb7ilP;@%{)6OcN5+2sXU6ToeYnbP{fA`r6nQF1QUcjD^z4u~oJg;|eGP{8k%&92O?S0p;`Y1vW{&xV-^ zoXqoHnC~^P2+lfQ>_utUR1(xwm>n|j-tyUg?cD)Gn#b7O$l93mA#y}(OiGt$SDOXl z&AFwt?8^K3e%#sK9Vm|dZg-enbd$lB6Y)9UdRy9s|{_!XCpl9vl@jKjhg)6h`%pqk$bQNg_BN0b19aRjF18kj8bvU{{O@+_ z2V7g~H^kvBWAxTwlYf?tPyFU<$BSd?Uz1}=m3(OWdgFX9VSFx;Q?9b!-4qJ!Db#*6 zR=?|A$m5?hnY5OpRXtr!A%O^z7u5(iw=1!b`>5@v_j+{dj=2}x8Ht@{z%_rrq~;oV zu<|fxXkD9ogc<)RxM$3jr>gvB`K!VRzpUxE30<{H*4%yb{@-b?`MXm~RGLO<21GTq z?CJ7CJfzyt{WYzdOZ*U^v>$>Xb*xsY^CHt%>2J`HJ?E0redkGfvnmtaJi~RrUk5!TZ?2T<3V0~SFzxZ!40y<- za*E+Y`S$##hD-7>m>aTSCFPao(jP!$-Yy%JNJ-LBDoHL0B)MVz&)MmM9ZxT+Fd+{Y z=0-Ne(8ny7(=8R_V6hXi$qj;&u%(rzbwleAxjbtOK~aT(;ybs=?nl3vs&n#DO!ASl zdjj4zj|y)f509qX%65UZ-4gk>Xd=91 zRN4BbVauGP=}O)wO(5HHX01*?cDxNh5?b|mVQ$XuEKg(9Yhsw515}&aEz33C0}j-z zboNqVI`<#ynwcG>e8^m%t~2&ApjzCT^NX)~eHp`aUy_N0>|38)riZPemVsY{MIdQdQ8=ApoZlU;(ld;0(4q9Ry%b}t zF37Vew!CIAl0aOf)YQr^rK>Kt9yQ7sru_)rcvN7nyv?3GFT-qmb(h$QG(CE>LA3zmO+WhSl-Dqf(W^X%2B3FE#T2|l-4Ocr1t&OK zz%_gF*xJs+vETU>X0E{x#m!Vcw4hw`wvv^K9p+ndeEhB-FK(z*GF8j@cP2Zp{}xc;Q{Hhsur0ae)E z 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

      M^1$%3dNqM_UJ_x+CMb~ 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�MCe0*x_6`pF#Icx^^HLl`% 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 z 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%0AJyrSMp1d@b)Hm30kWgz%8?oZtyMOJR{-Z)L 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 Date: Mon, 8 Apr 2024 17:54:58 +0300 Subject: [PATCH 044/157] Add rbf (#1323) * Add initial checkbox for RBF * minor progress * minor progress * Minor progress * Debugging RBF * Minor fix * Fix RBF transaction inputs (now it's working) * New versions Fix issues with Monero.com * Add sending for Solana tokens exchanges * Add default keyword for P2WPKH [skip ci] * chore: Switch solana commitment to confirmed to reduced blockhash expiration (#1313) * Modify test workflow to send arm64-v8a build only * Fix workflow build path * Remove unnecessary reverse of txId * Update Replace by fee with the new bitcoin base implementation * btc custom fee priority * add feeRate to btc credential * UI fixes * add check if the change covers the fee * Update settings_store.dart * add check confirmation for rbf * add a check to see if the change is sufficient for the new fee * addressing PR comments * update localization files * addressing PR comments * minor fixes * Update transaction_details_view_model.dart * Minor Fix for building Monero.com [skip ci] * update localization files * add bump fee page * update localisation files * Update cw_bitcoin.dart * fix merge conflict * fix UI issues * Fix Conflicts, Fix RBF flow, some enhancements * prevent default custom fee rate * hide outputs and inputs items * minor fix [skip ci] * addressing PR comments * remove rbf checkbox * default picker value * minor ui change [skip ci] * min fee rate [skip ci] * Minor fix and some minor enhancements --------- Co-authored-by: OmarHatem Co-authored-by: Adegoke David <64401859+Blazebrain@users.noreply.github.com> --- .../lib/bitcoin_transaction_credentials.dart | 3 +- .../lib/bitcoin_transaction_priority.dart | 16 +- cw_bitcoin/lib/electrum_transaction_info.dart | 19 +- cw_bitcoin/lib/electrum_wallet.dart | 197 +++++++- .../lib/pending_bitcoin_transaction.dart | 2 +- cw_bitcoin/pubspec.lock | 4 +- cw_bitcoin/pubspec.yaml | 2 +- cw_bitcoin_cash/pubspec.yaml | 2 +- cw_core/lib/transaction_info.dart | 2 + cw_core/lib/wallet_base.dart | 1 + lib/bitcoin/cw_bitcoin.dart | 83 +++- lib/core/execution_state.dart | 9 + lib/di.dart | 9 +- lib/entities/preferences_key.dart | 1 + lib/router.dart | 7 + lib/routes.dart | 1 + lib/src/screens/send/send_page.dart | 9 +- lib/src/screens/send/widgets/send_card.dart | 48 +- .../screens/settings/other_settings_page.dart | 27 +- .../widgets/setting_priority_picker_cell.dart | 78 ++++ .../rbf_details_list_fee_picker_item.dart | 23 + .../transaction_details/rbf_details_page.dart | 199 ++++++++ .../transaction_details_page.dart | 106 +++-- .../transaction_expandable_list_item.dart | 7 + lib/src/widgets/checkbox_widget.dart | 1 - lib/src/widgets/picker.dart | 425 +++++++++++------- lib/src/widgets/search_bar_widget.dart | 2 +- lib/src/widgets/standard_expandable_list.dart | 58 +++ lib/src/widgets/standard_picker_list.dart | 81 ++++ lib/store/settings_store.dart | 16 +- lib/view_model/send/output.dart | 14 +- lib/view_model/send/send_view_model.dart | 60 ++- .../settings/other_settings_view_model.dart | 35 +- .../transaction_details_view_model.dart | 128 +++++- res/values/strings_ar.arb | 8 + res/values/strings_bg.arb | 8 + res/values/strings_cs.arb | 8 + res/values/strings_de.arb | 8 + res/values/strings_en.arb | 8 + res/values/strings_es.arb | 8 + res/values/strings_fr.arb | 8 + res/values/strings_ha.arb | 8 + res/values/strings_hi.arb | 8 + res/values/strings_hr.arb | 8 + res/values/strings_id.arb | 8 + res/values/strings_it.arb | 8 + res/values/strings_ja.arb | 8 + res/values/strings_ko.arb | 8 + res/values/strings_my.arb | 8 + res/values/strings_nl.arb | 8 + res/values/strings_pl.arb | 8 + res/values/strings_pt.arb | 8 + res/values/strings_ru.arb | 10 +- res/values/strings_th.arb | 8 + res/values/strings_tl.arb | 8 + res/values/strings_tr.arb | 8 + res/values/strings_uk.arb | 8 + res/values/strings_ur.arb | 8 + res/values/strings_yo.arb | 8 + res/values/strings_zh.arb | 8 + scripts/append_translation.sh | 23 - tool/configure.dart | 10 +- 62 files changed, 1594 insertions(+), 324 deletions(-) create mode 100644 lib/src/screens/settings/widgets/setting_priority_picker_cell.dart create mode 100644 lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart create mode 100644 lib/src/screens/transaction_details/rbf_details_page.dart create mode 100644 lib/src/screens/transaction_details/transaction_expandable_list_item.dart create mode 100644 lib/src/widgets/standard_expandable_list.dart create mode 100644 lib/src/widgets/standard_picker_list.dart delete mode 100755 scripts/append_translation.sh diff --git a/cw_bitcoin/lib/bitcoin_transaction_credentials.dart b/cw_bitcoin/lib/bitcoin_transaction_credentials.dart index bd8f1763c4..bda7c39ae2 100644 --- a/cw_bitcoin/lib/bitcoin_transaction_credentials.dart +++ b/cw_bitcoin/lib/bitcoin_transaction_credentials.dart @@ -2,7 +2,8 @@ import 'package:cw_bitcoin/bitcoin_transaction_priority.dart'; import 'package:cw_core/output_info.dart'; class BitcoinTransactionCredentials { - BitcoinTransactionCredentials(this.outputs, {required this.priority, this.feeRate}); + BitcoinTransactionCredentials(this.outputs, + {required this.priority, this.feeRate}); final List outputs; final BitcoinTransactionPriority? priority; diff --git a/cw_bitcoin/lib/bitcoin_transaction_priority.dart b/cw_bitcoin/lib/bitcoin_transaction_priority.dart index 10953a2e0c..d51775368d 100644 --- a/cw_bitcoin/lib/bitcoin_transaction_priority.dart +++ b/cw_bitcoin/lib/bitcoin_transaction_priority.dart @@ -4,13 +4,15 @@ class BitcoinTransactionPriority extends TransactionPriority { const BitcoinTransactionPriority({required String title, required int raw}) : super(title: title, raw: raw); - static const List all = [fast, medium, slow]; + static const List all = [fast, medium, slow, custom]; static const BitcoinTransactionPriority slow = BitcoinTransactionPriority(title: 'Slow', raw: 0); static const BitcoinTransactionPriority medium = BitcoinTransactionPriority(title: 'Medium', raw: 1); static const BitcoinTransactionPriority fast = BitcoinTransactionPriority(title: 'Fast', raw: 2); + static const BitcoinTransactionPriority custom = + BitcoinTransactionPriority(title: 'Custom', raw: 3); static BitcoinTransactionPriority deserialize({required int raw}) { switch (raw) { @@ -20,6 +22,8 @@ class BitcoinTransactionPriority extends TransactionPriority { return medium; case 2: return fast; + case 3: + return custom; default: throw Exception('Unexpected token: $raw for BitcoinTransactionPriority deserialize'); } @@ -39,7 +43,10 @@ class BitcoinTransactionPriority extends TransactionPriority { label = 'Medium'; // S.current.transaction_priority_medium; break; case BitcoinTransactionPriority.fast: - label = 'Fast'; // S.current.transaction_priority_fast; + label = 'Fast'; + break; // S.current.transaction_priority_fast; + case BitcoinTransactionPriority.custom: + label = 'Custom'; break; default: break; @@ -48,7 +55,10 @@ class BitcoinTransactionPriority extends TransactionPriority { return label; } - String labelWithRate(int rate) => '${toString()} ($rate ${units}/byte)'; + String labelWithRate(int rate, int? customRate) { + final rateValue = this == custom ? customRate ??= 0 : rate; + return '${toString()} ($rateValue ${units}/byte)'; + } } class LitecoinTransactionPriority extends BitcoinTransactionPriority { diff --git a/cw_bitcoin/lib/electrum_transaction_info.dart b/cw_bitcoin/lib/electrum_transaction_info.dart index cfea0e089a..f980bd8842 100644 --- a/cw_bitcoin/lib/electrum_transaction_info.dart +++ b/cw_bitcoin/lib/electrum_transaction_info.dart @@ -11,12 +11,11 @@ import 'package:cw_core/wallet_type.dart'; class ElectrumTransactionBundle { ElectrumTransactionBundle(this.originalTransaction, - {required this.ins, required this.confirmations, this.time, required this.height}); + {required this.ins, required this.confirmations, this.time}); final BtcTransaction originalTransaction; final List ins; final int? time; final int confirmations; - final int height; } class ElectrumTransactionInfo extends TransactionInfo { @@ -25,6 +24,8 @@ class ElectrumTransactionInfo extends TransactionInfo { required int height, required int amount, int? fee, + List? inputAddresses, + List? outputAddresses, required TransactionDirection direction, required bool isPending, required DateTime date, @@ -32,6 +33,8 @@ class ElectrumTransactionInfo extends TransactionInfo { this.id = id; this.height = height; this.amount = amount; + this.inputAddresses = inputAddresses; + this.outputAddresses = outputAddresses; this.fee = fee; this.direction = direction; this.date = date; @@ -100,6 +103,8 @@ class ElectrumTransactionInfo extends TransactionInfo { var amount = 0; var inputAmount = 0; var totalOutAmount = 0; + List inputAddresses = []; + List outputAddresses = []; for (var i = 0; i < bundle.originalTransaction.inputs.length; i++) { final input = bundle.originalTransaction.inputs[i]; @@ -108,6 +113,7 @@ class ElectrumTransactionInfo extends TransactionInfo { inputAmount += outTransaction.amount.toInt(); if (addresses.contains(addressFromOutputScript(outTransaction.scriptPubKey, network))) { direction = TransactionDirection.outgoing; + inputAddresses.add(addressFromOutputScript(outTransaction.scriptPubKey, network)); } } @@ -115,6 +121,7 @@ class ElectrumTransactionInfo extends TransactionInfo { for (final out in bundle.originalTransaction.outputs) { totalOutAmount += out.amount.toInt(); final addressExists = addresses.contains(addressFromOutputScript(out.scriptPubKey, network)); + outputAddresses.add(addressFromOutputScript(out.scriptPubKey, network)); if (addressExists) { receivedAmounts.add(out.amount.toInt()); @@ -137,6 +144,8 @@ class ElectrumTransactionInfo extends TransactionInfo { id: bundle.originalTransaction.txId(), height: height, isPending: bundle.confirmations == 0, + inputAddresses: inputAddresses, + outputAddresses: outputAddresses, fee: fee, direction: direction, amount: amount, @@ -187,6 +196,8 @@ class ElectrumTransactionInfo extends TransactionInfo { direction: parseTransactionDirectionFromInt(data['direction'] as int), date: DateTime.fromMillisecondsSinceEpoch(data['date'] as int), isPending: data['isPending'] as bool, + inputAddresses: data['inputAddresses'] as List, + outputAddresses: data['outputAddresses'] as List, confirmations: data['confirmations'] as int); } @@ -218,6 +229,8 @@ class ElectrumTransactionInfo extends TransactionInfo { direction: direction, date: date, isPending: isPending, + inputAddresses: inputAddresses, + outputAddresses: outputAddresses, confirmations: info.confirmations); } @@ -231,6 +244,8 @@ class ElectrumTransactionInfo extends TransactionInfo { m['isPending'] = isPending; m['confirmations'] = confirmations; m['fee'] = fee; + m['inputAddresses'] = inputAddresses; + m['outputAddresses'] = outputAddresses; return m; } } diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 9c144ac74e..5bed6a4495 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -7,6 +7,7 @@ import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin_base; import 'package:collection/collection.dart'; +import 'package:cw_bitcoin/address_from_output.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; @@ -188,11 +189,9 @@ abstract class ElectrumWalletBase } } - int _getDustAmount() { - return 546; - } + int get _dustAmount => 546; - bool _isBelowDust(int amount) => amount <= _getDustAmount() && network != BitcoinNetwork.testnet; + bool _isBelowDust(int amount) => amount <= _dustAmount && network != BitcoinNetwork.testnet; Future estimateSendAllTx( List outputs, @@ -418,7 +417,7 @@ abstract class ElectrumWalletBase } // Estimate to user how much is needed to send to cover the fee - final maxAmountWithReturningChange = allInputsAmount - _getDustAmount() - fee - 1; + final maxAmountWithReturningChange = allInputsAmount - _dustAmount - fee - 1; throw BitcoinTransactionNoDustOnChangeException( bitcoinAmountToString(amount: maxAmountWithReturningChange), bitcoinAmountToString(amount: estimatedSendAll.amount), @@ -532,6 +531,7 @@ abstract class ElectrumWalletBase network: network, memo: estimatedTx.memo, outputOrdering: BitcoinOrdering.none, + enableRBF: true, ); } else { txb = BitcoinTransactionBuilder( @@ -541,6 +541,7 @@ abstract class ElectrumWalletBase network: network, memo: estimatedTx.memo, outputOrdering: BitcoinOrdering.none, + enableRBF: true, ); } @@ -794,8 +795,180 @@ abstract class ElectrumWalletBase } } - Future getTransactionExpanded( - {required String hash, required int height}) async { + Future canReplaceByFee(String hash) async { + final verboseTransaction = await electrumClient.getTransactionRaw(hash: hash); + final confirmations = verboseTransaction['confirmations'] as int? ?? 0; + final transactionHex = verboseTransaction['hex'] as String?; + + if (confirmations > 0) return false; + + if (transactionHex == null) { + return false; + } + + final original = bitcoin.Transaction.fromHex(transactionHex); + + return original.ins + .any((element) => element.sequence != null && element.sequence! < 4294967293); + } + + Future isChangeSufficientForFee(String txId, int newFee) async { + final bundle = await getTransactionExpanded(hash: txId); + final outputs = bundle.originalTransaction.outputs; + + final changeAddresses = walletAddresses.allAddresses.where((element) => element.isHidden); + + // look for a change address in the outputs + final changeOutput = outputs.firstWhereOrNull((output) => changeAddresses.any( + (element) => element.address == addressFromOutputScript(output.scriptPubKey, network))); + + var allInputsAmount = 0; + + for (int i = 0; i < bundle.originalTransaction.inputs.length; i++) { + final input = bundle.originalTransaction.inputs[i]; + final inputTransaction = bundle.ins[i]; + final vout = input.txIndex; + final outTransaction = inputTransaction.outputs[vout]; + allInputsAmount += outTransaction.amount.toInt(); + } + + int totalOutAmount = bundle.originalTransaction.outputs + .fold(0, (previousValue, element) => previousValue + element.amount.toInt()); + + var currentFee = allInputsAmount - totalOutAmount; + + int remainingFee = (newFee - currentFee > 0) ? newFee - currentFee : newFee; + + return changeOutput != null && changeOutput.amount.toInt() - remainingFee >= 0; + } + + Future replaceByFee(String hash, int newFee) async { + try { + final bundle = await getTransactionExpanded(hash: hash); + + final utxos = []; + List privateKeys = []; + + var allInputsAmount = 0; + + // Add inputs + for (var i = 0; i < bundle.originalTransaction.inputs.length; i++) { + final input = bundle.originalTransaction.inputs[i]; + final inputTransaction = bundle.ins[i]; + final vout = input.txIndex; + final outTransaction = inputTransaction.outputs[vout]; + final address = addressFromOutputScript(outTransaction.scriptPubKey, network); + allInputsAmount += outTransaction.amount.toInt(); + + final addressRecord = + walletAddresses.allAddresses.firstWhere((element) => element.address == address); + + final btcAddress = addressTypeFromStr(addressRecord.address, network); + final privkey = generateECPrivate( + hd: addressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, + index: addressRecord.index, + network: network); + + privateKeys.add(privkey); + + utxos.add( + UtxoWithAddress( + utxo: BitcoinUtxo( + txHash: input.txId, + value: outTransaction.amount, + vout: vout, + scriptType: _getScriptType(btcAddress), + ), + ownerDetails: + UtxoAddressDetails(publicKey: privkey.getPublic().toHex(), address: btcAddress), + ), + ); + } + + int totalOutAmount = bundle.originalTransaction.outputs + .fold(0, (previousValue, element) => previousValue + element.amount.toInt()); + + var currentFee = allInputsAmount - totalOutAmount; + int remainingFee = newFee - currentFee; + + final outputs = []; + + // Add outputs and deduct the fees from it + for (int i = bundle.originalTransaction.outputs.length - 1; i >= 0; i--) { + final out = bundle.originalTransaction.outputs[i]; + final address = addressFromOutputScript(out.scriptPubKey, network); + final btcAddress = addressTypeFromStr(address, network); + + int newAmount; + if (out.amount.toInt() >= remainingFee) { + newAmount = out.amount.toInt() - remainingFee; + remainingFee = 0; + + // if new amount of output is less than dust amount, then don't add this output as well + if (newAmount <= _dustAmount) { + continue; + } + } else { + remainingFee -= out.amount.toInt(); + continue; + } + + outputs.add(BitcoinOutput(address: btcAddress, value: BigInt.from(newAmount))); + } + + final changeAddresses = walletAddresses.allAddresses.where((element) => element.isHidden); + + // look for a change address in the outputs + final changeOutput = outputs.firstWhereOrNull((output) => + changeAddresses.any((element) => element.address == output.address.toAddress(network))); + + // deduct the change amount from the output amount + if (changeOutput != null) { + totalOutAmount -= changeOutput.value.toInt(); + } + + final txb = BitcoinTransactionBuilder( + utxos: utxos, + outputs: outputs, + fee: BigInt.from(newFee), + network: network, + enableRBF: true, + ); + + final transaction = txb.buildTransaction((txDigest, utxo, publicKey, sighash) { + final key = + privateKeys.firstWhereOrNull((element) => element.getPublic().toHex() == publicKey); + + if (key == null) { + throw Exception("Cannot find private key"); + } + + if (utxo.utxo.isP2tr()) { + return key.signTapRoot(txDigest, sighash: sighash); + } else { + return key.signInput(txDigest, sigHash: sighash); + } + }); + + return PendingBitcoinTransaction( + transaction, + type, + electrumClient: electrumClient, + amount: totalOutAmount, + fee: newFee, + network: network, + hasChange: changeOutput != null, + feeRate: newFee.toString(), + )..addListener((transaction) async { + transactionHistory.addOne(transaction); + await updateBalance(); + }); + } catch (e) { + throw e; + } + } + + Future getTransactionExpanded({required String hash}) async { String transactionHex; int? time; int confirmations = 0; @@ -826,8 +999,12 @@ abstract class ElectrumWalletBase ins.add(tx); } - return ElectrumTransactionBundle(original, - ins: ins, time: time, confirmations: confirmations, height: height); + return ElectrumTransactionBundle( + original, + ins: ins, + time: time, + confirmations: confirmations, + ); } Future fetchTransactionInfo( @@ -837,7 +1014,7 @@ abstract class ElectrumWalletBase bool? retryOnFailure}) async { try { return ElectrumTransactionInfo.fromElectrumBundle( - await getTransactionExpanded(hash: hash, height: height), walletInfo.type, network, + await getTransactionExpanded(hash: hash), walletInfo.type, network, addresses: myAddresses, height: height); } catch (e) { if (e is FormatException && retryOnFailure == true) { diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index eb4274e782..529ac61da6 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -17,7 +17,7 @@ class PendingBitcoinTransaction with PendingTransaction { required this.feeRate, this.network, required this.hasChange, - required this.isSendAll, + this.isSendAll = false, this.hasTaprootInputs = false, }) : _listeners = []; diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index b39dcae07f..3d828243c1 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -70,8 +70,8 @@ packages: dependency: "direct main" description: path: "." - ref: master - resolved-ref: ea65073efbaf395a5557e8cd7bd72f195cd7eb11 + ref: Add-Support-For-OP-Return-data + resolved-ref: "57b78afb85bd2c30d3cdb9f7884f3878a62be442" url: "https://github.com/cake-tech/bitbox-flutter.git" source: git version: "1.0.1" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index bcbb55e118..632a3140a6 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -26,7 +26,7 @@ dependencies: bitbox: git: url: https://github.com/cake-tech/bitbox-flutter.git - ref: master + ref: Add-Support-For-OP-Return-data rxdart: ^0.27.5 unorm_dart: ^0.2.0 cryptography: ^2.0.5 diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 7130b3c58f..37827f1bae 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: bitbox: git: url: https://github.com/cake-tech/bitbox-flutter.git - ref: master + ref: Add-Support-For-OP-Return-data bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git diff --git a/cw_core/lib/transaction_info.dart b/cw_core/lib/transaction_info.dart index 7624b147f0..992582ff82 100644 --- a/cw_core/lib/transaction_info.dart +++ b/cw_core/lib/transaction_info.dart @@ -16,6 +16,8 @@ abstract class TransactionInfo extends Object with Keyable { void changeFiatAmount(String amount); String? to; String? from; + List? inputAddresses; + List? outputAddresses; @override dynamic get keyIndex => id; diff --git a/cw_core/lib/wallet_base.dart b/cw_core/lib/wallet_base.dart index 49f1bdc943..037a26d381 100644 --- a/cw_core/lib/wallet_base.dart +++ b/cw_core/lib/wallet_base.dart @@ -67,6 +67,7 @@ abstract class WalletBase outputs, - {required TransactionPriority priority, int? feeRate}) => - BitcoinTransactionCredentials( - outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount, - memo: out.memo)) - .toList(), - priority: priority as BitcoinTransactionPriority, - feeRate: feeRate); + {required TransactionPriority priority, int? feeRate}) { + final bitcoinFeeRate = + priority == BitcoinTransactionPriority.custom && feeRate != null ? feeRate : null; + return BitcoinTransactionCredentials( + outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount, + memo: out.memo)) + .toList(), + priority: priority as BitcoinTransactionPriority, + feeRate: bitcoinFeeRate + ); + } @override Object createBitcoinTransactionCredentialsRaw(List outputs, @@ -172,8 +176,9 @@ class CWBitcoin extends Bitcoin { int formatterStringDoubleToBitcoinAmount(String amount) => stringDoubleToBitcoinAmount(amount); @override - String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate) => - (priority as BitcoinTransactionPriority).labelWithRate(rate); + String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate, + {int? customRate}) => + (priority as BitcoinTransactionPriority).labelWithRate(rate, customRate); @override List getUnspents(Object wallet) { @@ -199,6 +204,9 @@ class CWBitcoin extends Bitcoin { @override TransactionPriority getBitcoinTransactionPriorityMedium() => BitcoinTransactionPriority.medium; + @override + TransactionPriority getBitcoinTransactionPriorityCustom() => BitcoinTransactionPriority.custom; + @override TransactionPriority getLitecoinTransactionPriorityMedium() => LitecoinTransactionPriority.medium; @@ -244,4 +252,43 @@ class CWBitcoin extends Bitcoin { bool hasTaprootInput(PendingTransaction pendingTransaction) { return (pendingTransaction as PendingBitcoinTransaction).hasTaprootInputs; } + + @override + Future replaceByFee( + Object wallet, String transactionHash, String fee) async { + final bitcoinWallet = wallet as ElectrumWallet; + return await bitcoinWallet.replaceByFee(transactionHash, int.parse(fee)); + } + + @override + Future canReplaceByFee(Object wallet, String transactionHash) async { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.canReplaceByFee(transactionHash); + } + + @override + Future isChangeSufficientForFee(Object wallet, String txId, String newFee) async { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.isChangeSufficientForFee(txId, int.parse(newFee)); + } + + @override + int getFeeAmountForPriority( + Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, + {int? size}) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.feeAmountForPriority( + priority as BitcoinTransactionPriority, inputsCount, outputsCount); + } + + @override + int getFeeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, + {int? size}) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.feeAmountWithFeeRate( + feeRate, + inputsCount, + outputsCount, + ); + } } diff --git a/lib/core/execution_state.dart b/lib/core/execution_state.dart index 18dc810306..6bc9060102 100644 --- a/lib/core/execution_state.dart +++ b/lib/core/execution_state.dart @@ -14,4 +14,13 @@ class FailureState extends ExecutionState { FailureState(this.error); final String error; +} + +class AwaitingConfirmationState extends ExecutionState { + AwaitingConfirmationState({this.title, this.message, this.onConfirm, this.onCancel}); + + final String? title; + final String? message; + final Function()? onConfirm; + final Function()? onCancel; } \ No newline at end of file diff --git a/lib/di.dart b/lib/di.dart index 291555330c..5262a01e6b 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -13,6 +13,7 @@ import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/nano/nano.dart'; @@ -914,7 +915,8 @@ Future setup({ transactionInfo: transactionInfo, transactionDescriptionBox: _transactionDescriptionBox, wallet: wallet, - settingsStore: getIt.get()); + settingsStore: getIt.get(), + sendViewModel: getIt.get()); }); getIt.registerFactoryParam( @@ -1137,6 +1139,11 @@ Future setup({ getIt.registerFactory(() => IoniaAccountCardsPage(getIt.get())); + getIt.registerFactoryParam( + (TransactionInfo transactionInfo, _) => RBFDetailsPage( + transactionDetailsViewModel: + getIt.get(param1: transactionInfo))); + getIt.registerFactory(() => AnonPayApi( useTorOnly: getIt.get().exchangeStatus == ExchangeApiMode.torOnly, wallet: getIt.get().wallet!)); diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 5c22455d20..ba6d6ef4ff 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -42,6 +42,7 @@ class PreferencesKey { static const ethereumTransactionPriority = 'current_fee_priority_ethereum'; static const polygonTransactionPriority = 'current_fee_priority_polygon'; static const bitcoinCashTransactionPriority = 'current_fee_priority_bitcoin_cash'; + static const customBitcoinFeeRate = 'custom_electrum_fee_rate'; static const shouldShowReceiveWarning = 'should_show_receive_warning'; static const shouldShowYatPopup = 'should_show_yat_popup'; static const moneroWalletPasswordUpdateV1Base = 'monero_wallet_update_v1'; diff --git a/lib/router.dart b/lib/router.dart index ef7b7f31e7..9f5dfb838d 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -54,6 +54,7 @@ import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart import 'package:cake_wallet/src/screens/support/support_page.dart'; import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart'; import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart'; +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart'; import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart'; import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart'; @@ -253,6 +254,12 @@ Route createRoute(RouteSettings settings) { builder: (_) => getIt.get(param1: settings.arguments as TransactionInfo)); + case Routes.bumpFeePage: + return CupertinoPageRoute( + fullscreenDialog: true, + builder: (_) => + getIt.get(param1: settings.arguments as TransactionInfo)); + case Routes.newSubaddress: return CupertinoPageRoute( builder: (_) => getIt.get(param1: settings.arguments)); diff --git a/lib/routes.dart b/lib/routes.dart index 7ad5c70bc4..9c4e216519 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -12,6 +12,7 @@ class Routes { static const dashboard = '/dashboard'; static const send = '/send'; static const transactionDetails = '/transaction_info'; + static const bumpFeePage = '/bump_fee_page'; static const receive = '/receive'; static const newSubaddress = '/new_subaddress'; static const walletEdit = '/walletEdit'; diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 56b1b7af7e..970bb31f27 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -100,7 +100,10 @@ class SendPage extends BasePage { AppBarStyle get appBarStyle => AppBarStyle.transparent; double _sendCardHeight(BuildContext context) { - final double initialHeight = sendViewModel.hasCoinControl ? 500 : 465; + double initialHeight = 450; + if (sendViewModel.hasCoinControl) { + initialHeight += 35; + } if (!responsiveLayoutUtil.shouldRenderMobileUI) { return initialHeight - 66; @@ -190,7 +193,7 @@ class SendPage extends BasePage { }, )), Padding( - padding: EdgeInsets.only(top: 10, left: 24, right: 24, bottom: 10), + padding: EdgeInsets.only(left: 24, right: 24, bottom: 10), child: Container( height: 10, child: Observer( @@ -456,7 +459,7 @@ class SendPage extends BasePage { ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}' : ''; final newContactMessage = newContactAddress != null - ? '\n${S.of(context).add_contact_to_address_book}' : ''; + ? '\n${S.of(_dialogContext).add_contact_to_address_book}' : ''; final alertContent = "$successMessage$waitMessage$newContactMessage"; diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index d369978147..7c2bfedd0c 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -1,16 +1,17 @@ -import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; +import 'package:cake_wallet/src/widgets/picker.dart'; +import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/currency.dart'; -import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; -import 'package:cake_wallet/src/widgets/picker.dart'; import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -456,7 +457,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin GestureDetector( onTap: sendViewModel.hasFeesPriority - ? () => _setTransactionPriority(context) + ? () => pickTransactionPriority(context) : () {}, child: Container( padding: EdgeInsets.only(top: 24), @@ -669,22 +670,41 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin _setTransactionPriority(BuildContext context) async { + Future pickTransactionPriority(BuildContext context) async { final items = priorityForWalletType(sendViewModel.walletType); final selectedItem = items.indexOf(sendViewModel.transactionPriority); + final customItemIndex = sendViewModel.getCustomPriorityIndex(items); + final isBitcoinWallet = sendViewModel.walletType == WalletType.bitcoin; + double? customFeeRate = isBitcoinWallet ? sendViewModel.customBitcoinFeeRate.toDouble() : null; await showPopUp( context: context, - builder: (_) => Picker( - items: items, - displayItem: sendViewModel.displayFeeRate, - selectedAtIndex: selectedItem, - title: S.of(context).please_select, - mainAxisAlignment: MainAxisAlignment.center, - onItemSelected: (TransactionPriority priority) => - sendViewModel.setTransactionPriority(priority), - ), + builder: (BuildContext context) { + int selectedIdx = selectedItem; + return StatefulBuilder( + builder: (BuildContext context, StateSetter setState) { + return Picker( + items: items, + displayItem: (TransactionPriority priority) => + sendViewModel.displayFeeRate(priority, customFeeRate?.round()), + selectedAtIndex: selectedIdx, + customItemIndex: customItemIndex, + title: S.of(context).please_select, + headerEnabled: !isBitcoinWallet, + closeOnItemSelected: !isBitcoinWallet, + mainAxisAlignment: MainAxisAlignment.center, + sliderValue: customFeeRate, + onSliderChanged: (double newValue) => setState(() => customFeeRate = newValue), + onItemSelected: (TransactionPriority priority) { + sendViewModel.setTransactionPriority(priority); + setState(() => selectedIdx = items.indexOf(priority)); + }, + ); + }, + ); + }, ); + if (isBitcoinWallet) sendViewModel.customBitcoinFeeRate = customFeeRate!.round(); } void _presentPicker(BuildContext context) { diff --git a/lib/src/screens/settings/other_settings_page.dart b/lib/src/screens/settings/other_settings_page.dart index fcf6830501..90139e8c42 100644 --- a/lib/src/screens/settings/other_settings_page.dart +++ b/lib/src/screens/settings/other_settings_page.dart @@ -2,11 +2,12 @@ import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/settings/widgets/setting_priority_picker_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_version_cell.dart'; -import 'package:cake_wallet/src/widgets/standard_list.dart'; import 'package:cake_wallet/view_model/settings/other_settings_view_model.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -27,13 +28,23 @@ class OtherSettingsPage extends BasePage { child: Column( children: [ if (_otherSettingsViewModel.displayTransactionPriority) - SettingsPickerCell( - title: S.current.settings_fee_priority, - items: priorityForWalletType(_otherSettingsViewModel.walletType), - displayItem: _otherSettingsViewModel.getDisplayPriority, - selectedItem: _otherSettingsViewModel.transactionPriority, - onItemSelected: _otherSettingsViewModel.onDisplayPrioritySelected, - ), + _otherSettingsViewModel.walletType == WalletType.bitcoin ? + SettingsPriorityPickerCell( + title: S.current.settings_fee_priority, + items: priorityForWalletType(_otherSettingsViewModel.walletType), + displayItem: _otherSettingsViewModel.getDisplayBitcoinPriority, + selectedItem: _otherSettingsViewModel.transactionPriority, + customItemIndex: _otherSettingsViewModel.customPriorityItemIndex, + onItemSelected: _otherSettingsViewModel.onDisplayBitcoinPrioritySelected, + customValue: _otherSettingsViewModel.customBitcoinFeeRate, + ) : + SettingsPickerCell( + title: S.current.settings_fee_priority, + items: priorityForWalletType(_otherSettingsViewModel.walletType), + displayItem: _otherSettingsViewModel.getDisplayPriority, + selectedItem: _otherSettingsViewModel.transactionPriority, + onItemSelected: _otherSettingsViewModel.onDisplayPrioritySelected, + ), if (_otherSettingsViewModel.changeRepresentativeEnabled) SettingsCellWithArrow( title: S.current.change_rep, diff --git a/lib/src/screens/settings/widgets/setting_priority_picker_cell.dart b/lib/src/screens/settings/widgets/setting_priority_picker_cell.dart new file mode 100644 index 0000000000..bba44606d1 --- /dev/null +++ b/lib/src/screens/settings/widgets/setting_priority_picker_cell.dart @@ -0,0 +1,78 @@ +import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:flutter/material.dart'; +import 'package:cake_wallet/src/widgets/picker.dart'; +import 'package:cake_wallet/src/widgets/standard_list.dart'; + +class SettingsPriorityPickerCell extends StandardListRow { + SettingsPriorityPickerCell( + {required String title, + required this.selectedItem, + required this.items, + this.displayItem, + this.images, + this.searchHintText, + this.isGridView = false, + this.matchingCriteria, + this.customValue, + this.customItemIndex, + this.onItemSelected}) + : super( + title: title, + isSelected: false, + onTap: (BuildContext context) async { + var selectedAtIndex = items.indexOf(selectedItem); + double sliderValue = customValue ?? 0.0; + + await showPopUp( + context: context, + builder: (BuildContext context) { + return StatefulBuilder( + builder: (BuildContext context, StateSetter setState) { + return Picker( + items: items, + displayItem: (ItemType item) => displayItem!(item, sliderValue.round()), + selectedAtIndex: selectedAtIndex, + customItemIndex: customItemIndex, + headerEnabled: false, + closeOnItemSelected: false, + mainAxisAlignment: MainAxisAlignment.center, + sliderValue: sliderValue, + onSliderChanged: (double newValue) => + setState(() => sliderValue = newValue), + onItemSelected: (ItemType priority) { + setState(() => selectedAtIndex = items.indexOf(priority)); + onItemSelected?.call(priority, sliderValue); + }, + ); + }, + ); + }, + ); + onItemSelected?.call(items[selectedAtIndex], sliderValue); + }); + + final ItemType selectedItem; + final List items; + final void Function(ItemType item, double customValue)? onItemSelected; + final String Function(ItemType item, int value)? displayItem; + final List? images; + final String? searchHintText; + final bool isGridView; + final bool Function(ItemType, String)? matchingCriteria; + double? customValue; + int? customItemIndex; + + @override + Widget buildTrailing(BuildContext context) { + return Text( + displayItem?.call(selectedItem,customValue?.round() ?? 0) ?? selectedItem.toString(), + textAlign: TextAlign.right, + style: TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.detailsTitlesColor, + ), + ); + } +} diff --git a/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart b/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart new file mode 100644 index 0000000000..8f722ee7e8 --- /dev/null +++ b/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart @@ -0,0 +1,23 @@ +import 'package:cake_wallet/src/screens/transaction_details/transaction_details_list_item.dart'; + +class StandardPickerListItem extends TransactionDetailsListItem { + StandardPickerListItem( + {required String title, + required String value, + required this.items, + required this.displayItem, + required this.onSliderChanged, + required this.onItemSelected, + required this.selectedIdx, + required this.customItemIndex, + required this.customValue}) + : super(title: title, value: value); + + final List items; + final String Function(T item, double sliderValue) displayItem; + final Function(double) onSliderChanged; + final Function(T) onItemSelected; + final int selectedIdx; + final int customItemIndex; + double customValue; +} diff --git a/lib/src/screens/transaction_details/rbf_details_page.dart b/lib/src/screens/transaction_details/rbf_details_page.dart new file mode 100644 index 0000000000..875e0a4efd --- /dev/null +++ b/lib/src/screens/transaction_details/rbf_details_page.dart @@ -0,0 +1,199 @@ +import 'package:cake_wallet/core/execution_state.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart'; +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/textfield_list_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/transaction_expandable_list_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/widgets/textfield_list_row.dart'; +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; +import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; +import 'package:cake_wallet/src/widgets/list_row.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/src/widgets/standard_expandable_list.dart'; +import 'package:cake_wallet/src/widgets/standard_list.dart'; +import 'package:cake_wallet/src/widgets/standard_picker_list.dart'; +import 'package:cake_wallet/utils/show_bar.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/send/send_view_model_state.dart'; +import 'package:cake_wallet/view_model/transaction_details_view_model.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_mobx/flutter_mobx.dart'; +import 'package:mobx/mobx.dart'; + +class RBFDetailsPage extends BasePage { + RBFDetailsPage({required this.transactionDetailsViewModel}); + + @override + String get title => S.current.bump_fee; + + final TransactionDetailsViewModel transactionDetailsViewModel; + + bool _effectsInstalled = false; + + @override + Widget body(BuildContext context) { + _setEffects(context); + + return Column( + children: [ + Expanded( + child: SectionStandardList( + sectionCount: 1, + itemCounter: (int _) => transactionDetailsViewModel.RBFListItems.length, + itemBuilder: (__, index) { + final item = transactionDetailsViewModel.RBFListItems[index]; + + if (item is StandartListItem) { + return GestureDetector( + onTap: () { + Clipboard.setData(ClipboardData(text: item.value)); + showBar(context, S.of(context).transaction_details_copied(item.title)); + }, + child: ListRow(title: '${item.title}:', value: item.value), + ); + } + + if (item is StandardExpandableListItem) { + return StandardExpandableList( + title: '${item.title}: ${item.expandableItems.length}', + expandableItems: item.expandableItems, + ); + } + + if (item is StandardPickerListItem) { + return StandardPickerList( + title: item.title, + value: item.value, + items: item.items, + displayItem: item.displayItem, + onSliderChanged: item.onSliderChanged, + onItemSelected: item.onItemSelected, + selectedIdx: item.selectedIdx, + customItemIndex: item.customItemIndex, + customValue: item.customValue, + ); + } + + if (item is TextFieldListItem) { + return TextFieldListRow( + title: item.title, + value: item.value, + onSubmitted: item.onSubmitted, + ); + } + + return Container(); + }), + ), + Padding( + padding: const EdgeInsets.all(24), + child: Observer( + builder: (_) => LoadingPrimaryButton( + onPressed: () async { + transactionDetailsViewModel + .replaceByFee(transactionDetailsViewModel.newFee.toString()); + }, + text: S.of(context).send, + isLoading: + transactionDetailsViewModel.sendViewModel.state is IsExecutingState, + color: Theme.of(context).primaryColor, + textColor: Colors.white, + ))), + ], + ); + } + + void _setEffects(BuildContext context) { + if (_effectsInstalled) { + return; + } + + reaction((_) => transactionDetailsViewModel.sendViewModel.state, (ExecutionState state) { + if (state is FailureState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext popupContext) { + return AlertWithOneAction( + alertTitle: S.of(popupContext).error, + alertContent: state.error, + buttonText: S.of(popupContext).ok, + buttonAction: () => Navigator.of(popupContext).pop()); + }); + }); + } + if (state is AwaitingConfirmationState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext popupContext) { + return AlertWithTwoActions( + alertTitle: state.title ?? '', + alertContent: state.message ?? '', + rightButtonText: S.of(context).ok, + leftButtonText: S.of(context).cancel, + actionRightButton: () { + state.onConfirm?.call(); + Navigator.of(popupContext).pop(); + }, + actionLeftButton: () { + state.onCancel?.call(); + Navigator.of(popupContext).pop(); + }); + }); + }); + } + + if (state is ExecutedSuccessfullyState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext popupContext) { + return ConfirmSendingAlert( + alertTitle: S.of(popupContext).confirm_sending, + amount: S.of(popupContext).send_amount, + amountValue: transactionDetailsViewModel + .sendViewModel.pendingTransaction!.amountFormatted, + fee: S.of(popupContext).send_fee, + feeValue: + transactionDetailsViewModel.sendViewModel.pendingTransaction!.feeFormatted, + rightButtonText: S.of(popupContext).send, + leftButtonText: S.of(popupContext).cancel, + actionRightButton: () async { + Navigator.of(popupContext).pop(); + await transactionDetailsViewModel.sendViewModel.commitTransaction(); + // transactionStatePopup(); + }, + actionLeftButton: () => Navigator.of(popupContext).pop(), + feeFiatAmount: + transactionDetailsViewModel.pendingTransactionFeeFiatAmountFormatted, + fiatAmountValue: + transactionDetailsViewModel.pendingTransactionFiatAmountValueFormatted, + outputs: transactionDetailsViewModel.sendViewModel.outputs); + }); + }); + } + + if (state is TransactionCommitted) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + showPopUp( + context: context, + builder: (BuildContext popupContext) { + return AlertWithOneAction( + alertTitle: S.of(popupContext).sending, + alertContent: S.of(popupContext).transaction_sent, + buttonText: S.of(popupContext).ok, + buttonAction: () => Navigator.of(popupContext).pop()); + }); + } + }); + } + }); + + _effectsInstalled = true; + } +} diff --git a/lib/src/screens/transaction_details/transaction_details_page.dart b/lib/src/screens/transaction_details/transaction_details_page.dart index a6f60a52d5..7734f37ed8 100644 --- a/lib/src/screens/transaction_details/transaction_details_page.dart +++ b/lib/src/screens/transaction_details/transaction_details_page.dart @@ -1,15 +1,18 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; +import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/textfield_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/widgets/textfield_list_row.dart'; +import 'package:cake_wallet/src/widgets/list_row.dart'; import 'package:cake_wallet/src/widgets/standard_list.dart'; import 'package:cake_wallet/utils/show_bar.dart'; import 'package:cake_wallet/view_model/transaction_details_view_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/widgets/list_row.dart'; -import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart'; -import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; -import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:flutter_mobx/flutter_mobx.dart'; class TransactionDetailsPage extends BasePage { TransactionDetailsPage({required this.transactionDetailsViewModel}); @@ -21,41 +24,62 @@ class TransactionDetailsPage extends BasePage { @override Widget body(BuildContext context) { - return SectionStandardList( - sectionCount: 1, - itemCounter: (int _) => transactionDetailsViewModel.items.length, - itemBuilder: (__, index) { - final item = transactionDetailsViewModel.items[index]; - - if (item is StandartListItem) { - return GestureDetector( - onTap: () { - Clipboard.setData(ClipboardData(text: item.value)); - showBar(context, - S.of(context).transaction_details_copied(item.title)); - }, - child: - ListRow(title: '${item.title}:', value: item.value), - ); - } - - if (item is BlockExplorerListItem) { - return GestureDetector( - onTap: item.onTap, - child: - ListRow(title: '${item.title}:', value: item.value), - ); - } - - if (item is TextFieldListItem) { - return TextFieldListRow( - title: item.title, - value: item.value, - onSubmitted: item.onSubmitted, - ); - } - - return Container(); - }); + return Column( + children: [ + Expanded( + child: SectionStandardList( + sectionCount: 1, + itemCounter: (int _) => transactionDetailsViewModel.items.length, + itemBuilder: (__, index) { + final item = transactionDetailsViewModel.items[index]; + + if (item is StandartListItem) { + return GestureDetector( + onTap: () { + Clipboard.setData(ClipboardData(text: item.value)); + showBar(context, S.of(context).transaction_details_copied(item.title)); + }, + child: ListRow(title: '${item.title}:', value: item.value), + ); + } + + if (item is BlockExplorerListItem) { + return GestureDetector( + onTap: item.onTap, + child: ListRow(title: '${item.title}:', value: item.value), + ); + } + + if (item is TextFieldListItem) { + return TextFieldListRow( + title: item.title, + value: item.value, + onSubmitted: item.onSubmitted, + ); + } + + return Container(); + }), + ), + Observer( + builder: (_) { + if (transactionDetailsViewModel.canReplaceByFee) { + return Padding( + padding: const EdgeInsets.all(24), + child: SelectButton( + text: S.of(context).bump_fee, + onTap: () async { + Navigator.of(context).pushNamed(Routes.bumpFeePage, + arguments: transactionDetailsViewModel.transactionInfo); + }, + ), + ); + } + + return const SizedBox(); + }, + ), + ], + ); } } diff --git a/lib/src/screens/transaction_details/transaction_expandable_list_item.dart b/lib/src/screens/transaction_details/transaction_expandable_list_item.dart new file mode 100644 index 0000000000..e87405de3f --- /dev/null +++ b/lib/src/screens/transaction_details/transaction_expandable_list_item.dart @@ -0,0 +1,7 @@ +import 'package:cake_wallet/src/screens/transaction_details/transaction_details_list_item.dart'; + +class StandardExpandableListItem extends TransactionDetailsListItem { + StandardExpandableListItem({required String title, required this.expandableItems}) + : super(title: title, value: ''); + final List expandableItems; +} diff --git a/lib/src/widgets/checkbox_widget.dart b/lib/src/widgets/checkbox_widget.dart index 1ea3ee6988..a3c78d0cf5 100644 --- a/lib/src/widgets/checkbox_widget.dart +++ b/lib/src/widgets/checkbox_widget.dart @@ -31,7 +31,6 @@ class CheckboxWidgetState extends State { }, child: Row( mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( height: 24.0, diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart index 01b869b1bc..d87b5721e9 100644 --- a/lib/src/widgets/picker.dart +++ b/lib/src/widgets/picker.dart @@ -24,6 +24,13 @@ class Picker extends StatefulWidget { this.isGridView = false, this.isSeparated = true, this.hintText, + this.headerEnabled = true, + this.closeOnItemSelected = true, + this.sliderValue, + this.customItemIndex, + this.isWrapped = true, + this.borderColor, + this.onSliderChanged, this.matchingCriteria, }) : assert(hintText == null || matchingCriteria != @@ -40,6 +47,13 @@ class Picker extends StatefulWidget { final bool isGridView; final bool isSeparated; final String? hintText; + final bool headerEnabled; + final bool closeOnItemSelected; + final double? sliderValue; + final int? customItemIndex; + final bool isWrapped; + final Color? borderColor; + final Function(double)? onSliderChanged; final bool Function(Item, String)? matchingCriteria; @override @@ -124,8 +138,7 @@ class _PickerState extends State> { containerHeight = height * 0.75; } - return PickerWrapperWidget( - hasTitle: widget.title?.isNotEmpty ?? false, + final content = Column ( children: [ if (widget.title?.isNotEmpty ?? false) Container( @@ -144,61 +157,71 @@ class _PickerState extends State> { ), Padding( padding: EdgeInsets.symmetric(horizontal: padding), - child: ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(30)), - child: Container( - color: Theme.of(context).dialogTheme.backgroundColor, - child: ConstrainedBox( - constraints: BoxConstraints( - maxHeight: containerHeight, - maxWidth: ResponsiveLayoutUtilBase.kPopupWidth, - ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - if (widget.hintText != null) - Padding( - padding: const EdgeInsets.all(16), - child: SearchBarWidget(searchController: searchController), + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + border: Border.all( + color: widget.borderColor ?? Colors.transparent, + ), + ), + child: ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(30)), + child: Container( + color: Theme.of(context).dialogTheme.backgroundColor, + child: ConstrainedBox( + constraints: BoxConstraints( + maxHeight: containerHeight, + maxWidth: ResponsiveLayoutUtilBase.kPopupWidth, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (widget.hintText != null) + Padding( + padding: const EdgeInsets.all(16), + child: SearchBarWidget( + searchController: searchController, hintText: widget.hintText), + ), + Divider( + color: Theme.of(context).extension()!.dividerColor, + height: 1, ), - Divider( - color: Theme.of(context).extension()!.dividerColor, - height: 1, - ), - if (widget.selectedAtIndex != -1) buildSelectedItem(widget.selectedAtIndex), - Flexible( - child: Stack( - alignment: Alignment.center, - children: [ - filteredItems.length > 3 - ? Scrollbar( - controller: controller, - child: itemsList(), - ) - : itemsList(), - (widget.description?.isNotEmpty ?? false) - ? Positioned( - bottom: padding, - left: padding, - right: padding, - child: Text( - widget.description!, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.w500, - fontFamily: 'Lato', - decoration: TextDecoration.none, - color: - Theme.of(context).extension()!.titleColor, + if (widget.selectedAtIndex != -1 && widget.headerEnabled) + buildSelectedItem(widget.selectedAtIndex), + Flexible( + child: Stack( + alignment: Alignment.center, + children: [ + filteredItems.length > 3 + ? Scrollbar( + controller: controller, + child: itemsList(), + ) + : itemsList(), + (widget.description?.isNotEmpty ?? false) + ? Positioned( + bottom: padding, + left: padding, + right: padding, + child: Text( + widget.description!, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + fontFamily: 'Lato', + decoration: TextDecoration.none, + color: + Theme.of(context).extension()!.titleColor, + ), ), - ), - ) - : Offstage(), - ], + ) + : Offstage(), + ], + ), ), - ), - ], + ], + ), ), ), ), @@ -206,9 +229,23 @@ class _PickerState extends State> { ) ], ); + + if (widget.isWrapped) { + return PickerWrapperWidget( + hasTitle: widget.title?.isNotEmpty ?? false, + children: [content], + ); + } else { + return content; + } } Widget itemsList() { + final itemCount = !widget.headerEnabled + ? items.length + : filteredItems.isEmpty + ? 0 + : filteredItems.length; return Container( color: Theme.of(context).extension()!.dividerColor, child: widget.isGridView @@ -216,13 +253,16 @@ class _PickerState extends State> { padding: EdgeInsets.zero, controller: controller, shrinkWrap: true, - itemCount: filteredItems.isEmpty ? 0 : filteredItems.length, + itemCount: itemCount, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 2, childAspectRatio: 3, ), - itemBuilder: (context, index) => buildItem(index), + itemBuilder: (context, index) => + !widget.headerEnabled && widget.selectedAtIndex == index + ? buildSelectedItem(index) + : buildItem(index), ) : ListView.separated( padding: EdgeInsets.zero, @@ -234,83 +274,97 @@ class _PickerState extends State> { height: 1, ) : const SizedBox(), - itemCount: filteredItems.isEmpty ? 0 : filteredItems.length, - itemBuilder: (context, index) => buildItem(index), + itemCount: itemCount, + itemBuilder: (context, index) => + !widget.headerEnabled && widget.selectedAtIndex == index + ? buildSelectedItem(index) + : buildItem(index), ), ); } Widget buildItem(int index) { - final item = filteredItems[index]; + final item = widget.headerEnabled ? filteredItems[index] : items[index]; final tag = item is Currency ? item.tag : null; final icon = _getItemIcon(item); final image = images.isNotEmpty ? filteredImages[index] : icon; + final isCustomItem = widget.customItemIndex != null && index == widget.customItemIndex; + + final itemContent = Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: widget.mainAxisAlignment, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image ?? Offstage(), + Expanded( + child: Padding( + padding: EdgeInsets.only(left: image != null ? 12 : 0), + child: Row( + children: [ + Flexible( + child: Text( + widget.displayItem?.call(item) ?? item.toString(), + softWrap: true, + style: TextStyle( + fontSize: 14, + fontFamily: 'Lato', + fontWeight: FontWeight.w600, + color: Theme.of(context).extension()!.titleColor, + decoration: TextDecoration.none, + ), + ), + ), + if (tag != null) + Align( + alignment: Alignment.topCenter, + child: Container( + width: 35.0, + height: 18.0, + child: Center( + child: Text( + tag, + style: TextStyle( + fontSize: 7.0, + fontFamily: 'Lato', + color: Theme.of(context).extension()!.thumbColor, + ), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.0), + //border: Border.all(color: ), + color: Theme.of(context).extension()!.trackColor, + ), + ), + ), + ], + ), + ), + ), + ], + ); + return GestureDetector( onTap: () { - Navigator.of(context).pop(); + if (widget.closeOnItemSelected) Navigator.of(context).pop(); onItemSelected(item!); }, child: Container( - height: 55, + height: isCustomItem ? 95 : 55, color: Theme.of(context).dialogTheme.backgroundColor, padding: EdgeInsets.symmetric(horizontal: 24), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: widget.mainAxisAlignment, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - image ?? Offstage(), - Expanded( - child: Padding( - padding: EdgeInsets.only(left: image != null ? 12 : 0), - child: Row( - children: [ - Flexible( - child: Text( - widget.displayItem?.call(item) ?? item.toString(), - softWrap: true, - style: TextStyle( - fontSize: 14, - fontFamily: 'Lato', - fontWeight: FontWeight.w600, - color: Theme.of(context).extension()!.titleColor, - decoration: TextDecoration.none, - ), - ), - ), - if (tag != null) - Align( - alignment: Alignment.topCenter, - child: Container( - width: 35.0, - height: 18.0, - child: Center( - child: Text( - tag, - style: TextStyle( - fontSize: 7.0, - fontFamily: 'Lato', - color: - Theme.of(context).extension()!.thumbColor, - ), - ), - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6.0), - //border: Border.all(color: ), - color: Theme.of(context).extension()!.trackColor, - ), - ), - ), - ], - ), - ), - ), - ], - ), + child: isCustomItem + ? Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + itemContent, + buildSlider(index: index, isActivated: widget.selectedAtIndex == index) + ], + ) + : itemContent, ), ); } @@ -323,69 +377,80 @@ class _PickerState extends State> { final image = images.isNotEmpty ? images[index] : icon; - return GestureDetector( - onTap: () { - Navigator.of(context).pop(); - }, - child: Container( - height: 55, - color: Theme.of(context).dialogTheme.backgroundColor, - padding: EdgeInsets.symmetric(horizontal: 24), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: widget.mainAxisAlignment, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - image ?? Offstage(), - Expanded( - child: Padding( - padding: EdgeInsets.only(left: image != null ? 12 : 0), - child: Row( - children: [ - Flexible( - child: Text( - widget.displayItem?.call(item) ?? item.toString(), - softWrap: true, - style: TextStyle( - fontSize: 16, - fontFamily: 'Lato', - fontWeight: FontWeight.w700, - color: Theme.of(context).extension()!.titleColor, - decoration: TextDecoration.none, - ), - ), + final isCustomItem = widget.customItemIndex != null && index == widget.customItemIndex; + + final itemContent = Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: widget.mainAxisAlignment, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image ?? Offstage(), + Expanded( + child: Padding( + padding: EdgeInsets.only(left: image != null ? 12 : 0), + child: Row( + children: [ + Flexible( + child: Text( + widget.displayItem?.call(item) ?? item.toString(), + softWrap: true, + style: TextStyle( + fontSize: 16, + fontFamily: 'Lato', + fontWeight: FontWeight.w700, + color: Theme.of(context).extension()!.titleColor, + decoration: TextDecoration.none, ), - if (tag != null) - Align( - alignment: Alignment.topCenter, - child: Container( - width: 35.0, - height: 18.0, - child: Center( - child: Text( - tag, - style: TextStyle( - fontSize: 7.0, - fontFamily: 'Lato', - color: - Theme.of(context).extension()!.thumbColor, - ), - ), - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6.0), - //border: Border.all(color: ), - color: Theme.of(context).extension()!.trackColor, + ), + ), + if (tag != null) + Align( + alignment: Alignment.topCenter, + child: Container( + width: 35.0, + height: 18.0, + child: Center( + child: Text( + tag, + style: TextStyle( + fontSize: 7.0, + fontFamily: 'Lato', + color: Theme.of(context).extension()!.thumbColor, ), ), ), - ], - ), - ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.0), + //border: Border.all(color: ), + color: Theme.of(context).extension()!.trackColor, + ), + ), + ), + ], ), - Icon(Icons.check_circle, color: Theme.of(context).primaryColor), - ], + ), ), + Icon(Icons.check_circle, color: Theme.of(context).primaryColor), + ], + ); + + return GestureDetector( + onTap: () { + if (widget.closeOnItemSelected) Navigator.of(context).pop(); + }, + child: Container( + height: isCustomItem ? 95 : 55, + color: Theme.of(context).dialogTheme.backgroundColor, + padding: EdgeInsets.symmetric(horizontal: 24), + child: isCustomItem + ? Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + itemContent, + buildSlider(index: index, isActivated: widget.selectedAtIndex == index) + ], + ) + : itemContent, ), ); } @@ -418,4 +483,20 @@ class _PickerState extends State> { return null; } + + Widget buildSlider({required int index, required bool isActivated}) { + return Row( + children: [ + Expanded( + child: Slider( + value: widget.sliderValue ?? 1, + onChanged: isActivated ? widget.onSliderChanged : null, + min: 1, + max: 100, + divisions: 100, + ), + ), + ], + ); + } } diff --git a/lib/src/widgets/search_bar_widget.dart b/lib/src/widgets/search_bar_widget.dart index dc604934f2..45155b3806 100644 --- a/lib/src/widgets/search_bar_widget.dart +++ b/lib/src/widgets/search_bar_widget.dart @@ -19,7 +19,7 @@ class SearchBarWidget extends StatelessWidget { controller: searchController, style: TextStyle(color: Theme.of(context).extension()!.searchHintColor), decoration: InputDecoration( - hintText: hintText ?? S.of(context).search_currency, + hintText: hintText ?? S.of(context).search, hintStyle: TextStyle(color: Theme.of(context).extension()!.searchHintColor), prefixIcon: Image.asset("assets/images/search_icon.png", color: Theme.of(context).extension()!.searchIconColor), diff --git a/lib/src/widgets/standard_expandable_list.dart b/lib/src/widgets/standard_expandable_list.dart new file mode 100644 index 0000000000..d1bcae646c --- /dev/null +++ b/lib/src/widgets/standard_expandable_list.dart @@ -0,0 +1,58 @@ +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; +import 'package:flutter/material.dart'; + +class StandardExpandableList extends StatelessWidget { + StandardExpandableList({ + required this.title, + required this.expandableItems, + this.decoration, + }); + + final String title; + final List expandableItems; + final Decoration? decoration; + + @override + Widget build(BuildContext context) { + return Container( + decoration: decoration ?? + BoxDecoration( + color: Theme.of(context).colorScheme.background, + ), + child: Theme( + data: Theme.of(context).copyWith(dividerColor: Colors.transparent), + child: ExpansionTile( + iconColor: Theme.of(context).extension()!.detailsTitlesColor, + collapsedIconColor: + Theme.of(context).extension()!.detailsTitlesColor, + title: Text( + title, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.detailsTitlesColor, + ), + textAlign: TextAlign.left, + ), + children: expandableItems.map((item) { + return Padding( + padding: const EdgeInsets.only(left: 16.0, bottom: 8.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + item.toString(), + maxLines: 1, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor), + ), + ), + ); + }).toList(), + ), + ), + ); + } +} diff --git a/lib/src/widgets/standard_picker_list.dart b/lib/src/widgets/standard_picker_list.dart new file mode 100644 index 0000000000..eb1d169000 --- /dev/null +++ b/lib/src/widgets/standard_picker_list.dart @@ -0,0 +1,81 @@ +import 'package:cake_wallet/src/widgets/list_row.dart'; +import 'package:cake_wallet/src/widgets/picker.dart'; +import 'package:cake_wallet/themes/extensions/picker_theme.dart'; +import 'package:flutter/material.dart'; + +class StandardPickerList extends StatefulWidget { + StandardPickerList({ + Key? key, + required this.title, + required this.value, + required this.items, + required this.displayItem, + required this.onSliderChanged, + required this.onItemSelected, + required this.selectedIdx, + required this.customItemIndex, + required this.customValue, + }) : super(key: key); + + final String title; + final List items; + final int customItemIndex; + final String Function(T item, double sliderValue) displayItem; + final Function(double) onSliderChanged; + final Function(T) onItemSelected; + final String value; + final int selectedIdx; + final double customValue; + + @override + _StandardPickerListState createState() => _StandardPickerListState(); +} + +class _StandardPickerListState extends State> { + late String value; + late int selectedIdx; + late double customValue; + + @override + void initState() { + super.initState(); + + value = widget.value; + selectedIdx = widget.selectedIdx; + customValue = widget.customValue; + } + + @override + Widget build(BuildContext context) { + String adaptedDisplayItem(T item) => widget.displayItem(item, customValue); + + return Column( + children: [ + ListRow(title: '${widget.title}:', value: value), + Padding( + padding: const EdgeInsets.only(left: 24, right: 24, top: 0, bottom: 24), + child: Picker( + items: widget.items, + displayItem: adaptedDisplayItem, + selectedAtIndex: selectedIdx, + customItemIndex: widget.customItemIndex, + headerEnabled: false, + closeOnItemSelected: false, + mainAxisAlignment: MainAxisAlignment.center, + sliderValue: customValue, + isWrapped: false, + borderColor: Theme.of(context).extension()!.dividerColor, + onSliderChanged: (newValue) { + setState(() => customValue = newValue); + value = widget.onSliderChanged(newValue).toString(); + }, + onItemSelected: (T item) { + setState(() => selectedIdx = widget.items.indexOf(item)); + value = widget.onItemSelected(item).toString(); + }, + ), + ), + ], + ); + } +} diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 9997e26754..df2b438b40 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -105,6 +105,7 @@ abstract class SettingsStoreBase with Store { required this.lookupsUnstoppableDomains, required this.lookupsOpenAlias, required this.lookupsENS, + required this.customBitcoinFeeRate, TransactionPriority? initialBitcoinTransactionPriority, TransactionPriority? initialMoneroTransactionPriority, TransactionPriority? initialHavenTransactionPriority, @@ -504,6 +505,11 @@ abstract class SettingsStoreBase with Store { (PinCodeRequiredDuration pinCodeInterval) => secureStorage.write( key: SecureKey.pinTimeOutDuration, value: pinCodeInterval.value.toString())); + reaction( + (_) => customBitcoinFeeRate, + (int customBitcoinFeeRate) => + _sharedPreferences.setInt(PreferencesKey.customBitcoinFeeRate, customBitcoinFeeRate)); + this.nodes.observe((change) { if (change.newValue != null && change.key != null) { _saveCurrentNode(change.newValue!, change.key!); @@ -690,6 +696,9 @@ abstract class SettingsStoreBase with Store { String deviceName; + @observable + int customBitcoinFeeRate; + final FlutterSecureStorage _secureStorage; final SharedPreferences _sharedPreferences; final BackgroundTasks _backgroundTasks; @@ -834,6 +843,7 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getBool(PreferencesKey.lookupsUnstoppableDomains) ?? true; final lookupsOpenAlias = sharedPreferences.getBool(PreferencesKey.lookupsOpenAlias) ?? true; final lookupsENS = sharedPreferences.getBool(PreferencesKey.lookupsENS) ?? true; + final customBitcoinFeeRate = sharedPreferences.getInt(PreferencesKey.customBitcoinFeeRate) ?? 1; // If no value if (pinLength == null || pinLength == 0) { @@ -1068,6 +1078,7 @@ abstract class SettingsStoreBase with Store { lookupsUnstoppableDomains: lookupsUnstoppableDomains, lookupsOpenAlias: lookupsOpenAlias, lookupsENS: lookupsENS, + customBitcoinFeeRate: customBitcoinFeeRate, initialMoneroTransactionPriority: moneroTransactionPriority, initialBitcoinTransactionPriority: bitcoinTransactionPriority, initialHavenTransactionPriority: havenTransactionPriority, @@ -1159,7 +1170,8 @@ abstract class SettingsStoreBase with Store { isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure; disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy; disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell; - disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin; + disableBulletin = + sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin; walletListOrder = WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0]; walletListAscending = sharedPreferences.getBool(PreferencesKey.walletListAscending) ?? true; @@ -1200,7 +1212,7 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getBool(PreferencesKey.lookupsUnstoppableDomains) ?? true; lookupsOpenAlias = sharedPreferences.getBool(PreferencesKey.lookupsOpenAlias) ?? true; lookupsENS = sharedPreferences.getBool(PreferencesKey.lookupsENS) ?? true; - + customBitcoinFeeRate = sharedPreferences.getInt(PreferencesKey.customBitcoinFeeRate) ?? 1; final nodeId = sharedPreferences.getInt(PreferencesKey.currentNodeIdKey); final bitcoinElectrumServerId = sharedPreferences.getInt(PreferencesKey.currentBitcoinElectrumSererIdKey); diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index 62db9cbcda..6bb3fbb316 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -121,11 +121,19 @@ abstract class OutputBase with Store { return solana!.getEstimateFees(_wallet) ?? 0.0; } - final fee = _wallet.calculateEstimatedFee( + int? fee = _wallet.calculateEstimatedFee( _settingsStore.priority[_wallet.type]!, formattedCryptoAmount); - if (_wallet.type == WalletType.bitcoin || - _wallet.type == WalletType.litecoin || + if (_wallet.type == WalletType.bitcoin) { + if (_settingsStore.priority[_wallet.type] == bitcoin!.getBitcoinTransactionPriorityCustom()) { + fee = bitcoin!.getFeeAmountWithFeeRate( + _settingsStore.customBitcoinFeeRate, formattedCryptoAmount, 1, 1); + } + + return bitcoin!.formatterBitcoinAmountToDouble(amount: fee); + } + + if (_wallet.type == WalletType.litecoin || _wallet.type == WalletType.bitcoinCash) { return bitcoin!.formatterBitcoinAmountToDouble(amount: fee); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index df1c75def0..28cd0128f2 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -39,6 +39,7 @@ import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:collection/collection.dart'; part 'send_view_model.g.dart'; @@ -68,9 +69,12 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor _settingsStore = appStore.settingsStore, fiatFromSettings = appStore.settingsStore.fiatCurrency, super(appStore: appStore) { + if (wallet.type == WalletType.bitcoin && + _settingsStore.priority[wallet.type] == bitcoinTransactionPriorityCustom) { + setTransactionPriority(bitcoinTransactionPriorityMedium); + } final priority = _settingsStore.priority[wallet.type]; final priorities = priorityForWalletType(wallet.type); - if (!priorityForWalletType(wallet.type).contains(priority) && priorities.isNotEmpty) { _settingsStore.priority[wallet.type] = priorities.first; } @@ -152,6 +156,21 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return priority; } + + int? getCustomPriorityIndex(List priorities) { + if (wallet.type == WalletType.bitcoin) { + final customItem = priorities.firstWhereOrNull((element) => element == bitcoin!.getBitcoinTransactionPriorityCustom()); + + return customItem != null ? priorities.indexOf(customItem) : null; + } + return null; + } + + @computed + int get customBitcoinFeeRate => _settingsStore.customBitcoinFeeRate; + + void set customBitcoinFeeRate(int value) => _settingsStore.customBitcoinFeeRate = value; + CryptoCurrency get currency => wallet.currency; Validator get amountValidator => @@ -323,6 +342,29 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return null; } + @action + Future replaceByFee(String txId, String newFee) async { + state = IsExecutingState(); + + final isSufficient = await bitcoin!.isChangeSufficientForFee(wallet, txId, newFee); + + if (!isSufficient) { + state = AwaitingConfirmationState( + title: S.current.confirm_fee_deduction, + message: S.current.confirm_fee_deduction_content, + onConfirm: () async { + pendingTransaction = await bitcoin!.replaceByFee(wallet, txId, newFee); + state = ExecutedSuccessfullyState(); + }, + onCancel: () { + state = FailureState('Insufficient change for fee'); + }); + } else { + pendingTransaction = await bitcoin!.replaceByFee(wallet, txId, newFee); + state = ExecutedSuccessfullyState(); + } + } + @action Future commitTransaction() async { if (pendingTransaction == null) { @@ -380,7 +422,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor case WalletType.bitcoin: case WalletType.litecoin: case WalletType.bitcoinCash: - return bitcoin!.createBitcoinTransactionCredentials(outputs, priority: priority!); + return bitcoin!.createBitcoinTransactionCredentials(outputs, + priority: priority!, feeRate: customBitcoinFeeRate); case WalletType.monero: return monero! @@ -406,9 +449,14 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } } - String displayFeeRate(dynamic priority) { + String displayFeeRate(dynamic priority, int? customValue) { final _priority = priority as TransactionPriority; + if (walletType == WalletType.bitcoin) { + final rate = bitcoin!.getFeeRate(wallet, _priority); + return bitcoin!.bitcoinTransactionPriorityWithLabel(_priority, rate, customRate: customValue); + } + if (isElectrumWallet) { final rate = bitcoin!.getFeeRate(wallet, _priority); return bitcoin!.bitcoinTransactionPriorityWithLabel(_priority, rate); @@ -420,6 +468,12 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor bool _isEqualCurrency(String currency) => wallet.balance.keys.any((e) => currency.toLowerCase() == e.title.toLowerCase()); + TransactionPriority get bitcoinTransactionPriorityCustom => + bitcoin!.getBitcoinTransactionPriorityCustom(); + + TransactionPriority get bitcoinTransactionPriorityMedium => + bitcoin!.getBitcoinTransactionPriorityMedium(); + @action void onClose() => _settingsStore.fiatCurrency = fiatFromSettings; diff --git a/lib/view_model/settings/other_settings_view_model.dart b/lib/view_model/settings/other_settings_view_model.dart index 263532d29a..cf410a1a97 100644 --- a/lib/view_model/settings/other_settings_view_model.dart +++ b/lib/view_model/settings/other_settings_view_model.dart @@ -11,6 +11,7 @@ import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:mobx/mobx.dart'; import 'package:package_info/package_info.dart'; +import 'package:collection/collection.dart'; part 'other_settings_view_model.g.dart'; @@ -77,6 +78,8 @@ abstract class OtherSettingsViewModelBase with Store { ProviderType get sellProviderType => _settingsStore.defaultSellProviders[walletType] ?? ProviderType.askEachTime; + + String getDisplayPriority(dynamic priority) { final _priority = priority as TransactionPriority; @@ -90,6 +93,19 @@ abstract class OtherSettingsViewModelBase with Store { return priority.toString(); } + String getDisplayBitcoinPriority(dynamic priority, int customValue) { + final _priority = priority as TransactionPriority; + + if (_wallet.type == WalletType.bitcoin || + _wallet.type == WalletType.litecoin || + _wallet.type == WalletType.bitcoinCash) { + final rate = bitcoin!.getFeeRate(_wallet, _priority); + return bitcoin!.bitcoinTransactionPriorityWithLabel(_priority, rate, customRate: customValue); + } + + return priority.toString(); + } + String getBuyProviderType(dynamic buyProviderType) { final _buyProviderType = buyProviderType as ProviderType; return _buyProviderType == ProviderType.askEachTime @@ -105,7 +121,24 @@ abstract class OtherSettingsViewModelBase with Store { } void onDisplayPrioritySelected(TransactionPriority priority) => - _settingsStore.priority[_wallet.type] = priority; + _settingsStore.priority[walletType] = priority; + + void onDisplayBitcoinPrioritySelected(TransactionPriority priority, double customValue) { + if (_wallet.type == WalletType.bitcoin) { + _settingsStore.customBitcoinFeeRate = customValue.round(); + } + _settingsStore.priority[_wallet.type] = priority; + } + + @computed + double get customBitcoinFeeRate => _settingsStore.customBitcoinFeeRate.toDouble(); + + int? get customPriorityItemIndex { + final priorities = priorityForWalletType(walletType); + final customItem = priorities + .firstWhereOrNull((element) => element == bitcoin!.getBitcoinTransactionPriorityCustom()); + return customItem != null ? priorities.indexOf(customItem) : null; + } @action ProviderType onBuyProviderTypeSelected(ProviderType buyProviderType) => diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index 1b1ceb814d..fd6d3ef6ea 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -1,20 +1,27 @@ -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/wallet_type.dart'; +import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; +import 'package:cake_wallet/entities/transaction_description.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/monero/monero.dart'; +import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart'; +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/textfield_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/transaction_details_list_item.dart'; -import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart'; -import 'package:cw_core/transaction_direction.dart'; +import 'package:cake_wallet/src/screens/transaction_details/transaction_expandable_list_item.dart'; +import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/utils/date_formatter.dart'; -import 'package:cake_wallet/entities/transaction_description.dart'; +import 'package:cake_wallet/view_model/send/send_view_model.dart'; +import 'package:collection/collection.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:intl/src/intl/date_format.dart'; import 'package:mobx/mobx.dart'; -import 'package:cake_wallet/store/settings_store.dart'; -import 'package:cake_wallet/generated/i18n.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'package:cake_wallet/monero/monero.dart'; part 'transaction_details_view_model.g.dart'; @@ -26,8 +33,11 @@ abstract class TransactionDetailsViewModelBase with Store { {required this.transactionInfo, required this.transactionDescriptionBox, required this.wallet, - required this.settingsStore}) + required this.settingsStore, + required this.sendViewModel}) : items = [], + RBFListItems = [], + newFee = 0, isRecipientAddressShown = false, showRecipientAddress = settingsStore.shouldSaveRecipientAddress { final dateFormat = DateFormatter.withCurrentLocal(); @@ -38,6 +48,10 @@ abstract class TransactionDetailsViewModelBase with Store { _addMoneroListItems(tx, dateFormat); break; case WalletType.bitcoin: + _addElectrumListItems(tx, dateFormat); + _addBumpFeesListItems(tx); + _checkForRBF(); + break; case WalletType.litecoin: case WalletType.bitcoinCash: _addElectrumListItems(tx, dateFormat); @@ -109,10 +123,20 @@ abstract class TransactionDetailsViewModelBase with Store { final Box transactionDescriptionBox; final SettingsStore settingsStore; final WalletBase wallet; + final SendViewModel sendViewModel; final List items; + final List RBFListItems; bool showRecipientAddress; bool isRecipientAddressShown; + int newFee; + TransactionPriority? transactionPriority; + + @observable + bool _canReplaceByFee = false; + + @computed + bool get canReplaceByFee => _canReplaceByFee /*&& transactionInfo.confirmations <= 0*/; String _explorerUrl(WalletType type, String txId) { switch (type) { @@ -305,4 +329,88 @@ abstract class TransactionDetailsViewModelBase with Store { items.addAll(_items); } + + void _addBumpFeesListItems(TransactionInfo tx) { + transactionPriority = bitcoin!.getBitcoinTransactionPriorityMedium(); + + newFee = bitcoin!.getFeeAmountForPriority( + wallet, + bitcoin!.getBitcoinTransactionPriorityMedium(), + transactionInfo.inputAddresses?.length ?? 1, + transactionInfo.outputAddresses?.length ?? 1); + + RBFListItems.add(StandartListItem( + title: S.current.old_fee, + value: tx.feeFormatted() ?? '0.0')); + + final priorities = priorityForWalletType(wallet.type); + final selectedItem = priorities.indexOf(sendViewModel.transactionPriority); + final customItem = priorities.firstWhereOrNull( + (element) => element == sendViewModel.bitcoinTransactionPriorityCustom); + final customItemIndex = customItem != null ? priorities.indexOf(customItem) : null; + + RBFListItems.add(StandardPickerListItem( + title: S.current.estimated_new_fee, + value: bitcoin!.formatterBitcoinAmountToString(amount: newFee) + ' ${walletTypeToCryptoCurrency(wallet.type)}', + items: priorityForWalletType(wallet.type), + customValue: settingsStore.customBitcoinFeeRate.toDouble(), + selectedIdx: selectedItem, + customItemIndex: customItemIndex ?? 0, + displayItem: (dynamic priority, double sliderValue) => + sendViewModel.displayFeeRate(priority, sliderValue.round()), + onSliderChanged: (double newValue) => + setNewFee(value: newValue, priority: transactionPriority!), + onItemSelected: (dynamic item) { + transactionPriority = item as TransactionPriority; + return setNewFee(priority: transactionPriority!); + })); + + if (transactionInfo.inputAddresses != null) { + RBFListItems.add(StandardExpandableListItem( + title: S.current.inputs, expandableItems: transactionInfo.inputAddresses!)); + } + + if (transactionInfo.outputAddresses != null) { + RBFListItems.add(StandardExpandableListItem( + title: S.current.outputs, expandableItems: transactionInfo.outputAddresses!)); + } + } + + @action + Future _checkForRBF() async { + if (wallet.type == WalletType.bitcoin && + transactionInfo.direction == TransactionDirection.outgoing) { + if (await bitcoin!.canReplaceByFee(wallet, transactionInfo.id)) { + _canReplaceByFee = true; + } + } + } + + String setNewFee({double? value, required TransactionPriority priority}) { + newFee = priority == bitcoin!.getBitcoinTransactionPriorityCustom() && value != null + ? bitcoin!.getFeeAmountWithFeeRate( + wallet, + value.round(), + transactionInfo.inputAddresses?.length ?? 1, + transactionInfo.outputAddresses?.length ?? 1) + : bitcoin!.getFeeAmountForPriority( + wallet, + priority, + transactionInfo.inputAddresses?.length ?? 1, + transactionInfo.outputAddresses?.length ?? 1); + + return bitcoin!.formatterBitcoinAmountToString(amount: newFee); + } + + void replaceByFee(String newFee) => sendViewModel.replaceByFee(transactionInfo.id, newFee); + + @computed + String get pendingTransactionFiatAmountValueFormatted => sendViewModel.isFiatDisabled + ? '' + : sendViewModel.pendingTransactionFiatAmount + ' ' + sendViewModel.fiat.title; + + @computed + String get pendingTransactionFeeFiatAmountFormatted => sendViewModel.isFiatDisabled + ? '' + : sendViewModel.pendingTransactionFeeFiatAmount + ' ' + sendViewModel.fiat.title; } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index d4d0d664d0..08815bf1d9 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "تتطلب مدفوعات Bitcoin تأكيدًا واحدًا ، والذي قد يستغرق 20 دقيقة أو أكثر. شكرا لصبرك! سيتم إرسال بريد إلكتروني إليك عند تأكيد الدفع.", "Blocks_remaining": "بلوك متبقي ${status}", "bright_theme": "مشرق", + "bump_fee": "رسوم عثرة", "buy": "اشتري", "buy_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Monero ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .", "buy_bitcoin": "شراء Bitcoin", @@ -133,6 +134,8 @@ "confirm": "تأكيد", "confirm_delete_template": "سيؤدي هذا الإجراء إلى حذف هذا القالب. هل ترغب في الاستمرار؟", "confirm_delete_wallet": "سيؤدي هذا الإجراء إلى حذف هذه المحفظة. هل ترغب في الاستمرار؟", + "confirm_fee_deduction": "تأكيد خصم الرسوم", + "confirm_fee_deduction_content": "هل توافق على خصم الرسوم من الإخراج؟", "confirm_sending": "تأكيد الإرسال", "confirmations": "التأكيدات", "confirmed": "رصيد مؤكد", @@ -212,6 +215,7 @@ "edit_token": "تحرير الرمز المميز", "electrum_address_disclaimer": "نقوم بإنشاء عناوين جديدة في كل مرة تستخدم فيها عنوانًا ، لكن العناوين السابقة تستمر في العمل", "email_address": "عنوان البريد الالكترونى", + "enable_replace_by_fee": "تمكين الاستبدال", "enabled": "ممكنة", "enter_amount": "أدخل المبلغ", "enter_backup_password": "أدخل كلمة المرور الاحتياطية هنا", @@ -248,6 +252,7 @@ "errorGettingCredentials": "ﺩﺎﻤﺘﻋﻻﺍ ﺕﺎﻧﺎﻴﺑ ﻰﻠﻋ ﻝﻮﺼﺤﻟﺍ ءﺎﻨﺛﺃ ﺄﻄﺧ ﺙﺪﺣ :ﻞﺸﻓ", "errorSigningTransaction": "ﺔﻠﻣﺎﻌﻤﻟﺍ ﻊﻴﻗﻮﺗ ءﺎﻨﺛﺃ ﺄﻄﺧ ﺙﺪﺣ", "estimated": "مُقدَّر", + "estimated_new_fee": "رسوم جديدة مقدرة", "etherscan_history": "Etherscan تاريخ", "event": "ﺙﺪﺣ", "events": "ﺙﺍﺪﺣﻷﺍ", @@ -314,6 +319,7 @@ "in_store": "في المتجر", "incoming": "الواردة", "incorrect_seed": "النص الذي تم إدخاله غير صالح.", + "inputs": "المدخلات", "introducing_cake_pay": "نقدم لكم Cake Pay!", "invalid_input": "مدخل غير صالح", "invoice_details": "تفاصيل الفاتورة", @@ -381,6 +387,7 @@ "offer_expires_in": "ينتهي العرض في:", "offline": "غير متصل على الانترنت", "ok": "حسناً", + "old_fee": "الرسوم القديمة", "onion_link": "رابط البصل", "online": "متصل", "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "محافظ Bitcoin الجديدة التي تم إنشاؤها في Cake الآن سييد مكونة من 24 كلمة. من الضروري أن تقوم بإنشاء محفظة Bitcoin جديدة وتحويل جميع أموالك إلى المحفظة الجديدة المكونة من 24 كلمة ، والتوقف عن استخدام محافظ سييد مكونة من 12 كلمة. يرجى القيام بذلك على الفور لتأمين أموالك.", "outdated_electrum_wallet_receive_warning": "إذا كانت هذه المحفظة تحتوي على سييد مكونة من 12 كلمة وتم إنشاؤها في Cake ، فلا تقم بإيداع Bitcoin في هذه المحفظة. قد يتم فقد أي BTC تم تحويله إلى هذه المحفظة. قم بإنشاء محفظة جديدة مكونة من 24 كلمة (انقر فوق القائمة في الجزء العلوي الأيمن ، وحدد محافظ ، واختر إنشاء محفظة جديدة ، ثم حدد Bitcoin) وقم على الفور بنقل BTC الخاص بك هناك. محافظ BTC الجديدة (24 كلمة) من Cake آمنة", "outgoing": "الصادره", + "outputs": "المخرجات", "overwrite_amount": "تغير المبلغ", "pairingInvalidEvent": "ﺢﻟﺎﺻ ﺮﻴﻏ ﺙﺪﺣ ﻥﺍﺮﻗﺇ", "password": "كلمة المرور", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 6fe29a1a69..49e4943948 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Плащанията с Bitcoin изискват потвърждение, което може да отнеме 20 минути или повече. Благодарим за търпението! Ще получите имейл, когато плащането е потвърдено.", "Blocks_remaining": "${status} оставащи блока", "bright_theme": "Ярко", + "bump_fee": "Такса за бум", "buy": "Купуване", "buy_alert_content": "В момента поддържаме само закупуването на Bitcoin, Ethereum, Litecoin и Monero. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum, Litecoin или Monero.", "buy_bitcoin": "Купуване на Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Потвърждаване", "confirm_delete_template": "Този шаблон ще бъде изтрит. Искате ли да продължите?", "confirm_delete_wallet": "Този портфейл ще бъде изтрит. Искате ли да продължите?", + "confirm_fee_deduction": "Потвърдете приспадането на таксите", + "confirm_fee_deduction_content": "Съгласни ли сте да приспадате таксата от продукцията?", "confirm_sending": "Потвърждаване на изпращането", "confirmations": "потвърждения", "confirmed": "Потвърден баланс", @@ -212,6 +215,7 @@ "edit_token": "Редактиране на токена", "electrum_address_disclaimer": "Нови адреси се генерират всеки път, когато използвате този, но и предишните продължават да работят", "email_address": "Имейл адрес", + "enable_replace_by_fee": "Активиране на замяна по забрана", "enabled": "Активирано", "enter_amount": "Въведете сума", "enter_backup_password": "Въведете парола за възстановяване", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Неуспешно: Грешка при получаване на идентификационни данни", "errorSigningTransaction": "Възникна грешка при подписване на транзакция", "estimated": "Изчислено", + "estimated_new_fee": "Прогнозна нова такса", "etherscan_history": "История на Etherscan", "event": "Събитие", "events": "събития", @@ -314,6 +319,7 @@ "in_store": "In Store", "incoming": "Входящи", "incorrect_seed": "Въведеният текст е невалиден.", + "inputs": "Входове", "introducing_cake_pay": "Запознайте се с Cake Pay!", "invalid_input": "Невалиден вход", "invoice_details": "IДанни за фактура", @@ -381,6 +387,7 @@ "offer_expires_in": "Предложението изтича след: ", "offline": "Офлайн", "ok": "Ок", + "old_fee": "Стара такса", "onion_link": "Лукова връзка", "online": "Онлайн", "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Нови Bitcoin портфейли, създадени в Cake, сега имат seed от 24 думи. Трябва да създадете нов Bitcoin адрес и да прехвърлите всичките си средства в него и веднага да спрете използването на стари портфейли. Моля, напревете това незабавно, за да подсигурите средствата си.", "outdated_electrum_wallet_receive_warning": "Ако този адрес има seed от 12 думи и е създаден чрез Cake, НЕ добавяйте Bitcoin в него. Всякакъв Bitcoin, изпратен на този адрес, може да бъде загубен завинаги. Създайте нов портфейл от 24 думи (натиснете менюто горе, вдясно, изберете Портфейли, изберете Създаване на нов портфейл, след това изберете Bitcoin) и НЕЗАБАВНО преместете своя Bitcoin там. Нови (такива с 24 думи) Bitcoin портфейли от Cake са надеждни", "outgoing": "Изходящи", + "outputs": "Изходи", "overwrite_amount": "Промени сума", "pairingInvalidEvent": "Невалидно събитие при сдвояване", "password": "Парола", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index a346f9494f..348b6fa383 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "U plateb Bitcoinem je vyžadováno alespoň 1 potvrzení, což může trvat 20 minut i déle. Děkujeme za vaši trpělivost! Až bude platba potvrzena, budete informováni e-mailem.", "Blocks_remaining": "Zbývá ${status} bloků", "bright_theme": "Jasný", + "bump_fee": "Bump Fee", "buy": "Koupit", "buy_alert_content": "V současné době podporujeme pouze nákup bitcoinů, etherea, litecoinů a monero. Vytvořte nebo přepněte na svou peněženku bitcoinů, etherea, litecoinů nebo monero.", "buy_bitcoin": "Nakoupit Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Potvrdit", "confirm_delete_template": "Tato akce smaže tuto šablonu. Přejete si pokračovat?", "confirm_delete_wallet": "Tato akce smaže tuto peněženku. Přejete si pokračovat?", + "confirm_fee_deduction": "Potvrďte odpočet poplatků", + "confirm_fee_deduction_content": "Souhlasíte s odečtením poplatku z výstupu?", "confirm_sending": "Potvrdit odeslání", "confirmations": "Potvrzení", "confirmed": "Potvrzený zůstatek", @@ -212,6 +215,7 @@ "edit_token": "Upravit token", "electrum_address_disclaimer": "Po každém použití je generována nová adresa, ale předchozí adresy také stále fungují", "email_address": "E-mailová adresa", + "enable_replace_by_fee": "Povolit výměnu podle poplatku", "enabled": "Povoleno", "enter_amount": "Zadejte částku", "enter_backup_password": "Zde zadejte své heslo pro zálohy", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Selhalo: Chyba při získávání přihlašovacích údajů", "errorSigningTransaction": "Při podepisování transakce došlo k chybě", "estimated": "Odhadováno", + "estimated_new_fee": "Odhadovaný nový poplatek", "etherscan_history": "Historie Etherscanu", "event": "událost", "events": "Události", @@ -314,6 +319,7 @@ "in_store": "V obchodě", "incoming": "Příchozí", "incorrect_seed": "Zadaný text není správný.", + "inputs": "Vstupy", "introducing_cake_pay": "Představujeme Cake Pay!", "invalid_input": "Neplatný vstup", "invoice_details": "detaily faktury", @@ -381,6 +387,7 @@ "offer_expires_in": "Nabídka vyprší: ", "offline": "Offline", "ok": "OK", + "old_fee": "Starý poplatek", "onion_link": "Cibulový odkaz", "online": "Online", "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Nové Bitcoinové peněženky vytvořené v Cake mají nyní seed se 24 slovy. Je třeba si vytvořit novou Bitcoinovou peněženku se 24 slovy, převést na ni všechny prostředky a přestat používat seed se 12 slovy. Prosím udělejte to hned pro zabezpečení svých prostředků.", "outdated_electrum_wallet_receive_warning": "Tato peněženka má seed se 12 slovy a byla vytvořena pomocí Cake, NEUKLÁDEJTE Bitcoin na tuto peněženku. Jakékoliv BTC převedené na tuto peněženku může být ztraceno. Vytvořte si novou peněženku s 24 slovy (otevřete menu vpravo nahoře, vyberte Peněženky, zvolte Vytvořit novou peněženku a pak zvolte Bitcoin) a IHNED tam přesuňte své BTC. Nové (24-slovní) BTC peněženky z Cake jsou bezpečné", "outgoing": "Odchozí", + "outputs": "Výstupy", "overwrite_amount": "Přepsat částku", "pairingInvalidEvent": "Neplatná událost párování", "password": "Heslo", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 47375cedf4..25ab3a54d1 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin-Zahlungen erfordern 1 Bestätigung, was 20 Minuten oder länger dauern kann. Danke für Ihre Geduld! Sie erhalten eine E-Mail, wenn die Zahlung bestätigt ist.", "Blocks_remaining": "${status} verbleibende Blöcke", "bright_theme": "Strahlend hell", + "bump_fee": "Beulengebühr", "buy": "Kaufen", "buy_alert_content": "Derzeit unterstützen wir nur den Kauf von Bitcoin, Ethereum, Litecoin und Monero. Bitte erstellen Sie Ihr Bitcoin-, Ethereum-, Litecoin- oder Monero-Wallet oder wechseln Sie zu diesem.", "buy_bitcoin": "Bitcoin kaufen", @@ -133,6 +134,8 @@ "confirm": "Bestätigen", "confirm_delete_template": "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?", "confirm_delete_wallet": "Diese Aktion löscht diese Wallet. Möchten Sie fortfahren?", + "confirm_fee_deduction": "Gebührenabzug bestätigen", + "confirm_fee_deduction_content": "Stimmen Sie zu, die Gebühr von der Ausgabe abzuziehen?", "confirm_sending": "Senden bestätigen", "confirmations": "Bestätigungen", "confirmed": "Bestätigter Saldo", @@ -212,6 +215,7 @@ "edit_token": "Token bearbeiten", "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin", "email_address": "E-Mail-Adresse", + "enable_replace_by_fee": "Aktivieren Sie Ersatz für Fee", "enabled": "Ermöglicht", "enter_amount": "Betrag eingeben", "enter_backup_password": "Sicherungskennwort hier eingeben", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Fehlgeschlagen: Fehler beim Abrufen der Anmeldeinformationen", "errorSigningTransaction": "Beim Signieren der Transaktion ist ein Fehler aufgetreten", "estimated": "Geschätzt", + "estimated_new_fee": "Geschätzte neue Gebühr", "etherscan_history": "Etherscan-Geschichte", "event": "Ereignis", "events": "Veranstaltungen", @@ -314,6 +319,7 @@ "in_store": "Im Geschäft", "incoming": "Eingehend", "incorrect_seed": "Der eingegebene Text ist ungültig.", + "inputs": "Eingänge", "introducing_cake_pay": "Einführung von Cake Pay!", "invalid_input": "Ungültige Eingabe", "invoice_details": "Rechnungs-Details", @@ -381,6 +387,7 @@ "offer_expires_in": "Angebot läuft ab in: ", "offline": "offline", "ok": "OK", + "old_fee": "Alte Gebühr", "onion_link": "Zwiebel-Link", "online": "online", "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Neue Bitcoin-Wallets, die in Cake erstellt wurden, haben jetzt einen 24-Wort-Seed. Sie müssen eine neue Bitcoin-Wallet erstellen, Ihr gesamtes Geld in die neue 24-Wort-Wallet überweisen und keine Wallet mit einem 12-Wort-Seed mehr verwenden. Bitte tun Sie dies sofort, um Ihr Geld zu sichern.", "outdated_electrum_wallet_receive_warning": "Wenn diese Wallet einen 12-Wort-Seed hat und in Cake erstellt wurde, zahlen Sie KEINE Bitcoins in diese Wallet ein. Alle auf diese Wallet übertragenen BTC können verloren gehen. Erstellen Sie eine neue 24-Wort-Wallet (tippen Sie auf das Menü oben rechts, wählen Sie Wallets, wählen Sie Neue Wallet erstellen und dann Bitcoin) und verschieben Sie Ihre BTC SOFORT dorthin. Neue (24-Wort-)BTC-Wallets von Cake sind sicher", "outgoing": "Ausgehend", + "outputs": "Ausgänge", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Paarung ungültiges Ereignis", "password": "Passwort", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 8370334293..45e8ef21be 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin payments require 1 confirmation, which can take 20 minutes or longer. Thanks for your patience! You will be emailed when the payment is confirmed.", "Blocks_remaining": "${status} Blocks Remaining", "bright_theme": "Bright", + "bump_fee": "Bump fee", "buy": "Buy", "buy_alert_content": "Currently we only support the purchase of Bitcoin, Ethereum, Litecoin, and Monero. Please create or switch to your Bitcoin, Ethereum, Litecoin, or Monero wallet.", "buy_bitcoin": "Buy Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Confirm", "confirm_delete_template": "This action will delete this template. Do you wish to continue?", "confirm_delete_wallet": "This action will delete this wallet. Do you wish to continue?", + "confirm_fee_deduction": "Confirm Fee Deduction", + "confirm_fee_deduction_content": "Do you agree to deduct the fee from the output?", "confirm_sending": "Confirm sending", "confirmations": "Confirmations", "confirmed": "Confirmed Balance", @@ -212,6 +215,7 @@ "edit_token": "Edit token", "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work", "email_address": "Email Address", + "enable_replace_by_fee": "Enable Replace-By-Fee", "enabled": "Enabled", "enter_amount": "Enter Amount", "enter_backup_password": "Enter backup password here", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Failed: Error while getting credentials", "errorSigningTransaction": "An error has occured while signing transaction", "estimated": "Estimated", + "estimated_new_fee": "Estimated new fee", "etherscan_history": "Etherscan history", "event": "Event", "events": "Events", @@ -314,6 +319,7 @@ "in_store": "In Store", "incoming": "Incoming", "incorrect_seed": "The text entered is not valid.", + "inputs": "Inputs", "introducing_cake_pay": "Introducing Cake Pay!", "invalid_input": "Invalid input", "invoice_details": "Invoice details", @@ -381,6 +387,7 @@ "offer_expires_in": "Offer expires in: ", "offline": "Offline", "ok": "OK", + "old_fee": "Old fee", "onion_link": "Onion link", "online": "Online", "onramper_option_description": "Quickly buy crypto with many payment methods. Available in most countries. Spreads and fees vary.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "New Bitcoin wallets created in Cake now have a 24-word seed. It is mandatory that you create a new Bitcoin wallet and transfer all of your funds to the new 24-word wallet, and stop using wallets with a 12-word seed. Please do this immediately to secure your funds.", "outdated_electrum_wallet_receive_warning": "If this wallet has a 12-word seed and was created in Cake, DO NOT deposit Bitcoin into this wallet. Any BTC transferred to this wallet may be lost. Create a new 24-word wallet (tap the menu at the top right, select Wallets, choose Create New Wallet, then select Bitcoin) and IMMEDIATELY move your BTC there. New (24-word) BTC wallets from Cake are secure", "outgoing": "Outgoing", + "outputs": "Outputs", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Pairing Invalid Event", "password": "Password", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index b3afbd3a7e..e04bc4cfef 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Los pagos de Bitcoin requieren 1 confirmación, que puede demorar 20 minutos o más. ¡Gracias por su paciencia! Se le enviará un correo electrónico cuando se confirme el pago.", "Blocks_remaining": "${status} Bloques restantes", "bright_theme": "Brillante", + "bump_fee": "Tarifa", "buy": "Comprar", "buy_alert_content": "Actualmente solo admitimos la compra de Bitcoin, Ethereum, Litecoin y Monero. Cree o cambie a su billetera Bitcoin, Ethereum, Litecoin o Monero.", "buy_bitcoin": "Comprar Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Confirmar", "confirm_delete_template": "Esta acción eliminará esta plantilla. ¿Desea continuar?", "confirm_delete_wallet": "Esta acción eliminará esta billetera. ¿Desea continuar?", + "confirm_fee_deduction": "Confirmar la deducción de la tarifa", + "confirm_fee_deduction_content": "¿Acepta deducir la tarifa de la producción?", "confirm_sending": "Confirmar envío", "confirmations": "Confirmaciones", "confirmed": "Saldo confirmado", @@ -212,6 +215,7 @@ "edit_token": "Editar token", "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando", "email_address": "Dirección de correo electrónico", + "enable_replace_by_fee": "Habilitar reemplazar por tarea", "enabled": "Activado", "enter_amount": "Ingrese la cantidad", "enter_backup_password": "Ingrese la contraseña de respaldo aquí", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Error: error al obtener las credenciales", "errorSigningTransaction": "Se ha producido un error al firmar la transacción.", "estimated": "Estimado", + "estimated_new_fee": "Nueva tarifa estimada", "etherscan_history": "historia de etherscan", "event": "Evento", "events": "Eventos", @@ -314,6 +319,7 @@ "in_store": "En la tienda", "incoming": "Entrante", "incorrect_seed": "El texto ingresado no es válido.", + "inputs": "Entradas", "introducing_cake_pay": "¡Presentamos Cake Pay!", "invalid_input": "Entrada inválida", "invoice_details": "Detalles de la factura", @@ -381,6 +387,7 @@ "offer_expires_in": "Oferta expira en: ", "offline": "fuera de línea", "ok": "OK", + "old_fee": "Tarifa antigua", "onion_link": "Enlace de cebolla", "online": "En línea", "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Las nuevas carteras de Bitcoin creadas en Cake ahora tienen una semilla de 24 palabras. Es obligatorio que cree una nueva billetera de Bitcoin y transfiera todos sus fondos a la nueva billetera de 24 palabras, y deje de usar billeteras con una semilla de 12 palabras. Haga esto de inmediato para asegurar sus fondos.", "outdated_electrum_wallet_receive_warning": "Si esta billetera tiene una semilla de 12 palabras y se creó en Cake, NO deposite Bitcoin en esta billetera. Cualquier BTC transferido a esta billetera se puede perder. Cree una nueva billetera de 24 palabras (toque el menú en la parte superior derecha, seleccione Monederos, elija Crear nueva billetera, luego seleccione Bitcoin) e INMEDIATAMENTE mueva su BTC allí. Las nuevas carteras BTC (24 palabras) de Cake son seguras", "outgoing": "Saliente", + "outputs": "Salidas", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Evento de emparejamiento no válido", "password": "Contraseña", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 2a62d351df..069f569baf 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Les paiements Bitcoin nécessitent 1 confirmation, ce qui peut prendre 20 minutes ou plus. Merci pour votre patience ! Vous serez averti par e-mail lorsque le paiement sera confirmé.", "Blocks_remaining": "Blocs Restants : ${status}", "bright_theme": "Vif", + "bump_fee": "Frais de bosse", "buy": "Acheter", "buy_alert_content": "Actuellement, nous ne prenons en charge que l'achat de Bitcoin, Ethereum, Litecoin et Monero. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum, Litecoin ou Monero.", "buy_bitcoin": "Acheter du Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Confirmer", "confirm_delete_template": "Cette action va supprimer ce modèle. Souhaitez-vous continuer ?", "confirm_delete_wallet": "Cette action va supprimer ce portefeuille (wallet). Souhaitez-vous contnuer ?", + "confirm_fee_deduction": "Confirmer la déduction des frais", + "confirm_fee_deduction_content": "Acceptez-vous de déduire les frais de la production?", "confirm_sending": "Confirmer l'envoi", "confirmations": "Confirmations", "confirmed": "Solde confirmé", @@ -212,6 +215,7 @@ "edit_token": "Modifier le token", "electrum_address_disclaimer": "Nous générons de nouvelles adresses à chaque fois que vous en utilisez une, mais les adresses précédentes continuent à fonctionner", "email_address": "Adresse e-mail", + "enable_replace_by_fee": "Activer Remplace-by-Fee", "enabled": "Activé", "enter_amount": "Entrez le montant", "enter_backup_password": "Entrez le mot de passe de sauvegarde ici", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Échec : erreur lors de l'obtention des informations d'identification", "errorSigningTransaction": "Une erreur s'est produite lors de la signature de la transaction", "estimated": "Estimé", + "estimated_new_fee": "De nouveaux frais estimés", "etherscan_history": "Historique d'Etherscan", "event": "Événement", "events": "Événements", @@ -314,6 +319,7 @@ "in_store": "En magasin", "incoming": "Entrantes", "incorrect_seed": "Le texte entré est invalide.", + "inputs": "Contributions", "introducing_cake_pay": "Présentation de Cake Pay !", "invalid_input": "Entrée invalide", "invoice_details": "Détails de la facture", @@ -381,6 +387,7 @@ "offer_expires_in": "L'Offre expire dans : ", "offline": "Hors ligne", "ok": "OK", + "old_fee": "Anciens", "onion_link": "Lien .onion", "online": "En ligne", "onramper_option_description": "Achetez rapidement des cryptomonnaies avec de nombreuses méthodes de paiement. Disponible dans la plupart des pays. Les spreads et les frais peuvent varier.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Les nouveaux portefeuilles (wallets) Bitcoin créés dans Cake ont dorénavant une phrase secrète (seed) de 24 mots. Il est impératif que vous créiez un nouveau portefeuille Bitcoin, que vous y transfériez tous vos fonds puis que vous cessiez d'utiliser le portefeuille avec une phrase secrète de 12 mots. Merci de faire cela immédiatement pour assurer la sécurité de vos avoirs.", "outdated_electrum_wallet_receive_warning": "Si ce portefeuille (wallet) a une phrase secrète (seed) de 12 mots et a été créé dans Cake, NE PAS y déposer de Bitcoin. Tous les BTC transférés vers ce portefeuille seront perdus. Créez un nouveau portefeuille avec phrase secrète de 24 mots (appuyez sur le menu en haut à droite, sélectionnez Portefeuilles puis Créer un Nouveau Portefeuille et enfin Bitcoin) et transférez y IMMÉDIATEMENT vos BTC. Les nouveaux portefeuilles BTC Cake (avec phrase secrète de 24 mots) sont sécurisés", "outgoing": "Sortantes", + "outputs": "Les sorties", "overwrite_amount": "Remplacer le montant", "pairingInvalidEvent": "Événement de couplage non valide", "password": "Mot de passe", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 1e18fb6921..7dd1cd52ed 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Akwatin Bitcoin na buɗe 1 sambumbu, da yake za ta samu mintuna 20 ko yawa. Ina kira ga sabuwar lafiya! Zaka sanarwa ta email lokacin da aka samu akwatin samun lambar waya.", "Blocks_remaining": "${status} Katanga ya rage", "bright_theme": "Mai haske", + "bump_fee": "Buin", "buy": "Sayi", "buy_alert_content": "A halin yanzu muna tallafawa kawai siyan Bitcoin, Ethereum, Litecoin, da Monero. Da fatan za a ƙirƙiri ko canza zuwa Bitcoin, Ethereum, Litecoin, ko Monero walat.", "buy_bitcoin": "Sayi Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Tabbatar", "confirm_delete_template": "Wannan aikin zai share wannan samfuri. Kuna so ku ci gaba?", "confirm_delete_wallet": "Wannan aikin zai share wannan walat. Kuna so ku ci gaba?", + "confirm_fee_deduction": "Tabbatar da cire kudade", + "confirm_fee_deduction_content": "Shin kun yarda ku cire kuɗin daga fitarwa?", "confirm_sending": "Tabbatar da aikawa", "confirmations": "Tabbatar", "confirmed": "An tabbatar", @@ -212,6 +215,7 @@ "edit_token": "Gyara alamar", "electrum_address_disclaimer": "Muna samar da sababbin adireshi duk lokacin da kuka yi amfani da ɗaya, amma adiresoshin da suka gabata suna ci gaba da aiki", "email_address": "Adireshin i-mel", + "enable_replace_by_fee": "Ba da damar maye gurbin-by-kudin", "enabled": "An kunna", "enter_amount": "Shigar da Adadi", "enter_backup_password": "Shigar da kalmar wucewa ta madadin nan", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Ba a yi nasara ba: Kuskure yayin samun takaddun shaida", "errorSigningTransaction": "An sami kuskure yayin sanya hannu kan ciniki", "estimated": "Kiyasta", + "estimated_new_fee": "An kiyasta sabon kudin", "etherscan_history": "Etherscan tarihin kowane zamani", "event": "Lamarin", "events": "Abubuwan da suka faru", @@ -314,6 +319,7 @@ "in_store": "A cikin Store", "incoming": "Mai shigowa", "incorrect_seed": "rubutun da aka shigar ba shi da inganci.", + "inputs": "Abubuwan da ke ciki", "introducing_cake_pay": "Gabatar da Cake Pay!", "invalid_input": "Shigar da ba daidai ba", "invoice_details": "Bayanin wadannan", @@ -381,6 +387,7 @@ "offer_expires_in": "tayin zai ƙare a:", "offline": "Offline", "ok": "OK", + "old_fee": "Tsohon kudin", "onion_link": "Lambar onion", "online": "Kan layi", "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", @@ -399,6 +406,7 @@ "outdated_electrum_wallet_description": "Sabbin walat ɗin Bitcoin da aka kirkira a cikin Cake yanzu suna da nau'in kalma 24. Ya zama dole ka ƙirƙiri sabon walat ɗin Bitcoin kuma canza duk kuɗin ku zuwa sabon walat ɗin kalmomi 24, kuma ku daina amfani da walat tare da iri mai kalma 12. Da fatan za a yi haka nan take don samun kuɗin ku.", "outdated_electrum_wallet_receive_warning": "Idan wannan walat ɗin yana da nau'in kalma 12 kuma an ƙirƙira shi a cikin Cake, KAR KA saka Bitcoin cikin wannan jakar. Duk wani BTC da aka canjawa wuri zuwa wannan walat na iya ɓacewa. Ƙirƙiri sabon walat mai kalmomi 24 (matsa menu a saman dama, zaɓi Wallets, zaɓi Ƙirƙiri Sabon Wallet, sannan zaɓi Bitcoin) kuma NAN nan take matsar da BTC ɗin ku a can. Sabbin (kalmomi 24) BTC wallets daga Cake suna da tsaro", "outgoing": "Mai fita", + "outputs": "Abubuwan fashewa", "overwrite_amount": "Rubuta adadin", "pairingInvalidEvent": "Haɗa Lamarin mara inganci", "password": "Kalmar wucewa", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index b1ef9e4a21..5dbe22f0e3 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "बिटकॉइन भुगतान के लिए 1 पुष्टिकरण की आवश्यकता होती है, जिसमें 20 मिनट या अधिक समय लग सकता है। आपके धैर्य के लिए धन्यवाद! भुगतान की पुष्टि होने पर आपको ईमेल किया जाएगा।", "Blocks_remaining": "${status} शेष रहते हैं", "bright_theme": "उज्ज्वल", + "bump_fee": "बम्प फीस", "buy": "खरीदें", "buy_alert_content": "वर्तमान में हम केवल बिटकॉइन, एथेरियम, लाइटकॉइन और मोनेरो की खरीद का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम, लाइटकॉइन, या मोनेरो वॉलेट बनाएं या उस पर स्विच करें।", "buy_bitcoin": "बिटकॉइन खरीदें", @@ -133,6 +134,8 @@ "confirm": "की पुष्टि करें", "confirm_delete_template": "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", "confirm_delete_wallet": "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", + "confirm_fee_deduction": "शुल्क कटौती की पुष्टि करें", + "confirm_fee_deduction_content": "क्या आप आउटपुट से शुल्क में कटौती करने के लिए सहमत हैं?", "confirm_sending": "भेजने की पुष्टि करें", "confirmations": "पुष्टिकरण", "confirmed": "पुष्टि की गई शेष राशिी", @@ -212,6 +215,7 @@ "edit_token": "टोकन संपादित करें", "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं", "email_address": "ईमेल पता", + "enable_replace_by_fee": "प्रतिस्थापित-दर-शुल्क सक्षम करें", "enabled": "सक्रिय", "enter_amount": "राशि दर्ज करें", "enter_backup_password": "यहां बैकअप पासवर्ड डालें", @@ -248,6 +252,7 @@ "errorGettingCredentials": "विफल: क्रेडेंशियल प्राप्त करते समय त्रुटि", "errorSigningTransaction": "लेन-देन पर हस्ताक्षर करते समय एक त्रुटि उत्पन्न हुई है", "estimated": "अनुमानित", + "estimated_new_fee": "अनुमानित नया शुल्क", "etherscan_history": "इथरस्कैन इतिहास", "event": "आयोजन", "events": "आयोजन", @@ -314,6 +319,7 @@ "in_store": "स्टोर में", "incoming": "आने वाली", "incorrect_seed": "दर्ज किया गया पाठ मान्य नहीं है।", + "inputs": "इनपुट", "introducing_cake_pay": "परिचय Cake Pay!", "invalid_input": "अमान्य निवेश", "invoice_details": "चालान विवरण", @@ -381,6 +387,7 @@ "offer_expires_in": "में ऑफर समाप्त हो रहा है: ", "offline": "ऑफ़लाइन", "ok": "ठीक है", + "old_fee": "पुराना फीस", "onion_link": "प्याज का लिंक", "online": "ऑनलाइन", "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "केक में बनाए गए नए बिटकॉइन वॉलेट में अब 24-शब्द का बीज है। यह अनिवार्य है कि आप एक नया बिटकॉइन वॉलेट बनाएं और अपने सभी फंड को नए 24-शब्द वाले वॉलेट में स्थानांतरित करें, और 12-शब्द बीज वाले वॉलेट का उपयोग करना बंद करें। कृपया अपने धन को सुरक्षित करने के लिए इसे तुरंत करें।", "outdated_electrum_wallet_receive_warning": "अगर इस वॉलेट में 12 शब्दों का बीज है और इसे केक में बनाया गया है, तो इस वॉलेट में बिटकॉइन जमा न करें। इस वॉलेट में स्थानांतरित किया गया कोई भी बीटीसी खो सकता है। एक नया 24-शब्द वॉलेट बनाएं (ऊपर दाईं ओर स्थित मेनू पर टैप करें, वॉलेट चुनें, नया वॉलेट बनाएं चुनें, फिर बिटकॉइन चुनें) और तुरंत अपना बीटीसी वहां ले जाएं। केक से नए (24-शब्द) बीटीसी वॉलेट सुरक्षित हैं", "outgoing": "निवर्तमान", + "outputs": "आउटपुट", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "अमान्य ईवेंट युग्मित करना", "password": "पारण शब्द", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 55913f434a..4aac8216e3 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin plaćanja zahtijevaju 1 potvrdu, što može potrajati 20 minuta ili dulje. Hvala na Vašem strpljenju! Dobit ćete e-poruku kada plaćanje bude potvrđeno.", "Blocks_remaining": "${status} preostalih blokova", "bright_theme": "Jarka", + "bump_fee": "Naplata", "buy": "Kupi", "buy_alert_content": "Trenutno podržavamo samo kupnju Bitcoina, Ethereuma, Litecoina i Monera. Izradite ili prijeđite na svoj Bitcoin, Ethereum, Litecoin ili Monero novčanik.", "buy_bitcoin": "Kupite Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Potvrdi", "confirm_delete_template": "Ovom ćete radnjom izbrisati ovaj predložak. Želite li nastaviti?", "confirm_delete_wallet": "Ovom ćete radnjom izbrisati ovaj novčanik. Želite li nastaviti?", + "confirm_fee_deduction": "Potvrdite odbitak naknade", + "confirm_fee_deduction_content": "Slažete li se da ćete odbiti naknadu od izlaza?", "confirm_sending": "Potvrdi slanje", "confirmations": "Potvrde", "confirmed": "Potvrđeno stanje", @@ -212,6 +215,7 @@ "edit_token": "Uredi token", "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek", "email_address": "Adresa e-pošte", + "enable_replace_by_fee": "Omogući zamjenu", "enabled": "Omogućeno", "enter_amount": "Unesite iznos", "enter_backup_password": "Unesite svoju lozinku za sigurnosnu kopiju ovdje", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Neuspješno: Pogreška prilikom dobivanja vjerodajnica", "errorSigningTransaction": "Došlo je do pogreške prilikom potpisivanja transakcije", "estimated": "procijenjen", + "estimated_new_fee": "Procijenjena nova naknada", "etherscan_history": "Etherscan povijest", "event": "Događaj", "events": "Događaji", @@ -314,6 +319,7 @@ "in_store": "U trgovini", "incoming": "Dolazno", "incorrect_seed": "Uneseni tekst nije valjan.", + "inputs": "Unosi", "introducing_cake_pay": "Predstavljamo Cake Pay!", "invalid_input": "Pogrešan unos", "invoice_details": "Podaci o fakturi", @@ -381,6 +387,7 @@ "offer_expires_in": "Ponuda istječe za: ", "offline": "izvan mreže", "ok": "OK", + "old_fee": "Stara naknada", "onion_link": "Poveznica luka", "online": "Na mreži", "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Novi Bitcoin novčanici stvoreni u Cakeu sada imaju sjeme od 24 riječi. Obavezno je stvoriti novi Bitcoin novčanik i prenijeti sva svoja sredstva u novi novčanik od 24 riječi te prestati koristiti novčanike s sjemenkom od 12 riječi. Učinite to odmah kako biste osigurali svoja sredstva.", "outdated_electrum_wallet_receive_warning": "Ako ovaj novčanik sadrži sjeme od 12 riječi i stvoren je u Torti, NEMOJTE polagati Bitcoin u ovaj novčanik. Bilo koji BTC prebačen u ovaj novčanik može se izgubiti. Stvorite novi novčanik od 24 riječi (taknite izbornik u gornjem desnom dijelu, odaberite Novčanici, odaberite Stvori novi novčanik, a zatim odaberite Bitcoin) i ODMAH premjestite svoj BTC tamo. Novi BTC novčanici (s 24 riječi) tvrtke Cake sigurni su", "outgoing": "Odlazno", + "outputs": "Izlazi", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Nevažeći događaj uparivanja", "password": "Lozinka", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 8546e1f171..09d28e4536 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Pembayaran Bitcoin memerlukan 1 konfirmasi, yang bisa memakan waktu 20 menit atau lebih. Terima kasih atas kesabaran Anda! Anda akan diemail saat pembayaran dikonfirmasi.", "Blocks_remaining": "${status} Blok Tersisa", "bright_theme": "Cerah", + "bump_fee": "Biaya benjolan", "buy": "Beli", "buy_alert_content": "Saat ini kami hanya mendukung pembelian Bitcoin, Ethereum, Litecoin, dan Monero. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, Litecoin, atau Monero Anda.", "buy_bitcoin": "Beli Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Konfirmasi", "confirm_delete_template": "Tindakan ini akan menghapus template ini. Apakah Anda ingin melanjutkan?", "confirm_delete_wallet": "Tindakan ini akan menghapus dompet ini. Apakah Anda ingin melanjutkan?", + "confirm_fee_deduction": "Konfirmasi pengurangan biaya", + "confirm_fee_deduction_content": "Apakah Anda setuju untuk mengurangi biaya dari output?", "confirm_sending": "Konfirmasi pengiriman", "confirmations": "Konfirmasi", "confirmed": "Saldo Terkonfirmasi", @@ -212,6 +215,7 @@ "edit_token": "Mengedit token", "electrum_address_disclaimer": "Kami menghasilkan alamat baru setiap kali Anda menggunakan satu, tetapi alamat sebelumnya tetap berfungsi", "email_address": "Alamat Email", + "enable_replace_by_fee": "Aktifkan ganti-by-fee", "enabled": "Diaktifkan", "enter_amount": "Masukkan Jumlah", "enter_backup_password": "Masukkan kata sandi cadangan di sini", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Gagal: Terjadi kesalahan saat mendapatkan kredensial", "errorSigningTransaction": "Terjadi kesalahan saat menandatangani transaksi", "estimated": "Diperkirakan", + "estimated_new_fee": "Perkiraan biaya baru", "etherscan_history": "Sejarah Etherscan", "event": "Peristiwa", "events": "Acara", @@ -314,6 +319,7 @@ "in_store": "Di Toko", "incoming": "Masuk", "incorrect_seed": "Teks yang dimasukkan tidak valid.", + "inputs": "Input", "introducing_cake_pay": "Perkenalkan Cake Pay!", "invalid_input": "Masukan tidak valid", "invoice_details": "Detail faktur", @@ -381,6 +387,7 @@ "offer_expires_in": "Penawaran kedaluwarsa dalam: ", "offline": "Offline", "ok": "OK", + "old_fee": "Biaya lama", "onion_link": "Tautan bawang", "online": "Online", "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", @@ -399,6 +406,7 @@ "outdated_electrum_wallet_description": "Dompet Bitcoin baru yang dibuat di Cake sekarang memiliki biji semai 24 kata. Wajib bagi Anda untuk membuat dompet Bitcoin baru dan mentransfer semua dana Anda ke dompet 24 kata baru, dan berhenti menggunakan dompet dengan biji semai 12 kata. Silakan lakukan ini segera untuk mengamankan dana Anda.", "outdated_electrum_wallet_receive_warning": "Jika dompet ini memiliki biji semai 12 kata dan dibuat di Cake, JANGAN deposit Bitcoin ke dalam dompet ini. BTC apapun yang ditransfer ke dompet ini mungkin hilang. Buat dompet 24 kata baru (ketuk menu di pojok kanan atas, pilih Dompet, pilih Buat Dompet Baru, lalu pilih Bitcoin) dan SEGERA pindahkan BTC Anda ke sana. Dompet BTC (24 kata) baru dari Cake aman", "outgoing": "Keluar", + "outputs": "Output", "overwrite_amount": "Timpa jumlah", "pairingInvalidEvent": "Menyandingkan Acara Tidak Valid", "password": "Kata Sandi", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index ef0ffecdee..c9ac60bb5e 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "I pagamenti in bitcoin richiedono 1 conferma, che può richiedere 20 minuti o più. Grazie per la vostra pazienza! Riceverai un'e-mail quando il pagamento sarà confermato.", "Blocks_remaining": "${status} Blocchi Rimanenti", "bright_theme": "Colorato", + "bump_fee": "Commissione per bump", "buy": "Comprare", "buy_alert_content": "Attualmente supportiamo solo l'acquisto di Bitcoin, Ethereum, Litecoin e Monero. Crea o passa al tuo portafoglio Bitcoin, Ethereum, Litecoin o Monero.", "buy_bitcoin": "Acquista Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Conferma", "confirm_delete_template": "Questa azione cancellerà questo modello. Desideri continuare?", "confirm_delete_wallet": "Questa azione cancellerà questo portafoglio. Desideri continuare?", + "confirm_fee_deduction": "Conferma la detrazione delle commissioni", + "confirm_fee_deduction_content": "Accetti di detrarre la commissione dall'output?", "confirm_sending": "Conferma l'invio", "confirmations": "Conferme", "confirmed": "Saldo confermato", @@ -213,6 +216,7 @@ "edit_token": "Modifica token", "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare", "email_address": "Indirizzo e-mail", + "enable_replace_by_fee": "Abilita sostituzione per fee", "enabled": "Abilitato", "enter_amount": "Inserisci importo", "enter_backup_password": "Inserisci la password di backup qui", @@ -249,6 +253,7 @@ "errorGettingCredentials": "Non riuscito: errore durante il recupero delle credenziali", "errorSigningTransaction": "Si è verificato un errore durante la firma della transazione", "estimated": "Stimato", + "estimated_new_fee": "Nuova commissione stimata", "etherscan_history": "Storia Etherscan", "event": "Evento", "events": "Eventi", @@ -315,6 +320,7 @@ "in_store": "In negozio", "incoming": "In arrivo", "incorrect_seed": "Il testo inserito non è valido.", + "inputs": "Input", "introducing_cake_pay": "Presentazione di Cake Pay!", "invalid_input": "Inserimento non valido", "invoice_details": "Dettagli della fattura", @@ -382,6 +388,7 @@ "offer_expires_in": "Offerta termina tra: ", "offline": "Offline", "ok": "OK", + "old_fee": "Vecchia tassa", "onion_link": "Collegamento a cipolla", "online": "in linea", "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", @@ -399,6 +406,7 @@ "outdated_electrum_wallet_description": "I nuovi portafogli Bitcoin creati in Cake ora hanno un seme di 24 parole. È obbligatorio creare un nuovo portafoglio Bitcoin e trasferire tutti i fondi nel nuovo portafoglio di 24 parole e smettere di usare portafogli con un seme di 12 parole. Ti preghiamo di farlo immediatamente per proteggere i tuoi fondi.", "outdated_electrum_wallet_receive_warning": "Se questo portafoglio ha un seme di 12 parole ed è stato creato in Cake, NON depositare Bitcoin in questo portafoglio. Qualsiasi BTC trasferito su questo portafoglio potrebbe andare perso. Crea un nuovo portafoglio di 24 parole (tocca il menu in alto a destra, seleziona Portafogli, scegli Crea nuovo portafoglio, quindi seleziona Bitcoin) e sposta IMMEDIATAMENTE lì il tuo BTC. I nuovi portafogli BTC (24 parole) di Cake sono sicuri", "outgoing": "In uscita", + "outputs": "Output", "overwrite_amount": "Sovrascrivi quantità", "pairingInvalidEvent": "Associazione evento non valido", "password": "Password", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index c3a025a7c4..98d87a90c3 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "ビットコインの支払いには 1 回の確認が必要で、これには 20 分以上かかる場合があります。お待ち頂きまして、ありがとうございます!支払いが確認されると、メールが送信されます。", "Blocks_remaining": "${status} 残りのブロック", "bright_theme": "明るい", + "bump_fee": "バンプ料金", "buy": "購入", "buy_alert_content": "現在、ビットコイン、イーサリアム、ライトコイン、モネロの購入のみをサポートしています。ビットコイン、イーサリアム、ライトコイン、またはモネロのウォレットを作成するか、これらのウォレットに切り替えてください。", "buy_bitcoin": "ビットコインを購入する", @@ -133,6 +134,8 @@ "confirm": "確認する", "confirm_delete_template": "この操作により、このテンプレートが削除されます。 続行しますか?", "confirm_delete_wallet": "このアクションにより、このウォレットが削除されます。 続行しますか?", + "confirm_fee_deduction": "料金控除を確認します", + "confirm_fee_deduction_content": "出力から料金を差し引くことに同意しますか?", "confirm_sending": "送信を確認", "confirmations": "確認", "confirmed": "確認済み残高", @@ -212,6 +215,7 @@ "edit_token": "トークンの編集", "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します", "email_address": "メールアドレス", + "enable_replace_by_fee": "交換ごとに有効にします", "enabled": "有効", "enter_amount": "金額を入力", "enter_backup_password": "ここにバックアップパスワードを入力してください", @@ -248,6 +252,7 @@ "errorGettingCredentials": "失敗: 認証情報の取得中にエラーが発生しました", "errorSigningTransaction": "トランザクションの署名中にエラーが発生しました", "estimated": "推定", + "estimated_new_fee": "推定新しい料金", "etherscan_history": "イーサスキャンの歴史", "event": "イベント", "events": "イベント", @@ -315,6 +320,7 @@ "in_store": "インストア", "incoming": "着信", "incorrect_seed": "入力されたテキストは無効です。", + "inputs": "入力", "introducing_cake_pay": "序章Cake Pay!", "invalid_input": "無効入力", "invoice_details": "請求の詳細", @@ -382,6 +388,7 @@ "offer_expires_in": "で有効期限が切れます: ", "offline": "オフライン", "ok": "OK", + "old_fee": "古い料金", "onion_link": "オニオンリンク", "online": "オンライン", "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", @@ -398,6 +405,7 @@ "outdated_electrum_wallet_description": "Cakeで作成された新しいビットコインウォレットには、24ワードのシードがあります。 新しいビットコインウォレットを作成し、すべての資金を新しい24ワードのウォレットに転送し、12ワードのシードを持つウォレットの使用を停止することが必須です。 あなたの資金を確保するためにこれをすぐに行ってください。", "outdated_electrum_wallet_receive_warning": "このウォレットに 12 ワードのシードがあり、Cake で作成された場合、このウォレットにビットコインを入金しないでください。 このウォレットに転送された BTC は失われる可能性があります。 新しい 24 ワードのウォレットを作成し (右上のメニューをタップし、[ウォレット]、[新しいウォレットの作成]、[ビットコイン] の順に選択)、すぐに BTC をそこに移動します。 Cake の新しい (24 ワード) BTC ウォレットは安全です", "outgoing": "発信", + "outputs": "出力", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "ペアリング無効イベント", "password": "パスワード", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index d2b48913b6..7cc49e315c 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "비트코인 결제는 1번의 확인이 필요하며 20분 이상이 소요될 수 있습니다. 기다려 주셔서 감사합니다! 결제가 확인되면 이메일이 전송됩니다.", "Blocks_remaining": "${status} 남은 블록", "bright_theme": "선명한", + "bump_fee": "범프 요금", "buy": "구입", "buy_alert_content": "현재 Bitcoin, Ethereum, Litecoin 및 Monero 구매만 지원합니다. Bitcoin, Ethereum, Litecoin 또는 Monero 지갑을 생성하거나 전환하십시오.", "buy_bitcoin": "비트 코인 구매", @@ -133,6 +134,8 @@ "confirm": "확인", "confirm_delete_template": "이 작업은이 템플릿을 삭제합니다. 계속 하시겠습니까?", "confirm_delete_wallet": "이 작업은이 지갑을 삭제합니다. 계속 하시겠습니까?", + "confirm_fee_deduction": "수수료 공제를 확인하십시오", + "confirm_fee_deduction_content": "출력에서 수수료를 공제하는 데 동의하십니까?", "confirm_sending": "전송 확인", "confirmations": "확인", "confirmed": "확인된 잔액", @@ -212,6 +215,7 @@ "edit_token": "토큰 편집", "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다.", "email_address": "이메일 주소", + "enable_replace_by_fee": "대체별로 활성화하십시오", "enabled": "사용", "enter_amount": "금액 입력", "enter_backup_password": "여기에 백업 비밀번호를 입력하세요.", @@ -248,6 +252,7 @@ "errorGettingCredentials": "실패: 자격 증명을 가져오는 중 오류가 발생했습니다.", "errorSigningTransaction": "거래에 서명하는 동안 오류가 발생했습니다.", "estimated": "예상", + "estimated_new_fee": "예상 새로운 수수료", "etherscan_history": "이더스캔 역사", "event": "이벤트", "events": "이벤트", @@ -314,6 +319,7 @@ "in_store": "매장 내", "incoming": "들어오는", "incorrect_seed": "입력하신 텍스트가 유효하지 않습니다.", + "inputs": "입력", "introducing_cake_pay": "소개 Cake Pay!", "invalid_input": "잘못된 입력", "invoice_details": "인보이스 세부정보", @@ -381,6 +387,7 @@ "offer_expires_in": "쿠폰 만료일: ", "offline": "오프라인", "ok": "승인", + "old_fee": "옛 수수료", "onion_link": "양파 링크", "online": "온라인", "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Cake에서 생성 된 새로운 비트 코인 지갑에는 이제 24 단어 시드가 있습니다. 새로운 비트 코인 지갑을 생성하고 모든 자금을 새로운 24 단어 지갑으로 이체하고 12 단어 시드가있는 지갑 사용을 중지해야합니다. 자금을 확보하려면 즉시이 작업을 수행하십시오.", "outdated_electrum_wallet_receive_warning": "이 지갑에 12 단어 시드가 있고 Cake에서 생성 된 경우이 지갑에 비트 코인을 입금하지 마십시오. 이 지갑으로 전송 된 모든 BTC는 손실 될 수 있습니다. 새로운 24 단어 지갑을 생성하고 (오른쪽 상단의 메뉴를 탭하고 지갑을 선택한 다음 새 지갑 생성을 선택한 다음 비트 코인을 선택하십시오) 즉시 BTC를 그곳으로 이동하십시오. Cake의 새로운 (24 단어) BTC 지갑은 안전합니다", "outgoing": "나가는", + "outputs": "출력", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "잘못된 이벤트 페어링", "password": "암호", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index c7312b2905..9c88dc817b 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin ငွေပေးချေမှုများသည် မိနစ် 20 သို့မဟုတ် ထို့ထက်ပိုကြာနိုင်သည် 1 အတည်ပြုချက် လိုအပ်သည်။ မင်းရဲ့စိတ်ရှည်မှုအတွက် ကျေးဇူးတင်ပါတယ်။ ငွေပေးချေမှုကို အတည်ပြုပြီးသောအခါ သင့်ထံ အီးမေးလ်ပို့ပါမည်။", "Blocks_remaining": "${status} ဘလောက်များ ကျန်နေပါသည်။", "bright_theme": "တောက်ပ", + "bump_fee": "ဝင်ငွေ", "buy": "ဝယ်ပါ။", "buy_alert_content": "လက်ရှိတွင် ကျွန်ုပ်တို့သည် Bitcoin၊ Ethereum၊ Litecoin နှင့် Monero တို့ကိုသာ ဝယ်ယူမှုကို ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum၊ Litecoin သို့မဟုတ် Monero ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", "buy_bitcoin": "Bitcoin ကိုဝယ်ပါ။", @@ -133,6 +134,8 @@ "confirm": "အတည်ပြုပါ။", "confirm_delete_template": "ဤလုပ်ဆောင်ချက်သည် ဤပုံစံပြားကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", "confirm_delete_wallet": "ဤလုပ်ဆောင်ချက်သည် ဤပိုက်ဆံအိတ်ကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", + "confirm_fee_deduction": "အခကြေးငွေကိုနှုတ်ယူခြင်း", + "confirm_fee_deduction_content": "output မှအခကြေးငွေကိုယူရန်သဘောတူပါသလား။", "confirm_sending": "ပေးပို့အတည်ပြုပါ။", "confirmations": "အတည်ပြုချက်များ", "confirmed": "အတည်ပြုထားသော လက်ကျန်ငွေ", @@ -212,6 +215,7 @@ "edit_token": "တိုကင်ကို တည်းဖြတ်ပါ။", "electrum_address_disclaimer": "သင်အသုံးပြုသည့်အချိန်တိုင်းတွင် ကျွန်ုပ်တို့သည် လိပ်စာအသစ်များကို ထုတ်ပေးသော်လည်း ယခင်လိပ်စာများသည် ဆက်လက်အလုပ်လုပ်နေပါသည်။", "email_address": "အီးမေးလ်လိပ်စာ", + "enable_replace_by_fee": "အစားထိုး - by- အခကြေးငွေ enable", "enabled": "ဖွင့်ထားသည်။", "enter_amount": "ပမာဏကို ထည့်ပါ။", "enter_backup_password": "အရန်စကားဝှက်ကို ဤနေရာတွင် ထည့်ပါ။", @@ -248,6 +252,7 @@ "errorGettingCredentials": "မအောင်မြင်ပါ- အထောက်အထားများ ရယူနေစဉ် အမှားအယွင်း", "errorSigningTransaction": "ငွေပေးငွေယူ လက်မှတ်ထိုးစဉ် အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။", "estimated": "ခန့်မှန်း", + "estimated_new_fee": "ခန့်မှန်းသစ်ခန့်မှန်း", "etherscan_history": "Etherscan သမိုင်း", "event": "ပွဲ", "events": "အဲ့ဒါနဲ့", @@ -314,6 +319,7 @@ "in_store": "စတိုးတွင်", "incoming": "ဝင်လာ", "incorrect_seed": "ထည့်သွင်းထားသော စာသားသည် မမှန်ကန်ပါ။", + "inputs": "သွင်းငေှ", "introducing_cake_pay": "Cake Pay ကို မိတ်ဆက်ခြင်း။", "invalid_input": "ထည့်သွင်းမှု မမှန်ကန်ပါ။", "invoice_details": "ပြေစာအသေးစိတ်", @@ -381,6 +387,7 @@ "offer_expires_in": "ကမ်းလှမ်းချက် သက်တမ်းကုန်သည်:", "offline": "အော့ဖ်လိုင်း", "ok": "ရလား", + "old_fee": "ကြေးဟောင်း", "onion_link": "ကြက်သွန်လင့်", "online": "အွန်လိုင်း", "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "ယခု Cake တွင်ဖန်တီးထားသော Bitcoin ပိုက်ဆံအိတ်အသစ်တွင် စကားလုံး 24 မျိုးရှိသည်။ Bitcoin ပိုက်ဆံအိတ်အသစ်တစ်ခုကို ဖန်တီးပြီး သင့်ငွေအားလုံးကို 24 စကားလုံးပိုက်ဆံအိတ်အသစ်သို့ လွှဲပြောင်းပြီး 12 စကားလုံးမျိုးစေ့ဖြင့် ပိုက်ဆံအိတ်များကို အသုံးပြုခြင်းကို ရပ်တန့်ရန် မဖြစ်မနေလိုအပ်ပါသည်။ သင့်ရန်ပုံငွေများကို လုံခြုံစေရန်အတွက် ၎င်းကိုချက်ချင်းလုပ်ဆောင်ပါ။", "outdated_electrum_wallet_receive_warning": "ဤပိုက်ဆံအိတ်တွင် စာလုံး 12 လုံးပါပြီး ကိတ်မုန့်တွင် ဖန်တီးပါက၊ Bitcoin ကို ဤပိုက်ဆံအိတ်ထဲသို့ မထည့်ပါနှင့်။ ဤပိုက်ဆံအိတ်သို့ လွှဲပြောင်းပေးသည့် မည်သည့် BTC မဆို ဆုံးရှုံးနိုင်သည်။ 24 စကားလုံးပိုက်ဆံအိတ်အသစ်တစ်ခုဖန်တီးပါ (ညာဘက်အပေါ်ထောင့်ရှိမီနူးကိုနှိပ်ပါ၊ Wallets ကိုရွေးချယ်ပါ၊ ပိုက်ဆံအိတ်အသစ်ဖန်တီးရန်ကိုရွေးချယ်ပါ၊ ထို့နောက် Bitcoin ကိုရွေးချယ်ပါ) နှင့်သင်၏ BTC ကိုထိုနေရာသို့ချက်ချင်းရွှေ့ပါ။ Cake မှ (24 စာလုံး) BTC ပိုက်ဆံအိတ်အသစ်များသည် လုံခြုံပါသည်။", "outgoing": "အထွက်", + "outputs": "ထုတ်လုပ်မှု", "overwrite_amount": "ပမာဏကို ထပ်ရေးပါ။", "pairingInvalidEvent": "မမှန်ကန်သောဖြစ်ရပ်ကို တွဲချိတ်ခြင်း။", "password": "စကားဝှက်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 86881452e3..74b111dcb0 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin-betalingen vereisen 1 bevestiging, wat 20 minuten of langer kan duren. Dank voor uw geduld! U ontvangt een e-mail wanneer de betaling is bevestigd.", "Blocks_remaining": "${status} Resterende blokken", "bright_theme": "Helder", + "bump_fee": "Bult fee", "buy": "Kopen", "buy_alert_content": "Momenteel ondersteunen we alleen de aankoop van Bitcoin, Ethereum, Litecoin en Monero. Maak of schakel over naar uw Bitcoin-, Ethereum-, Litecoin- of Monero-portemonnee.", "buy_bitcoin": "Koop Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Bevestigen", "confirm_delete_template": "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?", "confirm_delete_wallet": "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?", + "confirm_fee_deduction": "Bevestig de aftrek van de kosten", + "confirm_fee_deduction_content": "Stemt u ermee in om de vergoeding af te trekken van de output?", "confirm_sending": "Bevestig verzending", "confirmations": "Bevestigingen", "confirmed": "Bevestigd saldo", @@ -212,6 +215,7 @@ "edit_token": "Token bewerken", "electrum_address_disclaimer": "We genereren nieuwe adressen elke keer dat u er een gebruikt, maar eerdere adressen blijven werken", "email_address": "E-mailadres", + "enable_replace_by_fee": "Schakel vervangen door een fee", "enabled": "Ingeschakeld", "enter_amount": "Voer Bedrag in", "enter_backup_password": "Voer hier een back-upwachtwoord in", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Mislukt: fout bij het ophalen van inloggegevens", "errorSigningTransaction": "Er is een fout opgetreden tijdens het ondertekenen van de transactie", "estimated": "Geschatte", + "estimated_new_fee": "Geschatte nieuwe vergoeding", "etherscan_history": "Etherscan-geschiedenis", "event": "Evenement", "events": "Evenementen", @@ -314,6 +319,7 @@ "in_store": "In winkel", "incoming": "inkomend", "incorrect_seed": "De ingevoerde tekst is niet geldig.", + "inputs": "Invoer", "introducing_cake_pay": "Introductie van Cake Pay!", "invalid_input": "Ongeldige invoer", "invoice_details": "Factuurgegevens", @@ -381,6 +387,7 @@ "offer_expires_in": "Aanbieding verloopt over: ", "offline": "Offline", "ok": "OK", + "old_fee": "Oude vergoeding", "onion_link": "Ui koppeling", "online": "online", "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Nieuwe Bitcoin-portefeuilles die in Cake zijn gemaakt, hebben nu een zaadje van 24 woorden. Het is verplicht dat u een nieuwe Bitcoin-portemonnee maakt en al uw geld overmaakt naar de nieuwe portemonnee van 24 woorden, en stopt met het gebruik van wallets met een seed van 12 woorden. Doe dit onmiddellijk om uw geld veilig te stellen.", "outdated_electrum_wallet_receive_warning": "Als deze portemonnee een seed van 12 woorden heeft en is gemaakt in Cake, stort dan GEEN Bitcoin in deze portemonnee. Elke BTC die naar deze portemonnee is overgebracht, kan verloren gaan. Maak een nieuwe portemonnee van 24 woorden (tik op het menu rechtsboven, selecteer Portefeuilles, kies Nieuwe portemonnee maken en selecteer vervolgens Bitcoin) en verplaats je BTC ONMIDDELLIJK daar. Nieuwe (24-woorden) BTC-portefeuilles van Cake zijn veilig", "outgoing": "Uitgaande", + "outputs": "Uitgangen", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Koppelen Ongeldige gebeurtenis", "password": "Wachtwoord", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 9948201233..2ac1b9fb51 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Płatności Bitcoin wymagają 1 potwierdzenia, co może zająć 20 minut lub dłużej. Dziękuję za cierpliwość! Otrzymasz wiadomość e-mail, gdy płatność zostanie potwierdzona.", "Blocks_remaining": "Pozostało ${status} bloków", "bright_theme": "Biały", + "bump_fee": "Opłata za nierówność", "buy": "Kup", "buy_alert_content": "Obecnie obsługujemy tylko zakup Bitcoin, Ethereum, Litecoin i Monero. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum, Litecoin lub Monero.", "buy_bitcoin": "Kup Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Potwierdzać", "confirm_delete_template": "Ta czynność usunie ten szablon. Czy chcesz kontynuować?", "confirm_delete_wallet": "Ta czynność usunie ten portfel. Czy chcesz kontynuować?", + "confirm_fee_deduction": "Potwierdź odliczenie opłaty", + "confirm_fee_deduction_content": "Czy zgadzasz się odliczyć opłatę od wyników?", "confirm_sending": "Potwierdź wysłanie", "confirmations": "Potwierdzenia", "confirmed": "Potwierdzone saldo", @@ -212,6 +215,7 @@ "edit_token": "Edytuj token", "electrum_address_disclaimer": "Za każdym razem, gdy wykorzystasz adres, dla wiekszej prywatności generujemy nowy, ale poprzednie adresy nadal działają, i moga odbierać środki", "email_address": "Adres e-mail", + "enable_replace_by_fee": "Włącz wymianę po lewej", "enabled": "Włączone", "enter_amount": "Wprowadź kwotę", "enter_backup_password": "Wprowadź tutaj hasło kopii zapasowej", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Niepowodzenie: Błąd podczas uzyskiwania poświadczeń", "errorSigningTransaction": "Wystąpił błąd podczas podpisywania transakcji", "estimated": "Oszacowano", + "estimated_new_fee": "Szacowana nowa opłata", "etherscan_history": "Historia Etherscanu", "event": "Wydarzenie", "events": "Wydarzenia", @@ -314,6 +319,7 @@ "in_store": "W Sklepie", "incoming": "Przychodzące", "incorrect_seed": "Wprowadzony seed jest nieprawidłowy.", + "inputs": "Wejścia", "introducing_cake_pay": "Przedstawiamy Cake Pay!", "invalid_input": "Nieprawidłowe dane wejściowe", "invoice_details": "Dane do faktury", @@ -381,6 +387,7 @@ "offer_expires_in": "Oferta wygasa za ", "offline": "Offline", "ok": "Ok", + "old_fee": "Stara opłata", "onion_link": "Łącznik cebulowy", "online": "online", "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Nowe portfele Bitcoin utworzone w Cake mają teraz fraze seed składające się z 24 słów. Konieczne jest utworzenie nowego portfela Bitcoin i przeniesienie wszystkich środków do nowego portfela na 24 słowa oraz zaprzestanie korzystania z portfeli z frazą seed na 12 słów. Zrób to natychmiast, aby zabezpieczyć swoje fundusze.", "outdated_electrum_wallet_receive_warning": "Jeśli ten portfel ma 12-wyrazowy seed i został utworzony w Cake, NIE Wpłacaj Bitcoina do tego portfela. Wszelkie BTC przeniesione do tego portfela mogą zostać utracone. Utwórz nowy portfel z 24 słowami (dotknij menu w prawym górnym rogu, wybierz Portfele, wybierz Utwórz nowy portfel, a następnie Bitcoin) i NATYCHMIAST przenieś tam swoje BTC. Nowe (24 słowa) portfele BTC Cake Wallet są bezpieczne", "outgoing": "Wychodzące", + "outputs": "Wyjścia", "overwrite_amount": "Nadpisz ilość", "pairingInvalidEvent": "Nieprawidłowe zdarzenie parowania", "password": "Hasło", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index cec7b8c11a..bf0b0082d2 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Os pagamentos em Bitcoin exigem 1 confirmação, o que pode levar 20 minutos ou mais. Obrigado pela sua paciência! Você receberá um e-mail quando o pagamento for confirmado.", "Blocks_remaining": "${status} blocos restantes", "bright_theme": "Brilhante", + "bump_fee": "Taxa de aumento", "buy": "Comprar", "buy_alert_content": "Atualmente, oferecemos suporte apenas à compra de Bitcoin, Ethereum, Litecoin e Monero. Crie ou troque para sua carteira Bitcoin, Ethereum, Litecoin ou Monero.", "buy_bitcoin": "Compre Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Confirmar", "confirm_delete_template": "Esta ação excluirá este modelo. Você deseja continuar?", "confirm_delete_wallet": "Esta ação excluirá esta carteira. Você deseja continuar?", + "confirm_fee_deduction": "Confirme dedução da taxa", + "confirm_fee_deduction_content": "Você concorda em deduzir a taxa da saída?", "confirm_sending": "Confirmar o envio", "confirmations": "Confirmações", "confirmed": "Saldo Confirmado", @@ -212,6 +215,7 @@ "edit_token": "Editar símbolo", "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando", "email_address": "Endereço de e-mail", + "enable_replace_by_fee": "Habilite substituir por taxa", "enabled": "Habilitado", "enter_amount": "Digite o valor", "enter_backup_password": "Digite a senha de backup aqui", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Falha: Erro ao obter credenciais", "errorSigningTransaction": "Ocorreu um erro ao assinar a transação", "estimated": "Estimado", + "estimated_new_fee": "Nova taxa estimada", "etherscan_history": "história Etherscan", "event": "Evento", "events": "Eventos", @@ -314,6 +319,7 @@ "in_store": "Na loja", "incoming": "Recebidas", "incorrect_seed": "O texto digitado não é válido.", + "inputs": "Entradas", "introducing_cake_pay": "Apresentando o Cake Pay!", "invalid_input": "Entrada inválida", "invoice_details": "Detalhes da fatura", @@ -382,6 +388,7 @@ "offer_expires_in": "A oferta expira em: ", "offline": "offline", "ok": "Ok", + "old_fee": "Taxa antiga", "onion_link": "ligação de cebola", "online": "Online", "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", @@ -399,6 +406,7 @@ "outdated_electrum_wallet_description": "As novas carteiras Bitcoin criadas no Cake agora têm uma semente de 24 palavras. É obrigatório que você crie uma nova carteira Bitcoin e transfira todos os seus fundos para a nova carteira de 24 palavras, e pare de usar carteiras com semente de 12 palavras. Faça isso imediatamente para garantir seus fundos.", "outdated_electrum_wallet_receive_warning": "Se esta carteira tiver uma semente de 12 palavras e foi criada no Cake, NÃO deposite Bitcoin nesta carteira. Qualquer BTC transferido para esta carteira pode ser perdido. Crie uma nova carteira de 24 palavras (toque no menu no canto superior direito, selecione Carteiras, escolha Criar Nova Carteira e selecione Bitcoin) e mova IMEDIATAMENTE seu BTC para lá. As novas carteiras BTC (24 palavras) da Cake são seguras", "outgoing": "Enviadas", + "outputs": "Saídas", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Emparelhamento de evento inválido", "password": "Senha", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 4ae5bb129a..999728faf0 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -75,10 +75,11 @@ "billing_address_info": "Если вас попросят указать платежный адрес, укажите адрес доставки", "biometric_auth_reason": "Отсканируйте свой отпечаток пальца для аутентификации", "bitcoin_dark_theme": "Биткойн Темная тема", - "bitcoin_light_theme": "Легкая биткойн-тема", + "bitcoin_light_theme": "Светлая биткойн-тема", "bitcoin_payments_require_1_confirmation": "Биткойн-платежи требуют 1 подтверждения, что может занять 20 минут или дольше. Спасибо тебе за твое терпение! Вы получите электронное письмо, когда платеж будет подтвержден.", "Blocks_remaining": "${status} Осталось блоков", "bright_theme": "Яркая", + "bump_fee": "Повысить комиссию", "buy": "Купить", "buy_alert_content": "В настоящее время мы поддерживаем только покупку биткойнов, Ethereum, Litecoin и Monero. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum, Litecoin или Monero.", "buy_bitcoin": "Купить Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Подтвердить", "confirm_delete_template": "Это действие удалит шаблон. Вы хотите продолжить?", "confirm_delete_wallet": "Это действие удалит кошелек. Вы хотите продолжить?", + "confirm_fee_deduction": "Подтвердите вычет платы", + "confirm_fee_deduction_content": "Согласны ли вы вычесть плату из вывода?", "confirm_sending": "Подтвердить отправку", "confirmations": "Подтверждения", "confirmed": "Подтвержденный баланс", @@ -212,6 +215,7 @@ "edit_token": "Изменить токен", "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать.", "email_address": "Адрес электронной почты", + "enable_replace_by_fee": "Включить замену за пикой", "enabled": "Включено", "enter_amount": "Введите сумму", "enter_backup_password": "Введите пароль резервной копии", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Не удалось: ошибка при получении учетных данных.", "errorSigningTransaction": "Произошла ошибка при подписании транзакции", "estimated": "Примерно", + "estimated_new_fee": "Расчетная новая плата", "etherscan_history": "История Эфириума", "event": "Событие", "events": "События", @@ -314,6 +319,7 @@ "in_store": "В магазине", "incoming": "Входящие", "incorrect_seed": "Введённый текст некорректный.", + "inputs": "Входы", "introducing_cake_pay": "Представляем Cake Pay!", "invalid_input": "Неверный Ввод", "invoice_details": "Детали счета", @@ -381,6 +387,7 @@ "offer_expires_in": "Предложение истекает через: ", "offline": "Не в сети", "ok": "OK", + "old_fee": "Старая плата", "onion_link": "Луковая ссылка", "online": "Онлайн", "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", @@ -398,6 +405,7 @@ "outdated_electrum_wallet_description": "Новые биткойн-кошельки, созданные в Cake, теперь содержат мнемоническую фразу из 24 слов. Вы обязательно должны создать новый биткойн-кошелек и перевести все свои средства в новый кошелек из 24 слов, а также прекратить использование кошельков с мнемонической фразой из 12 слов. Пожалуйста, сделайте это немедленно, чтобы обезопасить свои средства.", "outdated_electrum_wallet_receive_warning": "Если этот кошелек имеет мнемоническую фразу из 12 слов и был создан в Cake, НЕ переводите биткойны на этот кошелек. Любые BTC, переведенные на этот кошелек, могут быть потеряны. Создайте новый кошелек с мнемоническои фразы из 24 слов (коснитесь меню в правом верхнем углу, выберите «Кошельки», выберите «Создать новый кошелек», затем выберите «Bitcoin») и НЕМЕДЛЕННО переведите туда свои BTC. Новые (24 слова) кошельки BTC от Cake безопасны", "outgoing": "Исходящие", + "outputs": "Выходы", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недействительное событие сопряжения", "password": "Пароль", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 6c8634e83a..a71bc6b369 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "การชำระเงินด้วย Bitcoin ต้องการการยืนยัน 1 ครั้ง ซึ่งอาจใช้เวลา 20 นาทีหรือนานกว่านั้น ขอบคุณสำหรับความอดทนของคุณ! คุณจะได้รับอีเมลเมื่อการชำระเงินได้รับการยืนยัน", "Blocks_remaining": "${status} บล็อกที่เหลืออยู่", "bright_theme": "สดใส", + "bump_fee": "ค่าธรรมเนียมชน", "buy": "ซื้อ", "buy_alert_content": "ขณะนี้เรารองรับการซื้อ Bitcoin, Ethereum, Litecoin และ Monero เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum, Litecoin หรือ Monero", "buy_bitcoin": "ซื้อ Bitcoin", @@ -133,6 +134,8 @@ "confirm": "ยืนยัน", "confirm_delete_template": "การดำเนินการนี้จะลบแบบฟอร์มนี้ คุณต้องการดำเนินการต่อหรือไม่?", "confirm_delete_wallet": "การดำเนินการนี้จะลบกระเป๋านี้ คุณต้องการดำเนินการต่อหรือไม่?", + "confirm_fee_deduction": "ยืนยันการหักค่าธรรมเนียม", + "confirm_fee_deduction_content": "คุณตกลงที่จะหักค่าธรรมเนียมจากผลลัพธ์หรือไม่?", "confirm_sending": "ยืนยันการส่ง", "confirmations": "การยืนยัน", "confirmed": "ยอดคงเหลือที่ยืนยันแล้ว", @@ -212,6 +215,7 @@ "edit_token": "แก้ไขโทเค็น", "electrum_address_disclaimer": "เราสร้างที่อยู่ใหม่ทุกครั้งที่คุณใช้หนึ่งอย่าง แต่ที่อยู่เก่ายังสามารถใช้ได้ต่อไป", "email_address": "ที่อยู่อีเมล", + "enable_replace_by_fee": "เปิดใช้งานการเปลี่ยนโดยค่าธรรมเนียม", "enabled": "เปิดใช้งาน", "enter_amount": "กรอกจำนวน", "enter_backup_password": "ป้อนรหัสผ่านสำรองที่นี่", @@ -248,6 +252,7 @@ "errorGettingCredentials": "ล้มเหลว: เกิดข้อผิดพลาดขณะรับข้อมูลรับรอง", "errorSigningTransaction": "เกิดข้อผิดพลาดขณะลงนามธุรกรรม", "estimated": "ประมาณการ", + "estimated_new_fee": "ค่าธรรมเนียมใหม่โดยประมาณ", "etherscan_history": "ประวัติอีเธอร์สแกน", "event": "เหตุการณ์", "events": "กิจกรรม", @@ -314,6 +319,7 @@ "in_store": "ในร้าน", "incoming": "ขาเข้า", "incorrect_seed": "ข้อความที่ป้อนไม่ถูกต้อง", + "inputs": "อินพุต", "introducing_cake_pay": "ยินดีต้อนรับสู่ Cake Pay!", "invalid_input": "อินพุตไม่ถูกต้อง", "invoice_details": "รายละเอียดใบแจ้งหนี้", @@ -381,6 +387,7 @@ "offer_expires_in": "ข้อเสนอจะหมดอายุใน: ", "offline": "ออฟไลน์", "ok": "ตกลง", + "old_fee": "ค่าธรรมเนียมเก่า", "onion_link": "ลิงค์หัวหอม", "online": "ออนไลน์", "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "กระเป๋า Bitcoin ใหม่ที่สร้างใน Cake มี seed ขนาด 24 คำ ซึ่งจำเป็นต้องสร้างกระเป๋า Bitcoin ใหม่และโอนทุกเงินของคุณไปยังกระเป๋าใหม่ขนาด 24 คำ และหยุดใช้กระเป๋าที่มี seed ขนาด 12 คำ กรุณาทำด่วนเพื่อรักษาเงินของคุณ", "outdated_electrum_wallet_receive_warning": "หากกระเป๋านี้มีซีดีที่มี 12 คำและถูกสร้างขึ้นใน Cake อย่าโอน Bitcoin เข้ากระเป๋านี้ ทุกจำนวน BTC ที่โอนเข้ากระเป๋านี้อาจสูญหาย สร้างกระเป๋าใหม่ที่มีซีดีที่มี 24 คำ (กดที่เมนูที่มุมขวาบนแล้วเลือก Wallets และเลือก Create New Wallet จากนั้นเลือก Bitcoin) และย้าย BTC ไปที่นั้นทันที กระเป๋า BTC ที่มีซีดีที่มี 24 คำของ Cake ปลอดภัย", "outgoing": "ขาออก", + "outputs": "เอาต์พุต", "overwrite_amount": "เขียนทับจำนวน", "pairingInvalidEvent": "การจับคู่เหตุการณ์ที่ไม่ถูกต้อง", "password": "รหัสผ่าน", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 4d88fe640d..73cd8a1f79 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Ang mga pagbabayad sa Bitcoin ay nangangailangan ng 1 kumpirmasyon, na maaaring tumagal ng 20 minuto o mas mahaba. Salamat sa iyong pasensya! Mag -email ka kapag nakumpirma ang pagbabayad.", "Blocks_remaining": "Ang natitirang ${status} ay natitira", "bright_theme": "Maliwanag", + "bump_fee": "Bayad sa paga", "buy": "Bilhin", "buy_alert_content": "Sa kasalukuyan ay sinusuportahan lamang namin ang pagbili ng Bitcoin, Ethereum, Litecoin, at Monero. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum, Litecoin, o Monero Wallet.", "buy_bitcoin": "Bumili ng bitcoin", @@ -133,6 +134,8 @@ "confirm": "Kumpirmahin", "confirm_delete_template": "Ang pagkilos na ito ay tatanggalin ang template na ito. Nais mo bang magpatuloy?", "confirm_delete_wallet": "Ang pagkilos na ito ay tatanggalin ang pitaka na ito. Nais mo bang magpatuloy?", + "confirm_fee_deduction": "Kumpirmahin ang pagbabawas ng bayad", + "confirm_fee_deduction_content": "Sumasang -ayon ka bang bawasan ang bayad mula sa output?", "confirm_sending": "Kumpirmahin ang pagpapadala", "confirmations": "Mga kumpirmasyon", "confirmed": "Nakumpirma na balanse", @@ -212,6 +215,7 @@ "edit_token": "I -edit ang token", "electrum_address_disclaimer": "Bumubuo kami ng mga bagong address sa tuwing gumagamit ka ng isa, ngunit ang mga nakaraang address ay patuloy na gumagana", "email_address": "Email address", + "enable_replace_by_fee": "Paganahin ang palitan-by-fee", "enabled": "Pinagana", "enter_amount": "Ipasok ang halaga", "enter_backup_password": "Ipasok ang backup password dito", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Nabigo: Error habang kumukuha ng mga kredensyal", "errorSigningTransaction": "May naganap na error habang pinipirmahan ang transaksyon", "estimated": "Tinatayang", + "estimated_new_fee": "Tinatayang bagong bayad", "etherscan_history": "Kasaysayan ng Etherscan", "event": "Kaganapan", "events": "Mga kaganapan", @@ -314,6 +319,7 @@ "in_store": "Nakatago", "incoming": "Papasok", "incorrect_seed": "Ang teksto na ipinasok ay hindi wasto.", + "inputs": "Mga input", "introducing_cake_pay": "Ipinakikilala ang cake pay!", "invalid_input": "Di -wastong input", "invoice_details": "Mga detalye ng invoice", @@ -381,6 +387,7 @@ "offer_expires_in": "Mag -expire ang alok sa:", "offline": "Offline", "ok": "Ok", + "old_fee": "Matandang bayad", "onion_link": "Link ng Onion", "online": "Online", "onramper_option_description": "Mabilis na bumili ng crypto na may maraming paraan ng pagbabayad. Available sa karamihan ng mga bansa. Iba-iba ang mga spread at bayarin.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Ang mga bagong wallets ng Bitcoin na nilikha sa cake ay mayroon na ngayong 24-salitang binhi. Ipinag-uutos na lumikha ka ng isang bagong pitaka ng Bitcoin at ilipat ang lahat ng iyong mga pondo sa bagong 24-salitang pitaka, at itigil ang paggamit ng mga pitaka na may 12-salitang binhi. Mangyaring gawin ito kaagad upang ma -secure ang iyong mga pondo.", "outdated_electrum_wallet_receive_warning": "Kung ang pitaka na ito ay may 12-salitang binhi at nilikha sa cake, huwag magdeposito sa Bitcoin sa pitaka na ito. Ang anumang BTC na inilipat sa pitaka na ito ay maaaring mawala. Lumikha ng isang bagong 24-word wallet (tapikin ang menu sa kanang tuktok, piliin ang mga pitaka, piliin ang Lumikha ng Bagong Wallet, pagkatapos ay piliin ang Bitcoin) at agad na ilipat ang iyong BTC doon. Ang mga bagong (24-salita) BTC Wallets mula sa cake ay ligtas", "outgoing": "Palabas", + "outputs": "Mga output", "overwrite_amount": "Overwrite na halaga", "pairingInvalidEvent": "Pagpares ng Di-wastong Kaganapan", "password": "Password", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 599d5bf67c..de197c1b19 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Bitcoin ödemeleri, 20 dakika veya daha uzun sürebilen 1 onay gerektirir. Sabrınız için teşekkürler! Ödeme onaylandığında e-posta ile bilgilendirileceksiniz.", "Blocks_remaining": "${status} Blok Kaldı", "bright_theme": "Parlak", + "bump_fee": "Çarpma ücreti", "buy": "Alış", "buy_alert_content": "Şu anda yalnızca Bitcoin, Ethereum, Litecoin ve Monero satın alımını destekliyoruz. Lütfen Bitcoin, Ethereum, Litecoin veya Monero cüzdanınızı oluşturun veya cüzdanınıza geçin.", "buy_bitcoin": "Bitcoin Satın Al", @@ -133,6 +134,8 @@ "confirm": "Onayla", "confirm_delete_template": "Bu eylem, bu şablonu silecek. Devam etmek istiyor musun?", "confirm_delete_wallet": "Bu eylem, bu cüzdanı silecek. Devam etmek istiyor musun?", + "confirm_fee_deduction": "Ücret kesintisini onaylayın", + "confirm_fee_deduction_content": "Ücreti çıktıdan düşürmeyi kabul ediyor musunuz?", "confirm_sending": "Göndermeyi onayla", "confirmations": "Onay", "confirmed": "Onaylanmış Bakiye", @@ -212,6 +215,7 @@ "edit_token": "Belirteci düzenle", "electrum_address_disclaimer": "Adresini her kullandığında yeni adres oluşturuyoruz, ancak önceki adresler de çalışmaya devam eder", "email_address": "E-posta Adresi", + "enable_replace_by_fee": "Farklı Değiştir'i Etkinleştir", "enabled": "Etkin", "enter_amount": "Miktar Girin", "enter_backup_password": "Yedekleme parolasını buraya gir", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Başarısız: Kimlik bilgileri alınırken hata oluştu", "errorSigningTransaction": "İşlem imzalanırken bir hata oluştu", "estimated": "Tahmini", + "estimated_new_fee": "Tahmini yeni ücret", "etherscan_history": "Etherscan geçmişi", "event": "Etkinlik", "events": "Olaylar", @@ -314,6 +319,7 @@ "in_store": "Mağazada", "incoming": "Gelen", "incorrect_seed": "Girilen metin geçerli değil.", + "inputs": "Girişler", "introducing_cake_pay": "Cake Pay ile tanışın!", "invalid_input": "Geçersiz Giriş", "invoice_details": "fatura detayları", @@ -381,6 +387,7 @@ "offer_expires_in": "Teklifin bitmesine kalan: ", "offline": "Çevrimdışı", "ok": "Tamam", + "old_fee": "Eski ücret", "onion_link": "soğan bağlantısı", "online": "Çevrimiçi", "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Cake'te oluşturulan yeni Bitcoin cüzdanları artık 24 kelimelik bir tohuma sahip. Yeni bir Bitcoin cüzdanı oluşturmanız ve tüm paranızı 24 kelimelik yeni cüzdana aktarmanız ve 12 kelimelik tohuma sahip cüzdanları kullanmayı bırakmanız zorunludur. Lütfen paranızı güvence altına almak için bunu hemen yapın.", "outdated_electrum_wallet_receive_warning": "Bu cüzdanın 12 kelimelik bir tohumu varsa ve Cake'te oluşturulduysa, bu cüzdana Bitcoin YATIRMAYIN. Bu cüzdana aktarılan tüm BTC'ler kaybolabilir. 24 kelimelik yeni bir cüzdan oluşturun (sağ üstteki menüye dokunun, Cüzdanlar'ı seçin, Yeni Cüzdan Oluştur'u seçin, ardından Bitcoin'i seçin) ve BTC'nizi HEMEN oraya taşıyın. Cake'in yeni (24 kelimelik) BTC cüzdanları güvenlidir", "outgoing": "Giden", + "outputs": "çıktılar", "overwrite_amount": "Miktarın üzerine yaz", "pairingInvalidEvent": "Geçersiz Etkinliği Eşleştirme", "password": "Parola", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index b0902aadaa..86e60214bf 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Платежі Bitcoin потребують 1 підтвердження, яке може зайняти 20 хвилин або більше. Дякую за Ваше терпіння! Ви отримаєте електронний лист, коли платіж буде підтверджено.", "Blocks_remaining": "${status} Залишилось блоків", "bright_theme": "Яскрава", + "bump_fee": "Підвищити комісію", "buy": "Купити", "buy_alert_content": "Наразі ми підтримуємо купівлю лише Bitcoin, Ethereum, Litecoin і Monero. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum, Litecoin або Monero.", "buy_bitcoin": "Купити Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Підтвердити", "confirm_delete_template": "Ця дія видалить шаблон. Ви хочете продовжити?", "confirm_delete_wallet": "Ця дія видалить гаманець. Ви хочете продовжити?", + "confirm_fee_deduction": "Підтвердьте відрахування комісії", + "confirm_fee_deduction_content": "Чи погоджуєтесь ви вирахувати комісію з сумми одержувача?", "confirm_sending": "Підтвердити відправлення", "confirmations": "Підтвердження", "confirmed": "Підтверджений баланс", @@ -212,6 +215,7 @@ "edit_token": "Редагувати маркер", "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати", "email_address": "Адреса електронної пошти", + "enable_replace_by_fee": "Увімкнути заміну з комісією", "enabled": "Увімкнено", "enter_amount": "Введіть суму", "enter_backup_password": "Введіть пароль резервної копії", @@ -248,6 +252,7 @@ "errorGettingCredentials": "Помилка: помилка під час отримання облікових даних", "errorSigningTransaction": "Під час підписання транзакції сталася помилка", "estimated": "Приблизно ", + "estimated_new_fee": "Орієнтовна нова комісія", "etherscan_history": "Історія Etherscan", "event": "Подія", "events": "Події", @@ -314,6 +319,7 @@ "in_store": "У магазині", "incoming": "Вхідні", "incorrect_seed": "Введений текст невірний.", + "inputs": "Вхoди", "introducing_cake_pay": "Представляємо Cake Pay!", "invalid_input": "Неправильні дані", "invoice_details": "Реквізити рахунку-фактури", @@ -381,6 +387,7 @@ "offer_expires_in": "Пропозиція закінчиться через: ", "offline": "Офлайн", "ok": "OK", + "old_fee": "Стара комісія", "onion_link": "Посилання на цибулю", "online": "Онлайн", "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "Нові біткойн-гаманці, створені в Cake, тепер містять мнемонічну фразу з 24 слів. Обов’язково стовріть новий біткойн-гаманець, переведіть всі кошти на новий гаманець із 24 слів і припиніть використання гаманців із мнемонічною фразою з 12 слів. Зробіть це негайно, щоб убезпечити свої кошти.", "outdated_electrum_wallet_receive_warning": "Якщо цей гаманець має мнемонічну фразу з 12 слів і був створений у Cake, НЕ переводьте біткойни на цей гаманець. Будь-які BTC, переведений на цей гаманець, можуть бути втраченими. Створіть новий гаманець з мнемонічною фразою з 24 слів (торкніться меню у верхньому правому куті, виберіть Гаманці, виберіть Створити новий гаманець, потім виберіть Bitcoin) і НЕГАЙНО переведіть туди свії BTC. Нові (з мнемонічною фразою з 24 слів) гаманці BTC від Cake надійно захищені", "outgoing": "Вихідні", + "outputs": "Виходи", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недійсна подія сполучення", "password": "Пароль", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 1d4d98f45a..725a1d895c 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "بٹ کوائن کی ادائیگی میں 1 تصدیق کی ضرورت ہوتی ہے ، جس میں 20 منٹ یا اس سے زیادہ وقت لگ سکتا ہے۔ آپ کے صبر کا شکریہ! ادائیگی کی تصدیق ہونے پر آپ کو ای میل کیا جائے گا۔", "Blocks_remaining": "${status} بلاکس باقی ہیں۔", "bright_theme": "روشن", + "bump_fee": "بمپ فیس", "buy": "خریدنے", "buy_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Monero ﺎﯾ ،Bitcoin، Ethereum، Litecoin ﺎﻨﭘﺍ ﻡ", "buy_bitcoin": "Bitcoin خریدیں۔", @@ -133,6 +134,8 @@ "confirm": "تصدیق کریں۔", "confirm_delete_template": "یہ عمل اس ٹیمپلیٹ کو حذف کر دے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", "confirm_delete_wallet": "اس کارروائی سے یہ پرس حذف ہو جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", + "confirm_fee_deduction": "فیس میں کٹوتی کی تصدیق کریں", + "confirm_fee_deduction_content": "کیا آپ آؤٹ پٹ سے فیس کم کرنے پر راضی ہیں؟", "confirm_sending": "بھیجنے کی تصدیق کریں۔", "confirmations": "تصدیقات", "confirmed": "تصدیق شدہ بیلنس", @@ -212,6 +215,7 @@ "edit_token": "ٹوکن میں ترمیم کریں۔", "electrum_address_disclaimer": "جب بھی آپ ایک کا استعمال کرتے ہیں تو ہم نئے پتے تیار کرتے ہیں، لیکن پچھلے پتے کام کرتے رہتے ہیں۔", "email_address": "ای میل اڈریس", + "enable_replace_by_fee": "فی فیس کو تبدیل کریں", "enabled": "فعال", "enter_amount": "رقم درج کریں۔", "enter_backup_password": "یہاں بیک اپ پاس ورڈ درج کریں۔", @@ -248,6 +252,7 @@ "errorGettingCredentials": "۔ﯽﺑﺍﺮﺧ ﮟﯿﻣ ﮯﻧﺮﮐ ﻞﺻﺎﺣ ﺩﺎﻨﺳﺍ :ﻡﺎﮐﺎﻧ", "errorSigningTransaction": "۔ﮯﮨ ﯽﺌﮔﺁ ﺶﯿﭘ ﯽﺑﺍﺮﺧ ﮏﯾﺍ ﺖﻗﻭ ﮯﺗﺮﮐ ﻂﺨﺘﺳﺩ ﺮﭘ ﻦﯾﺩ ﻦﯿﻟ", "estimated": "تخمینہ لگایا", + "estimated_new_fee": "تخمینہ شدہ نئی فیس", "etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ", "event": "ﺐﯾﺮﻘﺗ", "events": "ﺕﺎﺒﯾﺮﻘﺗ", @@ -314,6 +319,7 @@ "in_store": "اسٹور میں", "incoming": "آنے والا", "incorrect_seed": "درج کردہ متن درست نہیں ہے۔", + "inputs": "آدانوں", "introducing_cake_pay": "Cake پے کا تعارف!", "invalid_input": "غلط ان پٹ", "invoice_details": "رسید کی تفصیلات", @@ -381,6 +387,7 @@ "offer_expires_in": "پیشکش کی میعاد اس وقت ختم ہو جاتی ہے:", "offline": "آف لائن", "ok": "ٹھیک ہے", + "old_fee": "پرانی فیس", "onion_link": "پیاز کا لنک", "online": "آن لائن", "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", @@ -399,6 +406,7 @@ "outdated_electrum_wallet_description": "Cake میں بنائے گئے نئے Bitcoin بٹوے میں اب 24 الفاظ کا بیج ہے۔ یہ لازمی ہے کہ آپ ایک نیا Bitcoin والیٹ بنائیں اور اپنے تمام فنڈز کو نئے 24 الفاظ والے والیٹ میں منتقل کریں، اور 12 الفاظ کے بیج والے بٹوے کا استعمال بند کریں۔ براہ کرم اپنے فنڈز کو محفوظ بنانے کے لیے فوری طور پر ایسا کریں۔", "outdated_electrum_wallet_receive_warning": "اگر اس پرس میں 12 الفاظ کا بیج ہے اور اسے Cake میں بنایا گیا ہے، تو اس بٹوے میں Bitcoin جمع نہ کریں۔ اس بٹوے میں منتقل کیا گیا کوئی بھی BTC ضائع ہو سکتا ہے۔ ایک نیا 24 الفاظ والا والیٹ بنائیں (اوپر دائیں جانب مینو کو تھپتھپائیں، Wallets کو منتخب کریں، نیا والیٹ بنائیں، پھر Bitcoin کو منتخب کریں) اور فوری طور پر اپنے BTC کو وہاں منتقل کریں۔ Cake کے نئے (24-لفظوں) BTC بٹوے محفوظ ہیں۔", "outgoing": "سبکدوش ہونے والے", + "outputs": "نتائج", "overwrite_amount": "رقم کو اوور رائٹ کریں۔", "pairingInvalidEvent": "ﭧﻧﻮﯾﺍ ﻂﻠﻏ ﺎﻧﺎﻨﺑ ﺍﮌﻮﺟ", "password": "پاس ورڈ", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 9128427e55..517757716c 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "Àwọn àránṣẹ́ Bitcoin nílò ìjẹ́rìísí kan. Ó lè lo ìṣéjú ogun tàbí ìṣéjú jù. A dúpẹ́ fún sùúrù yín! Ẹ máa gba ímeèlì t'ó bá jẹ́rìísí àránṣẹ́ náà.", "Blocks_remaining": "Àkójọpọ̀ ${status} kikù", "bright_theme": "Funfun", + "bump_fee": "Ọya ija", "buy": "Rà", "buy_alert_content": "Lọwọlọwọ a ṣe atilẹyin rira Bitcoin, Ethereum, Litecoin, ati Monero. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum, Litecoin, tabi apamọwọ Monero.", "buy_bitcoin": "Ra Bitcoin", @@ -133,6 +134,8 @@ "confirm": "Jẹ́rìísí", "confirm_delete_template": "Ìṣe yìí máa yọ àwòṣe yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", "confirm_delete_wallet": "Ìṣe yìí máa yọ àpamọ́wọ́ yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", + "confirm_fee_deduction": "Jẹrisi iyọkuro owo", + "confirm_fee_deduction_content": "Ṣe o gba lati yọkuro idiyele naa kuro ni iṣejade?", "confirm_sending": "Jẹ́rìí sí ránṣẹ́", "confirmations": "Àwọn ẹ̀rí", "confirmed": "A ti jẹ́rìí ẹ̀", @@ -213,6 +216,7 @@ "edit_token": "Ṣatunkọ àmi", "electrum_address_disclaimer": "A dá àwọn àdírẹ́sì títun ní gbogbo àwọn ìgbà t'ẹ́ lo ó kan ṣùgbọ́n ẹ lè tẹ̀síwájú lo àwọn àdírẹ́sì tẹ́lẹ̀tẹ́lẹ̀.", "email_address": "Àdírẹ́sì ímeèlì", + "enable_replace_by_fee": "Mu ki o rọpo", "enabled": "Wọ́n tíwọn ti tan", "enter_amount": "Tẹ̀ iye", "enter_backup_password": "Tẹ̀ ọ̀rọ̀ aṣínà ti ẹ̀dà ḿbí", @@ -249,6 +253,7 @@ "errorGettingCredentials": "Kuna: Aṣiṣe lakoko gbigba awọn iwe-ẹri", "errorSigningTransaction": "Aṣiṣe kan ti waye lakoko ti o fowo si iṣowo", "estimated": "Ó tó a fojú díwọ̀n", + "estimated_new_fee": "Ifoju tuntun owo tuntun", "etherscan_history": "Etherscan itan", "event": "Iṣẹlẹ", "events": "Awọn iṣẹlẹ", @@ -315,6 +320,7 @@ "in_store": "A níyí", "incoming": "Wọ́n tó ń bọ̀", "incorrect_seed": "Ọ̀rọ̀ tí a tẹ̀ kì í ṣe èyí.", + "inputs": "Igbewọle", "introducing_cake_pay": "Ẹ bá Cake Pay!", "invalid_input": "Iṣawọle ti ko tọ", "invoice_details": "Iru awọn ẹya ọrọ", @@ -382,6 +388,7 @@ "offer_expires_in": "Ìrònúdábàá máa gbẹ́mìí mì ní: ", "offline": "kò wà lórí ayélujára", "ok": "Ó dáa", + "old_fee": "Oya atijọ", "onion_link": "Kọja ilọ alubosa", "online": "Lórí ayélujára", "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", @@ -398,6 +405,7 @@ "outdated_electrum_wallet_description": "Àwọn àpamọ́wọ́ títun Bitcoin ti a ti dá nínú Cake Wallet lọ́wọ́lọ́wọ́. Àwọn àpamọ́wọ́ títun t'á dá nínú Cake Wallet ni hóró tó ní ọ̀rọ̀ mẹ́rinlélógún. Ẹ gbọ́dọ̀ dá àpamọ́wọ́. Ẹ sì sún gbogbo owó yín sí àpamọ́wọ́ títun náà tó dá lórí ọ̀rọ̀ mẹ́rinlélógún. Ẹ sì gbọ́dọ̀ yé lo àwọn àpamọ́wọ́ tó dá lórí hóró tó ní ọ̀rọ̀ méjìlá. Ẹ jọ̀wọ́ ṣe èyí láìpẹ́ kí ẹ ba owó yín.", "outdated_electrum_wallet_receive_warning": "Ẹ KÒ FI BITCOIN SÍ ÀPAMỌ́WỌ́ YÌÍ t'á ti dá a nínú Cake Wallet àti àpamọ́wọ́ yìí ni hóró ti ọ̀rọ̀ méjìlá. A lè pàdánù BTC t'á ránṣẹ́ sí àpamọ́wọ́ yìí. Ẹ dá àpamọ́wọ́ títun tó ni hóró tó ni ọ̀rọ̀ mẹ́rinlélógún (Ẹ tẹ àkọsílẹ̀ tó wa l’ókè l'ọ́tún nígbàna, ẹ sì yan àwọn àpamọ́wọ́ nígbàna, ẹ sì yan Dá Àpamọ́wọ́ Títun nígbàna, ẹ sì yan Bitcoin) àti sún Bitcoin yín síbẹ̀ ní sinsìn yẹn. Àwọn àpamọ́wọ́ títun (hóró ni ọ̀rọ̀ mẹ́rinlélógún) láti Cake Wallet wa láìléwu.", "outgoing": "Wọ́n tó ń jáde", + "outputs": "Awọn iṣan", "overwrite_amount": "Pààrọ̀ iye owó", "pairingInvalidEvent": "Pipọpọ Iṣẹlẹ Ti ko tọ", "password": "Ọ̀rọ̀ aṣínà", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index d9ac86b34d..1048489968 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -79,6 +79,7 @@ "bitcoin_payments_require_1_confirmation": "比特币支付需要 1 次确认,这可能需要 20 分钟或更长时间。谢谢你的耐心!确认付款后,您将收到电子邮件。", "Blocks_remaining": "${status} 剩余的块", "bright_theme": "明亮", + "bump_fee": "撞费", "buy": "购买", "buy_alert_content": "目前我们仅支持购买比特币、以太坊、莱特币和门罗币。请创建或切换到您的比特币、以太坊、莱特币或门罗币钱包。", "buy_bitcoin": "购买比特币", @@ -133,6 +134,8 @@ "confirm": "确认", "confirm_delete_template": "此操作将刪除此模板。确定吗?", "confirm_delete_wallet": "此操作将刪除此钱包。确定吗?", + "confirm_fee_deduction": "确认费用扣除", + "confirm_fee_deduction_content": "您是否同意从产出中扣除费用?", "confirm_sending": "确认发送", "confirmations": "确认", "confirmed": "确认余额", @@ -212,6 +215,7 @@ "edit_token": "编辑令牌", "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效", "email_address": "电子邮件地址", + "enable_replace_by_fee": "启用by-Fee替换", "enabled": "启用", "enter_amount": "输入金额", "enter_backup_password": "在此处输入備用密码", @@ -248,6 +252,7 @@ "errorGettingCredentials": "失败:获取凭据时出错", "errorSigningTransaction": "签署交易时发生错误", "estimated": "估计值", + "estimated_new_fee": "估计新费用", "etherscan_history": "以太扫描历史", "event": "事件", "events": "活动", @@ -314,6 +319,7 @@ "in_store": "店内", "incoming": "收到", "incorrect_seed": "输入的文字无效。", + "inputs": "输入", "introducing_cake_pay": "介绍 Cake Pay!", "invalid_input": "输入无效", "invoice_details": "发票明细", @@ -381,6 +387,7 @@ "offer_expires_in": "优惠有效期至 ", "offline": "离线", "ok": "确认", + "old_fee": "旧费用", "onion_link": "洋葱链接", "online": "在线", "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", @@ -397,6 +404,7 @@ "outdated_electrum_wallet_description": "在Cake创建的新比特币钱包现在有一个24字的种子。你必须创建一个新的比特币钱包,并将你所有的资金转移到新的24字钱包,并停止使用12字种子的钱包。请立即这样做以保证你的资金安全。", "outdated_electrum_wallet_receive_warning": "如果这个钱包有一个 12 字的种子并且是在 Cake 中创建的,不要将比特币存入这个钱包。 任何转移到此钱包的 BTC 都可能丢失。 创建一个新的 24 字钱包(点击右上角的菜单,选择钱包,选择创建新钱包,然后选择比特币)并立即将您的 BTC 移到那里。 Cake 的新(24 字)BTC 钱包是安全的", "outgoing": "发送", + "outputs": "输出", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "配对无效事件", "password": "密码", diff --git a/scripts/append_translation.sh b/scripts/append_translation.sh deleted file mode 100755 index 0cc33fc0f9..0000000000 --- a/scripts/append_translation.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# to use on Mac first install the translation shell `brew install translate-shell` -# then install the jq `brew install jq` -# then run this file with the English key and value that you want to be translated -# `./append_translation.sh "greetings" "Hello World!"` -# if you get an error `command not found` -# give the correct permissions to this file using `chmod 777 append_translation.sh` - -langs=("ar" "bg" "cs" "de" "en" "es" "fr" "ha" "hi" "hr" "id" "it" "ja" "ko" "my" "nl" "pl" "pt" "ru" "th" "tl" "tr" "uk" "ur" "yo" "zh") - -name=$1 -text=$2 - -for lang in "${langs[@]}"; do - translation="$(trans en:$lang --brief "$text")" - - # Use jq to add the new key-value pair to the JSON object - jq_result=$(jq '. += { "'"$name"'": "'"$translation"'" }' ../res/values/strings_$lang.arb) - - echo "$jq_result" > ../res/values/strings_$lang.arb - echo 'Added { "'"$name"'": "'"$translation"'" } to '"strings_$lang.arb"'' -done diff --git a/tool/configure.dart b/tool/configure.dart index b3aa44febd..06243e8aba 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -87,6 +87,7 @@ import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet_service.dart'; +import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:mobx/mobx.dart'; """; const bitcoinCwPart = "part 'cw_bitcoin.dart';"; @@ -135,13 +136,14 @@ abstract class Bitcoin { String formatterBitcoinAmountToString({required int amount}); double formatterBitcoinAmountToDouble({required int amount}); int formatterStringDoubleToBitcoinAmount(String amount); - String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate); + String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate, {int? customRate}); List getUnspents(Object wallet); Future updateUnspents(Object wallet); WalletService createBitcoinWalletService(Box walletInfoSource, Box unspentCoinSource); WalletService createLitecoinWalletService(Box walletInfoSource, Box unspentCoinSource); TransactionPriority getBitcoinTransactionPriorityMedium(); + TransactionPriority getBitcoinTransactionPriorityCustom(); TransactionPriority getLitecoinTransactionPriorityMedium(); TransactionPriority getBitcoinTransactionPrioritySlow(); TransactionPriority getLitecoinTransactionPrioritySlow(); @@ -151,6 +153,12 @@ abstract class Bitcoin { List getBitcoinReceivePageOptions(); BitcoinAddressType getBitcoinAddressType(ReceivePageOption option); bool hasTaprootInput(PendingTransaction pendingTransaction); + + Future replaceByFee(Object wallet, String transactionHash, String fee); + Future canReplaceByFee(Object wallet, String transactionHash); + Future isChangeSufficientForFee(Object wallet, String txId, String newFee); + int getFeeAmountForPriority(Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, {int? size}); + int getFeeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, {int? size}); } """; From d4b317b3a0ee77245666651aad4638f9d2c3700c Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Mon, 8 Apr 2024 10:42:27 -0700 Subject: [PATCH 045/157] minor fix (#1371) --- lib/buy/moonpay/moonpay_provider.dart | 70 +++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 52a4f6187f..fea8fdabd1 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -155,7 +155,7 @@ class MoonPayProvider extends BuyProvider { 'baseCurrencyAmount': amount ?? '0', 'currencyCode': currencyCode, 'walletAddress': walletAddress, - 'lockAmount': 'true', + 'lockAmount': 'false', 'showAllCurrencies': 'false', 'showWalletAddressForm': 'false', 'enabledPaymentMethods': @@ -256,44 +256,44 @@ class MoonPayProvider extends BuyProvider { @override Future launchProvider(BuildContext context, bool? isBuyAction) async { - // try { - late final Uri uri; - if (isBuyAction ?? true) { - uri = await requestBuyMoonPayUrl( - currency: wallet.currency, - walletAddress: wallet.walletAddresses.address, - settingsStore: _settingsStore, - ); - } else { - uri = await requestSellMoonPayUrl( - currency: wallet.currency, - refundWalletAddress: wallet.walletAddresses.address, - settingsStore: _settingsStore, - ); - } + try { + late final Uri uri; + if (isBuyAction ?? true) { + uri = await requestBuyMoonPayUrl( + currency: wallet.currency, + walletAddress: wallet.walletAddresses.address, + settingsStore: _settingsStore, + ); + } else { + uri = await requestSellMoonPayUrl( + currency: wallet.currency, + refundWalletAddress: wallet.walletAddresses.address, + settingsStore: _settingsStore, + ); + } - if (await canLaunchUrl(uri)) { - if (DeviceInfo.instance.isMobile) { - Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['MoonPay', uri]); + if (await canLaunchUrl(uri)) { + if (DeviceInfo.instance.isMobile) { + Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['MoonPay', uri]); + } else { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } } else { - await launchUrl(uri, mode: LaunchMode.externalApplication); + throw Exception('Could not launch URL'); } - } else { - throw Exception('Could not launch URL'); + } catch (e) { + await showDialog( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: 'MoonPay', + alertContent: 'The MoonPay service is currently unavailable: $e', + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop(), + ); + }, + ); } - // } catch (e) { - // await showDialog( - // context: context, - // builder: (BuildContext context) { - // return AlertWithOneAction( - // alertTitle: 'MoonPay', - // alertContent: 'The MoonPay service is currently unavailable: $e', - // buttonText: S.of(context).ok, - // buttonAction: () => Navigator.of(context).pop(), - // ); - // }, - // ); - // } } String _normalizeCurrency(CryptoCurrency currency) { From 2877cc160c707e0826aa6ae75a7eab36fffa8648 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Mon, 8 Apr 2024 23:53:14 +0100 Subject: [PATCH 046/157] CW-608-Fetch-And-Save-Icons-Of-ERC20-And-SPL-Tokens-When-Adding-Them (#1365) * feat: Fetch and save icons of SPL tokens when adding them * feat: Implement fetch and save icons for ERC20 tokens when adding them * fix: Add moralisApiKey to evm secrets * Add check to ensure decimals cannot be zero * - Fallback to adding erc20 token from web3dart - Wrap fetching spl token icon in a try/catch block --------- Co-authored-by: OmarHatem --- .github/workflows/pr_test_build.yml | 1 + cw_evm/lib/evm_chain_client.dart | 51 ++++++++++++++++--- cw_evm/lib/evm_chain_wallet.dart | 19 ++++--- cw_solana/lib/solana_client.dart | 17 +++++++ cw_solana/lib/solana_wallet.dart | 6 +++ cw_solana/lib/spl_token.dart | 3 +- lib/ethereum/cw_ethereum.dart | 2 +- lib/polygon/cw_polygon.dart | 2 +- lib/solana/cw_solana.dart | 1 + .../screens/dashboard/edit_token_page.dart | 10 ++++ .../screens/dashboard/home_settings_page.dart | 38 +++++++------- .../screens/dashboard/pages/balance_page.dart | 42 +++++++-------- lib/src/widgets/cake_image_widget.dart | 2 +- .../dashboard/home_settings_view_model.dart | 2 + 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_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 3 +- res/values/strings_ko.arb | 3 +- res/values/strings_my.arb | 3 +- res/values/strings_nl.arb | 3 +- res/values/strings_pl.arb | 3 +- res/values/strings_pt.arb | 3 +- res/values/strings_ru.arb | 3 +- res/values/strings_th.arb | 3 +- res/values/strings_tl.arb | 3 +- res/values/strings_tr.arb | 3 +- res/values/strings_uk.arb | 3 +- res/values/strings_ur.arb | 3 +- res/values/strings_yo.arb | 3 +- res/values/strings_zh.arb | 3 +- tool/utils/secret_key.dart | 1 + 41 files changed, 182 insertions(+), 69 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index ddc8869f06..db98704128 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -140,6 +140,7 @@ jobs: echo "const fiatApiKey = '${{ secrets.FIAT_API_KEY }}';" >> lib/.secrets.g.dart echo "const payfuraApiKey = '${{ secrets.PAYFURA_API_KEY }}';" >> lib/.secrets.g.dart echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart + echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index cf73b13dbb..eebbe4f4ff 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:developer'; import 'package:cw_core/node.dart'; @@ -9,6 +10,7 @@ import 'package:cw_evm/evm_erc20_balance.dart'; import 'package:cw_evm/evm_chain_transaction_model.dart'; import 'package:cw_evm/pending_evm_chain_transaction.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; +import 'package:cw_evm/.secrets.g.dart' as secrets; import 'package:flutter/services.dart'; import 'package:http/http.dart'; @@ -211,26 +213,61 @@ abstract class EVMChainClient { return EVMChainERC20Balance(balance, exponent: exponent); } - Future getErc20Token(String contractAddress) async { + Future getErc20Token(String contractAddress, String chainName) async { try { - final erc20 = ERC20(address: EthereumAddress.fromHex(contractAddress), client: _client!); - final name = await erc20.name(); - final symbol = await erc20.symbol(); - final decimal = await erc20.decimals(); + final uri = Uri.https( + 'deep-index.moralis.io', + '/api/v2.2/erc20/metadata', + { + "chain": chainName, + "addresses": contractAddress, + }, + ); + + final response = await httpClient.get( + uri, + headers: { + "Accept": "application/json", + "X-API-Key": secrets.moralisApiKey, + }, + ); + + final decodedResponse = jsonDecode(response.body)[0] as Map; + + final name = decodedResponse['name'] ?? ''; + final symbol = decodedResponse['symbol'] ?? ''; + final decimal = decodedResponse['decimals'] ?? '0'; + final iconPath = decodedResponse['logo'] ?? ''; return Erc20Token( name: name, symbol: symbol, contractAddress: contractAddress, - decimal: decimal.toInt(), + decimal: int.tryParse(decimal) ?? 0, + iconPath: iconPath, ); } catch (e) { + try { + final erc20 = ERC20(address: EthereumAddress.fromHex(contractAddress), client: _client!); + final name = await erc20.name(); + final symbol = await erc20.symbol(); + final decimal = await erc20.decimals(); + + return Erc20Token( + name: name, + symbol: symbol, + contractAddress: contractAddress, + decimal: decimal.toInt(), + ); + } catch (_) {} + return null; } } Uint8List hexToBytes(String hexString) { - return Uint8List.fromList(hex.HEX.decode(hexString.startsWith('0x') ? hexString.substring(2) : hexString)); + return Uint8List.fromList( + hex.HEX.decode(hexString.startsWith('0x') ? hexString.substring(2) : hexString)); } void stop() { diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index c90a3e8098..4193e590aa 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -439,11 +439,16 @@ abstract class EVMChainWalletBase Future addErc20Token(Erc20Token token) async { String? iconPath; - try { - iconPath = CryptoCurrency.all - .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()) - .iconPath; - } catch (_) {} + + if (token.iconPath == null || token.iconPath!.isEmpty) { + try { + iconPath = CryptoCurrency.all + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()) + .iconPath; + } catch (_) {} + } else { + iconPath = token.iconPath; + } final newToken = createNewErc20TokenObject(token, iconPath); @@ -466,8 +471,8 @@ abstract class EVMChainWalletBase _updateBalance(); } - Future getErc20Token(String contractAddress) async => - await _client.getErc20Token(contractAddress); + Future getErc20Token(String contractAddress, String chainName) async => + await _client.getErc20Token(contractAddress, chainName); void _onNewTransaction() { _updateBalance(); diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart index 781fff5f7b..6ed8cab296 100644 --- a/cw_solana/lib/solana_client.dart +++ b/cw_solana/lib/solana_client.dart @@ -533,4 +533,21 @@ class SolanaWalletClient { throw Exception(e); } } + + Future getIconImageFromTokenUri(String uri) async { + try { + final response = await httpClient.get(Uri.parse(uri)); + + final jsonResponse = json.decode(response.body) as Map; + + if (response.statusCode >= 200 && response.statusCode < 300) { + return jsonResponse['image']; + } else { + return null; + } + } catch (e) { + print('Error occurred while fetching token image: \n${e.toString()}'); + return null; + } + } } diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index f69a597aec..ad58c4293f 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -464,11 +464,17 @@ abstract class SolanaWalletBase return null; } + String? iconPath; + try { + iconPath = await _client.getIconImageFromTokenUri(token.uri); + } catch (_) {} + return SPLToken.fromMetadata( name: token.name, mint: token.mint, symbol: token.symbol, mintAddress: mintAddress, + iconPath: iconPath, ); } catch (e) { return null; diff --git a/cw_solana/lib/spl_token.dart b/cw_solana/lib/spl_token.dart index 0413990b12..0b3b8b3726 100644 --- a/cw_solana/lib/spl_token.dart +++ b/cw_solana/lib/spl_token.dart @@ -55,6 +55,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin { required String mint, required String symbol, required String mintAddress, + String? iconPath }) { return SPLToken( name: name, @@ -62,7 +63,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin { mintAddress: mintAddress, decimal: 0, mint: mint, - iconPath: '', + iconPath: iconPath, ); } diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index 52839d68a2..13fe3aafdb 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -131,7 +131,7 @@ class CWEthereum extends Ethereum { @override Future getErc20Token(WalletBase wallet, String contractAddress) async { final ethereumWallet = wallet as EthereumWallet; - return await ethereumWallet.getErc20Token(contractAddress); + return await ethereumWallet.getErc20Token(contractAddress, 'eth'); } @override diff --git a/lib/polygon/cw_polygon.dart b/lib/polygon/cw_polygon.dart index 0ee7457eb1..9f0f9a1bff 100644 --- a/lib/polygon/cw_polygon.dart +++ b/lib/polygon/cw_polygon.dart @@ -129,7 +129,7 @@ class CWPolygon extends Polygon { @override Future getErc20Token(WalletBase wallet, String contractAddress) async { final polygonWallet = wallet as PolygonWallet; - return await polygonWallet.getErc20Token(contractAddress); + return await polygonWallet.getErc20Token(contractAddress, 'polygon'); } @override diff --git a/lib/solana/cw_solana.dart b/lib/solana/cw_solana.dart index d6df78318c..6f4b17309f 100644 --- a/lib/solana/cw_solana.dart +++ b/lib/solana/cw_solana.dart @@ -86,6 +86,7 @@ class CWSolana extends Solana { decimal: token.decimals, mint: token.name.toUpperCase(), enabled: token.enabled, + iconPath: token.iconPath, ); await (wallet as SolanaWallet).addSPLToken(splToken); diff --git a/lib/src/screens/dashboard/edit_token_page.dart b/lib/src/screens/dashboard/edit_token_page.dart index 1a1db86588..59f7de9e5d 100644 --- a/lib/src/screens/dashboard/edit_token_page.dart +++ b/lib/src/screens/dashboard/edit_token_page.dart @@ -59,6 +59,7 @@ class _EditTokenPageBodyState extends State { final TextEditingController _tokenNameController = TextEditingController(); final TextEditingController _tokenSymbolController = TextEditingController(); final TextEditingController _tokenDecimalController = TextEditingController(); + final TextEditingController _tokenIconPathController = TextEditingController(); final FocusNode _contractAddressFocusNode = FocusNode(); final FocusNode _tokenNameFocusNode = FocusNode(); @@ -83,6 +84,7 @@ class _EditTokenPageBodyState extends State { _tokenNameController.text = widget.token!.name; _tokenSymbolController.text = widget.token!.title; _tokenDecimalController.text = widget.token!.decimals.toString(); + _tokenIconPathController.text = widget.token?.iconPath ?? ''; } if (widget.initialContractAddress != null) { @@ -200,6 +202,7 @@ class _EditTokenPageBodyState extends State { name: _tokenNameController.text, title: _tokenSymbolController.text.toUpperCase(), decimals: int.parse(_tokenDecimalController.text), + iconPath: _tokenIconPathController.text, ), contractAddress: _contractAddressController.text, ); @@ -228,6 +231,8 @@ class _EditTokenPageBodyState extends State { if (token != null) { if (_tokenNameController.text.isEmpty) _tokenNameController.text = token.name; if (_tokenSymbolController.text.isEmpty) _tokenSymbolController.text = token.title; + if (_tokenIconPathController.text.isEmpty) + _tokenIconPathController.text = token.iconPath ?? ''; if (_tokenDecimalController.text.isEmpty) _tokenDecimalController.text = token.decimals.toString(); } @@ -305,10 +310,15 @@ class _EditTokenPageBodyState extends State { if (text?.isEmpty ?? true) { return S.of(context).field_required; } + if (int.tryParse(text!) == null) { return S.of(context).invalid_input; } + if (int.tryParse(text) == 0) { + return S.current.decimals_cannot_be_zero; + } + return null; }, ), diff --git a/lib/src/screens/dashboard/home_settings_page.dart b/lib/src/screens/dashboard/home_settings_page.dart index e841423c19..aa6bb12c0b 100644 --- a/lib/src/screens/dashboard/home_settings_page.dart +++ b/lib/src/screens/dashboard/home_settings_page.dart @@ -129,25 +129,29 @@ class HomeSettingsPage extends BasePage { 'token': token, }); }, - leading: CakeImageWidget( - imageUrl: token.iconPath, - height: 40, - width: 40, - displayOnError: Container( - height: 30.0, - width: 30.0, - child: Center( - child: Text( - token.title.substring(0, min(token.title.length, 2)), - style: TextStyle(fontSize: 11), - ), - ), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.grey.shade400, + leading: Container( + clipBehavior: Clip.hardEdge, + decoration: BoxDecoration(shape: BoxShape.circle), + child: CakeImageWidget( + imageUrl: token.iconPath, + height: 40, + width: 40, + displayOnError: Container( + height: 30.0, + width: 30.0, + child: Center( + child: Text( + token.title.substring(0, min(token.title.length, 2)), + style: TextStyle(fontSize: 11), ), + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey.shade400, + ), + ), ), - ), + ), decoration: BoxDecoration( color: Theme.of(context).cardColor, borderRadius: BorderRadius.circular(30), diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index bb3ec70dc0..0b75964697 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -323,7 +323,7 @@ class BalanceRowWidget extends StatelessWidget { style: TextStyle( fontSize: 16, fontFamily: 'Lato', - fontWeight: FontWeight.w500, + fontWeight: FontWeight.w500, color: Theme.of(context).extension()!.textColor, height: 1)), ], @@ -334,24 +334,28 @@ class BalanceRowWidget extends StatelessWidget { child: Center( child: Column( children: [ - CakeImageWidget( - imageUrl: currency.iconPath, - height: 40, - width: 40, - displayOnError: Container( - height: 30.0, - width: 30.0, - child: Center( - child: Text( - currency.title.substring(0, min(currency.title.length, 2)), - style: TextStyle(fontSize: 11), - ), - ), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.grey.shade400, + Container( + clipBehavior: Clip.antiAlias, + decoration: BoxDecoration(shape: BoxShape.circle), + child: CakeImageWidget( + imageUrl: currency.iconPath, + height: 40, + width: 40, + displayOnError: Container( + height: 30.0, + width: 30.0, + child: Center( + child: Text( + currency.title.substring(0, min(currency.title.length, 2)), + style: TextStyle(fontSize: 11), ), ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey.shade400, + ), + ), + ), ), const SizedBox(height: 10), Text( @@ -410,9 +414,7 @@ class BalanceRowWidget extends StatelessWidget { fontSize: 20, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context) - .extension()! - .balanceAmountColor, + color: Theme.of(context).extension()!.balanceAmountColor, height: 1, ), maxLines: 1, diff --git a/lib/src/widgets/cake_image_widget.dart b/lib/src/widgets/cake_image_widget.dart index 14c62ad342..ad02c48dd7 100644 --- a/lib/src/widgets/cake_image_widget.dart +++ b/lib/src/widgets/cake_image_widget.dart @@ -18,7 +18,7 @@ class CakeImageWidget extends StatelessWidget { @override Widget build(BuildContext context) { try { - if (imageUrl == null) return _displayOnError!; + if (imageUrl == null || imageUrl!.isEmpty) return _displayOnError!; if (imageUrl!.contains('assets/images')) { return Image.asset( diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 4b9811c37b..e60a37ccf7 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -54,6 +54,7 @@ abstract class HomeSettingsViewModelBase with Store { symbol: token.title, decimal: token.decimals, contractAddress: contractAddress, + iconPath: token.iconPath, ); await ethereum!.addErc20Token(_balanceViewModel.wallet, erc20token); @@ -65,6 +66,7 @@ abstract class HomeSettingsViewModelBase with Store { symbol: token.title, decimal: token.decimals, contractAddress: contractAddress, + iconPath: token.iconPath, ); await polygon!.addErc20Token(_balanceViewModel.wallet, polygonToken); } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 08815bf1d9..d0f1a20439 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -175,6 +175,7 @@ "debit_card": "بطاقة ائتمان", "debit_card_terms": "يخضع تخزين واستخدام رقم بطاقة الدفع الخاصة بك (وبيانات الاعتماد المقابلة لرقم بطاقة الدفع الخاصة بك) في هذه المحفظة الرقمية لشروط وأحكام اتفاقية حامل البطاقة المعمول بها مع جهة إصدار بطاقة الدفع ، كما هو معمول به من وقت لآخر.", "decimal_places_error": "عدد كبير جدًا من المنازل العشرية", + "decimals_cannot_be_zero": "الرمز العشري لا يمكن أن يكون الصفر.", "default_buy_provider": "مزود شراء الافتراضي", "default_sell_provider": "ﻲﺿﺍﺮﺘﻓﻻﺍ ﻊﻴﺒﻟﺍ ﺩﻭﺰﻣ", "delete": "حذف", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 49e4943948..249952d758 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -175,6 +175,7 @@ "debit_card": "Дебитна карта", "debit_card_terms": "Съхранението и използването на данните от вашата платежна карта в този дигитален портфейл подлежат на условията на съответното съгласие за картодържец от издателя на картата.", "decimal_places_error": "Твърде много знаци след десетичната запетая", + "decimals_cannot_be_zero": "Десетичната точка не може да бъде нула.", "default_buy_provider": "Доставчик по подразбиране купува", "default_sell_provider": "Доставчик за продажба по подразбиране", "delete": "Изтрий", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 348b6fa383..9b3b06ffdd 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -175,6 +175,7 @@ "debit_card": "Debetní karta", "debit_card_terms": "Uložení a použití vašeho čísla platební karty (a přihlašovací údaje k vašemu číslu karty) v této digitální peněžence se řídí Obchodními podmínkami smlouvy příslušného držitele karty s vydavatelem karty (v jejich nejaktuálnější verzi).", "decimal_places_error": "Příliš mnoho desetinných míst", + "decimals_cannot_be_zero": "Desetinná desetinná škola nemůže být nulová.", "default_buy_provider": "Výchozí poskytovatel nákupu", "default_sell_provider": "Výchozí poskytovatel prodeje", "delete": "Smazat", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 25ab3a54d1..8a914628f6 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -175,6 +175,7 @@ "debit_card": "Debitkarte", "debit_card_terms": "Die Speicherung und Nutzung Ihrer Zahlungskartennummer (und Ihrer Zahlungskartennummer entsprechenden Anmeldeinformationen) in dieser digitalen Geldbörse unterliegt den Allgemeinen Geschäftsbedingungen des geltenden Karteninhabervertrags mit dem Zahlungskartenaussteller, gültig ab von Zeit zu Zeit.", "decimal_places_error": "Zu viele Nachkommastellen", + "decimals_cannot_be_zero": "Token -Dezimalzahl kann nicht Null sein.", "default_buy_provider": "Standard-Kaufanbieter", "default_sell_provider": "Standard-Verkaufsanbieter", "delete": "Löschen", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 45e8ef21be..3fe9474c5c 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -175,6 +175,7 @@ "debit_card": "Debit Card", "debit_card_terms": "The storage and usage of your payment card number (and credentials corresponding to your payment card number) in this digital wallet are subject to the Terms and Conditions of the applicable cardholder agreement with the payment card issuer, as in effect from time to time.", "decimal_places_error": "Too many decimal places", + "decimals_cannot_be_zero": "Token decimal cannot be zero.", "default_buy_provider": "Default Buy Provider", "default_sell_provider": "Default Sell Provider", "delete": "Delete", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index e04bc4cfef..47b11bc489 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -175,6 +175,7 @@ "debit_card": "Tarjeta de Débito", "debit_card_terms": "El almacenamiento y el uso de su número de tarjeta de pago (y las credenciales correspondientes a su número de tarjeta de pago) en esta billetera digital están sujetos a los Términos y condiciones del acuerdo del titular de la tarjeta aplicable con el emisor de la tarjeta de pago, en vigor desde tiempo al tiempo.", "decimal_places_error": "Demasiados lugares decimales", + "decimals_cannot_be_zero": "Token Decimal no puede ser cero.", "default_buy_provider": "Proveedor de compra predeterminado", "default_sell_provider": "Proveedor de venta predeterminado", "delete": "Borrar", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 069f569baf..edae901a32 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -175,6 +175,7 @@ "debit_card": "Carte de débit", "debit_card_terms": "Le stockage et l'utilisation de votre numéro de carte de paiement (et des informations d'identification correspondant à votre numéro de carte de paiement) dans ce portefeuille (wallet) numérique peuvent être soumis aux conditions générales de l'accord du titulaire de carte parfois en vigueur avec l'émetteur de la carte de paiement.", "decimal_places_error": "Trop de décimales", + "decimals_cannot_be_zero": "La décimale du jeton ne peut pas être nulle.", "default_buy_provider": "Fournisseur d'achat par défaut", "default_sell_provider": "Fournisseur de vente par défaut", "delete": "Effacer", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 7dd1cd52ed..c7174d23f2 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -175,6 +175,7 @@ "debit_card": "Katin Zare kudi", "debit_card_terms": "Adana da amfani da lambar katin kuɗin ku (da takaddun shaida masu dacewa da lambar katin kuɗin ku) a cikin wannan walat ɗin dijital suna ƙarƙashin Sharuɗɗa da Sharuɗɗa na yarjejeniya mai amfani da katin tare da mai fitar da katin biyan kuɗi, kamar yadda yake aiki daga lokaci zuwa lokaci.", "decimal_places_error": "Wadannan suna da tsawon harsuna", + "decimals_cannot_be_zero": "Alamar alama ba zata iya zama sifili ba.", "default_buy_provider": "Tsohuwar Siyarwa", "default_sell_provider": "Tsohuwar Mai Bayar Siyarwa", "delete": "Share", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 5dbe22f0e3..4ee9bd4f8a 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -175,6 +175,7 @@ "debit_card": "डेबिट कार्ड", "debit_card_terms": "इस डिजिटल वॉलेट में आपके भुगतान कार्ड नंबर (और आपके भुगतान कार्ड नंबर से संबंधित क्रेडेंशियल) का भंडारण और उपयोग भुगतान कार्ड जारीकर्ता के साथ लागू कार्डधारक समझौते के नियमों और शर्तों के अधीन है, जैसा कि प्रभावी है समय - समय पर।", "decimal_places_error": "बहुत अधिक दशमलव स्थान", + "decimals_cannot_be_zero": "टोकन दशमलव शून्य नहीं हो सकता।", "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", "default_sell_provider": "डिफ़ॉल्ट विक्रय प्रदाता", "delete": "हटाएं", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 4aac8216e3..a4de56dcf6 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -175,6 +175,7 @@ "debit_card": "Debitna kartica", "debit_card_terms": "Pohranjivanje i korištenje broja vaše platne kartice (i vjerodajnica koje odgovaraju broju vaše platne kartice) u ovom digitalnom novčaniku podliježu Uvjetima i odredbama važećeg ugovora vlasnika kartice s izdavateljem platne kartice, koji su na snazi ​​od S vremena na vrijeme.", "decimal_places_error": "Previše decimalnih mjesta", + "decimals_cannot_be_zero": "Token Decimal ne može biti nula.", "default_buy_provider": "Zadani davatelj kupnje", "default_sell_provider": "Zadani dobavljač prodaje", "delete": "Izbriši", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 09d28e4536..411daf9e0e 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -175,6 +175,7 @@ "debit_card": "Kartu Debit", "debit_card_terms": "Penyimpanan dan penggunaan nomor kartu pembayaran Anda (dan kredensial yang sesuai dengan nomor kartu pembayaran Anda) dalam dompet digital ini tertakluk pada Syarat dan Ketentuan persetujuan pemegang kartu yang berlaku dengan penerbit kartu pembayaran, seperti yang berlaku dari waktu ke waktu.", "decimal_places_error": "Terlalu banyak tempat desimal", + "decimals_cannot_be_zero": "Token desimal tidak bisa nol.", "default_buy_provider": "Penyedia beli default", "default_sell_provider": "Penyedia Penjualan Default", "delete": "Hapus", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index c9ac60bb5e..7cf298cae0 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -176,6 +176,7 @@ "debit_card": "Carta di debito", "debit_card_terms": "L'archiviazione e l'utilizzo del numero della carta di pagamento (e delle credenziali corrispondenti al numero della carta di pagamento) in questo portafoglio digitale sono soggetti ai Termini e condizioni del contratto applicabile con il titolare della carta con l'emittente della carta di pagamento, come in vigore da tempo al tempo.", "decimal_places_error": "Troppe cifre decimali", + "decimals_cannot_be_zero": "Il decimale token non può essere zero.", "default_buy_provider": "Provider di acquisto predefinito", "default_sell_provider": "Fornitore di vendita predefinito", "delete": "Elimina", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 98d87a90c3..42377fa85b 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -175,6 +175,7 @@ "debit_card": "デビットカード", "debit_card_terms": "このデジタルウォレットでの支払いカード番号(および支払いカード番号に対応する資格情報)の保存と使用には、支払いカード発行者との該当するカード所有者契約の利用規約が適用されます。時々。", "decimal_places_error": "小数点以下の桁数が多すぎる", + "decimals_cannot_be_zero": "トークン小数はゼロにすることはできません。", "default_buy_provider": "デフォルトの購入プロバイダー", "default_sell_provider": "デフォルトの販売プロバイダー", "delete": "削除する", @@ -809,4 +810,4 @@ "you_will_get": "に変換", "you_will_send": "から変換", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 7cc49e315c..c67d531cec 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -175,6 +175,7 @@ "debit_card": "직불 카드", "debit_card_terms": "이 디지털 지갑에 있는 귀하의 지불 카드 번호(및 귀하의 지불 카드 번호에 해당하는 자격 증명)의 저장 및 사용은 부터 발효되는 지불 카드 발행자와의 해당 카드 소지자 계약의 이용 약관을 따릅니다. 수시로.", "decimal_places_error": "소수점 이하 자릿수가 너무 많습니다.", + "decimals_cannot_be_zero": "토큰 소수점은 0이 될 수 없습니다.", "default_buy_provider": "기본 구매 제공자", "default_sell_provider": "기본 판매 공급자", "delete": "지우다", @@ -810,4 +811,4 @@ "you_will_send": "다음에서 변환", "YY": "YY", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 9c88dc817b..e373eefc04 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -175,6 +175,7 @@ "debit_card": "ဒက်ဘစ်ကတ်", "debit_card_terms": "ဤဒစ်ဂျစ်တယ်ပိုက်ဆံအိတ်ရှိ သင့်ငွေပေးချေမှုကတ်နံပါတ် (နှင့် သင့်ငွေပေးချေကတ်နံပါတ်နှင့် သက်ဆိုင်သောအထောက်အထားများ) ၏ သိုလှောင်မှုနှင့် အသုံးပြုမှုသည် အချိန်အခါနှင့်အမျှ သက်ရောက်မှုရှိသကဲ့သို့ ကတ်ကိုင်ဆောင်ထားသူ၏ သဘောတူညီချက်၏ စည်းကမ်းသတ်မှတ်ချက်များနှင့် ကိုက်ညီပါသည်။", "decimal_places_error": "ဒဿမနေရာများ များလွန်းသည်။", + "decimals_cannot_be_zero": "တိုကင်ဒ decimal မသုညမဖြစ်နိုင်ပါ။", "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "default_sell_provider": "ပုံသေရောင်းချပေးသူ", "delete": "ဖျက်ပါ။", @@ -808,4 +809,4 @@ "you_will_get": "သို့ပြောင်းပါ။", "you_will_send": "မှပြောင်းပါ။", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 74b111dcb0..1fc85a28b5 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -175,6 +175,7 @@ "debit_card": "Debetkaart", "debit_card_terms": "De opslag en het gebruik van uw betaalkaartnummer (en inloggegevens die overeenkomen met uw betaalkaartnummer) in deze digitale portemonnee zijn onderworpen aan de Algemene voorwaarden van de toepasselijke kaarthouderovereenkomst met de uitgever van de betaalkaart, zoals van kracht vanaf tijd tot tijd.", "decimal_places_error": "Te veel decimalen", + "decimals_cannot_be_zero": "Token decimaal kan niet nul zijn.", "default_buy_provider": "Standaard Koopprovider", "default_sell_provider": "Standaard verkoopaanbieder", "delete": "Delete", @@ -809,4 +810,4 @@ "you_will_get": "Converteren naar", "you_will_send": "Converteren van", "yy": "JJ" -} +} \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 2ac1b9fb51..f279dbaa7a 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -175,6 +175,7 @@ "debit_card": "Karta debetowa", "debit_card_terms": "Przechowywanie i używanie numeru karty płatniczej (oraz danych uwierzytelniających odpowiadających numerowi karty płatniczej) w tym portfelu cyfrowym podlega Warunkom odpowiedniej umowy posiadacza karty z wydawcą karty płatniczej, zgodnie z obowiązującym od od czasu do czasu.", "decimal_places_error": "Za dużo miejsc dziesiętnych", + "decimals_cannot_be_zero": "Token dziesiętny nie może być zerowy.", "default_buy_provider": "Domyślny dostawca zakupu", "default_sell_provider": "Domyślny dostawca sprzedaży", "delete": "Skasuj", @@ -808,4 +809,4 @@ "you_will_get": "Konwertuj na", "you_will_send": "Konwertuj z", "yy": "RR" -} +} \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index bf0b0082d2..ba3acae886 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -175,6 +175,7 @@ "debit_card": "Cartão de débito", "debit_card_terms": "O armazenamento e uso do número do cartão de pagamento (e credenciais correspondentes ao número do cartão de pagamento) nesta carteira digital estão sujeitos aos Termos e Condições do contrato do titular do cartão aplicável com o emissor do cartão de pagamento, em vigor a partir de tempo ao tempo.", "decimal_places_error": "Muitas casas decimais", + "decimals_cannot_be_zero": "Decimal de token não pode ser zero.", "default_buy_provider": "Provedor de compra padrão", "default_sell_provider": "Provedor de venda padrão", "delete": "Excluir", @@ -811,4 +812,4 @@ "you_will_get": "Converter para", "you_will_send": "Converter de", "yy": "aa" -} +} \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 999728faf0..b24f940dd8 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -175,6 +175,7 @@ "debit_card": "Дебетовая карта", "debit_card_terms": "Хранение и использование номера вашей платежной карты (и учетных данных, соответствующих номеру вашей платежной карты) в этом цифровом кошельке регулируются положениями и условиями применимого соглашения держателя карты с эмитентом платежной карты, действующим с время от времени.", "decimal_places_error": "Слишком много десятичных знаков", + "decimals_cannot_be_zero": "Десятичный токен не может быть нулевым.", "default_buy_provider": "По умолчанию поставщик покупки", "default_sell_provider": "Поставщик продаж по умолчанию", "delete": "Удалить", @@ -809,4 +810,4 @@ "you_will_get": "Конвертировать в", "you_will_send": "Конвертировать из", "yy": "ГГ" -} +} \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index a71bc6b369..0795faf2e2 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -175,6 +175,7 @@ "debit_card": "บัตรเดบิต", "debit_card_terms": "การเก็บรักษาและใช้หมายเลขบัตรจ่ายเงิน (และข้อมูลประจำตัวที่เกี่ยวข้องกับหมายเลขบัตรจ่ายเงิน) ในกระเป๋าดิจิทัลนี้ จะต้องยึดถือข้อกำหนดและเงื่อนไขของข้อตกลงผู้ใช้บัตรของผู้ถือบัตรที่เกี่ยวข้องกับบัตรผู้ถือบัตร ซึ่งจะมีผลตั้งแต่เวลานั้น", "decimal_places_error": "ทศนิยมมากเกินไป", + "decimals_cannot_be_zero": "ทศนิยมโทเค็นไม่สามารถเป็นศูนย์ได้", "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", "default_sell_provider": "ผู้ให้บริการการขายเริ่มต้น", "delete": "ลบ", @@ -808,4 +809,4 @@ "you_will_get": "แปลงเป็น", "you_will_send": "แปลงจาก", "yy": "ปี" -} +} \ No newline at end of file diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 73cd8a1f79..91ca5a5480 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -175,6 +175,7 @@ "debit_card": "Debit card", "debit_card_terms": "Ang pag -iimbak at paggamit ng numero ng iyong card ng pagbabayad (at mga kredensyal na naaayon sa iyong numero ng card ng pagbabayad) sa digital na pitaka na ito ay napapailalim sa mga termino at kundisyon ng naaangkop na kasunduan sa cardholder kasama ang nagbigay ng card ng pagbabayad, tulad ng sa oras -oras.", "decimal_places_error": "Masyadong maraming mga lugar na desimal", + "decimals_cannot_be_zero": "Ang Token Decimal ay hindi maaaring maging zero.", "default_buy_provider": "Default na Provider ng Pagbili", "default_sell_provider": "Default na Sell Provider", "delete": "Tanggalin", @@ -808,4 +809,4 @@ "you_will_get": "Mag -convert sa", "you_will_send": "I -convert mula sa", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index de197c1b19..784ebfb7e7 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -175,6 +175,7 @@ "debit_card": "Ön ödemeli Kart", "debit_card_terms": "Ödeme kartı numaranızın (ve kart numaranıza karşılık gelen kimlik bilgilerinin) bu dijital cüzdanda saklanması ve kullanılması, zaman zaman yürürlükte olan ödeme kartı veren kuruluşla yapılan ilgili kart sahibi sözleşmesinin Hüküm ve Koşullarına tabidir.", "decimal_places_error": "Çok fazla ondalık basamak", + "decimals_cannot_be_zero": "Token oncial sıfır olamaz.", "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", "default_sell_provider": "Varsayılan Satış Sağlayıcısı", "delete": "Sil", @@ -808,4 +809,4 @@ "you_will_get": "Biçimine dönüştür:", "you_will_send": "Biçiminden dönüştür:", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 86e60214bf..65a1f5c96b 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -175,6 +175,7 @@ "debit_card": "Дебетова картка", "debit_card_terms": "Зберігання та використання номера вашої платіжної картки (та облікових даних, які відповідають номеру вашої платіжної картки) у цьому цифровому гаманці регулюються Умовами відповідної угоди власника картки з емітентом платіжної картки, що діє з час від часу.", "decimal_places_error": "Забагато знаків після коми", + "decimals_cannot_be_zero": "Десятковий знак не може бути нульовим.", "default_buy_provider": "Постачальник покупки за замовчуванням", "default_sell_provider": "Постачальник продажу за замовчуванням", "delete": "Видалити", @@ -809,4 +810,4 @@ "you_will_get": "Конвертувати в", "you_will_send": "Конвертувати з", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 725a1d895c..6c768daa86 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -175,6 +175,7 @@ "debit_card": "ڈیبٹ کارڈ", "debit_card_terms": "اس ڈیجیٹل والیٹ میں آپ کے ادائیگی کارڈ نمبر (اور آپ کے ادائیگی کارڈ نمبر سے متعلقہ اسناد) کا ذخیرہ اور استعمال ادائیگی کارڈ جاری کنندہ کے ساتھ قابل اطلاق کارڈ ہولڈر کے معاہدے کی شرائط و ضوابط کے ساتھ مشروط ہے، جیسا کہ وقتاً فوقتاً نافذ ہوتا ہے۔", "decimal_places_error": "بہت زیادہ اعشاریہ جگہیں۔", + "decimals_cannot_be_zero": "ٹوکن اعشاریہ صفر نہیں ہوسکتا۔", "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", "default_sell_provider": " ﮦﺪﻨﻨﮐ ﻢﮨﺍﺮﻓ ﻞﯿﺳ ﭧﻟﺎﻔﯾﮈ", "delete": "حذف کریں۔", @@ -810,4 +811,4 @@ "you_will_get": "میں تبدیل کریں۔", "you_will_send": "سے تبدیل کریں۔", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 517757716c..b5f2d69a3a 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -175,6 +175,7 @@ "debit_card": "Káàdì ìrajà", "debit_card_terms": "Òfin ti olùṣe àjọrò káàdì ìrajà bójú irú ọ̀nà t'á pamọ́ àti a lo òǹkà ti káàdì ìrajà yín (àti ọ̀rọ̀ ìdánimọ̀ tí káàdì náà) nínú àpamọ́wọ́ yìí.", "decimal_places_error": "Oọ̀rọ̀ ayipada ti o wa ni o dara julọ", + "decimals_cannot_be_zero": "Token eleemel ko le jẹ odo.", "default_buy_provider": "Aiyipada Ra Olupese", "default_sell_provider": "Aiyipada Olupese Tita", "delete": "Pa á", @@ -809,4 +810,4 @@ "you_will_get": "Ṣe pàṣípààrọ̀ sí", "you_will_send": "Ṣe pàṣípààrọ̀ láti", "yy": "Ọd" -} +} \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 1048489968..e9a6b63f2f 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -175,6 +175,7 @@ "debit_card": "借记卡", "debit_card_terms": "您的支付卡号(以及与您的支付卡号对应的凭证)在此数字钱包中的存储和使用受适用的持卡人与支付卡发卡机构签订的协议的条款和条件的约束,自时不时。", "decimal_places_error": "小数位太多", + "decimals_cannot_be_zero": "代币十进制不能为零。", "default_buy_provider": "默认购买提供商", "default_sell_provider": "默认销售提供商", "delete": "删除", @@ -808,4 +809,4 @@ "you_will_get": "转换到", "you_will_send": "转换自", "yy": "YY" -} +} \ No newline at end of file diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 430de03b6b..8fedbb12a3 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -42,6 +42,7 @@ class SecretKey { static final evmChainsSecrets = [ SecretKey('etherScanApiKey', () => ''), SecretKey('polygonScanApiKey', () => ''), + SecretKey('moralisApiKey', () => ''), ]; static final solanaSecrets = [ From 69587e813fb0bba4686d79626baa9baf72a50ed6 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Mon, 8 Apr 2024 19:04:16 -0400 Subject: [PATCH 047/157] Always show addresses page for Monero and remove unused text showing up for wallets it shouldn't be (#1363) --- .../screens/dashboard/pages/address_page.dart | 19 +++------- lib/src/screens/receive/receive_page.dart | 35 ++----------------- 2 files changed, 6 insertions(+), 48 deletions(-) diff --git a/lib/src/screens/dashboard/pages/address_page.dart b/lib/src/screens/dashboard/pages/address_page.dart index 0d7c4f11c4..3c77cad48c 100644 --- a/lib/src/screens/dashboard/pages/address_page.dart +++ b/lib/src/screens/dashboard/pages/address_page.dart @@ -163,12 +163,7 @@ class AddressPage extends BasePage { if (addressListViewModel.hasAddressList) { return SelectButton( text: addressListViewModel.buttonTitle, - onTap: () async => dashboardViewModel.isAutoGenerateSubaddressesEnabled && - (WalletType.monero == addressListViewModel.wallet.type || - WalletType.haven == addressListViewModel.wallet.type) - ? await showPopUp( - context: context, builder: (_) => getIt.get()) - : Navigator.of(context).pushNamed(Routes.receive), + onTap: () async => Navigator.of(context).pushNamed(Routes.receive), textColor: Theme.of(context).extension()!.textColor, color: Theme.of(context).extension()!.syncedBackgroundColor, borderColor: Theme.of(context).extension()!.cardBorderColor, @@ -176,17 +171,11 @@ class AddressPage extends BasePage { textSize: 14, height: 50, ); - } else if (dashboardViewModel.isAutoGenerateSubaddressesEnabled || - addressListViewModel.isElectrumWallet) { - return Text(S.of(context).electrum_address_disclaimer, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 15, - color: Theme.of(context).extension()!.labelTextColor)); - } else { + } + else { return const SizedBox(); } - }) + }), ], ), )); diff --git a/lib/src/screens/receive/receive_page.dart b/lib/src/screens/receive/receive_page.dart index 75719d1239..ecba4acf53 100644 --- a/lib/src/screens/receive/receive_page.dart +++ b/lib/src/screens/receive/receive_page.dart @@ -99,12 +99,7 @@ class ReceivePage extends BasePage { @override Widget body(BuildContext context) { - final isElectrumWallet = addressListViewModel.isElectrumWallet; - return (addressListViewModel.type == WalletType.monero || - addressListViewModel.type == WalletType.haven || - addressListViewModel.type == WalletType.nano || - isElectrumWallet) - ? KeyboardActions( + return KeyboardActions( config: KeyboardActionsConfig( keyboardActionsPlatform: KeyboardActionsPlatform.IOS, keyboardBarColor: Theme.of(context).extension()!.keyboardBarColor, @@ -213,32 +208,6 @@ class ReceivePage extends BasePage { })), ], ), - )) - : Padding( - padding: EdgeInsets.fromLTRB(24, 24, 24, 32), - child: Column( - children: [ - Expanded( - flex: 7, - child: QRWidget( - formKey: _formKey, - heroTag: _heroTag, - addressListViewModel: addressListViewModel, - amountTextFieldFocusNode: _cryptoAmountFocus, - amountController: _amountController, - isLight: currentTheme.type == ThemeType.light), - ), - Expanded( - flex: 2, - child: SizedBox(), - ), - Text(S.of(context).electrum_address_disclaimer, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 15, - color: Theme.of(context).extension()!.labelTextColor)), - ], - ), - ); + )); } } From f9679fecbeaacbbf3d4694a14a00cf47e5262448 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Tue, 9 Apr 2024 01:26:11 +0100 Subject: [PATCH 048/157] CW-584-WalletConnect-For-Solana (#1362) * chore: Create cw_solana package and clean up files * feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens * fix: Make transactions file specific to solana only for solana transactions * chore: Revert inject app details script * fix: Fix issue with node and switch current node to main beta instead of testnet * fix: Fix merge conflicts and adjust migration version * fix: Fetch spl token error Signed-off-by: Blazebrain * fix: Diplay and activate spl tokens bug * fix: Review and fixes * fix: reverted formatting for cryptocurrency class * fix: Review comments, split sending flow into signing and sending separately, fix issues * fix: Revert throwing unimplenented error * chore: Fix comment * chore: Fix comment * fix: Errors in flow * Update provider_types.dart [skip ci] * fix: Issues with solana wallet * Update solana_wallet.dart [skip ci] * fix: Review comments * fix: Date time config * fix: Revert bash script for app details * fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list * fix: Issues with address validation when sending spl tokens and walletconnect initial setup * fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect * fix: Adjust imports that would affect monerocom building successfully * fix: Refine transaction direction and continue work on walletconnect * feat: Display SPL token transfers in the transaction history and finally settle the transaction direction * fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions * feat: Switch node and revert solana chain id to previous id * fix: Remove print statement * fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message * chore: Code refactoring and streamlined wallet type check for solana send success message * fix: Make timeout error for node silent and add spl token images * fix: Still trying to figure out what's wrong * Sync with remote * feat: First run for walletconnect for solana * chore: Add ankr api key to secrets * remove duplicate transaction [skip ci] --------- Signed-off-by: Blazebrain Co-authored-by: Omar Hatem --- .github/workflows/pr_test_build.yml | 1 + .../chain_service/solana/solana_chain_id.dart | 19 +++++++++------- .../solana/solana_chain_service.dart | 14 +++++++----- .../wallet_connect/web3wallet_service.dart | 22 +++++++++++++++---- lib/reactions/wallet_connect.dart | 1 + tool/utils/secret_key.dart | 1 + 6 files changed, 40 insertions(+), 18 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index db98704128..dc231df42d 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -139,6 +139,7 @@ jobs: echo "const anonPayReferralCode = '${{ secrets.ANON_PAY_REFERRAL_CODE }}';" >> lib/.secrets.g.dart echo "const fiatApiKey = '${{ secrets.FIAT_API_KEY }}';" >> lib/.secrets.g.dart echo "const payfuraApiKey = '${{ secrets.PAYFURA_API_KEY }}';" >> lib/.secrets.g.dart + echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> lib/.secrets.g.dart echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart diff --git a/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart b/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart index bdc8a7d200..ed80a4f3fb 100644 --- a/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart +++ b/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart @@ -2,8 +2,8 @@ import 'solana_chain_service.dart'; enum SolanaChainId { mainnet, - testnet, - devnet, + // testnet, + // devnet, } extension SolanaChainIdX on SolanaChainId { @@ -13,13 +13,16 @@ extension SolanaChainIdX on SolanaChainId { switch (this) { case SolanaChainId.mainnet: name = '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ'; + // solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp break; - case SolanaChainId.testnet: - name = '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K'; - break; - case SolanaChainId.devnet: - name = ''; - break; + // case SolanaChainId.devnet: + // name = '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K'; + // // solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1 + // break; + // case SolanaChainId.testnet: + // name = ''; + // // solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z + // break; } return '${SolanaChainServiceImpl.namespace}:$name'; diff --git a/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart b/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart index f5c696be64..efbf9df743 100644 --- a/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart +++ b/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart @@ -43,7 +43,7 @@ class SolanaChainServiceImpl implements ChainService { SolanaClient( rpcUrl: rpcUrl, websocketUrl: Uri.parse(webSocketUrl), - timeout: const Duration(minutes: 2), + timeout: const Duration(minutes: 5), ) { for (final String event in getEvents()) { wallet.registerEventEmitter(chainId: getChainId(), event: event); @@ -72,7 +72,7 @@ class SolanaChainServiceImpl implements ChainService { @override List getEvents() { - return ['']; + return ['chainChanged', 'accountsChanged']; } Future requestAuthorization(String? text) async { @@ -100,8 +100,7 @@ class SolanaChainServiceImpl implements ChainService { Future solanaSignTransaction(String topic, dynamic parameters) async { log('received solana sign transaction request $parameters'); - final solanaSignTx = - SolanaSignTransaction.fromJson(parameters as Map); + final solanaSignTx = SolanaSignTransaction.fromJson(parameters as Map); final String? authError = await requestAuthorization('Confirm request to sign transaction?'); @@ -122,10 +121,13 @@ class SolanaChainServiceImpl implements ChainService { return ''; } - String signature = sign.signatures.first.toBase58(); + String signature = await solanaClient.sendAndConfirmTransaction( + message: message, + signers: [ownerKeyPair!], + commitment: Commitment.confirmed, + ); print(signature); - print(signature.runtimeType); bottomSheetService.queueBottomSheet( isModalDismissible: true, diff --git a/lib/core/wallet_connect/web3wallet_service.dart b/lib/core/wallet_connect/web3wallet_service.dart index 4c71abe48a..66ccb2d765 100644 --- a/lib/core/wallet_connect/web3wallet_service.dart +++ b/lib/core/wallet_connect/web3wallet_service.dart @@ -133,13 +133,27 @@ abstract class Web3WalletServiceBase with Store { if (appStore.wallet!.type == WalletType.solana) { for (final cId in SolanaChainId.values) { final node = appStore.settingsStore.getCurrentNode(appStore.wallet!.type); - final rpcUri = node.uri; - final webSocketUri = 'wss://${node.uriRaw}/ws${node.uri.path}'; + + Uri? rpcUri; + String webSocketUrl; + bool isModifiedNodeUri = false; + + if (node.uriRaw == 'rpc.ankr.com') { + isModifiedNodeUri = true; + + //A better way to handle this instead of adding this to the general secrets? + String ankrApiKey = secrets.ankrApiKey; + + rpcUri = Uri.https(node.uriRaw, '/solana/$ankrApiKey'); + webSocketUrl = 'wss://${node.uriRaw}/solana/ws/$ankrApiKey'; + } else { + webSocketUrl = 'wss://${node.uriRaw}'; + } SolanaChainServiceImpl( reference: cId, - rpcUrl: rpcUri, - webSocketUrl: webSocketUri, + rpcUrl: isModifiedNodeUri ? rpcUri! : node.uri, + webSocketUrl: webSocketUrl, wcKeyService: walletKeyService, bottomSheetService: _bottomSheetHandler, wallet: _web3Wallet, diff --git a/lib/reactions/wallet_connect.dart b/lib/reactions/wallet_connect.dart index f4487123ee..ca908bc654 100644 --- a/lib/reactions/wallet_connect.dart +++ b/lib/reactions/wallet_connect.dart @@ -16,6 +16,7 @@ bool isWalletConnectCompatibleChain(WalletType walletType) { switch (walletType) { case WalletType.polygon: case WalletType.ethereum: + case WalletType.solana: return true; default: return false; diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 8fedbb12a3..5d5e61cecf 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -37,6 +37,7 @@ class SecretKey { SecretKey('exchangeHelperApiKey', () => ''), SecretKey('walletConnectProjectId', () => ''), SecretKey('moralisApiKey', () => ''), + SecretKey('ankrApiKey', () => ''), ]; static final evmChainsSecrets = [ From 8a61ab77800ca2c896d88cbe28e6b9eddecd617f Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Wed, 10 Apr 2024 03:28:31 +0200 Subject: [PATCH 049/157] enhance UI for used addresses (#1337) * enhance UI for used addresses * Update electrum_wallet_addresses.dart * fix tablet UI --------- Co-authored-by: Serhii --- cw_bitcoin/lib/electrum_wallet_addresses.dart | 2 + .../screens/receive/widgets/address_cell.dart | 59 ++++++++++--------- lib/src/screens/settings/privacy_page.dart | 4 +- lib/utils/responsive_layout_util.dart | 4 ++ .../settings/privacy_settings_view_model.dart | 2 + res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 +- 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_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_yo.arb | 1 + res/values/strings_zh.arb | 1 + 31 files changed, 70 insertions(+), 29 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index ac2397561e..c43d4988a3 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -241,6 +241,8 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { final index = _addresses.indexOf(addressRecord); _addresses.remove(addressRecord); _addresses.insert(index, addressRecord); + + updateAddressesByMatch(); } @action diff --git a/lib/src/screens/receive/widgets/address_cell.dart b/lib/src/screens/receive/widgets/address_cell.dart index a07456284d..9385a4df8a 100644 --- a/lib/src/screens/receive/widgets/address_cell.dart +++ b/lib/src/screens/receive/widgets/address_cell.dart @@ -1,5 +1,6 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:flutter/material.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -81,41 +82,45 @@ class AddressCell extends StatelessWidget { child: Column( children: [ Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: name.isNotEmpty ? MainAxisAlignment.spaceBetween : MainAxisAlignment.center, mainAxisSize: MainAxisSize.max, children: [ - if (isChange) - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Container( - height: 20, - padding: EdgeInsets.all(4), - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(8.5)), - color: textColor), - alignment: Alignment.center, - child: Text( - S.of(context).unspent_change, + Row( + children: [ + if (isChange) + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Container( + height: 20, + padding: EdgeInsets.all(4), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(8.5)), + color: textColor), + alignment: Alignment.center, + child: Text( + S.of(context).unspent_change, + style: TextStyle( + color: backgroundColor, + fontSize: 10, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + if (name.isNotEmpty) + Text( + '$name', style: TextStyle( - color: backgroundColor, - fontSize: 10, + fontSize: 14, fontWeight: FontWeight.w600, + color: textColor, ), ), - ), - ), - if (name.isNotEmpty) - Text( - '$name - ', - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w600, - color: textColor, - ), - ), + ], + ), Flexible( child: AutoSizeText( - formattedAddress, + responsiveLayoutUtil.shouldRenderTabletUI ? address : formattedAddress, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( diff --git a/lib/src/screens/settings/privacy_page.dart b/lib/src/screens/settings/privacy_page.dart index 444457d1c2..7e7f3589bc 100644 --- a/lib/src/screens/settings/privacy_page.dart +++ b/lib/src/screens/settings/privacy_page.dart @@ -55,7 +55,9 @@ class PrivacyPage extends BasePage { }), if (_privacySettingsViewModel.isAutoGenerateSubaddressesVisible) SettingsSwitcherCell( - title: S.current.auto_generate_subaddresses, + title: _privacySettingsViewModel.isMoneroWallet + ? S.current.auto_generate_subaddresses + : S.current.auto_generate_addresses, value: _privacySettingsViewModel.isAutoGenerateSubaddressesEnabled, onValueChange: (BuildContext _, bool value) { _privacySettingsViewModel.setAutoGenerateSubaddresses(value); diff --git a/lib/utils/responsive_layout_util.dart b/lib/utils/responsive_layout_util.dart index 428ab61ccc..86a4a37762 100644 --- a/lib/utils/responsive_layout_util.dart +++ b/lib/utils/responsive_layout_util.dart @@ -46,6 +46,10 @@ abstract class ResponsiveLayoutUtilBase with Store, WidgetsBindingObserver { (orientation == Orientation.portrait && screenWidth < screenHeight) || (orientation == Orientation.landscape && screenWidth < screenHeight); } + + bool get shouldRenderTabletUI { + return screenWidth > _kMobileThreshold && screenWidth < kDesktopMaxDashBoardWidthConstraint; + } } _ResponsiveLayoutUtil _singletonResponsiveLayoutUtil = _ResponsiveLayoutUtil(); diff --git a/lib/view_model/settings/privacy_settings_view_model.dart b/lib/view_model/settings/privacy_settings_view_model.dart index 831a453571..9ebbd92bb5 100644 --- a/lib/view_model/settings/privacy_settings_view_model.dart +++ b/lib/view_model/settings/privacy_settings_view_model.dart @@ -44,6 +44,8 @@ abstract class PrivacySettingsViewModelBase with Store { _wallet.type == WalletType.litecoin || _wallet.type == WalletType.bitcoinCash; + bool get isMoneroWallet => _wallet.type == WalletType.monero; + @computed bool get shouldSaveRecipientAddress => _settingsStore.shouldSaveRecipientAddress; diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index d0f1a20439..6b3aae14ea 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN خطأ", "authenticated": "تم المصادقة", "authentication": "المصادقة", + "auto_generate_addresses": "تلقائي توليد العناوين", "auto_generate_subaddresses": "تلقائي توليد subddresses", "automatic": "تلقائي", "available_balance": "الرصيد المتوفر", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 249952d758..30d9945d19 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Грешен PIN", "authenticated": "Удостоверено", "authentication": "Удостоверяване", + "auto_generate_addresses": "Автоматично генериране на адреси", "auto_generate_subaddresses": "Автоматично генериране на подадреси", "automatic": "Автоматично", "available_balance": "Наличен баланс", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 9b3b06ffdd..577cd9813c 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Nesprávný PIN", "authenticated": "Ověřeno", "authentication": "Ověřování", + "auto_generate_addresses": "Automatické generování adres", "auto_generate_subaddresses": "Automaticky generovat podadresy", "automatic": "Automatický", "available_balance": "Dostupný zůstatek", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 8a914628f6..f0ba70c843 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Falsche PIN", "authenticated": "Authentifiziert", "authentication": "Authentifizierung", + "auto_generate_addresses": "Automatisch generieren Adressen", "auto_generate_subaddresses": "Unteradressen automatisch generieren", "automatic": "Automatisch", "available_balance": "Verfügbares Guthaben", @@ -422,8 +423,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 3fe9474c5c..f8bd6b3a26 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Wrong PIN", "authenticated": "Authenticated", "authentication": "Authentication", + "auto_generate_addresses": "Auto generate addresses", "auto_generate_subaddresses": "Auto generate subaddresses", "automatic": "Automatic", "available_balance": "Available Balance", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 47b11bc489..cf70a2c2dd 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Contraseña PIN", "authenticated": "Autenticados", "authentication": "Autenticación", + "auto_generate_addresses": "Auto Generar direcciones", "auto_generate_subaddresses": "Generar subdirecciones automáticamente", "automatic": "Automático", "available_balance": "Balance disponible", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index edae901a32..d21e21dae2 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Mauvais code PIN", "authenticated": "Authentifié", "authentication": "Authentification", + "auto_generate_addresses": "Adresses de génération automatique", "auto_generate_subaddresses": "Générer automatiquement des sous-adresses", "automatic": "Automatique", "available_balance": "Solde Disponible", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index c7174d23f2..35a6be1b8e 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN na gaskiya", "authenticated": "Ingantacce", "authentication": "Tabbatarwa", + "auto_generate_addresses": "Adireshin Auto", "auto_generate_subaddresses": "Saɓaƙa subaddresses ta kai tsaye", "automatic": "Na atomatik", "available_balance": "KUDI", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 4ee9bd4f8a..a6bcab4ab1 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "गलत पिन", "authenticated": "प्रमाणीकृत", "authentication": "प्रमाणीकरण", + "auto_generate_addresses": "ऑटो उत्पन्न पते", "auto_generate_subaddresses": "स्वचालित रूप से उप-पते उत्पन्न करें", "automatic": "स्वचालित", "available_balance": "उपलब्ध शेष राशि", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index a4de56dcf6..e01857a940 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Pogrešan PIN", "authenticated": "Autentificiran", "authentication": "Autentifikacija", + "auto_generate_addresses": "Automatsko generiranje adresa", "auto_generate_subaddresses": "Automatski generirajte podadrese", "automatic": "Automatski", "available_balance": "Raspoloživ iznos", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 411daf9e0e..c487a67501 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN yang salah", "authenticated": "Terotentikasi", "authentication": "Otentikasi", + "auto_generate_addresses": "Auto menghasilkan alamat", "auto_generate_subaddresses": "Menghasilkan subalamat secara otomatis", "automatic": "Otomatis", "available_balance": "Saldo Tersedia", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 7cf298cae0..0af3154264 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN non corretto", "authenticated": "Autenticato", "authentication": "Autenticazione", + "auto_generate_addresses": "Auto Genera indirizzi", "auto_generate_subaddresses": "Genera automaticamente sottindirizzi", "automatic": "Automatico", "available_balance": "Saldo Disponibile", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 42377fa85b..a0b3973b22 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "間違ったPIN", "authenticated": "認証済み", "authentication": "認証", + "auto_generate_addresses": "Autoはアドレスを生成します", "auto_generate_subaddresses": "Autoはサブアドレスを生成します", "automatic": "自動", "available_balance": "利用可能残高", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index c67d531cec..98bc40e77e 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "잘못된 PIN", "authenticated": "인증", "authentication": "입증", + "auto_generate_addresses": "자동 생성 주소", "auto_generate_subaddresses": "자동 생성 서브 아드 드레스", "automatic": "자동적 인", "available_balance": "사용 가능한 잔액", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index e373eefc04..8d846f3d67 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "ပင်နံပါတ် မှားနေသည်။", "authenticated": "အစစ်အမှန်", "authentication": "စစ်ဆေးခြင်း", + "auto_generate_addresses": "Auto Generate လိပ်စာများ", "auto_generate_subaddresses": "အော်တို Generate Subaddresses", "automatic": "အလိုအလျောက်", "available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 1fc85a28b5..8b3edee4b9 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Incorrect PIN", "authenticated": "Authenticated", "authentication": "Authenticatie", + "auto_generate_addresses": "Auto -genereer adressen", "auto_generate_subaddresses": "Automatisch subadressen genereren", "automatic": "automatisch", "available_balance": "Beschikbaar saldo", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index f279dbaa7a..93dafa3526 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Niepoprawny PIN", "authenticated": "Uwierzytelniony", "authentication": "Uwierzytelnianie", + "auto_generate_addresses": "Auto generują adresy", "auto_generate_subaddresses": "Automatycznie generuj podadresy", "automatic": "Automatyczny", "available_balance": "Dostępne środki", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index ba3acae886..ae07bb1776 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN incorreto", "authenticated": "Autenticado", "authentication": "Autenticação", + "auto_generate_addresses": "Endereços gerados automaticamente", "auto_generate_subaddresses": "Gerar subendereços automaticamente", "automatic": "Automático", "available_balance": "Saldo disponível", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index b24f940dd8..5e75631c66 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Некорректный PIN", "authenticated": "Аутентифицировано", "authentication": "Аутентификация", + "auto_generate_addresses": "Авто генерируйте адреса", "auto_generate_subaddresses": "Авто генерируйте Subaddresses", "automatic": "автоматический", "available_balance": "Доступный баланс", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 0795faf2e2..c8183c031f 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "รหัสผ่านไม่ถูกต้อง", "authenticated": "ได้รับการยืนยันสิทธิ์", "authentication": "การยืนยันสิทธิ์", + "auto_generate_addresses": "สร้างที่อยู่อัตโนมัติ", "auto_generate_subaddresses": "Auto สร้าง subaddresses", "automatic": "อัตโนมัติ", "available_balance": "ยอดคงเหลือที่ใช้งานได้", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 91ca5a5480..def38820ca 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Maling pin", "authenticated": "Napatunayan", "authentication": "Pagpapatunay", + "auto_generate_addresses": "Auto bumuo ng mga address", "auto_generate_subaddresses": "Ang Auto ay bumubuo ng mga subaddresses", "automatic": "Awtomatiko", "available_balance": "Magagamit na balanse", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 784ebfb7e7..111ff91f4f 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Hatalı PIN", "authenticated": "Doğrulandı", "authentication": "Doğrulama", + "auto_generate_addresses": "Otomatik Adres Oluşturma", "auto_generate_subaddresses": "Alt adresleri otomatik olarak oluştur", "automatic": "Otomatik", "available_balance": "Kullanılabilir Bakiye", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 65a1f5c96b..a0000418db 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Некоректний PIN", "authenticated": "Аутентифіковано", "authentication": "Аутентифікація", + "auto_generate_addresses": "Авто генерувати адреси", "auto_generate_subaddresses": "Автоматично генерувати підадреси", "automatic": "Автоматичний", "available_balance": "Доступний баланс", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 6c768daa86..a7d4b896d6 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "غلط PIN", "authenticated": "تصدیق شدہ", "authentication": "تصدیق", + "auto_generate_addresses": "آٹو پیدا کرنے والے پتے", "auto_generate_subaddresses": "آٹو سب ایڈریس تیار کرتا ہے", "automatic": "خودکار", "available_balance": "دستیاب بیلنس", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index b5f2d69a3a..9ac0339179 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "Òǹkà ìdánimọ̀ àdáni kọ́ ni èyí", "authenticated": "A ti jẹ́rìísí yín", "authentication": "Ìfẹ̀rílàdí", + "auto_generate_addresses": "Awọn adirẹsi ṣe agbekalẹ awọn adirẹsi", "auto_generate_subaddresses": "Aṣiṣe Ibi-Afọwọkọ", "automatic": "Ó máa ń ṣàdédé", "available_balance": "Ìyókù owó tó wà níbẹ̀", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index e9a6b63f2f..26bb1b2864 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -59,6 +59,7 @@ "auth_store_incorrect_password": "PIN码错误", "authenticated": "已认证", "authentication": "认证方式", + "auto_generate_addresses": "自动生成地址", "auto_generate_subaddresses": "自动生成子辅助", "automatic": "自动的", "available_balance": "可用余额", From dcf8ef0d715e4475efdd1e9ee4006d1bdc31329f Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Tue, 9 Apr 2024 21:32:43 -0400 Subject: [PATCH 050/157] Create SECURITY.md (#1375) * Create SECURITY.md * Update SECURITY.md --- SECURITY.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..a1b489b768 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,12 @@ +# Security Policy + +## Reporting a Vulnerability + +If you need to report a vulnerability, please either: + +* Open a security advisory: https://github.com/cake-tech/cake_wallet/security/advisories/new +* Send an email to `dev@cakewallet.com` with details on the vulnerability + +## Supported Versions + +As we don't maintain prevoius versions of the app, only the latest release for each platform is supported and any updates will bump the version number. From 7abe5735c0d03f65a0b3576170e8814e159b3a0f Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 12 Apr 2024 01:33:43 +0100 Subject: [PATCH 051/157] CW-589-WalletConnect-Connections-Independent (#1361) * chore: Create cw_solana package and clean up files * feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens * fix: Make transactions file specific to solana only for solana transactions * chore: Revert inject app details script * fix: Fix issue with node and switch current node to main beta instead of testnet * fix: Fix merge conflicts and adjust migration version * fix: Fetch spl token error Signed-off-by: Blazebrain * fix: Diplay and activate spl tokens bug * fix: Review and fixes * fix: reverted formatting for cryptocurrency class * fix: Review comments, split sending flow into signing and sending separately, fix issues * fix: Revert throwing unimplenented error * chore: Fix comment * chore: Fix comment * fix: Errors in flow * Update provider_types.dart [skip ci] * fix: Issues with solana wallet * Update solana_wallet.dart [skip ci] * fix: Review comments * fix: Date time config * fix: Revert bash script for app details * fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list * fix: Issues with address validation when sending spl tokens and walletconnect initial setup * fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect * fix: Adjust imports that would affect monerocom building successfully * fix: Refine transaction direction and continue work on walletconnect * feat: Display SPL token transfers in the transaction history and finally settle the transaction direction * fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions * feat: Switch node and revert solana chain id to previous id * fix: Remove print statement * fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message * chore: Code refactoring and streamlined wallet type check for solana send success message * fix: Make timeout error for node silent and add spl token images * fix: Still trying to figure out what's wrong * feat: Make walletconnect connections independent to wallet * fix: Add proper return type to method * fix: Alphabetizing translation files --------- Signed-off-by: Blazebrain Co-authored-by: Omar Hatem --- .../wallet_connect/web3wallet_service.dart | 88 +++++++++++++++++-- lib/di.dart | 1 + lib/entities/preferences_key.dart | 3 + .../widgets/pairing_item_widget.dart | 2 +- 4 files changed, 84 insertions(+), 10 deletions(-) diff --git a/lib/core/wallet_connect/web3wallet_service.dart b/lib/core/wallet_connect/web3wallet_service.dart index 66ccb2d765..adb5168175 100644 --- a/lib/core/wallet_connect/web3wallet_service.dart +++ b/lib/core/wallet_connect/web3wallet_service.dart @@ -1,10 +1,12 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:developer'; import 'dart:typed_data'; import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_id.dart'; import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_service.dart'; import 'package:cake_wallet/core/wallet_connect/wallet_connect_key_service.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/wallet_connect/models/auth_request_model.dart'; import 'package:cake_wallet/core/wallet_connect/models/chain_key_model.dart'; @@ -19,6 +21,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:eth_sig_util/eth_sig_util.dart'; import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart'; import 'chain_service/solana/solana_chain_id.dart'; @@ -32,6 +35,7 @@ class Web3WalletService = Web3WalletServiceBase with _$Web3WalletService; abstract class Web3WalletServiceBase with Store { final AppStore appStore; + final SharedPreferences sharedPreferences; final BottomSheetService _bottomSheetHandler; final WalletConnectKeyService walletKeyService; @@ -52,7 +56,8 @@ abstract class Web3WalletServiceBase with Store { @observable ObservableList auth; - Web3WalletServiceBase(this._bottomSheetHandler, this.walletKeyService, this.appStore) + Web3WalletServiceBase( + this._bottomSheetHandler, this.walletKeyService, this.appStore, this.sharedPreferences) : pairings = ObservableList(), sessions = ObservableList(), auth = ObservableList(), @@ -191,13 +196,6 @@ abstract class Web3WalletServiceBase with Store { _refreshPairings(); } - @action - void _refreshPairings() { - pairings.clear(); - final allPairings = _web3Wallet.pairings.getAll(); - pairings.addAll(allPairings); - } - Future _onSessionProposalError(SessionProposalErrorEvent? args) async { log(args.toString()); } @@ -260,14 +258,37 @@ abstract class Web3WalletServiceBase with Store { } } + @action + void _refreshPairings() { + print('Refreshing pairings'); + pairings.clear(); + + final allPairings = _web3Wallet.pairings.getAll(); + + final keyForWallet = getKeyForStoringTopicsForWallet(); + + final currentTopicsForWallet = getPairingTopicsForWallet(keyForWallet); + + final filteredPairings = + allPairings.where((pairing) => currentTopicsForWallet.contains(pairing.topic)).toList(); + + pairings.addAll(filteredPairings); + } + void _onPairingCreate(PairingEvent? args) { log('Pairing Create Event: $args'); } @action - void _onSessionConnect(SessionConnect? args) { + Future _onSessionConnect(SessionConnect? args) async { if (args != null) { + log('Session Connected $args'); + + await savePairingTopicToLocalStorage(args.session.pairingTopic); + sessions.add(args.session); + + _refreshPairings(); } } @@ -335,4 +356,53 @@ abstract class Web3WalletServiceBase with Store { List getSessionsForPairingInfo(PairingInfo pairing) { return sessions.where((element) => element.pairingTopic == pairing.topic).toList(); } + + String getKeyForStoringTopicsForWallet() { + List chainKeys = walletKeyService.getKeysForChain(appStore.wallet!); + + final keyForPairingTopic = + PreferencesKey.walletConnectPairingTopicsListForWallet(chainKeys.first.publicKey); + + return keyForPairingTopic; + } + + List getPairingTopicsForWallet(String key) { + // Get the JSON-encoded string from shared preferences + final jsonString = sharedPreferences.getString(key); + + // If the string is null, return an empty list + if (jsonString == null) { + return []; + } + + // Decode the JSON string to a list of strings + final List jsonList = jsonDecode(jsonString) as List; + + // Cast each item to a string + return jsonList.map((item) => item as String).toList(); + } + + Future savePairingTopicToLocalStorage(String pairingTopic) async { + // Get key specific to the current wallet + final key = getKeyForStoringTopicsForWallet(); + + // Get all pairing topics attached to this key + final pairingTopicsForWallet = getPairingTopicsForWallet(key); + + print(pairingTopicsForWallet); + + bool isPairingTopicAlreadySaved = pairingTopicsForWallet.contains(pairingTopic); + print('Is Pairing Topic Saved: $isPairingTopicAlreadySaved'); + + if (!isPairingTopicAlreadySaved) { + // Update the list with the most recent pairing topic + pairingTopicsForWallet.add(pairingTopic); + + // Convert the list of updated pairing topics to a JSON-encoded string + final jsonString = jsonEncode(pairingTopicsForWallet); + + // Save the encoded string to shared preferences + await sharedPreferences.setString(key, jsonString); + } + } } diff --git a/lib/di.dart b/lib/di.dart index 5262a01e6b..d78da638c5 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -493,6 +493,7 @@ Future setup({ getIt.get(), getIt.get(), appStore, + getIt.get() ); web3WalletService.create(); return web3WalletService; diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index ba6d6ef4ff..80a7acba12 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -75,4 +75,7 @@ class PreferencesKey { static const shouldShowMarketPlaceInDashboard = 'should_show_marketplace_in_dashboard'; static const isNewInstall = 'is_new_install'; static const serviceStatusShaKey = 'service_status_sha_key'; + static const walletConnectPairingTopicsList = 'wallet_connect_pairing_topics_list'; + static String walletConnectPairingTopicsListForWallet(String publicKey) => + '${PreferencesKey.walletConnectPairingTopicsList}_${publicKey}'; } diff --git a/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart b/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart index 0d425f9043..518cf32f7e 100644 --- a/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart +++ b/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart @@ -30,7 +30,7 @@ class PairingItemWidget extends StatelessWidget { leading: CakeImageWidget( imageUrl: metadata.icons.isNotEmpty ? metadata.icons[0]: null, displayOnError: CircleAvatar( - backgroundImage: AssetImage('assets/images/default_icon.png'), + backgroundImage: AssetImage('assets/images/walletconnect_logo.png'), ), ), title: Text( From fce6394bca336eb2a28e78650fa9eb34ceef80fe Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Fri, 12 Apr 2024 05:36:42 -0700 Subject: [PATCH 052/157] Cw 602 nano bad rep (#1356) * add support for paths in node settings * update translations and fixes * fix node path * add rep warning flag * update translations * code cleanup [skip ci] * add additional node options * add migration * update transaction history rpc to be under the limit * review fixes [skip ci] * [skip ci] updates * move n2_node.dart * minor code improvements * more minor code cleanup --- assets/nano_node_list.yml | 24 +- cw_core/lib/n2_node.dart | 31 ++ cw_core/lib/node.dart | 18 +- cw_nano/lib/nano_client.dart | 38 +- cw_nano/lib/nano_wallet.dart | 13 +- lib/core/node_address_validator.dart | 5 + lib/entities/default_settings_migration.dart | 34 +- lib/entities/preferences_key.dart | 1 + lib/main.dart | 2 +- lib/nano/cw_nano.dart | 10 + .../screens/dashboard/pages/balance_page.dart | 17 + .../screens/nano/nano_change_rep_page.dart | 385 ++++++++++++++---- .../nodes/node_create_or_edit_page.dart | 4 + lib/src/screens/nodes/widgets/node_form.dart | 128 +++--- lib/src/widgets/dashboard_card_widget.dart | 58 +-- .../scollable_with_bottom_section.dart | 21 +- lib/store/settings_store.dart | 151 +++---- .../dashboard/dashboard_view_model.dart | 13 + .../node_create_or_edit_view_model.dart | 23 +- res/values/strings_ar.arb | 6 + res/values/strings_bg.arb | 6 + res/values/strings_cs.arb | 6 + res/values/strings_de.arb | 6 + res/values/strings_en.arb | 6 + res/values/strings_es.arb | 6 + res/values/strings_fr.arb | 6 + res/values/strings_ha.arb | 6 + res/values/strings_hi.arb | 6 + res/values/strings_hr.arb | 6 + res/values/strings_id.arb | 6 + res/values/strings_it.arb | 6 + res/values/strings_ja.arb | 6 + res/values/strings_ko.arb | 8 +- res/values/strings_my.arb | 6 + res/values/strings_nl.arb | 6 + res/values/strings_pl.arb | 6 + res/values/strings_pt.arb | 6 + res/values/strings_ru.arb | 6 + res/values/strings_th.arb | 6 + res/values/strings_tl.arb | 6 + res/values/strings_tr.arb | 6 + res/values/strings_uk.arb | 6 + res/values/strings_ur.arb | 6 + res/values/strings_yo.arb | 6 + res/values/strings_zh.arb | 6 + tool/configure.dart | 3 + 46 files changed, 877 insertions(+), 260 deletions(-) create mode 100644 cw_core/lib/n2_node.dart diff --git a/assets/nano_node_list.yml b/assets/nano_node_list.yml index 63b4baec13..2e4d1ec3c2 100644 --- a/assets/nano_node_list.yml +++ b/assets/nano_node_list.yml @@ -3,4 +3,26 @@ useSSL: true is_default: true - - uri: node.perish.co:9076 \ No newline at end of file + uri: node.nautilus.io + path: /api + useSSL: true +- + uri: app.natrium.io + path: /api + useSSL: true +- + uri: rainstorm.city + path: /api + useSSL: true +- + uri: node.somenano.com + path: /proxy + useSSL: true +- + uri: nanoslo.0x.no + path: /proxy + useSSL: true +- + uri: www.bitrequest.app + port: 8020 + useSSL: true \ No newline at end of file diff --git a/cw_core/lib/n2_node.dart b/cw_core/lib/n2_node.dart new file mode 100644 index 0000000000..0fad9d1b53 --- /dev/null +++ b/cw_core/lib/n2_node.dart @@ -0,0 +1,31 @@ +class N2Node { + N2Node({ + this.weight, + this.uptime, + this.score, + this.account, + this.alias, + }); + + String? uptime; + double? weight; + int? score; + String? account; + String? alias; + + factory N2Node.fromJson(Map json) => N2Node( + weight: double.tryParse((json['weight'] as num).toString()), + uptime: json['uptime'] as String?, + score: json['score'] as int?, + account: json['rep_address'] as String?, + alias: json['alias'] as String?, + ); + + Map toJson() => { + 'uptime': uptime, + 'weight': weight, + 'score': score, + 'rep_address': account, + 'alias': alias, + }; +} diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 585bc3c38b..d7e91d6927 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -21,6 +21,7 @@ class Node extends HiveObject with Keyable { this.trusted = false, this.socksProxyAddress, String? uri, + String? path, WalletType? type, }) { if (uri != null) { @@ -29,10 +30,14 @@ class Node extends HiveObject with Keyable { if (type != null) { this.type = type; } + if (path != null) { + this.path = path; + } } Node.fromMap(Map map) : uriRaw = map['uri'] as String? ?? '', + path = map['path'] as String? ?? '', login = map['login'] as String?, password = map['password'] as String?, useSSL = map['useSSL'] as bool?, @@ -63,6 +68,9 @@ class Node extends HiveObject with Keyable { @HiveField(6) String? socksProxyAddress; + @HiveField(7, defaultValue: '') + String? path; + bool get isSSL => useSSL ?? false; bool get useSocksProxy => socksProxyAddress == null ? false : socksProxyAddress!.isNotEmpty; @@ -79,9 +87,9 @@ class Node extends HiveObject with Keyable { case WalletType.nano: case WalletType.banano: if (isSSL) { - return Uri.https(uriRaw, ''); + return Uri.https(uriRaw, path ?? ''); } else { - return Uri.http(uriRaw, ''); + return Uri.http(uriRaw, path ?? ''); } case WalletType.ethereum: case WalletType.polygon: @@ -103,7 +111,8 @@ class Node extends HiveObject with Keyable { other.typeRaw == typeRaw && other.useSSL == useSSL && other.trusted == trusted && - other.socksProxyAddress == socksProxyAddress); + other.socksProxyAddress == socksProxyAddress && + other.path == path); @override int get hashCode => @@ -113,7 +122,8 @@ class Node extends HiveObject with Keyable { typeRaw.hashCode ^ useSSL.hashCode ^ trusted.hashCode ^ - socksProxyAddress.hashCode; + socksProxyAddress.hashCode ^ + path.hashCode; @override dynamic get keyIndex { diff --git a/cw_nano/lib/nano_client.dart b/cw_nano/lib/nano_client.dart index 661fbcab88..064a0bdeef 100644 --- a/cw_nano/lib/nano_client.dart +++ b/cw_nano/lib/nano_client.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:cw_core/nano_account_info_response.dart'; +import 'package:cw_core/n2_node.dart'; import 'package:cw_nano/nano_balance.dart'; import 'package:cw_nano/nano_transaction_model.dart'; import 'package:http/http.dart' as http; @@ -16,6 +17,8 @@ class NanoClient { "nano-app": "cake-wallet" }; + static const String N2_REPS_ENDPOINT = "https://rpc.nano.to"; + NanoClient() { SharedPreferences.getInstance().then((value) => prefs = value); } @@ -418,7 +421,7 @@ class NanoClient { body: jsonEncode({ "action": "account_history", "account": address, - "count": "250", // TODO: pick a number + "count": "100", // "raw": true, })); final data = await jsonDecode(response.body); @@ -434,4 +437,37 @@ class NanoClient { return []; } } + + Future> getN2Reps() async { + final response = await http.post( + Uri.parse(N2_REPS_ENDPOINT), + headers: CAKE_HEADERS, + body: jsonEncode({"action": "reps"}), + ); + try { + final List nodes = (json.decode(response.body) as List) + .map((dynamic e) => N2Node.fromJson(e as Map)) + .toList(); + return nodes; + } catch (error) { + return []; + } + } + + Future getRepScore(String rep) async { + final response = await http.post( + Uri.parse(N2_REPS_ENDPOINT), + headers: CAKE_HEADERS, + body: jsonEncode({ + "action": "rep_info", + "account": rep, + }), + ); + try { + final N2Node node = N2Node.fromJson(json.decode(response.body) as Map); + return node.score ?? 100; + } catch (error) { + return 100; + } + } } diff --git a/cw_nano/lib/nano_wallet.dart b/cw_nano/lib/nano_wallet.dart index 1f6ec36aed..265f78eb79 100644 --- a/cw_nano/lib/nano_wallet.dart +++ b/cw_nano/lib/nano_wallet.dart @@ -13,6 +13,7 @@ import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_nano/file.dart'; import 'package:cw_core/nano_account.dart'; +import 'package:cw_core/n2_node.dart'; import 'package:cw_nano/nano_balance.dart'; import 'package:cw_nano/nano_client.dart'; import 'package:cw_nano/nano_transaction_credentials.dart'; @@ -65,9 +66,11 @@ abstract class NanoWalletBase String? _privateKey; String? _publicAddress; String? _hexSeed; + Timer? _receiveTimer; String? _representativeAddress; - Timer? _receiveTimer; + int repScore = 100; + bool get isRepOk => repScore >= 90; late final NanoClient _client; bool _isTransactionUpdating; @@ -375,7 +378,7 @@ abstract class NanoWalletBase final data = json.decode(jsonSource) as Map; final mnemonic = data['mnemonic'] as String; - + final balance = NanoBalance.fromRawString( currentBalance: data['currentBalance'] as String? ?? "0", receivableBalance: data['receivableBalance'] as String? ?? "0", @@ -429,6 +432,8 @@ abstract class NanoWalletBase _representativeAddress = await _client.getRepFromPrefs(); throw Exception("Failed to get representative address $e"); } + + repScore = await _client.getRepScore(_representativeAddress!); } Future regenerateAddress() async { @@ -465,6 +470,10 @@ abstract class NanoWalletBase } } + Future> getN2Reps() async { + return _client.getN2Reps(); + } + Future? updateBalance() async => await _updateBalance(); @override diff --git a/lib/core/node_address_validator.dart b/lib/core/node_address_validator.dart index 0e034dabcb..c1fe4ba91f 100644 --- a/lib/core/node_address_validator.dart +++ b/lib/core/node_address_validator.dart @@ -8,3 +8,8 @@ class NodeAddressValidator extends TextValidator { pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\$|^[0-9a-zA-Z.\-]+\$'); } + +class NodePathValidator extends TextValidator { + NodePathValidator() + : super(errorMessage: S.current.error_text_node_address, pattern: '^([/0-9a-zA-Z.\-]+)?\$'); +} diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 9a2db56afa..a0f570e95c 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -216,6 +216,10 @@ Future defaultSettingsMigration( await disableServiceStatusFiatDisabled(sharedPreferences); break; + case 31: + await updateNanoNodeList(nodes: nodes); + break; + default: break; } @@ -230,9 +234,35 @@ Future defaultSettingsMigration( await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version); } +Future updateNanoNodeList({required Box nodes}) async { + final nodeList = await loadDefaultNanoNodes(); + var listOfNewEndpoints = [ + "app.natrium.io", + "rainstorm.city", + "node.somenano.com", + "nanoslo.0x.no", + "www.bitrequest.app", + ]; + // add new nodes: + for (final node in nodeList) { + if (listOfNewEndpoints.contains(node.uriRaw)) { + await nodes.add(node); + } + } + + // update the nautilus node: + final nautilusNode = + nodes.values.firstWhereOrNull((element) => element.uriRaw == "node.perish.co"); + if (nautilusNode != null) { + nautilusNode.uriRaw = "node.nautilus.io"; + nautilusNode.path = "/api"; + nautilusNode.useSSL = true; + await nautilusNode.save(); + } +} + Future disableServiceStatusFiatDisabled(SharedPreferences sharedPreferences) async { - final currentFiat = - await sharedPreferences.getInt(PreferencesKey.currentFiatApiModeKey) ?? -1; + final currentFiat = await sharedPreferences.getInt(PreferencesKey.currentFiatApiModeKey) ?? -1; if (currentFiat == -1 || currentFiat == FiatApiMode.enabled.raw) { return; } diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 80a7acba12..f512d6b726 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -45,6 +45,7 @@ class PreferencesKey { static const customBitcoinFeeRate = 'custom_electrum_fee_rate'; static const shouldShowReceiveWarning = 'should_show_receive_warning'; static const shouldShowYatPopup = 'should_show_yat_popup'; + static const shouldShowRepWarning = 'should_show_rep_warning'; static const moneroWalletPasswordUpdateV1Base = 'monero_wallet_update_v1'; static const syncModeKey = 'sync_mode'; static const syncAllKey = 'sync_all'; diff --git a/lib/main.dart b/lib/main.dart index 6868348f62..b80c9eb857 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,7 +163,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 30, + initialMigrationVersion: 31, ); } diff --git a/lib/nano/cw_nano.dart b/lib/nano/cw_nano.dart index 06ebf60c2f..5896f7c269 100644 --- a/lib/nano/cw_nano.dart +++ b/lib/nano/cw_nano.dart @@ -186,6 +186,16 @@ class CWNano extends Nano { String getRepresentative(Object wallet) { return (wallet as NanoWallet).representative; } + + @override + Future> getN2Reps(Object wallet) async { + return (wallet as NanoWallet).getN2Reps(); + } + + @override + bool isRepOk(Object wallet) { + return (wallet as NanoWallet).isRepOk; + } } class CWNanoUtil extends NanoUtil { diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index 0b75964697..a2ad3fb809 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -8,6 +8,7 @@ import 'package:cake_wallet/src/screens/dashboard/pages/nft_listing_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/home_screen_account_widget.dart'; import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart'; +import 'package:cake_wallet/src/widgets/dashboard_card_widget.dart'; import 'package:cake_wallet/src/widgets/introducing_card.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; @@ -183,6 +184,22 @@ class CryptoBalanceWidget extends StatelessWidget { return Container(); }, ), + Observer(builder: (_) { + if (!dashboardViewModel.showRepWarning) { + return const SizedBox(); + } + return Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 8), + child: DashBoardRoundedCardWidget( + title: S.current.rep_warning, + subTitle: S.current.rep_warning_sub, + onTap: () => Navigator.of(context).pushNamed(Routes.changeRep), + onClose: () { + dashboardViewModel.settingsStore.shouldShowRepWarning = false; + }, + ), + ); + }), Observer( builder: (_) { return ListView.separated( diff --git a/lib/src/screens/nano/nano_change_rep_page.dart b/lib/src/screens/nano/nano_change_rep_page.dart index a625f7e290..9f71bb59c3 100644 --- a/lib/src/screens/nano/nano_change_rep_page.dart +++ b/lib/src/screens/nano/nano_change_rep_page.dart @@ -5,10 +5,12 @@ import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/extensions/address_theme.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/n2_node.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -21,9 +23,7 @@ class NanoChangeRepPage extends BasePage { : _wallet = wallet, _settingsStore = settingsStore, _addressController = TextEditingController(), - _formKey = GlobalKey() { - _addressController.text = nano!.getRepresentative(wallet); - } + _formKey = GlobalKey() {} final TextEditingController _addressController; final WalletBase _wallet; @@ -34,105 +34,314 @@ class NanoChangeRepPage extends BasePage { @override String get title => S.current.change_rep; + N2Node getCurrentRepNode(List nodes) { + final currentRepAccount = nano!.getRepresentative(_wallet); + final currentNode = nodes.firstWhere( + (node) => node.account == currentRepAccount, + orElse: () => N2Node( + account: currentRepAccount, + alias: currentRepAccount, + score: 0, + uptime: "???", + weight: 0, + ), + ); + + return currentNode; + } + @override Widget body(BuildContext context) { return Form( key: _formKey, - child: Container( - padding: EdgeInsets.only(left: 24, right: 24), - child: ScrollableWithBottomSection( - contentPadding: EdgeInsets.only(bottom: 24.0), - content: Container( - child: Column( - children: [ - Row( - children: [ - Expanded( - child: AddressTextField( - controller: _addressController, - onURIScanned: (uri) { - final paymentRequest = PaymentRequest.fromUri(uri); - _addressController.text = paymentRequest.address; - }, - options: [ - AddressTextFieldOption.paste, - AddressTextFieldOption.qrCode, - ], - buttonColor: Theme.of(context).extension()!.actionButtonColor, - validator: AddressValidator(type: CryptoCurrency.nano), + child: FutureBuilder( + future: nano!.getN2Reps(_wallet), + builder: (context, snapshot) { + if (snapshot.data == null) { + return SizedBox(); + } + + return Container( + padding: EdgeInsets.only(left: 24, right: 24), + child: ScrollableWithBottomSection( + topSectionPadding: EdgeInsets.only(bottom: 24), + topSection: Column( + children: [ + Row( + children: [ + Expanded( + child: AddressTextField( + controller: _addressController, + onURIScanned: (uri) { + final paymentRequest = PaymentRequest.fromUri(uri); + _addressController.text = paymentRequest.address; + }, + options: [ + AddressTextFieldOption.paste, + AddressTextFieldOption.qrCode, + ], + buttonColor: + Theme.of(context).extension()!.actionButtonColor, + validator: AddressValidator(type: CryptoCurrency.nano), + ), + ) + ], + ), + Column( + children: [ + Container( + margin: EdgeInsets.only(top: 12), + child: Text( + S.current.nano_current_rep, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + _buildSingleRepresentative( + context, + getCurrentRepNode(snapshot.data as List), + isList: false, ), - ) - ], + Divider(height: 20), + Container( + margin: EdgeInsets.only(top: 12), + child: Text( + S.current.nano_pick_new_rep, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ], + ), + ], + ), + contentPadding: EdgeInsets.only(bottom: 24), + content: Container( + child: Column( + children: _getRepresentativeWidgets(context, snapshot.data as List), ), - ], + ), + bottomSectionPadding: EdgeInsets.only(bottom: 24), + bottomSection: Observer( + builder: (_) => Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Flexible( + child: Container( + padding: EdgeInsets.only(right: 8.0), + child: LoadingPrimaryButton( + onPressed: () => _onSubmit(context), + text: S.of(context).change, + color: Theme.of(context).primaryColor, + textColor: Colors.white, + ), + )), + ], + )), ), + ); + }, + ), + ); + } + + Future _onSubmit(BuildContext context) async { + if (_formKey.currentState != null && !_formKey.currentState!.validate()) { + return; + } + + final confirmed = await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithTwoActions( + alertTitle: S.of(context).change_rep, + alertContent: S.of(context).change_rep_message, + rightButtonText: S.of(context).change, + leftButtonText: S.of(context).cancel, + actionRightButton: () => Navigator.pop(context, true), + actionLeftButton: () => Navigator.pop(context, false)); + }) ?? + false; + + if (confirmed) { + try { + _settingsStore.defaultNanoRep = _addressController.text; + + await nano!.changeRep(_wallet, _addressController.text); + + // reset this flag whenever we successfully change reps: + _settingsStore.shouldShowRepWarning = true; + + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).successful, + alertContent: S.of(context).change_rep_successful, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.pop(context)); + }); + } catch (e) { + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).error, + alertContent: e.toString(), + buttonText: S.of(context).ok, + buttonAction: () => Navigator.pop(context)); + }); + throw e; + } + } + } + + List _getRepresentativeWidgets(BuildContext context, List? list) { + if (list == null) { + return []; + } + final List ret = []; + for (final N2Node node in list) { + if (node.alias != null && node.alias!.trim().isNotEmpty) { + ret.add(_buildSingleRepresentative(context, node)); + } + } + return ret; + } + + Widget _buildSingleRepresentative(BuildContext context, N2Node rep, {bool isList = true}) { + return Column( + children: [ + if (isList) + Divider( + height: 2, + ), + TextButton( + style: TextButton.styleFrom( + padding: EdgeInsets.zero, ), - bottomSectionPadding: EdgeInsets.only(bottom: 24), - bottomSection: Observer( - builder: (_) => Row( + onPressed: () async { + if (!isList) { + return; + } + _addressController.text = rep.account!; + }, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsetsDirectional.only(start: 24), + width: MediaQuery.of(context).size.width * 0.50, + child: Column( mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Flexible( - child: Container( - padding: EdgeInsets.only(right: 8.0), - child: LoadingPrimaryButton( - onPressed: () async { - if (_formKey.currentState != null && - !_formKey.currentState!.validate()) { - return; - } - - final confirmed = await showPopUp( - context: context, - builder: (BuildContext context) { - return AlertWithTwoActions( - alertTitle: S.of(context).change_rep, - alertContent: S.of(context).change_rep_message, - rightButtonText: S.of(context).change, - leftButtonText: S.of(context).cancel, - actionRightButton: () => Navigator.pop(context, true), - actionLeftButton: () => Navigator.pop(context, false)); - }) ?? - false; - - if (confirmed) { - try { - _settingsStore.defaultNanoRep = _addressController.text; - - await nano!.changeRep(_wallet, _addressController.text); - - await showPopUp( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.of(context).successful, - alertContent: S.of(context).change_rep_successful, - buttonText: S.of(context).ok, - buttonAction: () => Navigator.pop(context)); - }); - } catch (e) { - await showPopUp( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.of(context).error, - alertContent: e.toString(), - buttonText: S.of(context).ok, - buttonAction: () => Navigator.pop(context)); - }); - throw e; - } - } - }, - text: S.of(context).change, + Text( + _sanitizeAlias(rep.alias), + style: TextStyle( + color: Theme.of(context).extension()!.titleColor, + fontWeight: FontWeight.w700, + fontSize: 18, + ), + ), + Container( + margin: const EdgeInsets.only(top: 7), + child: RichText( + text: TextSpan( + text: "${S.current.voting_weight}: ${rep.weight.toString()}%", + style: TextStyle( + color: + Theme.of(context).extension()!.secondaryTextColor, + fontWeight: FontWeight.w700, + fontSize: 14.0, + ), + ), + ), + ), + Container( + margin: const EdgeInsets.only(top: 4), + child: RichText( + text: TextSpan( + text: '', + children: [ + TextSpan( + text: "${S.current.uptime}: ", + style: TextStyle( + color: Theme.of(context) + .extension()! + .secondaryTextColor, + fontWeight: FontWeight.w700, + fontSize: 14, + ), + ), + TextSpan( + text: rep.uptime, + style: TextStyle( + color: Theme.of(context) + .extension()! + .secondaryTextColor, + fontWeight: FontWeight.w900, + fontSize: 14, + ), + ), + ], + ), + ), + ), + ], + ), + ), + Container( + margin: const EdgeInsetsDirectional.only(end: 24, start: 14), + child: Stack( + children: [ + Icon( + Icons.verified, + color: Theme.of(context).primaryColor, + size: 50, + ), + Positioned.fill( + child: Container( + margin: EdgeInsets.all(13), color: Theme.of(context).primaryColor, - textColor: Colors.white, ), - )), + ), + Container( + alignment: const AlignmentDirectional(-0.03, 0.03), + width: 50, + height: 50, + child: Text( + (rep.score).toString(), + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).extension()!.titleColor, + fontSize: 13, + fontWeight: FontWeight.w800, + ), + ), + ), ], - )), + ), + ), + ], + ), + ), ), - ), + ], ); } + + String _sanitizeAlias(String? alias) { + if (alias != null) { + return alias.replaceAll(RegExp(r'[^a-zA-Z_.!?_;:-]'), ''); + } + return ''; + } } diff --git a/lib/src/screens/nodes/node_create_or_edit_page.dart b/lib/src/screens/nodes/node_create_or_edit_page.dart index 50c1c3be54..53c34f3029 100644 --- a/lib/src/screens/nodes/node_create_or_edit_page.dart +++ b/lib/src/screens/nodes/node_create_or_edit_page.dart @@ -18,6 +18,7 @@ class NodeCreateOrEditPage extends BasePage { NodeCreateOrEditPage({required this.nodeCreateOrEditViewModel,this.editingNode, this.isSelected}) : _formKey = GlobalKey(), _addressController = TextEditingController(), + _pathController = TextEditingController(), _portController = TextEditingController(), _loginController = TextEditingController(), _passwordController = TextEditingController() { @@ -49,6 +50,8 @@ class NodeCreateOrEditPage extends BasePage { _addressController.addListener( () => nodeCreateOrEditViewModel.address = _addressController.text); + _pathController.addListener( + () => nodeCreateOrEditViewModel.path = _pathController.text); _portController.addListener( () => nodeCreateOrEditViewModel.port = _portController.text); _loginController.addListener( @@ -59,6 +62,7 @@ class NodeCreateOrEditPage extends BasePage { final GlobalKey _formKey; final TextEditingController _addressController; + final TextEditingController _pathController; final TextEditingController _portController; final TextEditingController _loginController; final TextEditingController _passwordController; diff --git a/lib/src/screens/nodes/widgets/node_form.dart b/lib/src/screens/nodes/widgets/node_form.dart index ab8dcafdf2..e8c4b0ab34 100644 --- a/lib/src/screens/nodes/widgets/node_form.dart +++ b/lib/src/screens/nodes/widgets/node_form.dart @@ -16,13 +16,15 @@ class NodeForm extends StatelessWidget { required this.formKey, this.editingNode, }) : _addressController = TextEditingController(text: editingNode?.uri.host.toString()), + _pathController = TextEditingController(text: editingNode?.path.toString()), _portController = TextEditingController(text: editingNode?.uri.port.toString()), _loginController = TextEditingController(text: editingNode?.login), _passwordController = TextEditingController(text: editingNode?.password), - _socksAddressController = TextEditingController(text: editingNode?.socksProxyAddress){ + _socksAddressController = TextEditingController(text: editingNode?.socksProxyAddress) { if (editingNode != null) { nodeViewModel ..setAddress((editingNode!.uri.host.toString())) + ..setPath((editingNode!.path.toString())) ..setPort((editingNode!.uri.port.toString())) ..setPassword((editingNode!.password ?? '')) ..setLogin((editingNode!.login ?? '')) @@ -57,10 +59,12 @@ class NodeForm extends StatelessWidget { }); _addressController.addListener(() => nodeViewModel.address = _addressController.text); + _pathController.addListener(() => nodeViewModel.path = _pathController.text); _portController.addListener(() => nodeViewModel.port = _portController.text); _loginController.addListener(() => nodeViewModel.login = _loginController.text); _passwordController.addListener(() => nodeViewModel.password = _passwordController.text); - _socksAddressController.addListener(() => nodeViewModel.socksProxyAddress = _socksAddressController.text); + _socksAddressController + .addListener(() => nodeViewModel.socksProxyAddress = _socksAddressController.text); } final NodeCreateOrEditViewModel nodeViewModel; @@ -68,6 +72,7 @@ class NodeForm extends StatelessWidget { final Node? editingNode; final TextEditingController _addressController; + final TextEditingController _pathController; final TextEditingController _portController; final TextEditingController _loginController; final TextEditingController _passwordController; @@ -91,6 +96,18 @@ class NodeForm extends StatelessWidget { ], ), SizedBox(height: 10.0), + Row( + children: [ + Expanded( + child: BaseTextFormField( + controller: _pathController, + hintText: "/path", + validator: NodePathValidator(), + ), + ) + ], + ), + SizedBox(height: 10.0), Row( children: [ Expanded( @@ -103,6 +120,26 @@ class NodeForm extends StatelessWidget { ], ), SizedBox(height: 10.0), + Padding( + padding: EdgeInsets.only(top: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Observer( + builder: (_) => StandardCheckbox( + value: nodeViewModel.useSSL, + gradientBackground: true, + borderColor: Theme.of(context).dividerColor, + iconColor: Colors.white, + onChanged: (value) => nodeViewModel.useSSL = value, + caption: S.of(context).use_ssl, + ), + ) + ], + ), + ), + SizedBox(height: 10.0), if (nodeViewModel.hasAuthCredentials) ...[ Row( children: [ @@ -123,25 +160,6 @@ class NodeForm extends StatelessWidget { )) ], ), - Padding( - padding: EdgeInsets.only(top: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.max, - children: [ - Observer( - builder: (_) => StandardCheckbox( - value: nodeViewModel.useSSL, - gradientBackground: true, - borderColor: Theme.of(context).dividerColor, - iconColor: Colors.white, - onChanged: (value) => nodeViewModel.useSSL = value, - caption: S.of(context).use_ssl, - ), - ) - ], - ), - ), Padding( padding: EdgeInsets.only(top: 20), child: Row( @@ -163,44 +181,44 @@ class NodeForm extends StatelessWidget { ), Observer( builder: (_) => Column( - children: [ - Padding( - padding: EdgeInsets.only(top: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.max, - children: [ - StandardCheckbox( - value: nodeViewModel.useSocksProxy, - gradientBackground: true, - borderColor: Theme.of(context).dividerColor, - iconColor: Colors.white, - onChanged: (value) { - if (!value) { - _socksAddressController.text = ''; - } - nodeViewModel.useSocksProxy = value; - }, - caption: 'SOCKS Proxy', - ), - ], - ), - ), - if (nodeViewModel.useSocksProxy) ...[ - SizedBox(height: 10.0), - Row( - children: [ - Expanded( - child: BaseTextFormField( + children: [ + Padding( + padding: EdgeInsets.only(top: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + StandardCheckbox( + value: nodeViewModel.useSocksProxy, + gradientBackground: true, + borderColor: Theme.of(context).dividerColor, + iconColor: Colors.white, + onChanged: (value) { + if (!value) { + _socksAddressController.text = ''; + } + nodeViewModel.useSocksProxy = value; + }, + caption: 'SOCKS Proxy', + ), + ], + ), + ), + if (nodeViewModel.useSocksProxy) ...[ + SizedBox(height: 10.0), + Row( + children: [ + Expanded( + child: BaseTextFormField( controller: _socksAddressController, hintText: '[:]', validator: SocksProxyNodeAddressValidator(), )) - ], - ), - ] - ], - )), + ], + ), + ] + ], + )), ] ], ), diff --git a/lib/src/widgets/dashboard_card_widget.dart b/lib/src/widgets/dashboard_card_widget.dart index b3f92123a4..74f2d598ba 100644 --- a/lib/src/widgets/dashboard_card_widget.dart +++ b/lib/src/widgets/dashboard_card_widget.dart @@ -4,15 +4,15 @@ import 'package:flutter/material.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; class DashBoardRoundedCardWidget extends StatelessWidget { - - DashBoardRoundedCardWidget({ required this.onTap, required this.title, required this.subTitle, + this.onClose, }); final VoidCallback onTap; + final VoidCallback? onClose; final String title; final String subTitle; @@ -26,7 +26,7 @@ class DashBoardRoundedCardWidget extends StatelessWidget { child: Stack( children: [ Container( - padding: EdgeInsets.all(20), + padding: EdgeInsets.fromLTRB(20, 20, 40, 20), width: double.infinity, decoration: BoxDecoration( color: Theme.of(context).extension()!.syncedBackgroundColor, @@ -35,32 +35,40 @@ class DashBoardRoundedCardWidget extends StatelessWidget { color: Theme.of(context).extension()!.cardBorderColor, ), ), - child: - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: TextStyle( - color: Theme.of(context).extension()!.cardTextColor, - fontSize: 24, - fontWeight: FontWeight.w900, - ), - ), - SizedBox(height: 5), - Text( - subTitle, - style: TextStyle( - color: Theme.of(context).extension()!.cardTextColor, - fontWeight: FontWeight.w500, - fontFamily: 'Lato'), - ) - ], + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + color: Theme.of(context).extension()!.cardTextColor, + fontSize: 24, + fontWeight: FontWeight.w900, + ), ), + SizedBox(height: 5), + Text( + subTitle, + style: TextStyle( + color: Theme.of(context).extension()!.cardTextColor, + fontWeight: FontWeight.w500, + fontFamily: 'Lato'), + ) + ], + ), ), + if (onClose != null) + Positioned( + top: 10, + right: 10, + child: IconButton( + icon: Icon(Icons.close), + onPressed: onClose, + color: Theme.of(context).extension()!.cardTextColor, + ), + ), ], ), ); } } - diff --git a/lib/src/widgets/scollable_with_bottom_section.dart b/lib/src/widgets/scollable_with_bottom_section.dart index 2487e61307..e15be610e2 100644 --- a/lib/src/widgets/scollable_with_bottom_section.dart +++ b/lib/src/widgets/scollable_with_bottom_section.dart @@ -2,16 +2,21 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class ScrollableWithBottomSection extends StatefulWidget { - ScrollableWithBottomSection( - {required this.content, - required this.bottomSection, - this.contentPadding, - this.bottomSectionPadding}); + ScrollableWithBottomSection({ + required this.content, + required this.bottomSection, + this.topSection, + this.contentPadding, + this.bottomSectionPadding, + this.topSectionPadding, + }); final Widget content; final Widget bottomSection; + final Widget? topSection; final EdgeInsets? contentPadding; final EdgeInsets? bottomSectionPadding; + final EdgeInsets? topSectionPadding; @override ScrollableWithBottomSectionState createState() => ScrollableWithBottomSectionState(); @@ -22,6 +27,12 @@ class ScrollableWithBottomSectionState extends State nodes, required Map powNodes, required this.shouldShowYatPopup, + required this.shouldShowRepWarning, required this.isBitcoinBuyEnabled, required this.actionlistDisplayMode, required this.pinTimeOutDuration, @@ -225,6 +226,9 @@ abstract class SettingsStoreBase with Store { (bool shouldShowYatPopup) => sharedPreferences.setBool(PreferencesKey.shouldShowYatPopup, shouldShowYatPopup)); + reaction((_) => shouldShowRepWarning, + (bool val) => sharedPreferences.setBool(PreferencesKey.shouldShowRepWarning, val)); + defaultBuyProviders.observe((change) { final String key = 'buyProvider_${change.key.toString()}'; if (change.newValue != null) { @@ -536,6 +540,9 @@ abstract class SettingsStoreBase with Store { @observable bool shouldShowYatPopup; + @observable + bool shouldShowRepWarning; + @observable bool shouldShowMarketPlaceInDashboard; @@ -878,6 +885,8 @@ abstract class SettingsStoreBase with Store { final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; + final shouldShowRepWarning = + sharedPreferences.getBool(PreferencesKey.shouldShowRepWarning) ?? true; final generateSubaddresses = sharedPreferences.getInt(PreferencesKey.autoGenerateSubaddressStatusKey); @@ -1034,75 +1043,77 @@ abstract class SettingsStoreBase with Store { ''; return SettingsStore( - secureStorage: secureStorage, - sharedPreferences: sharedPreferences, - initialShouldShowMarketPlaceInDashboard: shouldShowMarketPlaceInDashboard, - nodes: nodes, - powNodes: powNodes, - appVersion: packageInfo.version, - deviceName: deviceName, - isBitcoinBuyEnabled: isBitcoinBuyEnabled, - initialFiatCurrency: currentFiatCurrency, - initialBalanceDisplayMode: currentBalanceDisplayMode, - initialSaveRecipientAddress: shouldSaveRecipientAddress, - initialAutoGenerateSubaddressStatus: autoGenerateSubaddressStatus, - initialMoneroSeedType: moneroSeedType, - initialAppSecure: isAppSecure, - initialDisableBuy: disableBuy, - initialDisableSell: disableSell, - initialDisableBulletin: disableBulletin, - initialWalletListOrder: walletListOrder, - initialWalletListAscending: walletListAscending, - initialFiatMode: currentFiatApiMode, - initialAllowBiometricalAuthentication: allowBiometricalAuthentication, - initialCake2FAPresetOptions: selectedCake2FAPreset, - initialUseTOTP2FA: useTOTP2FA, - initialTotpSecretKey: totpSecretKey, - initialFailedTokenTrial: tokenTrialNumber, - initialExchangeStatus: exchangeStatus, - initialTheme: savedTheme, - actionlistDisplayMode: actionListDisplayMode, - initialPinLength: pinLength, - pinTimeOutDuration: pinCodeTimeOutDuration, - seedPhraseLength: seedPhraseWordCount, - initialLanguageCode: savedLanguageCode, - sortBalanceBy: sortBalanceBy, - pinNativeTokenAtTop: pinNativeTokenAtTop, - useEtherscan: useEtherscan, - usePolygonScan: usePolygonScan, - defaultNanoRep: defaultNanoRep, - defaultBananoRep: defaultBananoRep, - lookupsTwitter: lookupsTwitter, - lookupsMastodon: lookupsMastodon, - lookupsYatService: lookupsYatService, - lookupsUnstoppableDomains: lookupsUnstoppableDomains, - lookupsOpenAlias: lookupsOpenAlias, - lookupsENS: lookupsENS, - customBitcoinFeeRate: customBitcoinFeeRate, - initialMoneroTransactionPriority: moneroTransactionPriority, - initialBitcoinTransactionPriority: bitcoinTransactionPriority, - initialHavenTransactionPriority: havenTransactionPriority, - initialLitecoinTransactionPriority: litecoinTransactionPriority, - initialBitcoinCashTransactionPriority: bitcoinCashTransactionPriority, - initialShouldRequireTOTP2FAForAccessingWallet: shouldRequireTOTP2FAForAccessingWallet, - initialShouldRequireTOTP2FAForSendsToContact: shouldRequireTOTP2FAForSendsToContact, - initialShouldRequireTOTP2FAForSendsToNonContact: shouldRequireTOTP2FAForSendsToNonContact, - initialShouldRequireTOTP2FAForSendsToInternalWallets: - shouldRequireTOTP2FAForSendsToInternalWallets, - initialShouldRequireTOTP2FAForExchangesToInternalWallets: - shouldRequireTOTP2FAForExchangesToInternalWallets, - initialShouldRequireTOTP2FAForExchangesToExternalWallets: - shouldRequireTOTP2FAForExchangesToExternalWallets, - initialShouldRequireTOTP2FAForAddingContacts: shouldRequireTOTP2FAForAddingContacts, - initialShouldRequireTOTP2FAForCreatingNewWallets: shouldRequireTOTP2FAForCreatingNewWallets, - initialShouldRequireTOTP2FAForAllSecurityAndBackupSettings: - shouldRequireTOTP2FAForAllSecurityAndBackupSettings, - initialEthereumTransactionPriority: ethereumTransactionPriority, - initialPolygonTransactionPriority: polygonTransactionPriority, - backgroundTasks: backgroundTasks, - initialSyncMode: savedSyncMode, - initialSyncAll: savedSyncAll, - shouldShowYatPopup: shouldShowYatPopup); + secureStorage: secureStorage, + sharedPreferences: sharedPreferences, + initialShouldShowMarketPlaceInDashboard: shouldShowMarketPlaceInDashboard, + nodes: nodes, + powNodes: powNodes, + appVersion: packageInfo.version, + deviceName: deviceName, + isBitcoinBuyEnabled: isBitcoinBuyEnabled, + initialFiatCurrency: currentFiatCurrency, + initialBalanceDisplayMode: currentBalanceDisplayMode, + initialSaveRecipientAddress: shouldSaveRecipientAddress, + initialAutoGenerateSubaddressStatus: autoGenerateSubaddressStatus, + initialMoneroSeedType: moneroSeedType, + initialAppSecure: isAppSecure, + initialDisableBuy: disableBuy, + initialDisableSell: disableSell, + initialDisableBulletin: disableBulletin, + initialWalletListOrder: walletListOrder, + initialWalletListAscending: walletListAscending, + initialFiatMode: currentFiatApiMode, + initialAllowBiometricalAuthentication: allowBiometricalAuthentication, + initialCake2FAPresetOptions: selectedCake2FAPreset, + initialUseTOTP2FA: useTOTP2FA, + initialTotpSecretKey: totpSecretKey, + initialFailedTokenTrial: tokenTrialNumber, + initialExchangeStatus: exchangeStatus, + initialTheme: savedTheme, + actionlistDisplayMode: actionListDisplayMode, + initialPinLength: pinLength, + pinTimeOutDuration: pinCodeTimeOutDuration, + seedPhraseLength: seedPhraseWordCount, + initialLanguageCode: savedLanguageCode, + sortBalanceBy: sortBalanceBy, + pinNativeTokenAtTop: pinNativeTokenAtTop, + useEtherscan: useEtherscan, + usePolygonScan: usePolygonScan, + defaultNanoRep: defaultNanoRep, + defaultBananoRep: defaultBananoRep, + lookupsTwitter: lookupsTwitter, + lookupsMastodon: lookupsMastodon, + lookupsYatService: lookupsYatService, + lookupsUnstoppableDomains: lookupsUnstoppableDomains, + lookupsOpenAlias: lookupsOpenAlias, + lookupsENS: lookupsENS, + customBitcoinFeeRate: customBitcoinFeeRate, + initialMoneroTransactionPriority: moneroTransactionPriority, + initialBitcoinTransactionPriority: bitcoinTransactionPriority, + initialHavenTransactionPriority: havenTransactionPriority, + initialLitecoinTransactionPriority: litecoinTransactionPriority, + initialBitcoinCashTransactionPriority: bitcoinCashTransactionPriority, + initialShouldRequireTOTP2FAForAccessingWallet: shouldRequireTOTP2FAForAccessingWallet, + initialShouldRequireTOTP2FAForSendsToContact: shouldRequireTOTP2FAForSendsToContact, + initialShouldRequireTOTP2FAForSendsToNonContact: shouldRequireTOTP2FAForSendsToNonContact, + initialShouldRequireTOTP2FAForSendsToInternalWallets: + shouldRequireTOTP2FAForSendsToInternalWallets, + initialShouldRequireTOTP2FAForExchangesToInternalWallets: + shouldRequireTOTP2FAForExchangesToInternalWallets, + initialShouldRequireTOTP2FAForExchangesToExternalWallets: + shouldRequireTOTP2FAForExchangesToExternalWallets, + initialShouldRequireTOTP2FAForAddingContacts: shouldRequireTOTP2FAForAddingContacts, + initialShouldRequireTOTP2FAForCreatingNewWallets: shouldRequireTOTP2FAForCreatingNewWallets, + initialShouldRequireTOTP2FAForAllSecurityAndBackupSettings: + shouldRequireTOTP2FAForAllSecurityAndBackupSettings, + initialEthereumTransactionPriority: ethereumTransactionPriority, + initialPolygonTransactionPriority: polygonTransactionPriority, + backgroundTasks: backgroundTasks, + initialSyncMode: savedSyncMode, + initialSyncAll: savedSyncAll, + shouldShowYatPopup: shouldShowYatPopup, + shouldShowRepWarning: shouldShowRepWarning, + ); } Future reload({required Box nodeSource}) async { @@ -1198,6 +1209,8 @@ abstract class SettingsStoreBase with Store { languageCode = sharedPreferences.getString(PreferencesKey.currentLanguageCode) ?? languageCode; shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? shouldShowYatPopup; + shouldShowRepWarning = + sharedPreferences.getBool(PreferencesKey.shouldShowRepWarning) ?? shouldShowRepWarning; sortBalanceBy = SortBalanceBy .values[sharedPreferences.getInt(PreferencesKey.sortBalanceBy) ?? sortBalanceBy.index]; pinNativeTokenAtTop = sharedPreferences.getBool(PreferencesKey.pinNativeTokenAtTop) ?? true; diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index 66d179523b..ef43ddf40c 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -11,6 +11,7 @@ import 'package:cake_wallet/entities/service_status.dart'; import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/monero/monero.dart'; +import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/dashboard/orders_store.dart'; @@ -370,6 +371,18 @@ abstract class DashboardViewModelBase with Store { @computed bool get hasPowNodes => wallet.type == WalletType.nano || wallet.type == WalletType.banano; + bool get showRepWarning { + if (wallet.type != WalletType.nano) { + return false; + } + + if (!settingsStore.shouldShowRepWarning) { + return false; + } + + return !nano!.isRepOk(wallet); + } + Future reconnect() async { final node = appStore.settingsStore.getCurrentNode(wallet.type); await wallet.connectToNode(node: node); 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 e323268a0a..283a32cbf1 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 @@ -12,16 +12,15 @@ import 'package:permission_handler/permission_handler.dart'; part 'node_create_or_edit_view_model.g.dart'; -class NodeCreateOrEditViewModel = NodeCreateOrEditViewModelBase - with _$NodeCreateOrEditViewModel; +class NodeCreateOrEditViewModel = NodeCreateOrEditViewModelBase with _$NodeCreateOrEditViewModel; abstract class NodeCreateOrEditViewModelBase with Store { - NodeCreateOrEditViewModelBase( - this._nodeSource, this._walletType, this._settingsStore) + NodeCreateOrEditViewModelBase(this._nodeSource, this._walletType, this._settingsStore) : state = InitialExecutionState(), connectionState = InitialExecutionState(), useSSL = false, address = '', + path = '', port = '', login = '', password = '', @@ -35,6 +34,9 @@ abstract class NodeCreateOrEditViewModelBase with Store { @observable String address; + @observable + String path; + @observable String port; @@ -84,6 +86,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { @action void reset() { address = ''; + path = ''; port = ''; login = ''; password = ''; @@ -99,6 +102,9 @@ abstract class NodeCreateOrEditViewModelBase with Store { @action void setAddress(String val) => address = val; + @action + void setPath(String val) => path = val; + @action void setLogin(String val) => login = val; @@ -121,6 +127,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { Future save({Node? editingNode, bool saveAsCurrent = false}) async { final node = Node( uri: uri, + path: path, type: _walletType, login: login, password: password, @@ -151,6 +158,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { Future connect() async { final node = Node( uri: uri, + path: path, type: _walletType, login: login, password: password, @@ -183,7 +191,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { Future scanQRCodeForNewNode(BuildContext context) async { try { bool isCameraPermissionGranted = - await PermissionHandler.checkPermission(Permission.camera, context); + await PermissionHandler.checkPermission(Permission.camera, context); if (!isCameraPermissionGranted) return; String code = await presentQRScanner(); @@ -198,7 +206,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { } final userInfo = uri.userInfo.split(':'); - + if (userInfo.length < 2) { throw Exception('Unexpected scan QR code value: Value is invalid'); } @@ -207,8 +215,11 @@ abstract class NodeCreateOrEditViewModelBase with Store { final rpcPassword = userInfo[1]; final ipAddress = uri.host; final port = uri.port.toString(); + final path = uri.path; + setAddress(ipAddress); + setPath(path); setPassword(rpcPassword); setLogin(rpcUser); setPort(port); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 6b3aae14ea..f5b2dd5dda 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "يجب أن تكون قيمة المبلغ أكبر من أو تساوي ${minAmount} ${fiatCurrency}", "more_options": "المزيد من الخيارات", "name": "ﻢﺳﺍ", + "nano_current_rep": "الممثل الحالي", + "nano_pick_new_rep": "اختر ممثلًا جديدًا", "narrow": "ضيق", "new_first_wallet_text": "حافظ بسهولة على أمان العملة المشفرة", "new_node_testing": "تجربة العقدة الجديدة", @@ -465,6 +467,8 @@ "remove_node": "إزالة العقدة", "remove_node_message": "هل أنت متأكد أنك تريد إزالة العقدة المحددة؟", "rename": "إعادة تسمية", + "rep_warning": "تحذير تمثيلي", + "rep_warning_sub": "لا يبدو أن ممثلك في وضع جيد. اضغط هنا لاختيار واحدة جديدة", "require_for_adding_contacts": "تتطلب إضافة جهات اتصال", "require_for_all_security_and_backup_settings": "مطلوب لجميع إعدادات الأمان والنسخ الاحتياطي", "require_for_assessing_wallet": "تتطلب الوصول إلى المحفظة", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "تفاصيل العملات الغير المنفقة", "unspent_coins_title": "العملات الغير المنفقة", "unsupported_asset": ".ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ", + "uptime": "مدة التشغيل", "upto": "حتى ${value}", "use": "التبديل إلى", "use_card_info_three": "استخدم البطاقة الرقمية عبر الإنترنت أو مع طرق الدفع غير التلامسية.", @@ -758,6 +763,7 @@ "view_key_private": "مفتاح العرض (خاص)", "view_key_public": "مفتاح العرض (عام)", "view_transaction_on": "عرض العملية على", + "voting_weight": "وزن التصويت", "waitFewSecondForTxUpdate": "ﺕﻼﻣﺎﻌﻤﻟﺍ ﻞﺠﺳ ﻲﻓ ﺔﻠﻣﺎﻌﻤﻟﺍ ﺲﻜﻌﻨﺗ ﻰﺘﺣ ﻥﺍﻮﺛ ﻊﻀﺒﻟ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ", "wallet_keys": "سييد المحفظة / المفاتيح", "wallet_list_create_new_wallet": "إنشاء محفظة جديدة", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 30d9945d19..511a04e395 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}", "more_options": "Още настройки", "name": "Име", + "nano_current_rep": "Настоящ представител", + "nano_pick_new_rep": "Изберете нов представител", "narrow": "Тесен", "new_first_wallet_text": "Лесно пазете криптовалутата си в безопасност", "new_node_testing": "Тестване на нов node", @@ -465,6 +467,8 @@ "remove_node": "Премахни node", "remove_node_message": "Сигурни ли сте, че искате да премахнете избрания node?", "rename": "Промяна на името", + "rep_warning": "Представително предупреждение", + "rep_warning_sub": "Вашият представител изглежда не е в добро състояние. Докоснете тук, за да изберете нов", "require_for_adding_contacts": "Изисква се за добавяне на контакти", "require_for_all_security_and_backup_settings": "Изисква се за всички настройки за сигурност и архивиране", "require_for_assessing_wallet": "Изискване за достъп до портфейла", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Подробности за неизползваните монети", "unspent_coins_title": "Неизползвани монети", "unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив.", + "uptime": "Време за работа", "upto": "до ${value}", "use": "Смяна на ", "use_card_info_three": "Използвайте дигиталната карта онлайн или чрез безконтактен метод на плащане.", @@ -758,6 +763,7 @@ "view_key_private": "View key (таен)", "view_key_public": "View key (публичен)", "view_transaction_on": "Вижте транзакция на ", + "voting_weight": "Тегло на гласуване", "waitFewSecondForTxUpdate": "Моля, изчакайте няколко секунди, докато транзакцията се отрази в историята на транзакциите", "wallet_keys": "Seed/keys на портфейла", "wallet_list_create_new_wallet": "Създаване на нов портфейл", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 577cd9813c..8457de560a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}", "more_options": "Více možností", "name": "název", + "nano_current_rep": "Současný zástupce", + "nano_pick_new_rep": "Vyberte nového zástupce", "narrow": "Úzký", "new_first_wallet_text": "Snadno udržujte svou kryptoměnu v bezpečí", "new_node_testing": "Testování nového uzlu", @@ -465,6 +467,8 @@ "remove_node": "Odstranit uzel", "remove_node_message": "Opravdu chcete odstranit označený uzel?", "rename": "Přejmenovat", + "rep_warning": "Reprezentativní varování", + "rep_warning_sub": "Zdá se, že váš zástupce není v dobrém stavu. Klepnutím zde vyberte nový", "require_for_adding_contacts": "Vyžadovat pro přidání kontaktů", "require_for_all_security_and_backup_settings": "Vyžadovat všechna nastavení zabezpečení a zálohování", "require_for_assessing_wallet": "Vyžadovat pro přístup k peněžence", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Podrobnosti o neutracených mincích", "unspent_coins_title": "Neutracené mince", "unsupported_asset": "Tuto akci u tohoto díla nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiv.", + "uptime": "Uptime", "upto": "až ${value}", "use": "Přepnout na ", "use_card_info_three": "Použijte tuto digitální kartu online nebo bezkontaktními platebními metodami.", @@ -758,6 +763,7 @@ "view_key_private": "Klíč pro zobrazení (soukromý)", "view_key_public": "Klíč pro zobrazení (veřejný)", "view_transaction_on": "Zobrazit transakci na ", + "voting_weight": "Hlasová váha", "waitFewSecondForTxUpdate": "Počkejte několik sekund, než se transakce projeví v historii transakcí", "wallet_keys": "Seed/klíče peněženky", "wallet_list_create_new_wallet": "Vytvořit novou peněženku", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index f0ba70c843..7caf82efa8 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Der Wert des Betrags muss größer oder gleich ${minAmount} ${fiatCurrency} sein", "more_options": "Weitere Optionen", "name": "Name", + "nano_current_rep": "Aktueller Vertreter", + "nano_pick_new_rep": "Wählen Sie einen neuen Vertreter aus", "narrow": "Eng", "new_first_wallet_text": "Bewahren Sie Ihre Kryptowährung einfach sicher auf", "new_node_testing": "Neuen Knoten testen", @@ -466,6 +468,8 @@ "remove_node": "Knoten entfernen", "remove_node_message": "Möchten Sie den ausgewählten Knoten wirklich entfernen?", "rename": "Umbenennen", + "rep_warning": "Repräsentative Warnung", + "rep_warning_sub": "Ihr Vertreter scheint nicht gut zu sein. Tippen Sie hier, um eine neue auszuwählen", "require_for_adding_contacts": "Erforderlich zum Hinzufügen von Kontakten", "require_for_all_security_and_backup_settings": "Für alle Sicherheits- und Sicherungseinstellungen erforderlich", "require_for_assessing_wallet": "Für den Zugriff auf die Wallet erforderlich", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "Details zu nicht ausgegebenen Coins", "unspent_coins_title": "Nicht ausgegebene Coins", "unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet eines unterstützten Asset-Typs oder wechseln Sie zu einer Wallet.", + "uptime": "Betriebszeit", "upto": "bis zu ${value}", "use": "Wechsel zu ", "use_card_info_three": "Verwenden Sie die digitale Karte online oder mit kontaktlosen Zahlungsmethoden.", @@ -760,6 +765,7 @@ "view_key_private": "View Key (geheim)", "view_key_public": "View Key (öffentlich)", "view_transaction_on": "Anzeigen der Transaktion auf ", + "voting_weight": "Stimmgewicht", "waitFewSecondForTxUpdate": "Bitte warten Sie einige Sekunden, bis die Transaktion im Transaktionsverlauf angezeigt wird", "waiting_payment_confirmation": "Warte auf Zahlungsbestätigung", "wallet_keys": "Wallet-Seed/-Schlüssel", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index f8bd6b3a26..e75bda358e 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Value of the amount must be more or equal to ${minAmount} ${fiatCurrency}", "more_options": "More Options", "name": "Name", + "nano_current_rep": "Current Representative", + "nano_pick_new_rep": "Pick a new representative", "narrow": "Narrow", "new_first_wallet_text": "Keep your crypto safe, piece of cake", "new_node_testing": "New node testing", @@ -465,6 +467,8 @@ "remove_node": "Remove node", "remove_node_message": "Are you sure that you want to remove selected node?", "rename": "Rename", + "rep_warning": "Representative Warning", + "rep_warning_sub": "Your representative does not appear to be in good standing. Tap here to select a new one", "require_for_adding_contacts": "Require for adding contacts", "require_for_all_security_and_backup_settings": "Require for all security and backup settings", "require_for_assessing_wallet": "Require for accessing wallet", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Unspent coins details", "unspent_coins_title": "Unspent coins", "unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type.", + "uptime": "Uptime", "upto": "up to ${value}", "use": "Switch to ", "use_card_info_three": "Use the digital card online or with contactless payment methods.", @@ -758,6 +763,7 @@ "view_key_private": "View key (private)", "view_key_public": "View key (public)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Voting Weight", "waitFewSecondForTxUpdate": "Kindly wait for a few seconds for transaction to reflect in transactions history", "wallet_keys": "Wallet seed/keys", "wallet_list_create_new_wallet": "Create New Wallet", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index cf70a2c2dd..c8a56bc66c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "El valor de la cantidad debe ser mayor o igual a ${minAmount} ${fiatCurrency}", "more_options": "Más Opciones", "name": "Nombre", + "nano_current_rep": "Representante actual", + "nano_pick_new_rep": "Elija un nuevo representante", "narrow": "Angosto", "new_first_wallet_text": "Mantenga fácilmente su criptomoneda segura", "new_node_testing": "Prueba de nuevos nodos", @@ -466,6 +468,8 @@ "remove_node": "Eliminar nodo", "remove_node_message": "¿Está seguro de que desea eliminar el nodo seleccionado?", "rename": "Rebautizar", + "rep_warning": "Advertencia representativa", + "rep_warning_sub": "Su representante no parece estar en buena posición. Toque aquí para seleccionar uno nuevo", "require_for_adding_contacts": "Requerido para agregar contactos", "require_for_all_security_and_backup_settings": "Requerido para todas las configuraciones de seguridad y copia de seguridad", "require_for_assessing_wallet": "Requerido para acceder a la billetera", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "Detalles de monedas no gastadas", "unspent_coins_title": "Monedas no gastadas", "unsupported_asset": "No admitimos esta acción para este activo. Cree o cambie a una billetera de un tipo de activo admitido.", + "uptime": "Tiempo de actividad", "upto": "hasta ${value}", "use": "Utilizar a ", "use_card_info_three": "Utilice la tarjeta digital en línea o con métodos de pago sin contacto.", @@ -759,6 +764,7 @@ "view_key_private": "View clave (privado)", "view_key_public": "View clave (público)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Peso de votación", "waitFewSecondForTxUpdate": "Espere unos segundos para que la transacción se refleje en el historial de transacciones.", "wallet_keys": "Billetera semilla/claves", "wallet_list_create_new_wallet": "Crear nueva billetera", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index d21e21dae2..bbd2bde2bd 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Le montant doit être au moins égal à ${minAmount} ${fiatCurrency}", "more_options": "Plus d'options", "name": "Nom", + "nano_current_rep": "Représentant actuel", + "nano_pick_new_rep": "Choisissez un nouveau représentant", "narrow": "Étroit", "new_first_wallet_text": "Gardez facilement votre crypto-monnaie en sécurité", "new_node_testing": "Test du nouveau nœud", @@ -465,6 +467,8 @@ "remove_node": "Supprimer le nœud", "remove_node_message": "Êtes vous certain de vouloir supprimer le nœud sélectionné ?", "rename": "Renommer", + "rep_warning": "Avertissement représentatif", + "rep_warning_sub": "Votre représentant ne semble pas être en règle. Appuyez ici pour en sélectionner un nouveau", "require_for_adding_contacts": "Requis pour ajouter des contacts", "require_for_all_security_and_backup_settings": "Exiger pour tous les paramètres de sécurité et de sauvegarde", "require_for_assessing_wallet": "Nécessaire pour accéder au portefeuille", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Détails des pièces (coins) non dépensées", "unspent_coins_title": "Pièces (coins) non dépensées", "unsupported_asset": "Nous ne prenons pas en charge cette action pour cet élément. Veuillez créer ou passer à un portefeuille d'un type d'actif pris en charge.", + "uptime": "Durée de la baisse", "upto": "jusqu'à ${value}", "use": "Changer vers code PIN à ", "use_card_info_three": "Utilisez la carte numérique en ligne ou avec des méthodes de paiement sans contact.", @@ -758,6 +763,7 @@ "view_key_private": "Clef d'audit (view key) (privée)", "view_key_public": "Clef d'audit (view key) (publique)", "view_transaction_on": "Voir la Transaction sur ", + "voting_weight": "Poids de vote", "waitFewSecondForTxUpdate": "Veuillez attendre quelques secondes pour que la transaction soit reflétée dans l'historique des transactions.", "wallet_keys": "Phrase secrète (seed)/Clefs du portefeuille (wallet)", "wallet_list_create_new_wallet": "Créer un Nouveau Portefeuille (Wallet)", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 35a6be1b8e..a38f04fa40 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Darajar adadin dole ne ya zama fiye ko daidai da ${minAmount} ${fiatCurrency}", "more_options": "Ƙarin Zaɓuɓɓuka", "name": "Suna", + "nano_current_rep": "Wakilin Yanzu", + "nano_pick_new_rep": "Dauki sabon wakili", "narrow": "kunkuntar", "new_first_wallet_text": "A sauƙaƙe kiyaye kuzarin ku", "new_node_testing": "Sabbin gwajin kumburi", @@ -467,6 +469,8 @@ "remove_node": "Cire node", "remove_node_message": "Kuna tabbatar kuna so ku cire wannan node?", "rename": "Sake suna", + "rep_warning": "Gargadi Wakilin", + "rep_warning_sub": "Wakilinku bai bayyana ya kasance cikin kyakkyawan yanayi ba. Matsa nan don zaɓar sabon", "require_for_adding_contacts": "Bukatar ƙara lambobin sadarwa", "require_for_all_security_and_backup_settings": "Bukatar duk tsaro da saitunan wariyar ajiya", "require_for_assessing_wallet": "Bukatar samun damar walat", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "Bayanan tsabar kudi da ba a kashe ba", "unspent_coins_title": "Tsabar da ba a kashe ba", "unsupported_asset": "Ba mu goyi bayan wannan aikin don wannan kadara. Da fatan za a ƙirƙira ko canza zuwa walat na nau'in kadara mai tallafi.", + "uptime": "Sama", "upto": "har zuwa ${value}", "use": "Canja zuwa", "use_card_info_three": "Yi amfani da katin dijital akan layi ko tare da hanyoyin biyan kuɗi mara lamba.", @@ -760,6 +765,7 @@ "view_key_private": "Duba maɓallin (maɓallin kalmar sirri)", "view_key_public": "Maɓallin Duba (maɓallin jama'a)", "view_transaction_on": "Dubo aikace-aikacen akan", + "voting_weight": "Nauyi mai nauyi", "waitFewSecondForTxUpdate": "Da fatan za a jira ƴan daƙiƙa don ciniki don yin tunani a tarihin ma'amala", "wallet_keys": "Iri/maɓalli na walat", "wallet_list_create_new_wallet": "Ƙirƙiri Sabon Wallet", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index a6bcab4ab1..0131baa8b6 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "राशि का मूल्य अधिक है या करने के लिए बराबर होना चाहिए ${minAmount} ${fiatCurrency}", "more_options": "और विकल्प", "name": "नाम", + "nano_current_rep": "वर्तमान प्रतिनिधि", + "nano_pick_new_rep": "एक नया प्रतिनिधि चुनें", "narrow": "सँकरा", "new_first_wallet_text": "आसानी से अपनी क्रिप्टोक्यूरेंसी को सुरक्षित रखें", "new_node_testing": "नई नोड परीक्षण", @@ -467,6 +469,8 @@ "remove_node": "नोड निकालें", "remove_node_message": "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?", "rename": "नाम बदलें", + "rep_warning": "प्रतिनिधि चेतावनी", + "rep_warning_sub": "आपका प्रतिनिधि अच्छी स्थिति में नहीं दिखाई देता है। एक नया चयन करने के लिए यहां टैप करें", "require_for_adding_contacts": "संपर्क जोड़ने के लिए आवश्यकता है", "require_for_all_security_and_backup_settings": "सभी सुरक्षा और बैकअप सेटिंग्स की आवश्यकता है", "require_for_assessing_wallet": "वॉलेट तक पहुँचने के लिए आवश्यकता है", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "अव्ययित सिक्कों का विवरण", "unspent_coins_title": "खर्च न किए गए सिक्के", "unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।", + "uptime": "अपटाइम", "upto": "${value} तक", "use": "उपयोग ", "use_card_info_three": "डिजिटल कार्ड का ऑनलाइन या संपर्क रहित भुगतान विधियों के साथ उपयोग करें।", @@ -760,6 +765,7 @@ "view_key_private": "कुंजी देखें(निजी)", "view_key_public": "कुंजी देखें (जनता)", "view_transaction_on": "View Transaction on ", + "voting_weight": "वोटिंग वेट", "waitFewSecondForTxUpdate": "लेन-देन इतिहास में लेन-देन प्रतिबिंबित होने के लिए कृपया कुछ सेकंड प्रतीक्षा करें", "wallet_keys": "बटुआ बीज / चाबियाँ", "wallet_list_create_new_wallet": "नया बटुआ बनाएँ", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index e01857a940..af53376cdd 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Vrijednost iznosa mora biti veća ili jednaka ${minAmount} ${fiatCurrency}", "more_options": "Više opcija", "name": "Ime", + "nano_current_rep": "Trenutni predstavnik", + "nano_pick_new_rep": "Odaberite novog predstavnika", "narrow": "Usko", "new_first_wallet_text": "Jednostavno čuvajte svoju kripto valutu", "new_node_testing": "Provjera novog nodea", @@ -465,6 +467,8 @@ "remove_node": "Ukloni node", "remove_node_message": "Jeste li sigurni da želite ukloniti odabrani node?", "rename": "Preimenuj", + "rep_warning": "Reprezentativno upozorenje", + "rep_warning_sub": "Čini se da vaš predstavnik nije u dobrom stanju. Dodirnite ovdje za odabir novog", "require_for_adding_contacts": "Zahtijeva za dodavanje kontakata", "require_for_all_security_and_backup_settings": "Zahtijeva za sve postavke sigurnosti i sigurnosne kopije", "require_for_assessing_wallet": "Potreban za pristup novčaniku", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Nepotrošeni detalji o novčićima", "unspent_coins_title": "Nepotrošeni novčići", "unsupported_asset": "Ne podržavamo ovu radnju za ovaj materijal. Izradite ili prijeđite na novčanik podržane vrste sredstava.", + "uptime": "Radno vrijeme", "upto": "do ${value}", "use": "Prebaci na", "use_card_info_three": "Koristite digitalnu karticu online ili s beskontaktnim metodama plaćanja.", @@ -758,6 +763,7 @@ "view_key_private": "View key (privatni)", "view_key_public": "View key (javni)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Težina glasanja", "waitFewSecondForTxUpdate": "Pričekajte nekoliko sekundi da se transakcija prikaže u povijesti transakcija", "wallet_keys": "Pristupni izraz/ključ novčanika", "wallet_list_create_new_wallet": "Izradi novi novčanik", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index c487a67501..0e0beb57ed 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Nilai jumlah harus lebih atau sama dengan ${minAmount} ${fiatCurrency}", "more_options": "Opsi Lainnya", "name": "Nama", + "nano_current_rep": "Perwakilan saat ini", + "nano_pick_new_rep": "Pilih perwakilan baru", "narrow": "Sempit", "new_first_wallet_text": "Dengan mudah menjaga cryptocurrency Anda aman", "new_node_testing": "Pengujian node baru", @@ -467,6 +469,8 @@ "remove_node": "Hapus node", "remove_node_message": "Apakah Anda yakin ingin menghapus node yang dipilih?", "rename": "Ganti nama", + "rep_warning": "Peringatan Perwakilan", + "rep_warning_sub": "Perwakilan Anda tampaknya tidak bereputasi baik. Ketuk di sini untuk memilih yang baru", "require_for_adding_contacts": "Membutuhkan untuk menambahkan kontak", "require_for_all_security_and_backup_settings": "Memerlukan untuk semua pengaturan keamanan dan pencadangan", "require_for_assessing_wallet": "Diperlukan untuk mengakses dompet", @@ -745,6 +749,7 @@ "unspent_coins_details_title": "Rincian koin yang tidak terpakai", "unspent_coins_title": "Koin yang tidak terpakai", "unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau alihkan ke dompet dari jenis aset yang didukung.", + "uptime": "Uptime", "upto": "hingga ${value}", "use": "Beralih ke ", "use_card_info_three": "Gunakan kartu digital secara online atau dengan metode pembayaran tanpa kontak.", @@ -761,6 +766,7 @@ "view_key_private": "Kunci tampilan (privat)", "view_key_public": "Kunci tampilan (publik)", "view_transaction_on": "Lihat Transaksi di ", + "voting_weight": "Berat voting", "waitFewSecondForTxUpdate": "Mohon tunggu beberapa detik hingga transaksi terlihat di riwayat transaksi", "wallet_keys": "Seed/kunci dompet", "wallet_list_create_new_wallet": "Buat Dompet Baru", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 0af3154264..c73fa70809 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -358,6 +358,8 @@ "moonpay_alert_text": "Il valore dell'importo deve essere maggiore o uguale a ${minAmount} ${fiatCurrency}", "more_options": "Altre opzioni", "name": "Nome", + "nano_current_rep": "Rappresentante attuale", + "nano_pick_new_rep": "Scegli un nuovo rappresentante", "narrow": "Stretto", "new_first_wallet_text": "Mantieni facilmente la tua criptovaluta al sicuro", "new_node_testing": "Test novo nodo", @@ -467,6 +469,8 @@ "remove_node": "Rimuovi nodo", "remove_node_message": "Sei sicuro di voler rimuovere il nodo selezionato?", "rename": "Rinomina", + "rep_warning": "Avvertenza rappresentativa", + "rep_warning_sub": "Il tuo rappresentante non sembra essere in regola. Tocca qui per selezionarne uno nuovo", "require_for_adding_contacts": "Richiesto per l'aggiunta di contatti", "require_for_all_security_and_backup_settings": "Richiedi per tutte le impostazioni di sicurezza e backup", "require_for_assessing_wallet": "Richiesto per l'accesso al portafoglio", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "Dettagli sulle monete non spese", "unspent_coins_title": "Monete non spese", "unsupported_asset": "Non supportiamo questa azione per questa risorsa. Crea o passa a un portafoglio di un tipo di asset supportato.", + "uptime": "Uptime", "upto": "fino a ${value}", "use": "Passa a ", "use_card_info_three": "Utilizza la carta digitale online o con metodi di pagamento contactless.", @@ -760,6 +765,7 @@ "view_key_private": "Chiave di visualizzazione (privata)", "view_key_public": "Chiave di visualizzazione (pubblica)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Peso di voto", "waitFewSecondForTxUpdate": "Attendi qualche secondo affinché la transazione venga riflessa nella cronologia delle transazioni", "waiting_payment_confirmation": "In attesa di conferma del pagamento", "wallet_keys": "Seme Portafoglio /chiavi", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index a0b3973b22..65f2642d7a 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -358,6 +358,8 @@ "moonpay_alert_text": "金額の値は以上でなければなりません ${minAmount} ${fiatCurrency}", "more_options": "その他のオプション", "name": "名前", + "nano_current_rep": "現在の代表", + "nano_pick_new_rep": "新しい代表者を選びます", "narrow": "狭い", "new_first_wallet_text": "暗号通貨を簡単に安全に保ちます", "new_node_testing": "新しいノードのテスト", @@ -466,6 +468,8 @@ "remove_node": "ノードを削除", "remove_node_message": "選択したノードを削除してもよろしいですか?", "rename": "リネーム", + "rep_warning": "代表的な警告", + "rep_warning_sub": "あなたの代表者は良好な状態ではないようです。ここをタップして、新しいものを選択します", "require_for_adding_contacts": "連絡先の追加に必要", "require_for_all_security_and_backup_settings": "すべてのセキュリティおよびバックアップ設定に必須", "require_for_assessing_wallet": "ウォレットにアクセスするために必要です", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "未使用のコインの詳細", "unspent_coins_title": "未使用のコイン", "unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。", + "uptime": "稼働時間", "upto": "up up ${value}", "use": "使用する ", "use_card_info_three": "デジタルカードをオンラインまたは非接触型決済方法で使用してください。", @@ -759,6 +764,7 @@ "view_key_private": "ビューキー (プライベート)", "view_key_public": "ビューキー (パブリック)", "view_transaction_on": "View Transaction on ", + "voting_weight": "投票重み", "waitFewSecondForTxUpdate": "取引履歴に取引が反映されるまで数秒お待ちください。", "wallet_keys": "ウォレットシード/キー", "wallet_list_create_new_wallet": "新しいウォレットを作成", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 98bc40e77e..e9fab7d6fa 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "금액은 다음보다 크거나 같아야합니다 ${minAmount} ${fiatCurrency}", "more_options": "추가 옵션", "name": "이름", + "nano_current_rep": "현재 대표", + "nano_pick_new_rep": "새로운 담당자를 선택하십시오", "narrow": "좁은", "new_first_wallet_text": "cryptocurrency를 쉽게 안전하게 유지하십시오", "new_node_testing": "새로운 노드 테스트", @@ -423,8 +425,8 @@ "placeholder_transactions": "거래가 여기에 표시됩니다", "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", @@ -466,6 +468,8 @@ "remove_node": "노드 제거", "remove_node_message": "선택한 노드를 제거 하시겠습니까?", "rename": "이름 바꾸기", + "rep_warning": "대표 경고", + "rep_warning_sub": "귀하의 대표는 양호한 상태가 아닌 것 같습니다. 새 것을 선택하려면 여기를 탭하십시오", "require_for_adding_contacts": "연락처 추가에 필요", "require_for_all_security_and_backup_settings": "모든 보안 및 백업 설정에 필요", "require_for_assessing_wallet": "지갑 접근을 위해 필요", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "사용하지 않은 동전 세부 정보", "unspent_coins_title": "사용하지 않은 동전", "unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오.", + "uptime": "가동 시간", "upto": "최대 ${value}", "use": "사용하다 ", "use_card_info_three": "디지털 카드를 온라인 또는 비접촉식 결제 수단으로 사용하십시오.", @@ -759,6 +764,7 @@ "view_key_private": "키보기(은밀한)", "view_key_public": "키보기 (공공의)", "view_transaction_on": "View Transaction on ", + "voting_weight": "투표 중량", "waitFewSecondForTxUpdate": "거래 내역에 거래가 반영될 때까지 몇 초 정도 기다려 주세요.", "wallet_keys": "지갑 시드 / 키", "wallet_list_create_new_wallet": "새 월렛 만들기", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 8d846f3d67..fb3832f05f 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "ပမာဏ၏တန်ဖိုးသည် ${minAmount} ${fiatCurrency} နှင့် ပိုနေရမည်", "more_options": "နောက်ထပ် ရွေးချယ်စရာများ", "name": "နာမည်", + "nano_current_rep": "လက်ရှိကိုယ်စားလှယ်", + "nano_pick_new_rep": "အသစ်တစ်ခုကိုရွေးပါ", "narrow": "ကျဉ်းသော", "new_first_wallet_text": "သင့်ရဲ့ cryptocurrencrencres ကိုအလွယ်တကူလုံခြုံစွာထားရှိပါ", "new_node_testing": "နှာခေါင်း အသစ်စမ်းသပ်ခြင်း။", @@ -465,6 +467,8 @@ "remove_node": "နှာခေါင်း ကို ဖယ်ရှားပါ။", "remove_node_message": "ရွေးချယ်ထားသော ကုဒ်ကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။", "rename": "အမည်ပြောင်းပါ။", + "rep_warning": "ကိုယ်စားလှယ်သတိပေးချက်", + "rep_warning_sub": "သင်၏ကိုယ်စားလှယ်သည်ကောင်းမွန်သောရပ်တည်မှုတွင်မဖြစ်သင့်ပါ။ အသစ်တစ်ခုကိုရွေးချယ်ရန်ဤနေရာတွင်အသာပုတ်ပါ", "require_for_adding_contacts": "အဆက်အသွယ်များထည့်ရန် လိုအပ်သည်။", "require_for_all_security_and_backup_settings": "လုံခြုံရေးနှင့် အရန်ဆက်တင်များအားလုံးအတွက် လိုအပ်ပါသည်။", "require_for_assessing_wallet": "ပိုက်ဆံအိတ်ကို ဝင်သုံးရန် လိုအပ်သည်။", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "အသုံးမဝင်သော အကြွေစေ့အသေးစိတ်များ", "unspent_coins_title": "အသုံးမဝင်သော အကြွေစေ့များ", "unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", + "uptime": "အထက်က", "upto": "${value} အထိ", "use": "သို့ပြောင်းပါ။", "use_card_info_three": "ဒစ်ဂျစ်တယ်ကတ်ကို အွန်လိုင်း သို့မဟုတ် ထိတွေ့မှုမဲ့ ငွေပေးချေမှုနည်းလမ်းများဖြင့် အသုံးပြုပါ။", @@ -758,6 +763,7 @@ "view_key_private": "သော့ကိုကြည့်ရန် (သီးသန့်)", "view_key_public": "သော့ကိုကြည့်ရန် (အများပြည်သူ)", "view_transaction_on": "ငွေလွှဲခြင်းကို ဖွင့်ကြည့်ပါ။", + "voting_weight": "မဲပေးအလေးချိန်", "waitFewSecondForTxUpdate": "ငွေပေးငွေယူ မှတ်တမ်းတွင် ရောင်ပြန်ဟပ်ရန် စက္ကန့်အနည်းငယ်စောင့်ပါ။", "wallet_keys": "ပိုက်ဆံအိတ် အစေ့/သော့များ", "wallet_list_create_new_wallet": "Wallet အသစ်ဖန်တီးပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 8b3edee4b9..0db2f4ebf1 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Waarde van het bedrag moet meer of gelijk zijn aan ${minAmount} ${fiatCurrency}", "more_options": "Meer opties", "name": "Naam", + "nano_current_rep": "Huidige vertegenwoordiger", + "nano_pick_new_rep": "Kies een nieuwe vertegenwoordiger", "narrow": "Smal", "new_first_wallet_text": "Houd uw cryptocurrency gemakkelijk veilig", "new_node_testing": "Nieuwe knooppunttest", @@ -465,6 +467,8 @@ "remove_node": "Knoop verwijderen", "remove_node_message": "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?", "rename": "Hernoemen", + "rep_warning": "Representatieve waarschuwing", + "rep_warning_sub": "Uw vertegenwoordiger lijkt niet goed te staan. Tik hier om een ​​nieuwe te selecteren", "require_for_adding_contacts": "Vereist voor het toevoegen van contacten", "require_for_all_security_and_backup_settings": "Vereist voor alle beveiligings- en back-upinstellingen", "require_for_assessing_wallet": "Vereist voor toegang tot portemonnee", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Details van niet-uitgegeven munten", "unspent_coins_title": "Ongebruikte munten", "unsupported_asset": "We ondersteunen deze actie niet voor dit item. Maak of schakel over naar een portemonnee van een ondersteund activatype.", + "uptime": "Uptime", "upto": "tot ${value}", "use": "Gebruik ", "use_card_info_three": "Gebruik de digitale kaart online of met contactloze betaalmethoden.", @@ -758,6 +763,7 @@ "view_key_private": "Bekijk sleutel (privaat)", "view_key_public": "Bekijk sleutel (openbaar)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Stemgewicht", "waitFewSecondForTxUpdate": "Wacht een paar seconden totdat de transactie wordt weergegeven in de transactiegeschiedenis", "waiting_payment_confirmation": "In afwachting van betalingsbevestiging", "wallet_keys": "Portemonnee zaad/sleutels", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 93dafa3526..3c5e9024e9 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Wartość kwoty musi być większa lub równa ${minAmount} ${fiatCurrency}", "more_options": "Więcej opcji", "name": "Nazwa", + "nano_current_rep": "Obecny przedstawiciel", + "nano_pick_new_rep": "Wybierz nowego przedstawiciela", "narrow": "Wąski", "new_first_wallet_text": "Łatwo zapewnić bezpieczeństwo kryptowalut", "new_node_testing": "Testowanie nowych węzłów", @@ -465,6 +467,8 @@ "remove_node": "Usuń węzeł", "remove_node_message": "Czy na pewno chcesz usunąć wybrany węzeł?", "rename": "Zmień nazwę", + "rep_warning": "Przedstawicielskie ostrzeżenie", + "rep_warning_sub": "Twój przedstawiciel nie wydaje się mieć dobrej opinii. Stuknij tutaj, aby wybrać nowy", "require_for_adding_contacts": "Wymagane do dodania kontaktów", "require_for_all_security_and_backup_settings": "Wymagaj dla wszystkich ustawień zabezpieczeń i kopii zapasowych", "require_for_assessing_wallet": "Wymagaj dostępu do portfela", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Szczegóły niewydanych monet", "unspent_coins_title": "Niewydane monety", "unsupported_asset": "Nie obsługujemy tego działania w przypadku tego zasobu. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów.", + "uptime": "Czas aktu", "upto": "do ${value}", "use": "Użyj ", "use_card_info_three": "Użyj cyfrowej karty online lub za pomocą zbliżeniowych metod płatności.", @@ -758,6 +763,7 @@ "view_key_private": "Prywatny Klucz Wglądu", "view_key_public": "Publiczny Klucz Wglądu", "view_transaction_on": "Zobacz transakcje na ", + "voting_weight": "Waga głosu", "waitFewSecondForTxUpdate": "Poczekaj kilka sekund, aż transakcja zostanie odzwierciedlona w historii transakcji", "wallet_keys": "Klucze portfela", "wallet_list_create_new_wallet": "Utwórz nowy portfel", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index ae07bb1776..e8ac0af2e8 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -358,6 +358,8 @@ "moonpay_alert_text": "O valor do montante deve ser maior ou igual a ${minAmount} ${fiatCurrency}", "more_options": "Mais opções", "name": "Nome", + "nano_current_rep": "Representante atual", + "nano_pick_new_rep": "Escolha um novo representante", "narrow": "Estreito", "new_first_wallet_text": "Mantenha sua criptomoeda facilmente segura", "new_node_testing": "Teste de novo nó", @@ -467,6 +469,8 @@ "remove_node": "Remover nó", "remove_node_message": "Você realmente deseja remover o nó selecionado?", "rename": "Renomear", + "rep_warning": "Aviso representativo", + "rep_warning_sub": "Seu representante não parece estar em boa posição. Toque aqui para selecionar um novo", "require_for_adding_contacts": "Requer para adicionar contatos", "require_for_all_security_and_backup_settings": "Exigir todas as configurações de segurança e backup", "require_for_assessing_wallet": "Requer para acessar a carteira", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "Detalhes de moedas não gastas", "unspent_coins_title": "Moedas não gastas", "unsupported_asset": "Não oferecemos suporte a esta ação para este recurso. Crie ou mude para uma carteira de um tipo de ativo compatível.", + "uptime": "Tempo de atividade", "upto": "até ${value}", "use": "Use PIN de ", "use_card_info_three": "Use o cartão digital online ou com métodos de pagamento sem contato.", @@ -760,6 +765,7 @@ "view_key_private": "Chave de visualização (privada)", "view_key_public": "Chave de visualização (pública)", "view_transaction_on": "View Transaction on ", + "voting_weight": "Peso de votação", "waitFewSecondForTxUpdate": "Aguarde alguns segundos para que a transação seja refletida no histórico de transações", "waiting_payment_confirmation": "Aguardando confirmação de pagamento", "wallet_keys": "Semente/chaves da carteira", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 5e75631c66..b049ab8434 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Сумма должна быть больше или равна ${minAmount} ${fiatCurrency}", "more_options": "Дополнительные параметры", "name": "Имя", + "nano_current_rep": "Нынешний представитель", + "nano_pick_new_rep": "Выберите нового представителя", "narrow": "Узкий", "new_first_wallet_text": "Легко сохранить свою криптовалюту в безопасности", "new_node_testing": "Тестирование новой ноды", @@ -466,6 +468,8 @@ "remove_node": "Удалить ноду", "remove_node_message": "Вы уверены, что хотите удалить текущую ноду?", "rename": "Переименовать", + "rep_warning": "Представительное предупреждение", + "rep_warning_sub": "Ваш представитель, похоже, не в хорошей репутации. Нажмите здесь, чтобы выбрать новый", "require_for_adding_contacts": "Требовать добавления контактов", "require_for_all_security_and_backup_settings": "Требовать все настройки безопасности и резервного копирования", "require_for_assessing_wallet": "Требовать для доступа к кошельку", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "Сведения о неизрасходованных монетах", "unspent_coins_title": "Неизрасходованные монеты", "unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов.", + "uptime": "Время безотказной работы", "upto": "до ${value}", "use": "Использовать ", "use_card_info_three": "Используйте цифровую карту онлайн или с помощью бесконтактных способов оплаты.", @@ -759,6 +764,7 @@ "view_key_private": "Приватный ключ просмотра", "view_key_public": "Публичный ключ просмотра", "view_transaction_on": "View Transaction on ", + "voting_weight": "Вес голоса", "waitFewSecondForTxUpdate": "Пожалуйста, подождите несколько секунд, чтобы транзакция отразилась в истории транзакций.", "wallet_keys": "Мнемоническая фраза/ключи кошелька", "wallet_list_create_new_wallet": "Создать новый кошелёк", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index c8183c031f..eebcaf4e55 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "มูลค่าของจำนวนต้องมากกว่าหรือเท่ากับ ${minAmount} ${fiatCurrency}", "more_options": "ตัวเลือกเพิ่มเติม", "name": "ชื่อ", + "nano_current_rep": "ตัวแทนปัจจุบัน", + "nano_pick_new_rep": "เลือกตัวแทนใหม่", "narrow": "แคบ", "new_first_wallet_text": "ทำให้สกุลเงินดิจิตอลของคุณปลอดภัยได้อย่างง่ายดาย", "new_node_testing": "การทดสอบโหนดใหม่", @@ -465,6 +467,8 @@ "remove_node": "ลบโหนด", "remove_node_message": "คุณแน่ใจหรือว่าต้องการลบโหนดที่เลือก?", "rename": "เปลี่ยนชื่อ", + "rep_warning": "คำเตือนตัวแทน", + "rep_warning_sub": "ตัวแทนของคุณดูเหมือนจะไม่อยู่ในสถานะที่ดี แตะที่นี่เพื่อเลือกอันใหม่", "require_for_adding_contacts": "ต้องการสำหรับการเพิ่มผู้ติดต่อ", "require_for_all_security_and_backup_settings": "จำเป็นสำหรับการตั้งค่าความปลอดภัยและการสำรองข้อมูลทั้งหมด", "require_for_assessing_wallet": "จำเป็นสำหรับการเข้าถึงกระเป๋าเงิน", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "รายละเอียดเหรียญที่ไม่ได้ใช้", "unspent_coins_title": "เหรียญที่ไม่ได้ใช้", "unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ", + "uptime": "เวลาทำงาน", "upto": "สูงสุด ${value}", "use": "สลับไปที่ ", "use_card_info_three": "ใช้บัตรดิจิตอลออนไลน์หรือผ่านวิธีการชำระเงินแบบไม่ต้องใช้บัตรกระดาษ", @@ -758,6 +763,7 @@ "view_key_private": "คีย์มุมมอง (ส่วนตัว)", "view_key_public": "คีย์มุมมอง (สาธารณะ)", "view_transaction_on": "ดูการทำธุรกรรมบน ", + "voting_weight": "น้ำหนักโหวต", "waitFewSecondForTxUpdate": "กรุณารอสักครู่เพื่อให้ธุรกรรมปรากฏในประวัติการทำธุรกรรม", "wallet_keys": "ซีดของกระเป๋า/คีย์", "wallet_list_create_new_wallet": "สร้างกระเป๋าใหม่", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index def38820ca..1e85e5fb96 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Ang halaga ng halaga ay dapat na higit pa o katumbas ng ${minAmount} ${fiatCurrency}", "more_options": "Higit pang mga pagpipilian", "name": "Pangalan", + "nano_current_rep": "Kasalukuyang kinatawan", + "nano_pick_new_rep": "Pumili ng isang bagong kinatawan", "narrow": "Makitid", "new_first_wallet_text": "Panatilihing ligtas ang iyong crypto, piraso ng cake", "new_node_testing": "Bagong pagsubok sa node", @@ -465,6 +467,8 @@ "remove_node": "Alisin ang node", "remove_node_message": "Sigurado ka bang nais mong alisin ang napiling node?", "rename": "Palitan ang pangalan", + "rep_warning": "Babala ng kinatawan", + "rep_warning_sub": "Ang iyong kinatawan ay hindi lilitaw na nasa mabuting kalagayan. Tapikin dito upang pumili ng bago", "require_for_adding_contacts": "Nangangailangan para sa pagdaragdag ng mga contact", "require_for_all_security_and_backup_settings": "Nangangailangan para sa lahat ng mga setting ng seguridad at backup", "require_for_assessing_wallet": "Nangangailangan para sa pag -access ng pitaka", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Mga Detalye ng Unspent Coins", "unspent_coins_title": "Unspent barya", "unsupported_asset": "Hindi namin sinusuportahan ang pagkilos na ito para sa asset na ito. Mangyaring lumikha o lumipat sa isang pitaka ng isang suportadong uri ng pag -aari.", + "uptime": "Uptime", "upto": "Hanggang sa ${value}", "use": "Lumipat sa", "use_card_info_three": "Gamitin ang digital card online o sa mga pamamaraan ng pagbabayad na walang contact.", @@ -758,6 +763,7 @@ "view_key_private": "Tingnan ang Key (Pribado)", "view_key_public": "Tingnan ang Key (Publiko)", "view_transaction_on": "Tingnan ang transaksyon sa", + "voting_weight": "Bigat ng pagboto", "waitFewSecondForTxUpdate": "Mangyaring maghintay ng ilang segundo para makita ang transaksyon sa history ng mga transaksyon", "wallet_keys": "Mga buto/susi ng pitaka", "wallet_list_create_new_wallet": "Lumikha ng bagong pitaka", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 111ff91f4f..73a9116719 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Tutar ${minAmount} ${fiatCurrency} miktarına eşit veya daha fazla olmalıdır", "more_options": "Daha Fazla Seçenek", "name": "İsim", + "nano_current_rep": "Mevcut temsilci", + "nano_pick_new_rep": "Yeni bir temsilci seçin", "narrow": "Dar", "new_first_wallet_text": "Kripto para biriminizi kolayca güvende tutun", "new_node_testing": "Yeni düğüm test ediliyor", @@ -465,6 +467,8 @@ "remove_node": "Düğümü kaldır", "remove_node_message": "Seçili düğümü kaldırmak istediğinden emin misin?", "rename": "Yeniden adlandır", + "rep_warning": "Temsilci uyarı", + "rep_warning_sub": "Temsilciniz iyi durumda görünmüyor. Yeni bir tane seçmek için buraya dokunun", "require_for_adding_contacts": "Kişi eklemek için gerekli", "require_for_all_security_and_backup_settings": "Tüm güvenlik ve yedekleme ayarları için iste", "require_for_assessing_wallet": "Cüzdana erişmek için gerekli", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "Harcanmamış koin detayları", "unspent_coins_title": "Harcanmamış koinler", "unsupported_asset": "Bu öğe için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türünde bir cüzdan oluşturun veya cüzdana geçiş yapın.", + "uptime": "Çalışma süresi", "upto": "Şu miktara kadar: ${value}", "use": "Şuna geç: ", "use_card_info_three": "Dijital kartı çevrimiçi olarak veya temassız ödeme yöntemleriyle kullanın.", @@ -758,6 +763,7 @@ "view_key_private": "İzleme anahtarı (özel)", "view_key_public": "İzleme anahtarı (genel)", "view_transaction_on": "İşlemi şurada görüntüle ", + "voting_weight": "Oy kullanma", "waitFewSecondForTxUpdate": "İşlemin işlem geçmişine yansıması için lütfen birkaç saniye bekleyin", "wallet_keys": "Cüzdan tohumu/anahtarları", "wallet_list_create_new_wallet": "Yeni Cüzdan Oluştur", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index a0000418db..c38d2918ab 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "Значення суми має бути більшим або дорівнювати ${minAmount} ${fiatCurrency}", "more_options": "Більше параметрів", "name": "Ім'я", + "nano_current_rep": "Поточний представник", + "nano_pick_new_rep": "Виберіть нового представника", "narrow": "вузькі", "new_first_wallet_text": "Легко зберігайте свою криптовалюту в безпеці", "new_node_testing": "Тестування нового вузла", @@ -466,6 +468,8 @@ "remove_node": "Видалити вузол", "remove_node_message": "Ви впевнені, що хочете видалити поточний вузол?", "rename": "Перейменувати", + "rep_warning": "Представницьке попередження", + "rep_warning_sub": "Ваш представник, схоже, не має доброго становища. Торкніться тут, щоб вибрати новий", "require_for_adding_contacts": "Потрібен для додавання контактів", "require_for_all_security_and_backup_settings": "Вимагати всіх налаштувань безпеки та резервного копіювання", "require_for_assessing_wallet": "Потрібен доступ до гаманця", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "Відомості про невитрачені монети", "unspent_coins_title": "Невитрачені монети", "unsupported_asset": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів.", + "uptime": "Час роботи", "upto": "до ${value}", "use": "Використати ", "use_card_info_three": "Використовуйте цифрову картку онлайн або за допомогою безконтактних методів оплати.", @@ -759,6 +764,7 @@ "view_key_private": "Приватний ключ перегляду", "view_key_public": "Публічний ключ перегляду", "view_transaction_on": "View Transaction on ", + "voting_weight": "Вага голосування", "waitFewSecondForTxUpdate": "Будь ласка, зачекайте кілька секунд, поки транзакція відобразиться в історії транзакцій", "wallet_keys": "Мнемонічна фраза/ключі гаманця", "wallet_list_create_new_wallet": "Створити новий гаманець", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index a7d4b896d6..de9a4eb4cb 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔", "more_options": "مزید زرائے", "name": "ﻡﺎﻧ", + "nano_current_rep": "موجودہ نمائندہ", + "nano_pick_new_rep": "ایک نیا نمائندہ منتخب کریں", "narrow": "تنگ", "new_first_wallet_text": "آسانی سے اپنے cryptocurrency محفوظ رکھیں", "new_node_testing": "نیا نوڈ ٹیسٹنگ", @@ -467,6 +469,8 @@ "remove_node": "نوڈ کو ہٹا دیں۔", "remove_node_message": "کیا آپ واقعی منتخب نوڈ کو ہٹانا چاہتے ہیں؟", "rename": "نام تبدیل کریں۔", + "rep_warning": "نمائندہ انتباہ", + "rep_warning_sub": "آپ کا نمائندہ اچھ standing ے مقام پر نہیں دکھائی دیتا ہے۔ نیا منتخب کرنے کے لئے یہاں ٹیپ کریں", "require_for_adding_contacts": "رابطوں کو شامل کرنے کی ضرورت ہے۔", "require_for_all_security_and_backup_settings": "تمام سیکورٹی اور بیک اپ کی ترتیبات کے لیے درکار ہے۔", "require_for_assessing_wallet": "بٹوے تک رسائی کے لیے درکار ہے۔", @@ -744,6 +748,7 @@ "unspent_coins_details_title": "غیر خرچ شدہ سککوں کی تفصیلات", "unspent_coins_title": "غیر خرچ شدہ سکے ۔", "unsupported_asset": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ", + "uptime": "اپ ٹائم", "upto": "${value} تک", "use": "تبدیل کرنا", "use_card_info_three": "ڈیجیٹل کارڈ آن لائن یا کنٹیکٹ لیس ادائیگی کے طریقوں کے ساتھ استعمال کریں۔", @@ -760,6 +765,7 @@ "view_key_private": "کلید دیکھیں (نجی)", "view_key_public": "کلید دیکھیں (عوامی)", "view_transaction_on": "لین دین دیکھیں آن", + "voting_weight": "ووٹ کا وزن", "waitFewSecondForTxUpdate": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮉﻨﮑﯿﺳ ﺪﻨﭼ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﯽﺳﺎﮑﻋ ﯽﮐ ﻦﯾﺩ ﻦﯿﻟ ﮟﯿﻣ ﺦﯾﺭﺎﺗ ﯽﮐ ﻦ", "wallet_keys": "بٹوے کے بیج / چابیاں", "wallet_list_create_new_wallet": "نیا والیٹ بنائیں", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 9ac0339179..9a84c86c4e 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -358,6 +358,8 @@ "moonpay_alert_text": "Iye owó kò gbọ́dọ̀ kéré ju ${minAmount} ${fiatCurrency}", "more_options": "Ìyàn àfikún", "name": "Oruko", + "nano_current_rep": "Aṣoju lọwọlọwọ", + "nano_pick_new_rep": "Mu aṣoju tuntun kan", "narrow": "Taara", "new_first_wallet_text": "Ni rọọrun jẹ ki o jẹ ki o jẹ ki o jẹ ki a mu", "new_node_testing": "A ń dán apẹka títun wò", @@ -466,6 +468,8 @@ "remove_node": "Yọ apẹka kúrò", "remove_node_message": "Ṣé ó da yín lójú pé ẹ fẹ́ yọ apẹka lọwọ́ kúrò?", "rename": "Pààrọ̀ orúkọ", + "rep_warning": "Ikilọ aṣoju", + "rep_warning_sub": "Aṣoju rẹ ko han lati wa ni iduro to dara. Fọwọ ba ibi lati yan ọkan titun kan", "require_for_adding_contacts": "Beere fun fifi awọn olubasọrọ kun", "require_for_all_security_and_backup_settings": "Beere fun gbogbo aabo ati awọn eto afẹyinti", "require_for_assessing_wallet": "Beere fun wiwọle si apamọwọ", @@ -743,6 +747,7 @@ "unspent_coins_details_title": "Àwọn owó ẹyọ t'á kò tí ì san", "unspent_coins_title": "Àwọn owó ẹyọ t'á kò tí ì san", "unsupported_asset": "A ko ṣe atilẹyin iṣẹ yii fun dukia yii. Jọwọ ṣẹda tabi yipada si apamọwọ iru dukia atilẹyin.", + "uptime": "Iduro", "upto": "kò tóbi ju ${value}", "use": "Lo", "use_card_info_three": "Ẹ lo káàdí ayélujára lórí wẹ́ẹ̀bù tàbí ẹ lò ó lórí àwọn ẹ̀rọ̀ ìrajà tíwọn kò kò.", @@ -759,6 +764,7 @@ "view_key_private": "Kọ́kọ́rọ́ ìwò (àdáni)", "view_key_public": "Kọ́kọ́rọ́ ìwò (kò àdáni)", "view_transaction_on": "Wo pàṣípààrọ̀ lórí ", + "voting_weight": "Idibo iwuwo", "waitFewSecondForTxUpdate": "Fi inurere duro fun awọn iṣeju diẹ fun idunadura lati ṣe afihan ninu itan-akọọlẹ iṣowo", "wallet_keys": "Hóró/kọ́kọ́rọ́ àpamọ́wọ́", "wallet_list_create_new_wallet": "Ṣe àpamọ́wọ́ títun", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 26bb1b2864..1c568174d6 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -357,6 +357,8 @@ "moonpay_alert_text": "金额的价值必须大于或等于 ${minAmount} ${fiatCurrency}", "more_options": "更多选项", "name": "姓名", + "nano_current_rep": "当前代表", + "nano_pick_new_rep": "选择新代表", "narrow": "狭窄的", "new_first_wallet_text": "轻松确保您的加密货币安全", "new_node_testing": "新节点测试", @@ -465,6 +467,8 @@ "remove_node": "删除节点", "remove_node_message": "您确定要删除所选节点吗?", "rename": "重命名", + "rep_warning": "代表性警告", + "rep_warning_sub": "您的代表似乎并不信誉良好。点击这里选择一个新的", "require_for_adding_contacts": "需要添加联系人", "require_for_all_security_and_backup_settings": "需要所有安全和备份设置", "require_for_assessing_wallet": "需要访问钱包", @@ -742,6 +746,7 @@ "unspent_coins_details_title": "未使用代幣詳情", "unspent_coins_title": "未使用的硬幣", "unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。", + "uptime": "正常运行时间", "upto": "最高 ${value}", "use": "切换使用", "use_card_info_three": "在线使用电子卡或使用非接触式支付方式。", @@ -758,6 +763,7 @@ "view_key_private": "View 密钥(私钥)", "view_key_public": "View 密钥(公钥)", "view_transaction_on": "View Transaction on ", + "voting_weight": "投票权重", "waitFewSecondForTxUpdate": "请等待几秒钟,交易才会反映在交易历史记录中", "wallet_keys": "钱包种子/密钥", "wallet_list_create_new_wallet": "创建新钱包", diff --git a/tool/configure.dart b/tool/configure.dart index 06243e8aba..6ee84d63a2 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -795,6 +795,7 @@ import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/output_info.dart'; import 'package:cw_core/nano_account_info_response.dart'; +import 'package:cw_core/n2_node.dart'; import 'package:mobx/mobx.dart'; import 'package:hive/hive.dart'; import 'package:cake_wallet/view_model/send/output.dart'; @@ -853,6 +854,8 @@ abstract class Nano { Future updateTransactions(Object wallet); BigInt getTransactionAmountRaw(TransactionInfo transactionInfo); String getRepresentative(Object wallet); + Future> getN2Reps(Object wallet); + bool isRepOk(Object wallet); } abstract class NanoAccountList { From 1769db1641c37aa6d829bb0270c6d72ed78b3fb8 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 12 Apr 2024 16:01:21 +0200 Subject: [PATCH 053/157] Generic Fixes (#1373) * Fix exchanges not showing * Fix button text on Monero receive screen * Temp fix for ERC20 and SPL tokens not having raw value * Manually Add Trocador new providers temporarily until API integration * properly handle nullability of n2 node [skip ci] --------- Co-authored-by: tuxsudo --- cw_core/lib/n2_node.dart | 2 +- cw_core/lib/wallet_addresses.dart | 3 ++- .../provider/trocador_exchange_provider.dart | 12 +++++++++++- lib/view_model/send/send_view_model.dart | 8 +++++--- .../wallet_address_list_view_model.dart | 4 ---- scripts/ios/app_env.sh | 4 ++-- 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/cw_core/lib/n2_node.dart b/cw_core/lib/n2_node.dart index 0fad9d1b53..a2eb6e4d3e 100644 --- a/cw_core/lib/n2_node.dart +++ b/cw_core/lib/n2_node.dart @@ -14,7 +14,7 @@ class N2Node { String? alias; factory N2Node.fromJson(Map json) => N2Node( - weight: double.tryParse((json['weight'] as num).toString()), + weight: double.tryParse((json['weight'] as num?).toString()), uptime: json['uptime'] as String?, score: json['score'] as int?, account: json['rep_address'] as String?, diff --git a/cw_core/lib/wallet_addresses.dart b/cw_core/lib/wallet_addresses.dart index a2a2a50a36..e987b5d0ed 100644 --- a/cw_core/lib/wallet_addresses.dart +++ b/cw_core/lib/wallet_addresses.dart @@ -41,5 +41,6 @@ abstract class WalletAddresses { } } - bool containsAddress(String address) => allAddressesMap.containsKey(address); + bool containsAddress(String address) => + addressesMap.containsKey(address) || allAddressesMap.containsKey(address); } diff --git a/lib/exchange/provider/trocador_exchange_provider.dart b/lib/exchange/provider/trocador_exchange_provider.dart index 3265730164..688bf15c9e 100644 --- a/lib/exchange/provider/trocador_exchange_provider.dart +++ b/lib/exchange/provider/trocador_exchange_provider.dart @@ -32,7 +32,17 @@ class TrocadorExchangeProvider extends ExchangeProvider { 'Exolix', 'Godex', 'Exch', - 'CoinCraddle' + 'CoinCraddle', + 'Alfacash', + 'LocalMonero', + 'XChange', + 'NeroSwap', + 'Changee', + 'BitcoinVN', + 'EasyBit', + 'WizardSwap', + 'Quantex', + 'SwapSpace', ]; static const List _notSupported = [ diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 28cd0128f2..038301db4e 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -156,10 +156,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return priority; } - int? getCustomPriorityIndex(List priorities) { if (wallet.type == WalletType.bitcoin) { - final customItem = priorities.firstWhereOrNull((element) => element == bitcoin!.getBitcoinTransactionPriorityCustom()); + final customItem = priorities + .firstWhereOrNull((element) => element == bitcoin!.getBitcoinTransactionPriorityCustom()); return customItem != null ? priorities.indexOf(customItem) : null; } @@ -503,7 +503,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor address = output.address; } - if (address.isNotEmpty && !contactAddresses.contains(address)) { + if (address.isNotEmpty && + !contactAddresses.contains(address) && + selectedCryptoCurrency.raw != -1) { return ContactRecord( contactListViewModel.contactSource, Contact( diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index a2aab5251f..20980f5f0c 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -213,10 +213,6 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo return S.current.addresses; } - if (isAutoGenerateSubaddressEnabled) { - return hasAccounts ? S.current.accounts : S.current.account; - } - return hasAccounts ? S.current.accounts_subaddresses : S.current.addresses; } diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 7e4f214ab9..61f690c0b5 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.3" -CAKEWALLET_BUILD_NUMBER=221 +CAKEWALLET_VERSION="4.16.0" +CAKEWALLET_BUILD_NUMBER=226 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" From 953c278f8c168377ead1fb92aeefaea3dfe71feb Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 15 Apr 2024 23:49:11 +0200 Subject: [PATCH 054/157] Update versions (#1380) --- assets/text/Monerocom_Release_Notes.txt | 4 ++-- assets/text/Release_Notes.txt | 13 +++++++------ scripts/android/app_env.sh | 8 ++++---- scripts/ios/app_env.sh | 8 ++++---- scripts/macos/app_env.sh | 8 ++++---- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index e6aab2dda6..09092a8df4 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1,2 @@ -Exchange flow enhancements and fixes -Generic enhancements and bug fixes \ No newline at end of file +UI enhancements +Bug fixes \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index b32cd539de..69a5145c90 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,6 +1,7 @@ -Exchange flow enhancements and fixes -Add MoonPay to Buy options -Add THORChain to Exchange providers -Improve Bitcoin fee calculations -Fixes and enhancements for Solana -Generic enhancements and bug fixes \ No newline at end of file +Add Replace-By-Fee to boost pending Bitcoin transactions +Enable WalletConnect for Solana +WalletConnect Enhancements +Enhancements for ERC-20 tokens and Solana tokens +Enhancements for Nano wallet +UI enhancements +Bug fixes \ No newline at end of file diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 8387c1d1f4..ca65345c8f 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.1" -MONERO_COM_BUILD_NUMBER=80 +MONERO_COM_VERSION="1.12.2" +MONERO_COM_BUILD_NUMBER=81 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.15.3" -CAKEWALLET_BUILD_NUMBER=202 +CAKEWALLET_VERSION="4.15.4" +CAKEWALLET_BUILD_NUMBER=203 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 61f690c0b5..b2a92f7964 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.1" -MONERO_COM_BUILD_NUMBER=77 +MONERO_COM_VERSION="1.12.2" +MONERO_COM_BUILD_NUMBER=78 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.16.0" -CAKEWALLET_BUILD_NUMBER=226 +CAKEWALLET_VERSION="4.15.4" +CAKEWALLET_BUILD_NUMBER=227 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 1242945a6b..c600bfffc1 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.2.1" -MONERO_COM_BUILD_NUMBER=11 +MONERO_COM_VERSION="1.2.2" +MONERO_COM_BUILD_NUMBER=12 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.3" -CAKEWALLET_BUILD_NUMBER=61 +CAKEWALLET_VERSION="1.8.4" +CAKEWALLET_BUILD_NUMBER=62 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From fb9534a0e929ecbd61a52d1294f6e5aef05285e6 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Mon, 15 Apr 2024 15:45:40 -0700 Subject: [PATCH 055/157] service status button updates (#1388) * service status button updates * small fix * update wording --- lib/src/screens/dashboard/dashboard_page.dart | 8 +++--- .../desktop_sidebar_wrapper.dart | 5 +++- lib/src/widgets/services_updates_widget.dart | 27 ++++++++++++++++++- res/values/strings_ar.arb | 2 ++ res/values/strings_bg.arb | 2 ++ res/values/strings_cs.arb | 2 ++ res/values/strings_de.arb | 2 ++ res/values/strings_en.arb | 2 ++ res/values/strings_es.arb | 2 ++ res/values/strings_fr.arb | 2 ++ res/values/strings_ha.arb | 2 ++ res/values/strings_hi.arb | 2 ++ res/values/strings_hr.arb | 2 ++ res/values/strings_id.arb | 2 ++ res/values/strings_it.arb | 2 ++ res/values/strings_ja.arb | 2 ++ res/values/strings_ko.arb | 2 ++ res/values/strings_my.arb | 2 ++ res/values/strings_nl.arb | 2 ++ res/values/strings_pl.arb | 2 ++ res/values/strings_pt.arb | 2 ++ res/values/strings_ru.arb | 2 ++ res/values/strings_th.arb | 2 ++ res/values/strings_tl.arb | 2 ++ res/values/strings_tr.arb | 2 ++ res/values/strings_uk.arb | 2 ++ res/values/strings_ur.arb | 2 ++ res/values/strings_yo.arb | 2 ++ res/values/strings_zh.arb | 2 ++ 29 files changed, 86 insertions(+), 6 deletions(-) diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index ed06f47040..820e94928a 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -106,10 +106,10 @@ class _DashboardPageView extends BasePage { Widget leading(BuildContext context) { return Observer( builder: (context) { - if (dashboardViewModel.isEnabledBulletinAction) { - return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); - } - return const SizedBox(); + return ServicesUpdatesWidget( + dashboardViewModel.getServicesStatus(), + enabled: dashboardViewModel.isEnabledBulletinAction, + ); }, ); } diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart index d0ddb19e64..7ba169154f 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart @@ -107,7 +107,10 @@ class DesktopSidebarWrapper extends BasePage { : unselectedIconPath, ), SideMenuItem( - widget: ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()), + widget: ServicesUpdatesWidget( + dashboardViewModel.getServicesStatus(), + enabled: dashboardViewModel.isEnabledBulletinAction, + ), isSelected: desktopSidebarViewModel.currentPage == SidebarItem.status, onTap: () {}, ), diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index d094caf7f6..5d56e967d5 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -1,10 +1,13 @@ import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/service_status.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/service_status_tile.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -12,8 +15,9 @@ import 'package:url_launcher/url_launcher.dart'; class ServicesUpdatesWidget extends StatefulWidget { final Future servicesResponse; + final bool enabled; - const ServicesUpdatesWidget(this.servicesResponse, {super.key}); + const ServicesUpdatesWidget(this.servicesResponse, {super.key, required this.enabled}); @override State createState() => _ServicesUpdatesWidgetState(); @@ -24,6 +28,27 @@ class _ServicesUpdatesWidgetState extends State { @override Widget build(BuildContext context) { + if (!widget.enabled) { + return InkWell( + onTap: () async { + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.current.service_health_disabled, + alertContent: S.current.service_health_disabled_message, + buttonText: S.current.ok, + buttonAction: () => Navigator.of(context).pop(), + ); + }); + }, + child: SvgPicture.asset( + "assets/images/notification_icon.svg", + color: Theme.of(context).extension()!.pageTitleTextColor, + width: 30, + ), + ); + } return Padding( padding: const EdgeInsets.all(8.0), child: FutureBuilder( diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index f5b2dd5dda..15b9712fc1 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -583,6 +583,8 @@ "send_your_wallet": "محفظتك", "sending": "يتم الإرسال", "sent": "تم الأرسال", + "service_health_disabled": "تم تعطيل نشرة صحة الخدمة", + "service_health_disabled_message": "هذه هي صفحة نشرة صحة الخدمة ، يمكنك تمكين هذه الصفحة ضمن الإعدادات -> الخصوصية", "settings": "إعدادات", "settings_all": "الكل", "settings_allow_biometrical_authentication": "السماح بالمصادقة البيومترية", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 511a04e395..d479bd57d7 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Вашият портфейл", "sending": "Изпращане", "sent": "Изпратени", + "service_health_disabled": "Service Health Bulletin е деактивиран", + "service_health_disabled_message": "Това е страницата на Bulletin на Service Health, можете да активирате тази страница в Настройки -> Поверителност", "settings": "Настройки", "settings_all": "Всичко", "settings_allow_biometrical_authentication": "Позволяване на биометрично удостоверяване.", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8457de560a..547c926afd 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Vaše peněženka", "sending": "Odesílání", "sent": "Odesláno", + "service_health_disabled": "Bulletin zdraví služeb je deaktivován", + "service_health_disabled_message": "Toto je stránka Bulletin Service Health Bulletin, můžete tuto stránku povolit v rámci nastavení -> Ochrana osobních údajů", "settings": "Nastavení", "settings_all": "VŠE", "settings_allow_biometrical_authentication": "Povolit biometrické ověření", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 7caf82efa8..97f2ccdc2c 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -584,6 +584,8 @@ "send_your_wallet": "Ihre Wallet", "sending": "Senden", "sent": "Versendet", + "service_health_disabled": "Service Health Bulletin ist behindert", + "service_health_disabled_message": "Dies ist die Seite \"Service Health Bulletin\", können Sie diese Seite unter Einstellungen -> Privatsphäre aktivieren", "settings": "Einstellungen", "settings_all": "ALLE", "settings_allow_biometrical_authentication": "Biometrische Authentifizierung zulassen", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index e75bda358e..60de404fd1 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Your wallet", "sending": "Sending", "sent": "Sent", + "service_health_disabled": "Service Health Bulletin is disabled", + "service_health_disabled_message": "This is the service health bulletin page, you can enable this page under Settings -> Privacy", "settings": "Settings", "settings_all": "ALL", "settings_allow_biometrical_authentication": "Allow biometrical authentication", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index c8a56bc66c..60cac3a8c1 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -584,6 +584,8 @@ "send_your_wallet": "Tu billetera", "sending": "Enviando", "sent": "Expedido", + "service_health_disabled": "El boletín de salud del servicio está deshabilitado", + "service_health_disabled_message": "Esta es la página del Boletín de Salud del Servicio, puede habilitar esta página en Configuración -> Privacidad", "settings": "Configuraciones", "settings_all": "TODOS", "settings_allow_biometrical_authentication": "Permitir autenticación biométrica", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index bbd2bde2bd..691c481c16 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Votre portefeuille (wallet)", "sending": "Envoi", "sent": "Envoyés", + "service_health_disabled": "Le bulletin de santé du service est handicapé", + "service_health_disabled_message": "Ceci est la page du Bulletin de santé du service, vous pouvez activer cette page sous Paramètres -> Confidentialité", "settings": "Paramètres", "settings_all": "TOUT", "settings_allow_biometrical_authentication": "Autoriser l'authentification biométrique", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index a38f04fa40..f310f67f39 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -585,6 +585,8 @@ "send_your_wallet": "Walat ɗin ku", "sending": "Aika", "sent": "Aika", + "service_health_disabled": "Ba a kashe Bayar da Kiwon Lafiya", + "service_health_disabled_message": "Wannan shafin yanar gizo mai kula da sabis ne, zaka iya kunna wannan shafin a karkashin saiti -> Sirri", "settings": "Saiti", "settings_all": "DUK", "settings_allow_biometrical_authentication": "Bada izinin tantance sawun yatsa", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 0131baa8b6..671c7a7659 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -585,6 +585,8 @@ "send_your_wallet": "आपका बटुआ", "sending": "भेजना", "sent": "भेज दिया", + "service_health_disabled": "सेवा स्वास्थ्य बुलेटिन अक्षम है", + "service_health_disabled_message": "यह सेवा स्वास्थ्य बुलेटिन पृष्ठ है, आप इस पृष्ठ को सेटिंग्स के तहत सक्षम कर सकते हैं -> गोपनीयता", "settings": "समायोजन", "settings_all": "सब", "settings_allow_biometrical_authentication": "बायोमेट्रिक प्रमाणीकरण की अनुमति दें", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index af53376cdd..67e25d59a3 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Tvoj novčanik", "sending": "Slanje", "sent": "Poslano", + "service_health_disabled": "Zdravstveni bilten usluge je onemogućen", + "service_health_disabled_message": "Ovo je stranica zdravstvenog biltena o usluzi, možete omogućiti ovu stranicu pod postavkama -> privatnost", "settings": "Postavke", "settings_all": "SVE", "settings_allow_biometrical_authentication": "Dopusti biometrijsku autentifikaciju", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 0e0beb57ed..cca6f9b2ac 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -586,6 +586,8 @@ "send_your_wallet": "Dompetmu", "sending": "Mengirim", "sent": "Dikirim", + "service_health_disabled": "Buletin Kesehatan Layanan dinonaktifkan", + "service_health_disabled_message": "Ini adalah halaman Buletin Kesehatan Layanan, Anda dapat mengaktifkan halaman ini di bawah Pengaturan -> Privasi", "settings": "Pengaturan", "settings_all": "SEMUA", "settings_allow_biometrical_authentication": "Izinkan otentikasi biometrik", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index c73fa70809..4e04c0498d 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -585,6 +585,8 @@ "send_your_wallet": "Il tuo portafoglio", "sending": "Invio", "sent": "Inviato", + "service_health_disabled": "Il Bollettino sanitario di servizio è disabilitato", + "service_health_disabled_message": "Questa è la pagina del Bollettino sanitario del servizio, è possibile abilitare questa pagina in Impostazioni -> Privacy", "settings": "Impostazioni", "settings_all": "TUTTO", "settings_allow_biometrical_authentication": "Consenti autenticazione biometrica", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 65f2642d7a..b3aa527d6d 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -584,6 +584,8 @@ "send_your_wallet": "あなたの財布", "sending": "送信", "sent": "送信済み", + "service_health_disabled": "サービスヘルス速報は無効です", + "service_health_disabled_message": "これはService Health Bulletinページです。設定の下でこのページを有効にすることができます - >プライバシー", "settings": "設定", "settings_all": "すべて", "settings_allow_biometrical_authentication": "生体認証を許可する", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index e9fab7d6fa..6c5800614f 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -584,6 +584,8 @@ "send_your_wallet": "지갑", "sending": "배상", "sent": "보냄", + "service_health_disabled": "서비스 건강 게시판이 장애가되었습니다", + "service_health_disabled_message": "이것은 서비스 건강 게시판 페이지입니다. 설정 에서이 페이지를 활성화 할 수 있습니다 -> 개인 정보", "settings": "설정", "settings_all": "모든", "settings_allow_biometrical_authentication": "생체 인증 허용", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index fb3832f05f..96f141eae1 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -583,6 +583,8 @@ "send_your_wallet": "သင့်ပိုက်ဆံအိတ်", "sending": "ပေးပို့ခြင်း။", "sent": "ပို့လိုက်ပါတယ်။", + "service_health_disabled": "ဝန်ဆောင်မှုကျန်းမာရေးစာစောင်အားပိတ်ထားသည်", + "service_health_disabled_message": "ဤသည်မှာ 0 န်ဆောင်မှုကျန်းမာရေးစာစောင်စာမျက်နှာတွင်ဤစာမျက်နှာကို Settings အောက်တွင်ဖွင့်ထားနိုင်သည်", "settings": "ဆက်တင်များ", "settings_all": "အားလုံး", "settings_allow_biometrical_authentication": "ဇီဝဗေဒဆိုင်ရာ အထောက်အထားစိစစ်ခြင်းကို ခွင့်ပြုပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 0db2f4ebf1..1ce17f706f 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Uw portemonnee", "sending": "Bezig met verzenden", "sent": "Verzonden", + "service_health_disabled": "Service Health Bulletin is uitgeschakeld", + "service_health_disabled_message": "Dit is de Service Health Bulletin -pagina, u kunt deze pagina instellingen inschakelen -> Privacy", "settings": "Instellingen", "settings_all": "ALLE", "settings_allow_biometrical_authentication": "Biometrische authenticatie toestaan", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 3c5e9024e9..f48ad5ddef 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Twój portfel", "sending": "Wysyłanie", "sent": "Wysłano", + "service_health_disabled": "Biuletyn zdrowia usług jest wyłączony", + "service_health_disabled_message": "To jest strona Biuletynu Zdrowie Service, możesz włączyć tę stronę w Ustawieniach -> Prywatność", "settings": "Ustawienia", "settings_all": "Wszystkie", "settings_allow_biometrical_authentication": "Zezwalaj na uwierzytelnianie biometryczne", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index e8ac0af2e8..15cc9f01e4 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -585,6 +585,8 @@ "send_your_wallet": "Sua carteira", "sending": "Enviando", "sent": "Enviada", + "service_health_disabled": "O Boletim de Saúde de Serviço está desativado", + "service_health_disabled_message": "Esta é a página do Boletim de Saúde de Serviço, você pode ativar esta página em Configurações -> Privacidade", "settings": "Configurações", "settings_all": "Tudo", "settings_allow_biometrical_authentication": "Permitir autenticação biométrica", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index b049ab8434..ac0fac2baa 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -584,6 +584,8 @@ "send_your_wallet": "Ваш кошелёк", "sending": "Отправка", "sent": "Отправленные", + "service_health_disabled": "Бюллетень для здоровья обслуживания инвалид", + "service_health_disabled_message": "Это страница бюллетени обслуживания услуг, вы можете включить эту страницу в соответствии с настройками -> Конфиденциальность", "settings": "Настройки", "settings_all": "ВСЕ", "settings_allow_biometrical_authentication": "Включить биометрическую аутентификацию", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index eebcaf4e55..7030f6f7fa 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -583,6 +583,8 @@ "send_your_wallet": "กระเป๋าของคุณ", "sending": "กำลังส่ง", "sent": "ส่ง", + "service_health_disabled": "Service Health Bulletin ถูกปิดใช้งาน", + "service_health_disabled_message": "นี่คือหน้า Service Health Bulletin คุณสามารถเปิดใช้งานหน้านี้ภายใต้การตั้งค่า -> ความเป็นส่วนตัว", "settings": "การตั้งค่า", "settings_all": "ทั้งหมด", "settings_allow_biometrical_authentication": "อนุญาตให้ใช้การยืนยันตัวตนทางระบบชีวภาพ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 1e85e5fb96..05a363baca 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Iyong pitaka", "sending": "Pagpapadala", "sent": "Ipinadala", + "service_health_disabled": "Hindi pinagana ang Bulletin ng Serbisyo sa Kalusugan", + "service_health_disabled_message": "Ito ang pahina ng Bulletin ng Serbisyo ng Bulletin, maaari mong paganahin ang pahinang ito sa ilalim ng Mga Setting -> Pagkapribado", "settings": "Mga setting", "settings_all": "Lahat", "settings_allow_biometrical_authentication": "Payagan ang pagpapatunay ng biometrical", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 73a9116719..ce342df2f3 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -583,6 +583,8 @@ "send_your_wallet": "Cüzdanın", "sending": "Gönderiliyor", "sent": "Gönderildi", + "service_health_disabled": "Service Health Bülten devre dışı bırakıldı", + "service_health_disabled_message": "Bu Hizmet Sağlığı Bülten Sayfası, bu sayfayı Ayarlar -> Gizlilik altında etkinleştirebilirsiniz", "settings": "ayarlar", "settings_all": "HEPSİ", "settings_allow_biometrical_authentication": "Biyometrik doğrulamaya izin ver", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index c38d2918ab..4afd47fe29 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -584,6 +584,8 @@ "send_your_wallet": "Ваш гаманець", "sending": "Відправлення", "sent": "Відправлені", + "service_health_disabled": "Вісник охорони здоров'я інвалідів", + "service_health_disabled_message": "Це сторінка бюлетеня Health Service, ви можете включити цю сторінку в налаштуваннях -> конфіденційність", "settings": "Налаштування", "settings_all": "ВСІ", "settings_allow_biometrical_authentication": "Включити біометричну аутентифікацію", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index de9a4eb4cb..fac066ace7 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -585,6 +585,8 @@ "send_your_wallet": "آپ کا بٹوہ", "sending": "بھیج رہا ہے۔", "sent": "بھیجا", + "service_health_disabled": "سروس ہیلتھ بلیٹن غیر فعال ہے", + "service_health_disabled_message": "یہ سروس ہیلتھ بلیٹن پیج ہے ، آپ اس صفحے کو ترتیبات کے تحت اہل بنا سکتے ہیں -> رازداری", "settings": "ترتیبات", "settings_all": "تمام", "settings_allow_biometrical_authentication": "بایومیٹریکل تصدیق کی اجازت دیں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 9a84c86c4e..1f131f3d99 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -584,6 +584,8 @@ "send_your_wallet": "Àpamọ́wọ́ yín", "sending": "Ó ń ránṣẹ́", "sent": "Owó t'á ti ránṣẹ́", + "service_health_disabled": "IPỌRỌ IWE TI AGBARA TI O LE RẸ", + "service_health_disabled_message": "Eyi ni oju-iwe Iwe itẹlera Iṣẹ Ile-iṣẹ Iṣẹ: O le mu oju-iwe yii ṣiṣẹ labẹ Eto -> Asiri", "settings": "Awọn aseṣe", "settings_all": "Gbogbo", "settings_allow_biometrical_authentication": "Fi àyè gba ìfẹ̀rílàdí biometrical", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 1c568174d6..10d11b2c0c 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -583,6 +583,8 @@ "send_your_wallet": "你的钱包", "sending": "正在发送", "sent": "已发送", + "service_health_disabled": "服务健康公告被禁用", + "service_health_disabled_message": "这是服务健康公告页面,您可以在设置 - >隐私下启用此页面", "settings": "设置", "settings_all": "全部", "settings_allow_biometrical_authentication": "允许生物识别认证", From a0820e8a7358fb25d304979fba1d9cfe0519925a Mon Sep 17 00:00:00 2001 From: Serhii Date: Tue, 16 Apr 2024 02:04:49 +0300 Subject: [PATCH 056/157] pull to refresh (#1389) --- lib/src/screens/dashboard/dashboard_page.dart | 21 ++++++++++++++----- .../dashboard/dashboard_view_model.dart | 4 ++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 820e94928a..52a4d8f611 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -51,14 +51,25 @@ class DashboardPage extends StatelessWidget { @override Widget build(BuildContext context) { + final screenHeight = MediaQuery.of(context).size.height; return Scaffold( body: Observer( builder: (_) { - final dashboardPageView = _DashboardPageView( - balancePage: balancePage, - bottomSheetService: bottomSheetService, - dashboardViewModel: dashboardViewModel, - addressListViewModel: addressListViewModel, + final dashboardPageView = RefreshIndicator( + displacement: screenHeight * 0.1, + onRefresh: () async => await dashboardViewModel.refreshDashboard(), + child: SingleChildScrollView( + physics: AlwaysScrollableScrollPhysics(), + child: Container( + height: screenHeight, + child: _DashboardPageView( + balancePage: balancePage, + bottomSheetService: bottomSheetService, + dashboardViewModel: dashboardViewModel, + addressListViewModel: addressListViewModel, + ), + ), + ), ); if (DeviceInfo.instance.isDesktop) { diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index ef43ddf40c..ef521c311c 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -547,4 +547,8 @@ abstract class DashboardViewModelBase with Store { return ServicesResponse([], false, ''); } } + + Future refreshDashboard() async { + reconnect(); + } } From 59d44e8c57e03180a694be303f22454d8df42fa2 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Tue, 16 Apr 2024 01:49:49 +0200 Subject: [PATCH 057/157] Generic enhancements (#1386) * Update versions * Show private key for electrum based wallets * update polyseed * fix webview page on desktop remove private keys temporarily from electrum * update versions --- .../dashboard/pages/transactions_page.dart | 18 +++++++++++++----- lib/view_model/wallet_keys_view_model.dart | 9 +++++++++ pubspec_base.yaml | 2 +- scripts/android/app_env.sh | 4 ++-- scripts/ios/app_env.sh | 4 ++-- scripts/macos/app_env.sh | 4 ++-- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/lib/src/screens/dashboard/pages/transactions_page.dart b/lib/src/screens/dashboard/pages/transactions_page.dart index c983b1c373..4691fa0caf 100644 --- a/lib/src/screens/dashboard/pages/transactions_page.dart +++ b/lib/src/screens/dashboard/pages/transactions_page.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/anonpay_transaction_ro import 'package:cake_wallet/src/screens/dashboard/widgets/order_row.dart'; import 'package:cake_wallet/themes/extensions/placeholder_theme.dart'; import 'package:cake_wallet/src/widgets/dashboard_card_widget.dart'; +import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/view_model/dashboard/anonpay_transaction_list_item.dart'; import 'package:cake_wallet/view_model/dashboard/order_list_item.dart'; @@ -20,6 +21,7 @@ import 'package:cake_wallet/view_model/dashboard/date_section_item.dart'; import 'package:intl/intl.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:url_launcher/url_launcher.dart'; class TransactionsPage extends StatelessWidget { TransactionsPage({required this.dashboardViewModel}); @@ -46,11 +48,17 @@ class TransactionsPage extends StatelessWidget { return Padding( padding: const EdgeInsets.fromLTRB(24, 0, 24, 8), child: DashBoardRoundedCardWidget( - onTap: () => Navigator.of(context).pushNamed(Routes.webViewPage, arguments: [ - '', - Uri.parse( - 'https://guides.cakewallet.com/docs/FAQ/why_are_my_funds_not_appearing/') - ]), + onTap: () { + try { + final uri = Uri.parse( + "https://guides.cakewallet.com/docs/FAQ/why_are_my_funds_not_appearing/"); + if (DeviceInfo.instance.isMobile) { + Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['', uri]); + } else { + launchUrl(uri); + } + } catch (_) {} + }, title: S.of(context).syncing_wallet_alert_title, subTitle: S.of(context).syncing_wallet_alert_content, ), diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index d88316a045..c33c855048 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cw_core/transaction_direction.dart'; @@ -103,7 +104,15 @@ abstract class WalletKeysViewModelBase with Store { if (_appStore.wallet!.type == WalletType.bitcoin || _appStore.wallet!.type == WalletType.litecoin || _appStore.wallet!.type == WalletType.bitcoinCash) { + // final keys = bitcoin!.getWalletKeys(_appStore.wallet!); + items.addAll([ + // if (keys['wif'] != null) + // StandartListItem(title: "WIF", value: keys['wif']!), + // if (keys['privateKey'] != null) + // StandartListItem(title: S.current.private_key, value: keys['privateKey']!), + // if (keys['publicKey'] != null) + // StandartListItem(title: S.current.public_key, value: keys['publicKey']!), StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), ]); } diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 0293df1d14..3ec3e79785 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -104,7 +104,7 @@ dependencies: # ref: main socks5_proxy: ^1.0.4 flutter_svg: ^2.0.9 - polyseed: ^0.0.2 + polyseed: ^0.0.4 nostr_tools: ^1.0.9 solana: ^0.30.1 bitcoin_base: diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index ca65345c8f..c55be89004 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -16,14 +16,14 @@ APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" MONERO_COM_VERSION="1.12.2" -MONERO_COM_BUILD_NUMBER=81 +MONERO_COM_BUILD_NUMBER=82 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.15.4" -CAKEWALLET_BUILD_NUMBER=203 +CAKEWALLET_BUILD_NUMBER=204 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index b2a92f7964..b9dc0e435e 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -14,12 +14,12 @@ APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" MONERO_COM_VERSION="1.12.2" -MONERO_COM_BUILD_NUMBER=78 +MONERO_COM_BUILD_NUMBER=79 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="4.15.4" -CAKEWALLET_BUILD_NUMBER=227 +CAKEWALLET_BUILD_NUMBER=228 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index c600bfffc1..42708f3e3d 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -17,12 +17,12 @@ fi MONERO_COM_NAME="Monero.com" MONERO_COM_VERSION="1.2.2" -MONERO_COM_BUILD_NUMBER=12 +MONERO_COM_BUILD_NUMBER=13 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="1.8.4" -CAKEWALLET_BUILD_NUMBER=62 +CAKEWALLET_BUILD_NUMBER=63 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From e6b4b08c24c1c2fb6987dcca233a3fee67c50d25 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Thu, 18 Apr 2024 10:00:24 -0700 Subject: [PATCH 058/157] version bump to 3.13.9, auth working on mac (#1367) * version bump to 3.13.9, auth working on mac * bump flutter version in workflow file * workflow fix * test fix * downgrade flutter version * test fix * test fix * update gradle version * fixes for updated dart version, localization file updates * remove accidental inclusion * missed some unimplemented throws --- .github/workflows/pr_test_build.yml | 2 +- android/build.gradle | 2 +- cw_bitcoin/pubspec.yaml | 5 +- cw_bitcoin_cash/pubspec.yaml | 5 +- cw_core/pubspec.yaml | 5 +- cw_ethereum/pubspec.yaml | 6 +- cw_evm/pubspec.yaml | 5 +- cw_haven/pubspec.yaml | 5 +- cw_monero/pubspec.yaml | 5 +- cw_nano/pubspec.yaml | 5 +- cw_polygon/pubspec.yaml | 5 +- cw_solana/pubspec.yaml | 5 +- lib/entities/biometric_auth.dart | 26 +- lib/locales/hausa_intl.dart | 64 ++ lib/locales/yoruba_intl.dart | 787 ++++++++++-------- .../settings/security_backup_page.dart | 4 +- lib/src/screens/settings/tor_page.dart | 4 +- .../validable_annotated_editable_text.dart | 14 +- lib/view_model/auth_view_model.dart | 15 +- pubspec_base.yaml | 2 +- pubspec_description.yaml | 2 +- 21 files changed, 567 insertions(+), 406 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index dc231df42d..bfa378342e 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -42,7 +42,7 @@ jobs: - name: Flutter action uses: subosito/flutter-action@v1 with: - flutter-version: "3.10.x" + flutter-version: "3.13.9" channel: stable - name: Install package dependencies diff --git a/android/build.gradle b/android/build.gradle index 8286d9cb93..e182e39afb 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.8.10' repositories { google() jcenter() diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 632a3140a6..1ccdb70c91 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -39,11 +39,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 37827f1bae..ceef539c39 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -39,10 +39,13 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 04a840d4e0..51d671dc7b 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -28,11 +28,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 649ec574b0..cbe6644a42 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -22,7 +22,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 + +dependency_overrides: + watcher: ^1.1.0 + flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index c202cc72a2..eaafb84155 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -27,11 +27,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 flutter_lints: ^2.0.0 +dependency_overrides: + watcher: ^1.1.0 + flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index c215ab779a..d868c986d8 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -24,11 +24,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 build_resolvers: ^2.0.9 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index a6fe7f9679..c49a541ab1 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -26,11 +26,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index a4b8732fdd..768c1bb4e1 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -32,10 +32,13 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index 505838d7c1..61a474002b 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -28,7 +28,10 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.1.11 + build_runner: ^2.4.7 + +dependency_overrides: + watcher: ^1.1.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index 7e24983bff..6b59282b42 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -26,10 +26,13 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/lib/entities/biometric_auth.dart b/lib/entities/biometric_auth.dart index febbfa4695..463a227752 100644 --- a/lib/entities/biometric_auth.dart +++ b/lib/entities/biometric_auth.dart @@ -1,32 +1,28 @@ -import 'package:local_auth/local_auth.dart'; import 'package:flutter/services.dart'; -import 'package:cake_wallet/generated/i18n.dart'; +import 'package:flutter_local_authentication/flutter_local_authentication.dart'; class BiometricAuth { - final _localAuth = LocalAuthentication(); + final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); Future isAuthenticated() async { try { - return await _localAuth.authenticate( - localizedReason: S.current.biometric_auth_reason, - options: AuthenticationOptions( - biometricOnly: true, - useErrorDialogs: true, - stickyAuth: false)); - } on PlatformException catch (e) { + final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); + return authenticated; + } catch (e) { print(e); } - return false; } Future canCheckBiometrics() async { + bool canAuthenticate; try { - return await _localAuth.canCheckBiometrics; - } on PlatformException catch (e) { - print(e); + canAuthenticate = await _flutterLocalAuthenticationPlugin.canAuthenticate(); + } catch (error) { + print("Exception checking support. $error"); + canAuthenticate = false; } - return false; + return canAuthenticate; } } diff --git a/lib/locales/hausa_intl.dart b/lib/locales/hausa_intl.dart index 749d39a4d5..6cf757b600 100644 --- a/lib/locales/hausa_intl.dart +++ b/lib/locales/hausa_intl.dart @@ -751,6 +751,50 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations { @override String get scrimOnTapHintRaw => "Scrip on Tap"; + + @override + // TODO: implement collapsedHint + String get collapsedHint => "collapsedHint"; + + @override + // TODO: implement expandedHint + String get expandedHint => "expandedHint"; + + @override + // TODO: implement expansionTileCollapsedHint + String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; + + @override + // TODO: implement expansionTileCollapsedTapHint + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; + + @override + // TODO: implement expansionTileExpandedHint + String get expansionTileExpandedHint => "expansionTileExpandedHint"; + + @override + // TODO: implement expansionTileExpandedTapHint + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; + + @override + // TODO: implement scanTextButtonLabel + String get scanTextButtonLabel => "scanTextButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -955,4 +999,24 @@ class HaCupertinoLocalizations extends GlobalCupertinoLocalizations { @override String get noSpellCheckReplacementsLabel => ""; + + @override + // TODO: implement clearButtonLabel + String get clearButtonLabel => "clearButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } diff --git a/lib/locales/yoruba_intl.dart b/lib/locales/yoruba_intl.dart index 889c21cb73..3c720b80e0 100644 --- a/lib/locales/yoruba_intl.dart +++ b/lib/locales/yoruba_intl.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter/cupertino.dart'; @@ -164,62 +163,62 @@ const yoDateSymbols = { 'ọjọ́ Àbámẹ́ta', ], 'STANDALONEWEEKDAYS': [ -'Ọjọ́ Ajé', -'Ọjọ́ Ìsẹ́gun', -'Ọjọ́ Ìsẹ́gun-Ẹtì', -'Ọjọ́ Ìsẹ́gun-Ọ̀rú', -'Ọjọ́ Àìkú', -'Ọjọ́ Jímọ̀', -'Ọjọ́ Àbámẹ́ta', -], -'SHORTWEEKDAYS': [ -'Ajé', -'Ìsẹ́gun', -'Ìsẹ́gun-Ẹtì', -'Ìsẹ́gun-Ọ̀rú', -'Àìkú', -'Jímọ̀', -'Àbámẹ́ta', -], -'STANDALONESHORTWEEKDAYS': [ -'Ajé', -'Ìsẹ́gun', -'Ìsẹ́gun-Ẹtì', -'Ìsẹ́gun-Ọ̀rú', -'Àìkú', -'Jímọ̀', -'Àbámẹ́ta', -], -'NARROWWEEKDAYS': [ -'A', -'A', -'Ì', -'A', -'À', -'J', -'À', -], -'STANDALONENARROWWEEKDAYS': [ -'A', -'A', -'Ì', -'A', -'À', -'J', -'À', -], -'SHORTQUARTERS': [ -'K1', -'K2', -'K3', -'K4', -], -'QUARTERS': [ -'1. kwata', -'2. kwata', -'3. kwata', -'4. kwata', -], + 'Ọjọ́ Ajé', + 'Ọjọ́ Ìsẹ́gun', + 'Ọjọ́ Ìsẹ́gun-Ẹtì', + 'Ọjọ́ Ìsẹ́gun-Ọ̀rú', + 'Ọjọ́ Àìkú', + 'Ọjọ́ Jímọ̀', + 'Ọjọ́ Àbámẹ́ta', + ], + 'SHORTWEEKDAYS': [ + 'Ajé', + 'Ìsẹ́gun', + 'Ìsẹ́gun-Ẹtì', + 'Ìsẹ́gun-Ọ̀rú', + 'Àìkú', + 'Jímọ̀', + 'Àbámẹ́ta', + ], + 'STANDALONESHORTWEEKDAYS': [ + 'Ajé', + 'Ìsẹ́gun', + 'Ìsẹ́gun-Ẹtì', + 'Ìsẹ́gun-Ọ̀rú', + 'Àìkú', + 'Jímọ̀', + 'Àbámẹ́ta', + ], + 'NARROWWEEKDAYS': [ + 'A', + 'A', + 'Ì', + 'A', + 'À', + 'J', + 'À', + ], + 'STANDALONENARROWWEEKDAYS': [ + 'A', + 'A', + 'Ì', + 'A', + 'À', + 'J', + 'À', + ], + 'SHORTQUARTERS': [ + 'K1', + 'K2', + 'K3', + 'K4', + ], + 'QUARTERS': [ + '1. kwata', + '2. kwata', + '3. kwata', + '4. kwata', + ], 'AMPMS': [ 'a.m.', 'p.m.', @@ -316,339 +315,339 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations { }); // #docregion Getters -@override -String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; + @override + String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; -@override -String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; + @override + String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; -@override -String get alertDialogLabel => r'Ìròhùn Àlàyé'; + @override + String get alertDialogLabel => r'Ìròhùn Àlàyé'; // #enddocregion Getters -@override -String get anteMeridiemAbbreviation => r'AM'; + @override + String get anteMeridiemAbbreviation => r'AM'; -@override -String get backButtonTooltip => r'Fíran'; + @override + String get backButtonTooltip => r'Fíran'; -@override -String get cancelButtonLabel => r'FAGILE'; + @override + String get cancelButtonLabel => r'FAGILE'; -@override -String get closeButtonLabel => r'KÚ'; + @override + String get closeButtonLabel => r'KÚ'; -@override -String get closeButtonTooltip => r'Kú'; + @override + String get closeButtonTooltip => r'Kú'; -@override -String get collapsedIconTapHint => r'Tá'; + @override + String get collapsedIconTapHint => r'Tá'; -@override -String get continueButtonLabel => r'TÓ WÁ'; + @override + String get continueButtonLabel => r'TÓ WÁ'; -@override -String get copyButtonLabel => r'DÚPLÍKÉTÍ'; + @override + String get copyButtonLabel => r'DÚPLÍKÉTÍ'; -@override -String get cutButtonLabel => r'TÒ'; + @override + String get cutButtonLabel => r'TÒ'; -@override -String get deleteButtonTooltip => r'Máa kú'; + @override + String get deleteButtonTooltip => r'Máa kú'; -@override -String get dialogLabel => r'Ìròhùn'; + @override + String get dialogLabel => r'Ìròhùn'; -@override -String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; + @override + String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; -@override -String get expandedIconTapHint => r'Tá'; + @override + String get expandedIconTapHint => r'Tá'; -@override -String get firstPageTooltip => r'Ojú ewe'; + @override + String get firstPageTooltip => r'Ojú ewe'; -@override -String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; + @override + String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; -@override -String get lastPageTooltip => r'Ojú ayé'; + @override + String get lastPageTooltip => r'Ojú ayé'; -@override -String get licensesPageTitle => r'Ìròhùn Ọdún'; + @override + String get licensesPageTitle => r'Ìròhùn Ọdún'; -@override -String get modalBarrierDismissLabel => r'Sọ'; + @override + String get modalBarrierDismissLabel => r'Sọ'; -@override -String get nextMonthTooltip => r'Oṣù kọja'; + @override + String get nextMonthTooltip => r'Oṣù kọja'; -@override -String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; + @override + String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; -@override -String get okButtonLabel => r'Ò daájú'; -@override + @override + String get okButtonLabel => r'Ò daájú'; + @override // A custom drawer tooltip message. -String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; + String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; // #docregion Raw -@override -String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; + @override + String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; -@override -String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; + @override + String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; // #enddocregion Raw -@override -String get pasteButtonLabel => r'TÌ'; + @override + String get pasteButtonLabel => r'TÌ'; -@override -String get popupMenuLabel => r'Meniu Pop-up'; + @override + String get popupMenuLabel => r'Meniu Pop-up'; -@override -String get menuBarMenuLabel => r'Meniu Akọkọ'; + @override + String get menuBarMenuLabel => r'Meniu Akọkọ'; -@override -String get postMeridiemAbbreviation => r'PM'; + @override + String get postMeridiemAbbreviation => r'PM'; -@override -String get previousMonthTooltip => r'Oṣu Kanakana'; + @override + String get previousMonthTooltip => r'Oṣu Kanakana'; -@override -String get previousPageTooltip => r'Ojú ewé akọkọ kan'; + @override + String get previousPageTooltip => r'Ojú ewé akọkọ kan'; -@override -String get refreshIndicatorSemanticLabel => r'Gbiyanju'; + @override + String get refreshIndicatorSemanticLabel => r'Gbiyanju'; -@override -String? get remainingTextFieldCharacterCountFew => null; + @override + String? get remainingTextFieldCharacterCountFew => null; -@override -String? get remainingTextFieldCharacterCountMany => null; + @override + String? get remainingTextFieldCharacterCountMany => null; -@override -String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; + @override + String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; -@override -String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; + @override + String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; -@override -String? get remainingTextFieldCharacterCountTwo => null; + @override + String? get remainingTextFieldCharacterCountTwo => null; -@override -String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; + @override + String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; -@override -String get reorderItemDown => r'Jù sí ilẹ'; + @override + String get reorderItemDown => r'Jù sí ilẹ'; -@override -String get reorderItemLeft => r'Jù sí àrà'; + @override + String get reorderItemLeft => r'Jù sí àrà'; -@override -String get reorderItemRight => r'Jù sí òtútù'; + @override + String get reorderItemRight => r'Jù sí òtútù'; -@override -String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; + @override + String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; -@override -String get reorderItemToStart => r'Jù sí àkọ́kọ́'; + @override + String get reorderItemToStart => r'Jù sí àkọ́kọ́'; -@override -String get reorderItemUp => r'Jù sí ọ̀rùn'; + @override + String get reorderItemUp => r'Jù sí ọ̀rùn'; -@override -String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; + @override + String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; -@override -ScriptCategory get scriptCategory => ScriptCategory.englishLike; + @override + ScriptCategory get scriptCategory => ScriptCategory.englishLike; -@override -String get searchFieldLabel => 'Ṣẹda'; + @override + String get searchFieldLabel => 'Ṣẹda'; -@override -String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; + @override + String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; -@override -String? get selectedRowCountTitleFew => null; + @override + String? get selectedRowCountTitleFew => null; -@override -String? get selectedRowCountTitleMany => null; + @override + String? get selectedRowCountTitleMany => null; -@override -String get selectedRowCountTitleOne => '1 káyé'; + @override + String get selectedRowCountTitleOne => '1 káyé'; -@override -String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; + @override + String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; -@override -String? get selectedRowCountTitleTwo => null; + @override + String? get selectedRowCountTitleTwo => null; -@override -String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; + @override + String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; -@override -String get showAccountsLabel => 'Fi iyipada mu kọ'; + @override + String get showAccountsLabel => 'Fi iyipada mu kọ'; -@override -String get showMenuTooltip => 'Fi Meniu mu kọ'; + @override + String get showMenuTooltip => 'Fi Meniu mu kọ'; -@override -String get signedInLabel => 'Ọ̀nà'; + @override + String get signedInLabel => 'Ọ̀nà'; -@override -String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; - @override -TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; + String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; -@override -String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; + @override + TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; -@override -String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; + @override + String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; -@override -String get viewLicensesButtonLabel => 'WO NIKI'; + @override + String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; -@override -List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; + @override + String get viewLicensesButtonLabel => 'WO NIKI'; -@override -int get firstDayOfWeekIndex => 0; + @override + List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; -static const LocalizationsDelegate delegate = -_YoMaterialLocalizationsDelegate(); + @override + int get firstDayOfWeekIndex => 0; -@override -String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; + static const LocalizationsDelegate delegate = + _YoMaterialLocalizationsDelegate(); -@override -String get dateHelpText => 'mm/dd/yyyy'; + @override + String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; -@override -String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; + @override + String get dateHelpText => 'mm/dd/yyyy'; -@override -String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; + @override + String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; -@override -String get datePickerHelpText => 'WÁSÍ'; + @override + String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; -@override -String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; + @override + String get datePickerHelpText => 'WÁSÍ'; -@override -String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; + @override + String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; -@override -String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; + @override + String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; -@override -String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; + @override + String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; -@override -String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; + @override + String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; -@override -String get dateSeparator => '/'; + @override + String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; -@override -String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; + @override + String get dateSeparator => '/'; -@override -String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; + @override + String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; -@override -String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; + @override + String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; -@override -String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; + @override + String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; -@override -String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; + @override + String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; -@override -String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; + @override + String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; -@override -String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; + @override + String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; -@override -String get saveButtonLabel => 'TÙN DÁRA'; + @override + String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; -@override -String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; + @override + String get saveButtonLabel => 'TÙN DÁRA'; -@override -String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; + @override + String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; -@override -String get timePickerHourLabel => 'Wákàtì àṣà'; + @override + String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; -@override -String get timePickerInputHelpText => 'Shìgárà wákàtì'; + @override + String get timePickerHourLabel => 'Wákàtì àṣà'; -@override -String get timePickerMinuteLabel => 'Mìntì'; + @override + String get timePickerInputHelpText => 'Shìgárà wákàtì'; -@override -String get unspecifiedDate => 'Ọjọ̀kúnrin'; + @override + String get timePickerMinuteLabel => 'Mìntì'; -@override -String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; + @override + String get unspecifiedDate => 'Ọjọ̀kúnrin'; -@override -String get keyboardKeyAlt => 'Alt'; + @override + String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; -@override -String get keyboardKeyAltGraph => 'AltGraph'; + @override + String get keyboardKeyAlt => 'Alt'; -@override -String get keyboardKeyBackspace => 'Báckspàcè'; + @override + String get keyboardKeyAltGraph => 'AltGraph'; -@override -String get keyboardKeyCapsLock => 'Caps Lock'; + @override + String get keyboardKeyBackspace => 'Báckspàcè'; -@override -String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; + @override + String get keyboardKeyCapsLock => 'Caps Lock'; -@override -String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; + @override + String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; -@override -String get keyboardKeyControl => 'Kọ́ntírọ̀l'; + @override + String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; -@override -String get keyboardKeyDelete => 'Shápè'; + @override + String get keyboardKeyControl => 'Kọ́ntírọ̀l'; + + @override + String get keyboardKeyDelete => 'Shápè'; -@override -String get keyboardKeyEject => 'Èjẹ̀tì'; + @override + String get keyboardKeyEject => 'Èjẹ̀tì'; -@override -String get keyboardKeyEnd => 'Tàbí'; + @override + String get keyboardKeyEnd => 'Tàbí'; -@override -String get keyboardKeyEscape => 'Tòkè'; + @override + String get keyboardKeyEscape => 'Tòkè'; @override -String get keyboardKeyFn => 'Fn'; + String get keyboardKeyFn => 'Fn'; -@override -String get keyboardKeyHome => 'Ile'; + @override + String get keyboardKeyHome => 'Ile'; -@override -String get keyboardKeyInsert => 'Fi sori'; + @override + String get keyboardKeyInsert => 'Fi sori'; -@override -String get keyboardKeyMeta => 'Meta'; + @override + String get keyboardKeyMeta => 'Meta'; -@override -String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; + @override + String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; -@override -String get keyboardKeyMetaWindows => 'Windows'; + @override + String get keyboardKeyMetaWindows => 'Windows'; @override String get keyboardKeyNumLock => 'Num Lock'; @@ -751,6 +750,50 @@ String get keyboardKeyMetaWindows => 'Windows'; @override String get scrimOnTapHintRaw => "Scrip on Tap"; + + @override + // TODO: implement collapsedHint + String get collapsedHint => "collapsedHint"; + + @override + // TODO: implement expandedHint + String get expandedHint => "expandedHint"; + + @override + // TODO: implement expansionTileCollapsedHint + String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; + + @override + // TODO: implement expansionTileCollapsedTapHint + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; + + @override + // TODO: implement expansionTileExpandedHint + String get expansionTileExpandedHint => "expansionTileExpandedHint"; + + @override + // TODO: implement expansionTileExpandedTapHint + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; + + @override + // TODO: implement scanTextButtonLabel + String get scanTextButtonLabel => "scanTextButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -821,138 +864,158 @@ class YoCupertinoLocalizations extends GlobalCupertinoLocalizations { required super.singleDigitSecondFormat, }); -@override -String get alertDialogLabel => 'Àdàkárò'; + @override + String get alertDialogLabel => 'Àdàkárò'; -@override -String get anteMeridiemAbbreviation => 'AM'; + @override + String get anteMeridiemAbbreviation => 'AM'; -@override -String get copyButtonLabel => 'Kòpy'; + @override + String get copyButtonLabel => 'Kòpy'; -@override -String get cutButtonLabel => 'Kọ́t'; + @override + String get cutButtonLabel => 'Kọ́t'; -@override -String get datePickerDateOrderString => 'mdy'; + @override + String get datePickerDateOrderString => 'mdy'; -@override -String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; + @override + String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; -@override -String? get datePickerHourSemanticsLabelFew => null; + @override + String? get datePickerHourSemanticsLabelFew => null; -@override -String? get datePickerHourSemanticsLabelMany => null; + @override + String? get datePickerHourSemanticsLabelMany => null; -@override -String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; + @override + String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; -@override -String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; + @override + String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; -@override -String? get datePickerHourSemanticsLabelTwo => null; + @override + String? get datePickerHourSemanticsLabelTwo => null; -@override -String? get datePickerHourSemanticsLabelZero => null; + @override + String? get datePickerHourSemanticsLabelZero => null; -@override -String? get datePickerMinuteSemanticsLabelFew => null; + @override + String? get datePickerMinuteSemanticsLabelFew => null; -@override -String? get datePickerMinuteSemanticsLabelMany => null; + @override + String? get datePickerMinuteSemanticsLabelMany => null; -@override -String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; + @override + String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; -@override -String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; + @override + String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; -@override -String? get datePickerMinuteSemanticsLabelTwo => null; + @override + String? get datePickerMinuteSemanticsLabelTwo => null; -@override -String? get datePickerMinuteSemanticsLabelZero => null; + @override + String? get datePickerMinuteSemanticsLabelZero => null; -@override -String get modalBarrierDismissLabel => 'Búta'; + @override + String get modalBarrierDismissLabel => 'Búta'; -@override -String get pasteButtonLabel => 'Tẹ́ẹ́'; + @override + String get pasteButtonLabel => 'Tẹ́ẹ́'; -@override -String get postMeridiemAbbreviation => 'PM'; + @override + String get postMeridiemAbbreviation => 'PM'; -@override -String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; + @override + String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; -@override -String get selectAllButtonLabel => 'Fírànsé gbógbo'; + @override + String get selectAllButtonLabel => 'Fírànsé gbógbo'; -@override -String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; + @override + String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; -@override -String? get timerPickerHourLabelFew => null; + @override + String? get timerPickerHourLabelFew => null; -@override -String? get timerPickerHourLabelMany => null; + @override + String? get timerPickerHourLabelMany => null; -@override -String? get timerPickerHourLabelOne => 'òǹdì'; + @override + String? get timerPickerHourLabelOne => 'òǹdì'; -@override -String get timerPickerHourLabelOther => 'òǹdì'; + @override + String get timerPickerHourLabelOther => 'òǹdì'; -@override -String? get timerPickerHourLabelTwo => null; + @override + String? get timerPickerHourLabelTwo => null; -@override -String? get timerPickerHourLabelZero => null; + @override + String? get timerPickerHourLabelZero => null; -@override -String? get timerPickerMinuteLabelFew => null; + @override + String? get timerPickerMinuteLabelFew => null; -@override -String? get timerPickerMinuteLabelMany => null; + @override + String? get timerPickerMinuteLabelMany => null; -@override -String? get timerPickerMinuteLabelOne => 'wakati.'; + @override + String? get timerPickerMinuteLabelOne => 'wakati.'; -@override -String get timerPickerMinuteLabelOther => 'wakati.'; + @override + String get timerPickerMinuteLabelOther => 'wakati.'; -@override -String? get timerPickerMinuteLabelTwo => null; + @override + String? get timerPickerMinuteLabelTwo => null; -@override -String? get timerPickerMinuteLabelZero => null; + @override + String? get timerPickerMinuteLabelZero => null; -@override -String? get timerPickerSecondLabelFew => null; + @override + String? get timerPickerSecondLabelFew => null; -@override -String? get timerPickerSecondLabelMany => null; + @override + String? get timerPickerSecondLabelMany => null; -@override -String? get timerPickerSecondLabelOne => 'dákìkà.'; + @override + String? get timerPickerSecondLabelOne => 'dákìkà.'; -@override -String get timerPickerSecondLabelOther => 'dákìkà.'; + @override + String get timerPickerSecondLabelOther => 'dákìkà.'; -@override -String? get timerPickerSecondLabelTwo => null; + @override + String? get timerPickerSecondLabelTwo => null; -@override -String? get timerPickerSecondLabelZero => null; + @override + String? get timerPickerSecondLabelZero => null; -@override -String get todayLabel => 'Oyọ'; + @override + String get todayLabel => 'Oyọ'; static const LocalizationsDelegate delegate = _YoCupertinoLocalizationsDelegate(); @override String get noSpellCheckReplacementsLabel => ""; + + @override + // TODO: implement clearButtonLabel + String get clearButtonLabel => "clearButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index e559e9b157..1f0f58ad46 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/entities/pin_code_required_duration.dart'; import 'package:cake_wallet/routes.dart'; @@ -58,7 +60,7 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - if (DeviceInfo.instance.isMobile) + if (DeviceInfo.instance.isMobile || Platform.isMacOS || Platform.isLinux) Observer(builder: (_) { return SettingsSwitcherCell( title: S.current.settings_allow_biometrical_authentication, diff --git a/lib/src/screens/settings/tor_page.dart b/lib/src/screens/settings/tor_page.dart index ae1ef16772..2f544be356 100644 --- a/lib/src/screens/settings/tor_page.dart +++ b/lib/src/screens/settings/tor_page.dart @@ -146,7 +146,7 @@ class ConnectScreen extends StatelessWidget { ElevatedButton( onPressed: connect, style: ElevatedButton.styleFrom( - primary: Colors.blue, + // primary: Colors.blue, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), @@ -211,7 +211,7 @@ class DisconnectScreen extends StatelessWidget { ElevatedButton( onPressed: disconnect, style: ElevatedButton.styleFrom( - primary: Colors.red, + // primary: Colors.red, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), diff --git a/lib/src/widgets/validable_annotated_editable_text.dart b/lib/src/widgets/validable_annotated_editable_text.dart index 6c3fc4f160..7ea928d8a1 100644 --- a/lib/src/widgets/validable_annotated_editable_text.dart +++ b/lib/src/widgets/validable_annotated_editable_text.dart @@ -1,8 +1,14 @@ -import 'package:cake_wallet/core/seed_validator.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; -class Annotation extends Comparable { + +extension Compare on Comparable { + bool operator <=(T other) => compareTo(other) <= 0; + bool operator >=(T other) => compareTo(other) >= 0; + bool operator <(T other) => compareTo(other) < 0; + bool operator >(T other) => compareTo(other) > 0; +} + +class Annotation implements Comparable { Annotation({required this.range, required this.style}); final TextRange range; @@ -12,7 +18,7 @@ class Annotation extends Comparable { int compareTo(Annotation other) => range.start.compareTo(other.range.start); } -class TextAnnotation extends Comparable { +class TextAnnotation implements Comparable { TextAnnotation({required this.text, required this.style}); final TextStyle style; diff --git a/lib/view_model/auth_view_model.dart b/lib/view_model/auth_view_model.dart index e50f4db0cc..0e65908454 100644 --- a/lib/view_model/auth_view_model.dart +++ b/lib/view_model/auth_view_model.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter_local_authentication/flutter_local_authentication.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/view_model/auth_state.dart'; @@ -105,16 +106,14 @@ abstract class AuthViewModelBase with Store { @action Future biometricAuth() async { - try { - final canBiometricAuth = await _biometricAuth.canCheckBiometrics(); - - if (canBiometricAuth) { - final isAuthenticated = await _biometricAuth.isAuthenticated(); + final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); - if (isAuthenticated) { - state = ExecutedSuccessfullyState(); - } + try { + final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); + if (!authenticated) { + throw Exception('Biometric authentication failed'); } + state = ExecutedSuccessfullyState(); } catch (e) { state = FailureState(e.toString()); } diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 3ec3e79785..e1022864cf 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -33,8 +33,8 @@ dependencies: dio: ^4.0.6 hive: ^2.2.3 hive_flutter: ^1.1.0 - local_auth: ^2.1.0 local_auth_android: 1.0.21 + flutter_local_authentication: ^1.2.0 package_info: ^2.0.0 #package_info_plus: ^1.4.2 devicelocale: diff --git a/pubspec_description.yaml b/pubspec_description.yaml index ebb6bf001e..b51fe96d6f 100644 --- a/pubspec_description.yaml +++ b/pubspec_description.yaml @@ -4,4 +4,4 @@ version: 0.0.0 publish_to: none environment: - sdk: ">=2.17.5 <3.0.0" \ No newline at end of file + sdk: ">=3.1.0 <4.0.0" \ No newline at end of file From e48962361a71888cb1c25d75204359ab2a660686 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Thu, 18 Apr 2024 11:10:32 -0700 Subject: [PATCH 059/157] script updates and new run-android script (#1396) --- configure_cake_wallet.sh | 12 +----------- run-android.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100755 run-android.sh diff --git a/configure_cake_wallet.sh b/configure_cake_wallet.sh index cc55e8fcc9..837a002e9f 100755 --- a/configure_cake_wallet.sh +++ b/configure_cake_wallet.sh @@ -23,14 +23,4 @@ source ./app_env.sh cakewallet ./app_config.sh cd ../.. && flutter pub get flutter packages pub run tool/generate_localization.dart -cd cw_core && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_evm && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_monero && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -cd cw_ethereum && flutter pub get && cd .. -cd cw_polygon && flutter pub get && cd .. -flutter packages pub run build_runner build --delete-conflicting-outputs +./model_generator.sh diff --git a/run-android.sh b/run-android.sh new file mode 100755 index 0000000000..dd694267a1 --- /dev/null +++ b/run-android.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Get the current git branch +get_current_branch() { + if git rev-parse --git-dir > /dev/null 2>&1; then + branch=$(git rev-parse --abbrev-ref HEAD) + echo "$branch" + else + echo "Error: Not a git repository." + return 1 + fi +} + +# Update the app.properties file +update_app_properties() { + local branch=$1 + local file_path="./android/app.properties" + + sed -i "s/^id=.*/id=com.cakewallet.$branch/" "$file_path" + sed -i "s/^name=.*/name=$branch-Cake Wallet/" "$file_path" +} + +# only update app.properties if getting the current branch was successful +current_branch=$(get_current_branch) +if [[ $? -eq 0 ]]; then + update_app_properties "$current_branch" +fi + +# run the app +flutter run \ No newline at end of file From 4ed4659f9edfe60cbf063b6c10d0a1dc304d81e8 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 18 Apr 2024 20:10:58 +0200 Subject: [PATCH 060/157] Revert "version bump to 3.13.9, auth working on mac (#1367)" (#1397) This reverts commit e6b4b08c24c1c2fb6987dcca233a3fee67c50d25. --- .github/workflows/pr_test_build.yml | 2 +- android/build.gradle | 2 +- cw_bitcoin/pubspec.yaml | 5 +- cw_bitcoin_cash/pubspec.yaml | 5 +- cw_core/pubspec.yaml | 5 +- cw_ethereum/pubspec.yaml | 6 +- cw_evm/pubspec.yaml | 5 +- cw_haven/pubspec.yaml | 5 +- cw_monero/pubspec.yaml | 5 +- cw_nano/pubspec.yaml | 5 +- cw_polygon/pubspec.yaml | 5 +- cw_solana/pubspec.yaml | 5 +- lib/entities/biometric_auth.dart | 26 +- lib/locales/hausa_intl.dart | 64 -- lib/locales/yoruba_intl.dart | 787 ++++++++---------- .../settings/security_backup_page.dart | 4 +- lib/src/screens/settings/tor_page.dart | 4 +- .../validable_annotated_editable_text.dart | 14 +- lib/view_model/auth_view_model.dart | 15 +- pubspec_base.yaml | 2 +- pubspec_description.yaml | 2 +- 21 files changed, 406 insertions(+), 567 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index bfa378342e..dc231df42d 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -42,7 +42,7 @@ jobs: - name: Flutter action uses: subosito/flutter-action@v1 with: - flutter-version: "3.13.9" + flutter-version: "3.10.x" channel: stable - name: Install package dependencies diff --git a/android/build.gradle b/android/build.gradle index e182e39afb..8286d9cb93 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.8.10' + ext.kotlin_version = '1.7.10' repositories { google() jcenter() diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 1ccdb70c91..632a3140a6 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -39,14 +39,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index ceef539c39..37827f1bae 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -39,13 +39,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 51d671dc7b..04a840d4e0 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -28,14 +28,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index cbe6644a42..649ec574b0 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -22,11 +22,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 - -dependency_overrides: - watcher: ^1.1.0 - + build_runner: ^2.1.11 flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index eaafb84155..c202cc72a2 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -27,14 +27,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 flutter_lints: ^2.0.0 -dependency_overrides: - watcher: ^1.1.0 - flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index d868c986d8..c215ab779a 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -24,14 +24,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 mobx_codegen: ^2.0.7 build_resolvers: ^2.0.9 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index c49a541ab1..a6fe7f9679 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -26,14 +26,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index 768c1bb4e1..a4b8732fdd 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -32,13 +32,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.4.7 + build_runner: ^2.1.11 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index 61a474002b..505838d7c1 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -28,10 +28,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 - -dependency_overrides: - watcher: ^1.1.0 + build_runner: ^2.1.11 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index 6b59282b42..7e24983bff 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -26,13 +26,10 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.4.7 + build_runner: ^2.1.11 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - watcher: ^1.1.0 - flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/lib/entities/biometric_auth.dart b/lib/entities/biometric_auth.dart index 463a227752..febbfa4695 100644 --- a/lib/entities/biometric_auth.dart +++ b/lib/entities/biometric_auth.dart @@ -1,28 +1,32 @@ +import 'package:local_auth/local_auth.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_local_authentication/flutter_local_authentication.dart'; +import 'package:cake_wallet/generated/i18n.dart'; class BiometricAuth { - final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); + final _localAuth = LocalAuthentication(); Future isAuthenticated() async { try { - final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); - return authenticated; - } catch (e) { + return await _localAuth.authenticate( + localizedReason: S.current.biometric_auth_reason, + options: AuthenticationOptions( + biometricOnly: true, + useErrorDialogs: true, + stickyAuth: false)); + } on PlatformException catch (e) { print(e); } + return false; } Future canCheckBiometrics() async { - bool canAuthenticate; try { - canAuthenticate = await _flutterLocalAuthenticationPlugin.canAuthenticate(); - } catch (error) { - print("Exception checking support. $error"); - canAuthenticate = false; + return await _localAuth.canCheckBiometrics; + } on PlatformException catch (e) { + print(e); } - return canAuthenticate; + return false; } } diff --git a/lib/locales/hausa_intl.dart b/lib/locales/hausa_intl.dart index 6cf757b600..749d39a4d5 100644 --- a/lib/locales/hausa_intl.dart +++ b/lib/locales/hausa_intl.dart @@ -751,50 +751,6 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations { @override String get scrimOnTapHintRaw => "Scrip on Tap"; - - @override - // TODO: implement collapsedHint - String get collapsedHint => "collapsedHint"; - - @override - // TODO: implement expandedHint - String get expandedHint => "expandedHint"; - - @override - // TODO: implement expansionTileCollapsedHint - String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; - - @override - // TODO: implement expansionTileCollapsedTapHint - String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; - - @override - // TODO: implement expansionTileExpandedHint - String get expansionTileExpandedHint => "expansionTileExpandedHint"; - - @override - // TODO: implement expansionTileExpandedTapHint - String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; - - @override - // TODO: implement scanTextButtonLabel - String get scanTextButtonLabel => "scanTextButtonLabel"; - - @override - // TODO: implement lookUpButtonLabel - String get lookUpButtonLabel => "lookUpButtonLabel"; - - @override - // TODO: implement menuDismissLabel - String get menuDismissLabel => "menuDismissLabel"; - - @override - // TODO: implement searchWebButtonLabel - String get searchWebButtonLabel => "searchWebButtonLabel"; - - @override - // TODO: implement shareButtonLabel - String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -999,24 +955,4 @@ class HaCupertinoLocalizations extends GlobalCupertinoLocalizations { @override String get noSpellCheckReplacementsLabel => ""; - - @override - // TODO: implement clearButtonLabel - String get clearButtonLabel => "clearButtonLabel"; - - @override - // TODO: implement lookUpButtonLabel - String get lookUpButtonLabel => "lookUpButtonLabel"; - - @override - // TODO: implement menuDismissLabel - String get menuDismissLabel => "menuDismissLabel"; - - @override - // TODO: implement searchWebButtonLabel - String get searchWebButtonLabel => "searchWebButtonLabel"; - - @override - // TODO: implement shareButtonLabel - String get shareButtonLabel => "shareButtonLabel"; } diff --git a/lib/locales/yoruba_intl.dart b/lib/locales/yoruba_intl.dart index 3c720b80e0..889c21cb73 100644 --- a/lib/locales/yoruba_intl.dart +++ b/lib/locales/yoruba_intl.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/cupertino.dart'; @@ -163,62 +164,62 @@ const yoDateSymbols = { 'ọjọ́ Àbámẹ́ta', ], 'STANDALONEWEEKDAYS': [ - 'Ọjọ́ Ajé', - 'Ọjọ́ Ìsẹ́gun', - 'Ọjọ́ Ìsẹ́gun-Ẹtì', - 'Ọjọ́ Ìsẹ́gun-Ọ̀rú', - 'Ọjọ́ Àìkú', - 'Ọjọ́ Jímọ̀', - 'Ọjọ́ Àbámẹ́ta', - ], - 'SHORTWEEKDAYS': [ - 'Ajé', - 'Ìsẹ́gun', - 'Ìsẹ́gun-Ẹtì', - 'Ìsẹ́gun-Ọ̀rú', - 'Àìkú', - 'Jímọ̀', - 'Àbámẹ́ta', - ], - 'STANDALONESHORTWEEKDAYS': [ - 'Ajé', - 'Ìsẹ́gun', - 'Ìsẹ́gun-Ẹtì', - 'Ìsẹ́gun-Ọ̀rú', - 'Àìkú', - 'Jímọ̀', - 'Àbámẹ́ta', - ], - 'NARROWWEEKDAYS': [ - 'A', - 'A', - 'Ì', - 'A', - 'À', - 'J', - 'À', - ], - 'STANDALONENARROWWEEKDAYS': [ - 'A', - 'A', - 'Ì', - 'A', - 'À', - 'J', - 'À', - ], - 'SHORTQUARTERS': [ - 'K1', - 'K2', - 'K3', - 'K4', - ], - 'QUARTERS': [ - '1. kwata', - '2. kwata', - '3. kwata', - '4. kwata', - ], +'Ọjọ́ Ajé', +'Ọjọ́ Ìsẹ́gun', +'Ọjọ́ Ìsẹ́gun-Ẹtì', +'Ọjọ́ Ìsẹ́gun-Ọ̀rú', +'Ọjọ́ Àìkú', +'Ọjọ́ Jímọ̀', +'Ọjọ́ Àbámẹ́ta', +], +'SHORTWEEKDAYS': [ +'Ajé', +'Ìsẹ́gun', +'Ìsẹ́gun-Ẹtì', +'Ìsẹ́gun-Ọ̀rú', +'Àìkú', +'Jímọ̀', +'Àbámẹ́ta', +], +'STANDALONESHORTWEEKDAYS': [ +'Ajé', +'Ìsẹ́gun', +'Ìsẹ́gun-Ẹtì', +'Ìsẹ́gun-Ọ̀rú', +'Àìkú', +'Jímọ̀', +'Àbámẹ́ta', +], +'NARROWWEEKDAYS': [ +'A', +'A', +'Ì', +'A', +'À', +'J', +'À', +], +'STANDALONENARROWWEEKDAYS': [ +'A', +'A', +'Ì', +'A', +'À', +'J', +'À', +], +'SHORTQUARTERS': [ +'K1', +'K2', +'K3', +'K4', +], +'QUARTERS': [ +'1. kwata', +'2. kwata', +'3. kwata', +'4. kwata', +], 'AMPMS': [ 'a.m.', 'p.m.', @@ -315,339 +316,339 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations { }); // #docregion Getters - @override - String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; +@override +String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; - @override - String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; +@override +String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; - @override - String get alertDialogLabel => r'Ìròhùn Àlàyé'; +@override +String get alertDialogLabel => r'Ìròhùn Àlàyé'; // #enddocregion Getters - @override - String get anteMeridiemAbbreviation => r'AM'; +@override +String get anteMeridiemAbbreviation => r'AM'; - @override - String get backButtonTooltip => r'Fíran'; +@override +String get backButtonTooltip => r'Fíran'; - @override - String get cancelButtonLabel => r'FAGILE'; +@override +String get cancelButtonLabel => r'FAGILE'; - @override - String get closeButtonLabel => r'KÚ'; +@override +String get closeButtonLabel => r'KÚ'; - @override - String get closeButtonTooltip => r'Kú'; +@override +String get closeButtonTooltip => r'Kú'; - @override - String get collapsedIconTapHint => r'Tá'; +@override +String get collapsedIconTapHint => r'Tá'; - @override - String get continueButtonLabel => r'TÓ WÁ'; +@override +String get continueButtonLabel => r'TÓ WÁ'; - @override - String get copyButtonLabel => r'DÚPLÍKÉTÍ'; +@override +String get copyButtonLabel => r'DÚPLÍKÉTÍ'; - @override - String get cutButtonLabel => r'TÒ'; +@override +String get cutButtonLabel => r'TÒ'; - @override - String get deleteButtonTooltip => r'Máa kú'; +@override +String get deleteButtonTooltip => r'Máa kú'; - @override - String get dialogLabel => r'Ìròhùn'; +@override +String get dialogLabel => r'Ìròhùn'; - @override - String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; +@override +String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; - @override - String get expandedIconTapHint => r'Tá'; +@override +String get expandedIconTapHint => r'Tá'; - @override - String get firstPageTooltip => r'Ojú ewe'; +@override +String get firstPageTooltip => r'Ojú ewe'; - @override - String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; +@override +String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; - @override - String get lastPageTooltip => r'Ojú ayé'; +@override +String get lastPageTooltip => r'Ojú ayé'; - @override - String get licensesPageTitle => r'Ìròhùn Ọdún'; +@override +String get licensesPageTitle => r'Ìròhùn Ọdún'; - @override - String get modalBarrierDismissLabel => r'Sọ'; +@override +String get modalBarrierDismissLabel => r'Sọ'; - @override - String get nextMonthTooltip => r'Oṣù kọja'; +@override +String get nextMonthTooltip => r'Oṣù kọja'; - @override - String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; +@override +String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; - @override - String get okButtonLabel => r'Ò daájú'; - @override +@override +String get okButtonLabel => r'Ò daájú'; +@override // A custom drawer tooltip message. - String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; +String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; // #docregion Raw - @override - String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; +@override +String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; - @override - String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; +@override +String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; // #enddocregion Raw - @override - String get pasteButtonLabel => r'TÌ'; +@override +String get pasteButtonLabel => r'TÌ'; - @override - String get popupMenuLabel => r'Meniu Pop-up'; +@override +String get popupMenuLabel => r'Meniu Pop-up'; - @override - String get menuBarMenuLabel => r'Meniu Akọkọ'; +@override +String get menuBarMenuLabel => r'Meniu Akọkọ'; - @override - String get postMeridiemAbbreviation => r'PM'; +@override +String get postMeridiemAbbreviation => r'PM'; - @override - String get previousMonthTooltip => r'Oṣu Kanakana'; +@override +String get previousMonthTooltip => r'Oṣu Kanakana'; - @override - String get previousPageTooltip => r'Ojú ewé akọkọ kan'; +@override +String get previousPageTooltip => r'Ojú ewé akọkọ kan'; - @override - String get refreshIndicatorSemanticLabel => r'Gbiyanju'; +@override +String get refreshIndicatorSemanticLabel => r'Gbiyanju'; - @override - String? get remainingTextFieldCharacterCountFew => null; +@override +String? get remainingTextFieldCharacterCountFew => null; - @override - String? get remainingTextFieldCharacterCountMany => null; +@override +String? get remainingTextFieldCharacterCountMany => null; - @override - String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; +@override +String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; - @override - String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; +@override +String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; - @override - String? get remainingTextFieldCharacterCountTwo => null; +@override +String? get remainingTextFieldCharacterCountTwo => null; - @override - String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; +@override +String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; - @override - String get reorderItemDown => r'Jù sí ilẹ'; +@override +String get reorderItemDown => r'Jù sí ilẹ'; - @override - String get reorderItemLeft => r'Jù sí àrà'; +@override +String get reorderItemLeft => r'Jù sí àrà'; - @override - String get reorderItemRight => r'Jù sí òtútù'; +@override +String get reorderItemRight => r'Jù sí òtútù'; - @override - String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; +@override +String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; - @override - String get reorderItemToStart => r'Jù sí àkọ́kọ́'; +@override +String get reorderItemToStart => r'Jù sí àkọ́kọ́'; - @override - String get reorderItemUp => r'Jù sí ọ̀rùn'; +@override +String get reorderItemUp => r'Jù sí ọ̀rùn'; - @override - String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; +@override +String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; - @override - ScriptCategory get scriptCategory => ScriptCategory.englishLike; +@override +ScriptCategory get scriptCategory => ScriptCategory.englishLike; - @override - String get searchFieldLabel => 'Ṣẹda'; +@override +String get searchFieldLabel => 'Ṣẹda'; - @override - String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; +@override +String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; - @override - String? get selectedRowCountTitleFew => null; +@override +String? get selectedRowCountTitleFew => null; - @override - String? get selectedRowCountTitleMany => null; +@override +String? get selectedRowCountTitleMany => null; - @override - String get selectedRowCountTitleOne => '1 káyé'; +@override +String get selectedRowCountTitleOne => '1 káyé'; - @override - String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; +@override +String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; - @override - String? get selectedRowCountTitleTwo => null; +@override +String? get selectedRowCountTitleTwo => null; - @override - String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; +@override +String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; - @override - String get showAccountsLabel => 'Fi iyipada mu kọ'; +@override +String get showAccountsLabel => 'Fi iyipada mu kọ'; - @override - String get showMenuTooltip => 'Fi Meniu mu kọ'; +@override +String get showMenuTooltip => 'Fi Meniu mu kọ'; - @override - String get signedInLabel => 'Ọ̀nà'; +@override +String get signedInLabel => 'Ọ̀nà'; +@override +String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; + @override - String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; +TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; - @override - TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; +@override +String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; - @override - String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; +@override +String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; - @override - String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; +@override +String get viewLicensesButtonLabel => 'WO NIKI'; - @override - String get viewLicensesButtonLabel => 'WO NIKI'; +@override +List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; - @override - List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; +@override +int get firstDayOfWeekIndex => 0; - @override - int get firstDayOfWeekIndex => 0; +static const LocalizationsDelegate delegate = +_YoMaterialLocalizationsDelegate(); - static const LocalizationsDelegate delegate = - _YoMaterialLocalizationsDelegate(); +@override +String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; - @override - String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; +@override +String get dateHelpText => 'mm/dd/yyyy'; - @override - String get dateHelpText => 'mm/dd/yyyy'; +@override +String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; - @override - String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; +@override +String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; - @override - String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; +@override +String get datePickerHelpText => 'WÁSÍ'; - @override - String get datePickerHelpText => 'WÁSÍ'; +@override +String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; - @override - String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; +@override +String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; - @override - String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; +@override +String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; - @override - String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; +@override +String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; - @override - String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; +@override +String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; - @override - String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; +@override +String get dateSeparator => '/'; - @override - String get dateSeparator => '/'; +@override +String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; - @override - String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; +@override +String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; - @override - String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; +@override +String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; - @override - String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; +@override +String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; - @override - String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; +@override +String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; - @override - String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; +@override +String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; - @override - String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; +@override +String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; - @override - String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; +@override +String get saveButtonLabel => 'TÙN DÁRA'; - @override - String get saveButtonLabel => 'TÙN DÁRA'; +@override +String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; - @override - String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; +@override +String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; - @override - String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; +@override +String get timePickerHourLabel => 'Wákàtì àṣà'; - @override - String get timePickerHourLabel => 'Wákàtì àṣà'; +@override +String get timePickerInputHelpText => 'Shìgárà wákàtì'; - @override - String get timePickerInputHelpText => 'Shìgárà wákàtì'; +@override +String get timePickerMinuteLabel => 'Mìntì'; - @override - String get timePickerMinuteLabel => 'Mìntì'; +@override +String get unspecifiedDate => 'Ọjọ̀kúnrin'; - @override - String get unspecifiedDate => 'Ọjọ̀kúnrin'; +@override +String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; - @override - String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; +@override +String get keyboardKeyAlt => 'Alt'; - @override - String get keyboardKeyAlt => 'Alt'; +@override +String get keyboardKeyAltGraph => 'AltGraph'; - @override - String get keyboardKeyAltGraph => 'AltGraph'; +@override +String get keyboardKeyBackspace => 'Báckspàcè'; - @override - String get keyboardKeyBackspace => 'Báckspàcè'; +@override +String get keyboardKeyCapsLock => 'Caps Lock'; - @override - String get keyboardKeyCapsLock => 'Caps Lock'; +@override +String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; - @override - String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; +@override +String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; - @override - String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; +@override +String get keyboardKeyControl => 'Kọ́ntírọ̀l'; - @override - String get keyboardKeyControl => 'Kọ́ntírọ̀l'; - - @override - String get keyboardKeyDelete => 'Shápè'; +@override +String get keyboardKeyDelete => 'Shápè'; - @override - String get keyboardKeyEject => 'Èjẹ̀tì'; +@override +String get keyboardKeyEject => 'Èjẹ̀tì'; - @override - String get keyboardKeyEnd => 'Tàbí'; +@override +String get keyboardKeyEnd => 'Tàbí'; - @override - String get keyboardKeyEscape => 'Tòkè'; +@override +String get keyboardKeyEscape => 'Tòkè'; @override - String get keyboardKeyFn => 'Fn'; +String get keyboardKeyFn => 'Fn'; - @override - String get keyboardKeyHome => 'Ile'; +@override +String get keyboardKeyHome => 'Ile'; - @override - String get keyboardKeyInsert => 'Fi sori'; +@override +String get keyboardKeyInsert => 'Fi sori'; - @override - String get keyboardKeyMeta => 'Meta'; +@override +String get keyboardKeyMeta => 'Meta'; - @override - String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; +@override +String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; - @override - String get keyboardKeyMetaWindows => 'Windows'; +@override +String get keyboardKeyMetaWindows => 'Windows'; @override String get keyboardKeyNumLock => 'Num Lock'; @@ -750,50 +751,6 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations { @override String get scrimOnTapHintRaw => "Scrip on Tap"; - - @override - // TODO: implement collapsedHint - String get collapsedHint => "collapsedHint"; - - @override - // TODO: implement expandedHint - String get expandedHint => "expandedHint"; - - @override - // TODO: implement expansionTileCollapsedHint - String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; - - @override - // TODO: implement expansionTileCollapsedTapHint - String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; - - @override - // TODO: implement expansionTileExpandedHint - String get expansionTileExpandedHint => "expansionTileExpandedHint"; - - @override - // TODO: implement expansionTileExpandedTapHint - String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; - - @override - // TODO: implement scanTextButtonLabel - String get scanTextButtonLabel => "scanTextButtonLabel"; - - @override - // TODO: implement lookUpButtonLabel - String get lookUpButtonLabel => "lookUpButtonLabel"; - - @override - // TODO: implement menuDismissLabel - String get menuDismissLabel => "menuDismissLabel"; - - @override - // TODO: implement searchWebButtonLabel - String get searchWebButtonLabel => "searchWebButtonLabel"; - - @override - // TODO: implement shareButtonLabel - String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -864,158 +821,138 @@ class YoCupertinoLocalizations extends GlobalCupertinoLocalizations { required super.singleDigitSecondFormat, }); - @override - String get alertDialogLabel => 'Àdàkárò'; +@override +String get alertDialogLabel => 'Àdàkárò'; - @override - String get anteMeridiemAbbreviation => 'AM'; +@override +String get anteMeridiemAbbreviation => 'AM'; - @override - String get copyButtonLabel => 'Kòpy'; +@override +String get copyButtonLabel => 'Kòpy'; - @override - String get cutButtonLabel => 'Kọ́t'; +@override +String get cutButtonLabel => 'Kọ́t'; - @override - String get datePickerDateOrderString => 'mdy'; +@override +String get datePickerDateOrderString => 'mdy'; - @override - String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; +@override +String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; - @override - String? get datePickerHourSemanticsLabelFew => null; +@override +String? get datePickerHourSemanticsLabelFew => null; - @override - String? get datePickerHourSemanticsLabelMany => null; +@override +String? get datePickerHourSemanticsLabelMany => null; - @override - String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; +@override +String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; - @override - String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; +@override +String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; - @override - String? get datePickerHourSemanticsLabelTwo => null; +@override +String? get datePickerHourSemanticsLabelTwo => null; - @override - String? get datePickerHourSemanticsLabelZero => null; +@override +String? get datePickerHourSemanticsLabelZero => null; - @override - String? get datePickerMinuteSemanticsLabelFew => null; +@override +String? get datePickerMinuteSemanticsLabelFew => null; - @override - String? get datePickerMinuteSemanticsLabelMany => null; +@override +String? get datePickerMinuteSemanticsLabelMany => null; - @override - String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; +@override +String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; - @override - String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; +@override +String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; - @override - String? get datePickerMinuteSemanticsLabelTwo => null; +@override +String? get datePickerMinuteSemanticsLabelTwo => null; - @override - String? get datePickerMinuteSemanticsLabelZero => null; +@override +String? get datePickerMinuteSemanticsLabelZero => null; - @override - String get modalBarrierDismissLabel => 'Búta'; +@override +String get modalBarrierDismissLabel => 'Búta'; - @override - String get pasteButtonLabel => 'Tẹ́ẹ́'; +@override +String get pasteButtonLabel => 'Tẹ́ẹ́'; - @override - String get postMeridiemAbbreviation => 'PM'; +@override +String get postMeridiemAbbreviation => 'PM'; - @override - String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; +@override +String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; - @override - String get selectAllButtonLabel => 'Fírànsé gbógbo'; +@override +String get selectAllButtonLabel => 'Fírànsé gbógbo'; - @override - String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; +@override +String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; - @override - String? get timerPickerHourLabelFew => null; +@override +String? get timerPickerHourLabelFew => null; - @override - String? get timerPickerHourLabelMany => null; +@override +String? get timerPickerHourLabelMany => null; - @override - String? get timerPickerHourLabelOne => 'òǹdì'; +@override +String? get timerPickerHourLabelOne => 'òǹdì'; - @override - String get timerPickerHourLabelOther => 'òǹdì'; +@override +String get timerPickerHourLabelOther => 'òǹdì'; - @override - String? get timerPickerHourLabelTwo => null; +@override +String? get timerPickerHourLabelTwo => null; - @override - String? get timerPickerHourLabelZero => null; +@override +String? get timerPickerHourLabelZero => null; - @override - String? get timerPickerMinuteLabelFew => null; +@override +String? get timerPickerMinuteLabelFew => null; - @override - String? get timerPickerMinuteLabelMany => null; +@override +String? get timerPickerMinuteLabelMany => null; - @override - String? get timerPickerMinuteLabelOne => 'wakati.'; +@override +String? get timerPickerMinuteLabelOne => 'wakati.'; - @override - String get timerPickerMinuteLabelOther => 'wakati.'; +@override +String get timerPickerMinuteLabelOther => 'wakati.'; - @override - String? get timerPickerMinuteLabelTwo => null; +@override +String? get timerPickerMinuteLabelTwo => null; - @override - String? get timerPickerMinuteLabelZero => null; +@override +String? get timerPickerMinuteLabelZero => null; - @override - String? get timerPickerSecondLabelFew => null; +@override +String? get timerPickerSecondLabelFew => null; - @override - String? get timerPickerSecondLabelMany => null; +@override +String? get timerPickerSecondLabelMany => null; - @override - String? get timerPickerSecondLabelOne => 'dákìkà.'; +@override +String? get timerPickerSecondLabelOne => 'dákìkà.'; - @override - String get timerPickerSecondLabelOther => 'dákìkà.'; +@override +String get timerPickerSecondLabelOther => 'dákìkà.'; - @override - String? get timerPickerSecondLabelTwo => null; +@override +String? get timerPickerSecondLabelTwo => null; - @override - String? get timerPickerSecondLabelZero => null; +@override +String? get timerPickerSecondLabelZero => null; - @override - String get todayLabel => 'Oyọ'; +@override +String get todayLabel => 'Oyọ'; static const LocalizationsDelegate delegate = _YoCupertinoLocalizationsDelegate(); @override String get noSpellCheckReplacementsLabel => ""; - - @override - // TODO: implement clearButtonLabel - String get clearButtonLabel => "clearButtonLabel"; - - @override - // TODO: implement lookUpButtonLabel - String get lookUpButtonLabel => "lookUpButtonLabel"; - - @override - // TODO: implement menuDismissLabel - String get menuDismissLabel => "menuDismissLabel"; - - @override - // TODO: implement searchWebButtonLabel - String get searchWebButtonLabel => "searchWebButtonLabel"; - - @override - // TODO: implement shareButtonLabel - String get shareButtonLabel => "shareButtonLabel"; } diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index 1f0f58ad46..e559e9b157 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/entities/pin_code_required_duration.dart'; import 'package:cake_wallet/routes.dart'; @@ -60,7 +58,7 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - if (DeviceInfo.instance.isMobile || Platform.isMacOS || Platform.isLinux) + if (DeviceInfo.instance.isMobile) Observer(builder: (_) { return SettingsSwitcherCell( title: S.current.settings_allow_biometrical_authentication, diff --git a/lib/src/screens/settings/tor_page.dart b/lib/src/screens/settings/tor_page.dart index 2f544be356..ae1ef16772 100644 --- a/lib/src/screens/settings/tor_page.dart +++ b/lib/src/screens/settings/tor_page.dart @@ -146,7 +146,7 @@ class ConnectScreen extends StatelessWidget { ElevatedButton( onPressed: connect, style: ElevatedButton.styleFrom( - // primary: Colors.blue, + primary: Colors.blue, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), @@ -211,7 +211,7 @@ class DisconnectScreen extends StatelessWidget { ElevatedButton( onPressed: disconnect, style: ElevatedButton.styleFrom( - // primary: Colors.red, + primary: Colors.red, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), diff --git a/lib/src/widgets/validable_annotated_editable_text.dart b/lib/src/widgets/validable_annotated_editable_text.dart index 7ea928d8a1..6c3fc4f160 100644 --- a/lib/src/widgets/validable_annotated_editable_text.dart +++ b/lib/src/widgets/validable_annotated_editable_text.dart @@ -1,14 +1,8 @@ +import 'package:cake_wallet/core/seed_validator.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; - -extension Compare on Comparable { - bool operator <=(T other) => compareTo(other) <= 0; - bool operator >=(T other) => compareTo(other) >= 0; - bool operator <(T other) => compareTo(other) < 0; - bool operator >(T other) => compareTo(other) > 0; -} - -class Annotation implements Comparable { +class Annotation extends Comparable { Annotation({required this.range, required this.style}); final TextRange range; @@ -18,7 +12,7 @@ class Annotation implements Comparable { int compareTo(Annotation other) => range.start.compareTo(other.range.start); } -class TextAnnotation implements Comparable { +class TextAnnotation extends Comparable { TextAnnotation({required this.text, required this.style}); final TextStyle style; diff --git a/lib/view_model/auth_view_model.dart b/lib/view_model/auth_view_model.dart index 0e65908454..e50f4db0cc 100644 --- a/lib/view_model/auth_view_model.dart +++ b/lib/view_model/auth_view_model.dart @@ -1,6 +1,5 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:flutter_local_authentication/flutter_local_authentication.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/view_model/auth_state.dart'; @@ -106,14 +105,16 @@ abstract class AuthViewModelBase with Store { @action Future biometricAuth() async { - final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); - try { - final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); - if (!authenticated) { - throw Exception('Biometric authentication failed'); + final canBiometricAuth = await _biometricAuth.canCheckBiometrics(); + + if (canBiometricAuth) { + final isAuthenticated = await _biometricAuth.isAuthenticated(); + + if (isAuthenticated) { + state = ExecutedSuccessfullyState(); + } } - state = ExecutedSuccessfullyState(); } catch (e) { state = FailureState(e.toString()); } diff --git a/pubspec_base.yaml b/pubspec_base.yaml index e1022864cf..3ec3e79785 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -33,8 +33,8 @@ dependencies: dio: ^4.0.6 hive: ^2.2.3 hive_flutter: ^1.1.0 + local_auth: ^2.1.0 local_auth_android: 1.0.21 - flutter_local_authentication: ^1.2.0 package_info: ^2.0.0 #package_info_plus: ^1.4.2 devicelocale: diff --git a/pubspec_description.yaml b/pubspec_description.yaml index b51fe96d6f..ebb6bf001e 100644 --- a/pubspec_description.yaml +++ b/pubspec_description.yaml @@ -4,4 +4,4 @@ version: 0.0.0 publish_to: none environment: - sdk: ">=3.1.0 <4.0.0" \ No newline at end of file + sdk: ">=2.17.5 <3.0.0" \ No newline at end of file From 65799a8764b339c2db329400d74bd7462632e63d Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 24 Apr 2024 03:04:16 +0100 Subject: [PATCH 061/157] fix: Issue with the privateKey of Solana wallets being different accross various apps (#1400) --- cw_solana/lib/solana_wallet.dart | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index ad58c4293f..43a6d0b83f 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -27,6 +27,7 @@ import 'package:hex/hex.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:solana/base58.dart'; import 'package:solana/metaplex.dart' as metaplex; import 'package:solana/solana.dart'; @@ -108,7 +109,17 @@ abstract class SolanaWalletBase String? get seed => _mnemonic; @override - String get privateKey => HEX.encode(_keyPairData!.bytes); + String get privateKey { + final privateKeyBytes = _keyPairData!.bytes; + + final publicKeyBytes = _keyPairData!.publicKey.bytes; + + final encodedBytes = privateKeyBytes + publicKeyBytes; + + final privateKey = base58encode(encodedBytes); + + return privateKey; + } Future init() async { final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${SPLToken.boxName}"; @@ -135,8 +146,8 @@ abstract class SolanaWalletBase assert(mnemonic != null || privateKey != null); if (privateKey != null) { - final privateKeyBytes = HEX.decode(privateKey); - return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes); + final privateKeyBytes = base58decode(privateKey); + return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes.take(32).toList()); } return Wallet.fromMnemonic(mnemonic!, account: 0, change: 0); From dcfb2b2b730f27a849f0e866acba48517b821195 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Wed, 24 Apr 2024 17:00:53 -0700 Subject: [PATCH 062/157] fix empty string case (#1401) * bio auth mac fix * remove comment and change duration from 2 to 0 * cherry pick previous changes * fix empty string case * add support for path for all currency types * disable paths on electrum and monero nodes * undo mac auth changes * stuff I missed * 1 last thing * another thing I missed --- cw_bitcoin/pubspec.lock | 32 +++++++++----- cw_core/lib/node.dart | 6 +-- cw_core/pubspec.lock | 32 +++++++++----- cw_core/pubspec.yaml | 1 + cw_haven/pubspec.lock | 44 +++++++++++-------- cw_monero/example/pubspec.lock | 30 ++++++++----- cw_monero/pubspec.lock | 44 +++++++++++-------- cw_nano/pubspec.lock | 44 +++++++++++-------- lib/core/node_address_validator.dart | 6 ++- lib/entities/biometric_auth.dart | 2 +- lib/locales/yoruba_intl.dart | 2 +- lib/src/screens/nodes/widgets/node_form.dart | 26 ++++++----- .../validable_annotated_editable_text.dart | 2 +- lib/view_model/auth_view_model.dart | 2 +- .../node_create_or_edit_view_model.dart | 19 +++++++- 15 files changed, 182 insertions(+), 110 deletions(-) diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 3d828243c1..53cf550c86 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -217,10 +217,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -434,18 +434,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -663,10 +663,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -711,10 +711,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timing: dependency: transitive description: @@ -748,13 +748,21 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: transitive + dependency: "direct overridden" description: name: watcher sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -788,5 +796,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.0" diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index d7e91d6927..9d0806851e 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -10,7 +10,7 @@ import 'package:http/io_client.dart' as ioc; part 'node.g.dart'; -Uri createUriFromElectrumAddress(String address) => Uri.tryParse('tcp://$address')!; +Uri createUriFromElectrumAddress(String address, String path) => Uri.tryParse('tcp://$address$path')!; @HiveType(typeId: Node.typeId) class Node extends HiveObject with Keyable { @@ -83,7 +83,7 @@ class Node extends HiveObject with Keyable { case WalletType.bitcoin: case WalletType.litecoin: case WalletType.bitcoinCash: - return createUriFromElectrumAddress(uriRaw); + return createUriFromElectrumAddress(uriRaw, path ?? ''); case WalletType.nano: case WalletType.banano: if (isSSL) { @@ -94,7 +94,7 @@ class Node extends HiveObject with Keyable { case WalletType.ethereum: case WalletType.polygon: case WalletType.solana: - return Uri.https(uriRaw, ''); + return Uri.https(uriRaw, path ?? ''); default: throw Exception('Unexpected type ${type.toString()} for Node uri'); } diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index 678e57b54a..aef76f3009 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -343,18 +343,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -564,10 +564,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -612,10 +612,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timing: dependency: transitive description: @@ -641,13 +641,21 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: transitive + dependency: "direct overridden" description: name: watcher sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -681,5 +689,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.0" diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 04a840d4e0..36fe9967e0 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -33,6 +33,7 @@ dev_dependencies: mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_haven/pubspec.lock b/cw_haven/pubspec.lock index b0a350cc71..d845235391 100644 --- a/cw_haven/pubspec.lock +++ b/cw_haven/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.0" build_resolvers: dependency: "direct dev" description: @@ -85,10 +85,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.9" build_runner_core: dependency: transitive description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -350,18 +350,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -563,10 +563,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -611,10 +611,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timing: dependency: transitive description: @@ -640,13 +640,21 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: transitive + dependency: "direct overridden" description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -680,5 +688,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/cw_monero/example/pubspec.lock b/cw_monero/example/pubspec.lock index c9ca8d92b2..ece0d4395a 100644 --- a/cw_monero/example/pubspec.lock +++ b/cw_monero/example/pubspec.lock @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -213,18 +213,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -354,10 +354,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -394,10 +394,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" typed_data: dependency: transitive description: @@ -414,6 +414,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" win32: dependency: transitive description: @@ -431,5 +439,5 @@ packages: source: hosted version: "0.2.0+3" sdks: - dart: ">=3.0.6 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/cw_monero/pubspec.lock b/cw_monero/pubspec.lock index 0f8f2c90e6..b736f80cbb 100644 --- a/cw_monero/pubspec.lock +++ b/cw_monero/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.0" build_resolvers: dependency: "direct dev" description: @@ -85,10 +85,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.9" build_runner_core: dependency: transitive description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -366,18 +366,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -587,10 +587,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -635,10 +635,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timing: dependency: transitive description: @@ -664,13 +664,21 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: transitive + dependency: "direct overridden" description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -704,5 +712,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=3.0.6 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index a42bb9ab4c..0ebc5e75f0 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "757153e5d9cd88253cb13f28c2fb55a537dc31fefd98137549895b5beb7c6169" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "4.0.1" build_resolvers: dependency: transitive description: @@ -109,10 +109,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.9" build_runner_core: dependency: transitive description: @@ -173,10 +173,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -419,18 +419,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -713,10 +713,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -761,10 +761,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" timing: dependency: transitive description: @@ -790,13 +790,21 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: transitive + dependency: "direct overridden" description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -830,5 +838,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/lib/core/node_address_validator.dart b/lib/core/node_address_validator.dart index c1fe4ba91f..0c8a0c37c7 100644 --- a/lib/core/node_address_validator.dart +++ b/lib/core/node_address_validator.dart @@ -11,5 +11,9 @@ class NodeAddressValidator extends TextValidator { class NodePathValidator extends TextValidator { NodePathValidator() - : super(errorMessage: S.current.error_text_node_address, pattern: '^([/0-9a-zA-Z.\-]+)?\$'); + : super( + errorMessage: S.current.error_text_node_address, + pattern: '^([/0-9a-zA-Z.\-]+)?\$', + isAutovalidate: true, + ); } diff --git a/lib/entities/biometric_auth.dart b/lib/entities/biometric_auth.dart index febbfa4695..4b2bfd9068 100644 --- a/lib/entities/biometric_auth.dart +++ b/lib/entities/biometric_auth.dart @@ -29,4 +29,4 @@ class BiometricAuth { return false; } -} +} \ No newline at end of file diff --git a/lib/locales/yoruba_intl.dart b/lib/locales/yoruba_intl.dart index 889c21cb73..f161885297 100644 --- a/lib/locales/yoruba_intl.dart +++ b/lib/locales/yoruba_intl.dart @@ -955,4 +955,4 @@ String get todayLabel => 'Oyọ'; @override String get noSpellCheckReplacementsLabel => ""; -} +} \ No newline at end of file diff --git a/lib/src/screens/nodes/widgets/node_form.dart b/lib/src/screens/nodes/widgets/node_form.dart index e8c4b0ab34..74daa41cce 100644 --- a/lib/src/screens/nodes/widgets/node_form.dart +++ b/lib/src/screens/nodes/widgets/node_form.dart @@ -96,18 +96,20 @@ class NodeForm extends StatelessWidget { ], ), SizedBox(height: 10.0), - Row( - children: [ - Expanded( - child: BaseTextFormField( - controller: _pathController, - hintText: "/path", - validator: NodePathValidator(), - ), - ) - ], - ), - SizedBox(height: 10.0), + if (nodeViewModel.hasPathSupport) ...[ + Row( + children: [ + Expanded( + child: BaseTextFormField( + controller: _pathController, + hintText: "/path", + validator: NodePathValidator(), + ), + ) + ], + ), + SizedBox(height: 10.0), + ], Row( children: [ Expanded( diff --git a/lib/src/widgets/validable_annotated_editable_text.dart b/lib/src/widgets/validable_annotated_editable_text.dart index 6c3fc4f160..16ccc76f62 100644 --- a/lib/src/widgets/validable_annotated_editable_text.dart +++ b/lib/src/widgets/validable_annotated_editable_text.dart @@ -167,4 +167,4 @@ class ValidatableAnnotatedEditableTextState extends EditableTextState { return TextSpan(style: widget.style, text: text); } -} +} \ No newline at end of file diff --git a/lib/view_model/auth_view_model.dart b/lib/view_model/auth_view_model.dart index e50f4db0cc..4fb93cfea9 100644 --- a/lib/view_model/auth_view_model.dart +++ b/lib/view_model/auth_view_model.dart @@ -125,4 +125,4 @@ abstract class AuthViewModelBase with Store { _authService.saveLastAuthTime(); } } -} +} \ No newline at end of file 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 283a32cbf1..7fe3d1c981 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 @@ -69,6 +69,24 @@ abstract class NodeCreateOrEditViewModelBase with Store { bool get hasTestnetSupport => _walletType == WalletType.bitcoin; + bool get hasPathSupport { + switch (_walletType) { + case WalletType.ethereum: + case WalletType.polygon: + case WalletType.solana: + case WalletType.banano: + case WalletType.nano: + return true; + case WalletType.none: + case WalletType.monero: + case WalletType.haven: + case WalletType.litecoin: + case WalletType.bitcoinCash: + case WalletType.bitcoin: + return false; + } + } + String get uri { var uri = address; @@ -217,7 +235,6 @@ abstract class NodeCreateOrEditViewModelBase with Store { final port = uri.port.toString(); final path = uri.path; - setAddress(ipAddress); setPath(path); setPassword(rpcPassword); From 2ac81250c24ebe84610242ac62591a3e063d974f Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Thu, 25 Apr 2024 02:14:11 +0100 Subject: [PATCH 063/157] CW-615-Add-Check-For-Contract-Address (#1387) * feat: Check if address is a valid Externally Owned Address * feat: Check if the EVM address received when exchanging tokens is a valid EOA address * move the contract address check to be only in the case of ThorChain [skip ci] * some enhancements * feat: Implement check for contract address for inputAddress when exchanging to ETH * fix: Remove previous implementation and clean up current implementation for the check for contract address * chore: Remove unneed space * chore: Remove unneed space --------- Co-authored-by: OmarHatem --- lib/core/create_trade_result.dart | 9 ++ .../exchange/exchange_view_model.dart | 120 +++++++++++++++--- lib/view_model/send/send_view_model.dart | 6 +- 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_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_yo.arb | 1 + res/values/strings_zh.arb | 1 + tool/configure.dart | 3 +- 30 files changed, 146 insertions(+), 18 deletions(-) create mode 100644 lib/core/create_trade_result.dart diff --git a/lib/core/create_trade_result.dart b/lib/core/create_trade_result.dart new file mode 100644 index 0000000000..0e873d51e9 --- /dev/null +++ b/lib/core/create_trade_result.dart @@ -0,0 +1,9 @@ +class CreateTradeResult { + bool result; + String? errorMessage; + + CreateTradeResult({ + required this.result, + this.errorMessage, + }); +} diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index eba347ac40..4e5902faa6 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -3,8 +3,20 @@ import 'dart:collection'; import 'dart:convert'; import 'package:bitcoin_base/bitcoin_base.dart'; -import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; +import 'package:cake_wallet/core/create_trade_result.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:hive/hive.dart'; +import 'package:http/http.dart' as http; +import 'package:intl/intl.dart'; +import 'package:mobx/mobx.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'package:cake_wallet/.secrets.g.dart' as secrets; import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; @@ -33,14 +45,6 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/store/templates/exchange_template_store.dart'; import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/sync_status.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_type.dart'; -import 'package:hive/hive.dart'; -import 'package:intl/intl.dart'; -import 'package:mobx/mobx.dart'; -import 'package:shared_preferences/shared_preferences.dart'; part 'exchange_view_model.g.dart'; @@ -516,10 +520,12 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with trade.walletId = wallet.id; trade.fromWalletAddress = wallet.walletAddresses.address; - if (!isCanCreateTrade(trade)) { + final canCreateTrade = await isCanCreateTrade(trade); + if (!canCreateTrade.result) { tradeState = TradeIsCreatedFailure( - title: S.current.trade_not_created, - error: S.current.thorchain_taproot_address_not_supported); + title: S.current.trade_not_created, + error: canCreateTrade.errorMessage ?? '', + ); return; } @@ -776,16 +782,100 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with int get receiveMaxDigits => receiveCurrency.decimals; - bool isCanCreateTrade(Trade trade) { + Future isCanCreateTrade(Trade trade) async { if (trade.provider == ExchangeProviderDescription.thorChain) { final payoutAddress = trade.payoutAddress ?? ''; final fromWalletAddress = trade.fromWalletAddress ?? ''; final tapRootPattern = RegExp(P2trAddress.regex.pattern); if (tapRootPattern.hasMatch(payoutAddress) || tapRootPattern.hasMatch(fromWalletAddress)) { - return false; + return CreateTradeResult( + result: false, + errorMessage: S.current.thorchain_taproot_address_not_supported, + ); + } + + final currenciesToCheckPattern = RegExp('0x[0-9a-zA-Z]'); + + // Perform checks for payOutAddress + final isPayOutAddressAccordingToPattern = currenciesToCheckPattern.hasMatch(payoutAddress); + + if (isPayOutAddressAccordingToPattern) { + final isPayOutAddressEOA = await _isExternallyOwnedAccountAddress(payoutAddress); + + return CreateTradeResult( + result: isPayOutAddressEOA, + errorMessage: + !isPayOutAddressEOA ? S.current.thorchain_contract_address_not_supported : null, + ); + } + + // Perform checks for fromWalletAddress + final isFromWalletAddressAddressAccordingToPattern = + currenciesToCheckPattern.hasMatch(fromWalletAddress); + + if (isFromWalletAddressAddressAccordingToPattern) { + final isFromWalletAddressEOA = await _isExternallyOwnedAccountAddress(fromWalletAddress); + + return CreateTradeResult( + result: isFromWalletAddressEOA, + errorMessage: + !isFromWalletAddressEOA ? S.current.thorchain_contract_address_not_supported : null, + ); } } - return true; + return CreateTradeResult(result: true); + } + + String _normalizeReceiveCurrency(CryptoCurrency receiveCurrency) { + switch (receiveCurrency) { + case CryptoCurrency.eth: + return 'eth'; + case CryptoCurrency.maticpoly: + return 'polygon'; + default: + return receiveCurrency.tag ?? ''; + } + } + + Future _isExternallyOwnedAccountAddress(String receivingAddress) async { + final normalizedReceiveCurrency = _normalizeReceiveCurrency(receiveCurrency); + + final isEOAAddress = !(await _isContractAddress(normalizedReceiveCurrency, receivingAddress)); + return isEOAAddress; + } + + Future _isContractAddress(String chainName, String contractAddress) async { + final httpClient = http.Client(); + + final uri = Uri.https( + 'deep-index.moralis.io', + '/api/v2.2/erc20/metadata', + { + "chain": chainName, + "addresses": contractAddress, + }, + ); + + try { + final response = await httpClient.get( + uri, + headers: { + "Accept": "application/json", + "X-API-Key": secrets.moralisApiKey, + }, + ); + + final decodedResponse = jsonDecode(response.body)[0] as Map; + + final name = decodedResponse['name'] as String?; + + bool isContractAddress = name!.isNotEmpty; + + return isContractAddress; + } catch (e) { + print(e); + return false; + } } } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 038301db4e..298cc3eed5 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -324,14 +324,16 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor Future createTransaction({ExchangeProvider? provider}) async { try { state = IsExecutingState(); + pendingTransaction = await wallet.createTransaction(_credentials()); if (provider is ThorChainExchangeProvider) { final outputCount = pendingTransaction?.outputCount ?? 0; if (outputCount > 10) { - throw Exception("ThorChain does not support more than 10 outputs"); + throw Exception("THORChain does not support more than 10 outputs"); } + if (_hasTaprootInput(pendingTransaction)) { - throw Exception("ThorChain does not support Taproot addresses"); + throw Exception("THORChain does not support Taproot addresses"); } } state = ExecutedSuccessfullyState(); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 15b9712fc1..cf9959f17a 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -660,6 +660,7 @@ "template_name": "اسم القالب", "third_intro_content": "يعيش Yats خارج Cake Wallet أيضًا. يمكن استبدال أي عنوان محفظة على وجه الأرض بـ Yat!", "third_intro_title": "يتماشي Yat بلطف مع الآخرين", + "thorchain_contract_address_not_supported": "لا يدعم Thorchain الإرسال إلى عنوان العقد", "thorchain_taproot_address_not_supported": "لا يدعم مزود Thorchain عناوين Taproot. يرجى تغيير العنوان أو تحديد مزود مختلف.", "time": "${minutes}د ${seconds}س", "tip": "بقشيش:", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index d479bd57d7..bd1cd645df 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -660,6 +660,7 @@ "template_name": "Име на шаблон", "third_intro_content": "Yats също живее извън Cake Wallet. Всеки адрес на портфейл може да бъде заменен с Yat!", "third_intro_title": "Yat добре се сработва с други", + "thorchain_contract_address_not_supported": "Thorchain не подкрепя изпращането до адрес на договор", "thorchain_taproot_address_not_supported": "Доставчикът на Thorchain не поддържа адреси на TapRoot. Моля, променете адреса или изберете друг доставчик.", "time": "${minutes} мин ${seconds} сек", "tip": "Tip:", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 547c926afd..4d3458bec7 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -660,6 +660,7 @@ "template_name": "Název šablony", "third_intro_content": "Yat existuje i mimo Cake Wallet. Jakákoliv adresa peněženky na světě může být nahrazena Yatem!", "third_intro_title": "Yat dobře spolupracuje s ostatními", + "thorchain_contract_address_not_supported": "Thorchain nepodporuje odeslání na adresu smlouvy", "thorchain_taproot_address_not_supported": "Poskytovatel Thorchain nepodporuje adresy Taproot. Změňte adresu nebo vyberte jiného poskytovatele.", "time": "${minutes}m ${seconds}s", "tip": "Spropitné:", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 97f2ccdc2c..7efb0b682d 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -661,6 +661,7 @@ "template_name": "Vorlagenname", "third_intro_content": "Yats leben auch außerhalb von Cake Wallet. Jede Wallet-Adresse auf der Welt kann durch ein Yat ersetzt werden!", "third_intro_title": "Yat spielt gut mit anderen", + "thorchain_contract_address_not_supported": "Thorchain unterstützt das Senden an eine Vertragsadresse nicht", "thorchain_taproot_address_not_supported": "Der Thorchain -Anbieter unterstützt keine Taproot -Adressen. Bitte ändern Sie die Adresse oder wählen Sie einen anderen Anbieter aus.", "time": "${minutes}m ${seconds}s", "tip": "Hinweis:", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 60de404fd1..8f8b753d6b 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -660,6 +660,7 @@ "template_name": "Template Name", "third_intro_content": "Yats live outside of Cake Wallet, too. Any wallet address on earth can be replaced with a Yat!", "third_intro_title": "Yat plays nicely with others", + "thorchain_contract_address_not_supported": "THORChain does not support sending to a contract address", "thorchain_taproot_address_not_supported": "The ThorChain provider does not support Taproot addresses. Please change the address or select a different provider.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 60cac3a8c1..7de9cff53d 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -661,6 +661,7 @@ "template_name": "Nombre de la plantilla", "third_intro_content": "Los Yats también viven fuera de Cake Wallet. Cualquier dirección de billetera en la tierra se puede reemplazar con un Yat!", "third_intro_title": "Yat juega muy bien con otras", + "thorchain_contract_address_not_supported": "Thorchain no admite enviar a una dirección de contrato", "thorchain_taproot_address_not_supported": "El proveedor de Thorchain no admite las direcciones de Taproot. Cambie la dirección o seleccione un proveedor diferente.", "time": "${minutes}m ${seconds}s", "tip": "Consejo:", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 691c481c16..2c76122fce 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -660,6 +660,7 @@ "template_name": "Nom du modèle", "third_intro_content": "Les Yats existent aussi en dehors de Cake Wallet. Toute adresse sur terre peut être remplacée par un Yat !", "third_intro_title": "Yat est universel", + "thorchain_contract_address_not_supported": "Thorchain ne prend pas en charge l'envoi à une adresse de contrat", "thorchain_taproot_address_not_supported": "Le fournisseur de Thorchain ne prend pas en charge les adresses de tapoot. Veuillez modifier l'adresse ou sélectionner un autre fournisseur.", "time": "${minutes}m ${seconds}s", "tip": "Pourboire :", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index f310f67f39..bac970207d 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -662,6 +662,7 @@ "template_name": "Sunan Samfura", "third_intro_content": "Yats suna zaune a wajen Kek Wallet, kuma. Ana iya maye gurbin kowane adireshin walat a duniya da Yat!", "third_intro_title": "Yat yana wasa da kyau tare da wasu", + "thorchain_contract_address_not_supported": "Thorchain baya goyon bayan aika zuwa adireshin kwangila", "thorchain_taproot_address_not_supported": "Mai ba da tallafi na ThorChain baya goyan bayan adreshin taproot. Da fatan za a canza adireshin ko zaɓi mai bayarwa daban.", "time": "${minutes}m ${seconds}s", "tip": "Tukwici:", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 671c7a7659..5a9706bd5d 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -662,6 +662,7 @@ "template_name": "टेम्पलेट नाम", "third_intro_content": "Yats Cake Wallet के बाहर भी रहता है। धरती पर किसी भी वॉलेट पते को Yat से बदला जा सकता है!", "third_intro_title": "Yat दूसरों के साथ अच्छा खेलता है", + "thorchain_contract_address_not_supported": "थोरचेन एक अनुबंध पते पर भेजने का समर्थन नहीं करता है", "thorchain_taproot_address_not_supported": "थोरचेन प्रदाता टैपरोट पते का समर्थन नहीं करता है। कृपया पता बदलें या एक अलग प्रदाता का चयन करें।", "time": "${minutes}m ${seconds}s", "tip": "टिप:", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 67e25d59a3..94f675a1d2 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -660,6 +660,7 @@ "template_name": "Naziv predloška", "third_intro_content": "Yats žive i izvan Cake Wallet -a. Bilo koja adresa novčanika na svijetu može se zamijeniti Yat!", "third_intro_title": "Yat se lijepo igra s drugima", + "thorchain_contract_address_not_supported": "Thorchain ne podržava slanje na adresu ugovora", "thorchain_taproot_address_not_supported": "Thorchain pružatelj ne podržava Taproot adrese. Promijenite adresu ili odaberite drugog davatelja usluga.", "time": "${minutes}m ${seconds}s", "tip": "Savjet:", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index cca6f9b2ac..69e270d100 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -663,6 +663,7 @@ "template_name": "Nama Templat", "third_intro_content": "Yats hidup di luar Cake Wallet juga. Setiap alamat dompet di dunia dapat diganti dengan Yat!", "third_intro_title": "Yat bermain baik dengan yang lain", + "thorchain_contract_address_not_supported": "Thorchain tidak mendukung pengiriman ke alamat kontrak", "thorchain_taproot_address_not_supported": "Penyedia Thorchain tidak mendukung alamat Taproot. Harap ubah alamatnya atau pilih penyedia yang berbeda.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 4e04c0498d..09b3e43bb4 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -662,6 +662,7 @@ "template_name": "Nome modello", "third_intro_content": "Yat può funzionare anche fuori da Cake Wallet. Qualsiasi indirizzo di portafoglio sulla terra può essere sostituito con uno Yat!", "third_intro_title": "Yat gioca bene con gli altri", + "thorchain_contract_address_not_supported": "Thorchain non supporta l'invio a un indirizzo contrattuale", "thorchain_taproot_address_not_supported": "Il provider di Thorchain non supporta gli indirizzi di TapRoot. Si prega di modificare l'indirizzo o selezionare un fornitore diverso.", "time": "${minutes}m ${seconds}s", "tip": "Suggerimento:", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index b3aa527d6d..b067c27215 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -661,6 +661,7 @@ "template_name": "テンプレート名", "third_intro_content": "YatsはCakeWalletの外にも住んでいます。 地球上のどのウォレットアドレスもYatに置き換えることができます!", "third_intro_title": "Yatは他の人とうまく遊ぶ", + "thorchain_contract_address_not_supported": "Thorchainは、契約アドレスへの送信をサポートしていません", "thorchain_taproot_address_not_supported": "Thorchainプロバイダーは、TapRootアドレスをサポートしていません。アドレスを変更するか、別のプロバイダーを選択してください。", "time": "${minutes}m ${seconds}s", "tip": "ヒント: ", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 6c5800614f..d9881ad04b 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -661,6 +661,7 @@ "template_name": "템플릿 이름", "third_intro_content": "Yats는 Cake Wallet 밖에서도 살고 있습니다. 지구상의 모든 지갑 주소는 Yat!", "third_intro_title": "Yat는 다른 사람들과 잘 놉니다.", + "thorchain_contract_address_not_supported": "Thorchain은 계약 주소로 보내는 것을 지원하지 않습니다", "thorchain_taproot_address_not_supported": "Thorchain 제공 업체는 Taproot 주소를 지원하지 않습니다. 주소를 변경하거나 다른 공급자를 선택하십시오.", "time": "${minutes}m ${seconds}s", "tip": "팁:", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 96f141eae1..c36f63414b 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -660,6 +660,7 @@ "template_name": "နမူနာပုံစံ", "third_intro_content": "Yats သည် Cake Wallet အပြင်ဘက်တွင် နေထိုင်ပါသည်။ ကမ္ဘာပေါ်ရှိ မည်သည့်ပိုက်ဆံအိတ်လိပ်စာကို Yat ဖြင့် အစားထိုးနိုင်ပါသည်။", "third_intro_title": "Yat သည် အခြားသူများနှင့် ကောင်းစွာကစားသည်။", + "thorchain_contract_address_not_supported": "Thorchain သည်စာချုပ်လိပ်စာသို့ပို့ခြင်းမပြုပါ", "thorchain_taproot_address_not_supported": "Thorchain Provider သည် Taproot လိပ်စာများကိုမထောက်ခံပါ။ ကျေးဇူးပြု. လိပ်စာကိုပြောင်းပါသို့မဟုတ်အခြားပံ့ပိုးပေးသူကိုရွေးချယ်ပါ။", "time": "${minutes}m ${seconds}s", "tip": "အကြံပြုချက်-", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 1ce17f706f..f258b8f62f 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -660,6 +660,7 @@ "template_name": "Sjabloonnaam", "third_intro_content": "Yats wonen ook buiten Cake Wallet. Elk portemonnee-adres op aarde kan worden vervangen door een Yat!", "third_intro_title": "Yat speelt leuk met anderen", + "thorchain_contract_address_not_supported": "Thorchain ondersteunt het verzenden niet naar een contractadres", "thorchain_taproot_address_not_supported": "De Thorchain -provider ondersteunt geen Taprooot -adressen. Wijzig het adres of selecteer een andere provider.", "time": "${minutes}m ${seconds}s", "tip": "Tip:", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index f48ad5ddef..4627d02422 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -660,6 +660,7 @@ "template_name": "Nazwa szablonu", "third_intro_content": "Yats mieszkają również poza Cake Wallet. Każdy adres portfela na ziemi można zastąpić Yat!", "third_intro_title": "Yat ładnie bawi się z innymi", + "thorchain_contract_address_not_supported": "Thorchain nie wspiera wysyłania na adres umowy", "thorchain_taproot_address_not_supported": "Dostawca Thorchain nie obsługuje adresów TAPROOT. Zmień adres lub wybierz innego dostawcę.", "time": "${minutes}m ${seconds}s", "tip": "wskazówka:", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 15cc9f01e4..2a781c76bb 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -662,6 +662,7 @@ "template_name": "Nome do modelo", "third_intro_content": "Yats também mora fora da Cake Wallet. Qualquer endereço de carteira na Terra pode ser substituído por um Yat!", "third_intro_title": "Yat joga bem com os outros", + "thorchain_contract_address_not_supported": "Thorchain não suporta o envio para um endereço de contrato", "thorchain_taproot_address_not_supported": "O provedor de Thorchain não suporta endereços de raiz de Tap. Altere o endereço ou selecione um provedor diferente.", "time": "${minutes}m ${seconds}s", "tip": "Dica:", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index ac0fac2baa..22bac3e33b 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -661,6 +661,7 @@ "template_name": "Имя Шаблона", "third_intro_content": "Yat находятся за пределами Cake Wallet. Любой адрес кошелька на земле можно заменить на Yat!", "third_intro_title": "Yat хорошо взаимодействует с другими", + "thorchain_contract_address_not_supported": "Thorchain не поддерживает отправку на адрес контракта", "thorchain_taproot_address_not_supported": "Поставщик Thorchain не поддерживает адреса taproot. Пожалуйста, измените адрес или выберите другого поставщика.", "time": "${minutes}мин ${seconds}сек", "tip": "Совет:", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 7030f6f7fa..c0f58495c8 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -660,6 +660,7 @@ "template_name": "ชื่อแม่แบบ", "third_intro_content": "Yat อาศัยอยู่นอก Cake Wallet ด้วย ที่อยู่กระเป๋าใดๆ ทั่วโลกสามารถแทนด้วย Yat ได้อีกด้วย!", "third_intro_title": "Yat ปฏิบัติตนอย่างดีกับผู้อื่น", + "thorchain_contract_address_not_supported": "Thorchain ไม่สนับสนุนการส่งไปยังที่อยู่สัญญา", "thorchain_taproot_address_not_supported": "ผู้ให้บริการ Thorchain ไม่รองรับที่อยู่ taproot โปรดเปลี่ยนที่อยู่หรือเลือกผู้ให้บริการอื่น", "time": "${minutes}m ${seconds}s", "tip": "เพิ่มค่าตอบแทน:", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 05a363baca..8c3b13b3b5 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -660,6 +660,7 @@ "template_name": "Pangalan ng Template", "third_intro_content": "Ang mga yats ay nakatira sa labas ng cake wallet, din. Ang anumang address ng pitaka sa mundo ay maaaring mapalitan ng isang yat!", "third_intro_title": "Si Yat ay mahusay na gumaganap sa iba", + "thorchain_contract_address_not_supported": "Hindi sinusuportahan ng Thorchain ang pagpapadala sa isang address ng kontrata", "thorchain_taproot_address_not_supported": "Ang Tagabigay ng Thorchain ay hindi sumusuporta sa mga address ng taproot. Mangyaring baguhin ang address o pumili ng ibang provider.", "time": "${minutes} m ${seconds} s", "tip": "Tip:", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index ce342df2f3..534a36c77d 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -660,6 +660,7 @@ "template_name": "şablon adı", "third_intro_content": "Yat'lar Cake Wallet'ın dışında da çalışabilir. Dünya üzerindeki herhangi bir cüzdan adresi Yat ile değiştirilebilir!", "third_intro_title": "Yat diğerleriyle iyi çalışır", + "thorchain_contract_address_not_supported": "Thorchain bir sözleşme adresine göndermeyi desteklemiyor", "thorchain_taproot_address_not_supported": "Thorchain sağlayıcısı Taproot adreslerini desteklemiyor. Lütfen adresi değiştirin veya farklı bir sağlayıcı seçin.", "time": "${minutes}d ${seconds}s", "tip": "Bahşiş:", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 4afd47fe29..5d1e2be055 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -661,6 +661,7 @@ "template_name": "Назва шаблону", "third_intro_content": "Yat знаходиться за межами Cake Wallet. Будь-яку адресу гаманця на землі можна замінити на Yat!", "third_intro_title": "Yat добре взаємодіє з іншими", + "thorchain_contract_address_not_supported": "Thorchain не підтримує надсилання на адресу контракту", "thorchain_taproot_address_not_supported": "Постачальник Thorchain не підтримує адреси Taproot. Будь ласка, змініть адресу або виберіть іншого постачальника.", "time": "${minutes}хв ${seconds}сек", "tip": "Порада:", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index fac066ace7..d98a857536 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -662,6 +662,7 @@ "template_name": "ٹیمپلیٹ کا نام", "third_intro_content": "Yats بھی Cake والیٹ سے باہر رہتے ہیں۔ زمین پر کسی بھی بٹوے کے پتے کو Yat سے تبدیل کیا جا سکتا ہے!", "third_intro_title": "Yat دوسروں کے ساتھ اچھی طرح کھیلتا ہے۔", + "thorchain_contract_address_not_supported": "تھورچین معاہدے کے پتے بھیجنے کی حمایت نہیں کرتا ہے", "thorchain_taproot_address_not_supported": "تھورچین فراہم کنندہ ٹیپروٹ پتے کی حمایت نہیں کرتا ہے۔ براہ کرم پتہ تبدیل کریں یا ایک مختلف فراہم کنندہ کو منتخب کریں۔", "time": "${minutes}m ${seconds}s", "tip": "ٹپ:", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 1f131f3d99..faaeb8837b 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -661,6 +661,7 @@ "template_name": "Orukọ Awoṣe", "third_intro_content": "A sì lè lo Yats níta Cake Wallet. A lè rọ́pò Àdírẹ́sì kankan àpamọ́wọ́ fún Yat!", "third_intro_title": "Àlàáfíà ni Yat àti àwọn ìmíìn jọ wà", + "thorchain_contract_address_not_supported": "Thorchain ko ṣe atilẹyin fifiranṣẹ si adirẹsi adehun kan", "thorchain_taproot_address_not_supported": "Olupese Trockchain ko ṣe atilẹyin awọn adirẹsi Taproot. Jọwọ yi adirẹsi pada tabi yan olupese ti o yatọ.", "time": "${minutes}ìṣj ${seconds}ìṣs", "tip": "Owó àfikún:", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 10d11b2c0c..2d5251d86a 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -660,6 +660,7 @@ "template_name": "模板名称", "third_intro_content": "Yats 也住在 Cake Wallet 之外。 地球上任何一個錢包地址都可以用一個Yat來代替!", "third_intro_title": "Yat 和別人玩得很好", + "thorchain_contract_address_not_supported": "Thorchain不支持发送到合同地址", "thorchain_taproot_address_not_supported": "Thorchain提供商不支持Taproot地址。请更改地址或选择其他提供商。", "time": "${minutes}m ${seconds}s", "tip": "提示:", diff --git a/tool/configure.dart b/tool/configure.dart index 6ee84d63a2..d08724e421 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -1057,7 +1057,8 @@ Future generatePubspec( final inputFile = File(pubspecOutputPath); final inputText = await inputFile.readAsString(); final inputLines = inputText.split('\n'); - final dependenciesIndex = inputLines.indexWhere((line) => line.toLowerCase().contains('dependencies:')); + final dependenciesIndex = + inputLines.indexWhere((line) => line.toLowerCase().contains('dependencies:')); var output = cwCore; if (hasMonero) { From fff77519d9cd889b5a17705a1488611640378e33 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Thu, 25 Apr 2024 02:14:53 +0100 Subject: [PATCH 064/157] Generic Fixes: Support Errors and others (#1394) * fix: Crypto amout formatting when calculating fiat amount * fix: Issue with some token symbols coming up with a dollar sign * feat: Split transactions to display on history screen token byh token * fix: Remove restriction on balance length * fix: error when a particular token is not available * fix: Remove token transactions when a token is deleted * fix: Revert previous change * make added spl tokens enabled by default fix issue when entering invalid contract address --------- Co-authored-by: OmarHatem --- cw_core/lib/crypto_currency.dart | 2 +- cw_evm/lib/evm_chain_client.dart | 7 ++- cw_evm/lib/evm_chain_wallet.dart | 6 +++ cw_solana/lib/solana_transaction_info.dart | 5 +-- cw_solana/lib/solana_wallet.dart | 52 +++++++++++----------- cw_solana/lib/spl_token.dart | 4 +- lib/entities/calculate_fiat_amount.dart | 2 + lib/ethereum/cw_ethereum.dart | 6 ++- lib/polygon/cw_polygon.dart | 4 +- lib/solana/cw_solana.dart | 6 ++- 10 files changed, 54 insertions(+), 40 deletions(-) diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index f1c1cd8aea..a7edd409fc 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -10,7 +10,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen this.fullName, this.iconPath, this.tag, - this.enabled = false, + this.enabled = true, }) : super(title: title, raw: raw); diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index eebbe4f4ff..8f0df3926b 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -234,14 +234,17 @@ abstract class EVMChainClient { final decodedResponse = jsonDecode(response.body)[0] as Map; + + final symbol = (decodedResponse['symbol'] ?? '') as String; + String filteredSymbol = symbol.replaceFirst(RegExp('^\\\$'), ''); + final name = decodedResponse['name'] ?? ''; - final symbol = decodedResponse['symbol'] ?? ''; final decimal = decodedResponse['decimals'] ?? '0'; final iconPath = decodedResponse['logo'] ?? ''; return Erc20Token( name: name, - symbol: symbol, + symbol: filteredSymbol, contractAddress: contractAddress, decimal: int.tryParse(decimal) ?? 0, iconPath: iconPath, diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index 4193e590aa..558013252b 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -468,9 +468,15 @@ abstract class EVMChainWalletBase await token.delete(); balance.remove(token); + await _removeTokenTransactionsInHistory(token); _updateBalance(); } + Future _removeTokenTransactionsInHistory(Erc20Token token) async { + transactionHistory.transactions.removeWhere((key, value) => value.tokenSymbol == token.title); + await transactionHistory.save(); + } + Future getErc20Token(String contractAddress, String chainName) async => await _client.getErc20Token(contractAddress, chainName); diff --git a/cw_solana/lib/solana_transaction_info.dart b/cw_solana/lib/solana_transaction_info.dart index 1b7610e349..7a0844e52a 100644 --- a/cw_solana/lib/solana_transaction_info.dart +++ b/cw_solana/lib/solana_transaction_info.dart @@ -34,10 +34,7 @@ class SolanaTransactionInfo extends TransactionInfo { @override String amountFormatted() { String stringBalance = solAmount.toString(); - - if (stringBalance.toString().length >= 6) { - stringBalance = stringBalance.substring(0, 6); - } + return '$stringBalance $tokenSymbol'; } diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index 43a6d0b83f..f3eef465c1 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -273,32 +273,12 @@ abstract class SolanaWalletBase final transactions = await _client.fetchTransactions(address); - final Map result = {}; - - for (var transactionModel in transactions) { - result[transactionModel.id] = SolanaTransactionInfo( - id: transactionModel.id, - to: transactionModel.to, - from: transactionModel.from, - blockTime: transactionModel.blockTime, - direction: transactionModel.isOutgoingTx - ? TransactionDirection.outgoing - : TransactionDirection.incoming, - solAmount: transactionModel.amount, - isPending: false, - txFee: transactionModel.fee, - tokenSymbol: transactionModel.tokenSymbol, - ); - } - - transactionHistory.addMany(result); - - await transactionHistory.save(); + await _addTransactionsToTransactionHistory(transactions); } /// Fetches the SPL Tokens transactions linked to the token account Public Key Future _updateSPLTokenTransactions() async { - List splTokenTransactions = []; + // List splTokenTransactions = []; // Make a copy of keys to avoid concurrent modification var tokenKeys = List.from(balance.keys); @@ -312,13 +292,20 @@ abstract class SolanaWalletBase _walletKeyPair!, ); - splTokenTransactions.addAll(tokenTxs); + // splTokenTransactions.addAll(tokenTxs); + await _addTransactionsToTransactionHistory(tokenTxs); } } + // await _addTransactionsToTransactionHistory(splTokenTransactions); + } + + Future _addTransactionsToTransactionHistory( + List transactions, + ) async { final Map result = {}; - for (var transactionModel in splTokenTransactions) { + for (var transactionModel in transactions) { result[transactionModel.id] = SolanaTransactionInfo( id: transactionModel.id, to: transactionModel.to, @@ -460,12 +447,23 @@ abstract class SolanaWalletBase await token.delete(); balance.remove(token); + await _removeTokenTransactionsInHistory(token); _updateBalance(); } + Future _removeTokenTransactionsInHistory(SPLToken token) async { + transactionHistory.transactions.removeWhere((key, value) => value.tokenSymbol == token.title); + await transactionHistory.save(); + } + Future getSPLToken(String mintAddress) async { // Convert SPL token mint address to public key - final mintPublicKey = Ed25519HDPublicKey.fromBase58(mintAddress); + final Ed25519HDPublicKey mintPublicKey; + try { + mintPublicKey = Ed25519HDPublicKey.fromBase58(mintAddress); + } catch (_) { + return null; + } // Fetch token's metadata account try { @@ -480,10 +478,12 @@ abstract class SolanaWalletBase iconPath = await _client.getIconImageFromTokenUri(token.uri); } catch (_) {} + String filteredTokenSymbol = token.symbol.replaceFirst(RegExp('^\\\$'), ''); + return SPLToken.fromMetadata( name: token.name, mint: token.mint, - symbol: token.symbol, + symbol: filteredTokenSymbol, mintAddress: mintAddress, iconPath: iconPath, ); diff --git a/cw_solana/lib/spl_token.dart b/cw_solana/lib/spl_token.dart index 0b3b8b3726..a40eb0b869 100644 --- a/cw_solana/lib/spl_token.dart +++ b/cw_solana/lib/spl_token.dart @@ -19,7 +19,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin { @HiveField(3) final int decimal; - @HiveField(4, defaultValue: false) + @HiveField(4, defaultValue: true) bool _enabled; @HiveField(5) @@ -39,7 +39,7 @@ class SPLToken extends CryptoCurrency with HiveObjectMixin { required this.mint, this.iconPath, this.tag = 'SOL', - bool enabled = false, + bool enabled = true, }) : _enabled = enabled, super( name: mint.toLowerCase(), diff --git a/lib/entities/calculate_fiat_amount.dart b/lib/entities/calculate_fiat_amount.dart index 689ada31b3..b0b38eacb2 100644 --- a/lib/entities/calculate_fiat_amount.dart +++ b/lib/entities/calculate_fiat_amount.dart @@ -3,6 +3,8 @@ String calculateFiatAmount({double? price, String? cryptoAmount}) { return '0.00'; } + cryptoAmount = cryptoAmount.replaceAll(',', '.'); + final _amount = double.parse(cryptoAmount); final _result = price * _amount; final result = _result < 0 ? _result * -1 : _result; diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index 13fe3aafdb..61d5b6ae32 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -142,8 +142,10 @@ class CWEthereum extends Ethereum { } wallet as EthereumWallet; - return wallet.erc20Currencies - .firstWhere((element) => transaction.tokenSymbol == element.symbol); + + return wallet.erc20Currencies.firstWhere( + (element) => transaction.tokenSymbol == element.symbol, + ); } @override diff --git a/lib/polygon/cw_polygon.dart b/lib/polygon/cw_polygon.dart index 9f0f9a1bff..5baf4fbbc1 100644 --- a/lib/polygon/cw_polygon.dart +++ b/lib/polygon/cw_polygon.dart @@ -140,8 +140,10 @@ class CWPolygon extends Polygon { } wallet as PolygonWallet; + return wallet.erc20Currencies.firstWhere( - (element) => transaction.tokenSymbol.toLowerCase() == element.symbol.toLowerCase()); + (element) => transaction.tokenSymbol.toLowerCase() == element.symbol.toLowerCase(), + ); } @override diff --git a/lib/solana/cw_solana.dart b/lib/solana/cw_solana.dart index 6f4b17309f..af66cf3e54 100644 --- a/lib/solana/cw_solana.dart +++ b/lib/solana/cw_solana.dart @@ -110,8 +110,10 @@ class CWSolana extends Solana { } wallet as SolanaWallet; - return wallet.splTokenCurrencies - .firstWhere((element) => transaction.tokenSymbol == element.symbol); + + return wallet.splTokenCurrencies.firstWhere( + (element) => transaction.tokenSymbol == element.symbol, + ); } @override From 3732a4c646c2affe228b055a73e560143f8c5216 Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Thu, 25 Apr 2024 05:52:24 -0500 Subject: [PATCH 065/157] Language Fixes for DE (#1409) --- lib/buy/dfx/dfx_buy_provider.dart | 4 ++-- lib/entities/provider_types.dart | 2 +- res/values/strings_de.arb | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/buy/dfx/dfx_buy_provider.dart b/lib/buy/dfx/dfx_buy_provider.dart index 8e2d58d111..b5c5d3b023 100644 --- a/lib/buy/dfx/dfx_buy_provider.dart +++ b/lib/buy/dfx/dfx_buy_provider.dart @@ -23,7 +23,7 @@ class DFXBuyProvider extends BuyProvider { static const walletName = 'CakeWallet'; @override - String get title => 'DFX Connect'; + String get title => 'DFX.swiss'; @override String get providerDescription => S.current.dfx_option_description; @@ -198,7 +198,7 @@ class DFXBuyProvider extends BuyProvider { context: context, builder: (BuildContext context) { return AlertWithOneAction( - alertTitle: "DFX Connect", + alertTitle: "DFX.swiss", alertContent: S.of(context).buy_provider_unavailable + ': $e', buttonText: S.of(context).ok, buttonAction: () => Navigator.of(context).pop()); diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index 701781cc2f..ca168a299c 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -22,7 +22,7 @@ extension ProviderTypeName on ProviderType { case ProviderType.robinhood: return 'Robinhood Connect'; case ProviderType.dfx: - return 'DFX Connect'; + return 'DFX.swiss'; case ProviderType.onramper: return 'Onramper'; case ProviderType.moonpay: diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 7efb0b682d..0546140eb7 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -50,7 +50,7 @@ "anonpay_description": "Generieren Sie ${type}. Der Empfänger kann ${method} mit jeder unterstützten Kryptowährung verwenden, und Sie erhalten Geld in dieser Wallet.", "apk_update": "APK-Update", "approve": "Genehmigen", - "arrive_in_this_address": "${currency} ${tag}wird an dieser Adresse ankommen", + "arrive_in_this_address": "${currency} ${tag} wird an dieser Adresse ankommen", "ascending": "Aufsteigend", "ask_each_time": "Jedes Mal fragen", "auth_store_ban_timeout": "ban_timeout", @@ -87,7 +87,7 @@ "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", "buy_with": "Kaufen mit", "by_cake_pay": "von Cake Pay", - "cake_2fa_preset": "Kuchen 2FA-Voreinstellung", + "cake_2fa_preset": "Cake 2FA-Voreinstellung", "cake_dark_theme": "Cake Dark Thema", "cake_pay_account_note": "Melden Sie sich nur mit einer E-Mail-Adresse an, um Karten anzuzeigen und zu kaufen. Einige sind sogar mit Rabatt erhältlich!", "cake_pay_learn_more": "Kaufen und lösen Sie Geschenkkarten sofort in der App ein!\nWischen Sie von links nach rechts, um mehr zu erfahren.", @@ -120,7 +120,7 @@ "change_wallet_alert_title": "Aktuelle Wallet ändern", "choose_account": "Konto auswählen", "choose_address": "\n\nBitte wählen Sie die Adresse:", - "choose_derivation": "Wählen Sie Brieftaschenableitung", + "choose_derivation": "Wählen Sie Wallet-Ableitung", "choose_from_available_options": "Wähle aus verfügbaren Optionen:", "choose_one": "Wähle ein", "choose_relay": "Bitte wählen Sie ein zu verwendendes Relais aus", @@ -199,7 +199,7 @@ "disable_fiat": "Fiat deaktivieren", "disable_sell": "Verkaufsaktion deaktivieren", "disableBatteryOptimization": "Batterieoptimierung deaktivieren", - "disableBatteryOptimizationDescription": "Möchten Sie die Batterieoptimierung deaktivieren, um die Hintergrundsynchronisierung freier und reibungsloser zu gestalten?", + "disableBatteryOptimizationDescription": "Möchten Sie die Batterieoptimierung deaktivieren, um die Hintergrundsynchronisierung reibungsloser zu gestalten?", "disabled": "Deaktiviert", "discount": "${value} % sparen", "display_settings": "Anzeigeeinstellungen", @@ -459,8 +459,8 @@ "reconnect_alert_text": "Sind Sie sicher, dass Sie sich neu verbinden möchten?", "reconnection": "Neu verbinden", "red_dark_theme": "Red Dark Thema", - "red_light_theme": "Rotlichtthema", - "redeemed": "Versilbert", + "red_light_theme": "Red Light Thema", + "redeemed": "Eingelöst", "refund_address": "Rückerstattungsadresse", "reject": "Ablehnen", "remaining": "Rest", @@ -532,7 +532,7 @@ "seed_alert_title": "Achtung", "seed_alert_yes": "Ja, habe ich", "seed_choose": "Seed-Sprache auswählen", - "seed_hex_form": "Brieftaschensamen (Sechskantform)", + "seed_hex_form": "Seed (Hexformat)", "seed_key": "Seed-Schlüssel", "seed_language": "Seed-Sprache", "seed_language_chinese": "Chinesisch", @@ -584,7 +584,7 @@ "send_your_wallet": "Ihre Wallet", "sending": "Senden", "sent": "Versendet", - "service_health_disabled": "Service Health Bulletin ist behindert", + "service_health_disabled": "Service Health Bulletin ist deaktiviert", "service_health_disabled_message": "Dies ist die Seite \"Service Health Bulletin\", können Sie diese Seite unter Einstellungen -> Privatsphäre aktivieren", "settings": "Einstellungen", "settings_all": "ALLE", @@ -822,4 +822,4 @@ "you_will_get": "Konvertieren zu", "you_will_send": "Konvertieren von", "yy": "YY" -} \ No newline at end of file +} From 190c8e06b9c2121e4694ccdd048b3daf61f99270 Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Thu, 25 Apr 2024 06:06:11 -0500 Subject: [PATCH 066/157] Use the latest version of the DFX Auth Api to minimize the number of API calls (#1410) --- lib/buy/dfx/dfx_buy_provider.dart | 80 +++++++++---------------------- 1 file changed, 23 insertions(+), 57 deletions(-) diff --git a/lib/buy/dfx/dfx_buy_provider.dart b/lib/buy/dfx/dfx_buy_provider.dart index b5c5d3b023..bf67edd237 100644 --- a/lib/buy/dfx/dfx_buy_provider.dart +++ b/lib/buy/dfx/dfx_buy_provider.dart @@ -17,9 +17,8 @@ class DFXBuyProvider extends BuyProvider { : super(wallet: wallet, isTestEnvironment: isTestEnvironment); static const _baseUrl = 'api.dfx.swiss'; - static const _authPath = '/v1/auth/signMessage'; - static const _signUpPath = '/v1/auth/signUp'; - static const _signInPath = '/v1/auth/signIn'; + // static const _signMessagePath = '/v1/auth/signMessage'; + static const _authPath = '/v1/auth'; static const walletName = 'CakeWallet'; @override @@ -73,21 +72,25 @@ class DFXBuyProvider extends BuyProvider { String get walletAddress => wallet.walletAddresses.primaryAddress ?? wallet.walletAddresses.address; - Future getSignMessage() async { - final uri = Uri.https(_baseUrl, _authPath, {'address': walletAddress}); - - var response = await http.get(uri, headers: {'accept': 'application/json'}); - - if (response.statusCode == 200) { - final responseBody = jsonDecode(response.body); - return responseBody['message'] as String; - } else { - throw Exception( - 'Failed to get sign message. Status: ${response.statusCode} ${response.body}'); - } - } - - Future signUp() async { + Future getSignMessage() async => + "By_signing_this_message,_you_confirm_that_you_are_the_sole_owner_of_the_provided_Blockchain_address._Your_ID:_$walletAddress"; + + // // Lets keep this just in case, but we can avoid this API Call + // Future getSignMessage() async { + // final uri = Uri.https(_baseUrl, _signMessagePath, {'address': walletAddress}); + // + // final response = await http.get(uri, headers: {'accept': 'application/json'}); + // + // if (response.statusCode == 200) { + // final responseBody = jsonDecode(response.body); + // return responseBody['message'] as String; + // } else { + // throw Exception( + // 'Failed to get sign message. Status: ${response.statusCode} ${response.body}'); + // } + // } + + Future auth() async { final signMessage = getSignature(await getSignMessage()); final requestBody = jsonEncode({ @@ -96,7 +99,7 @@ class DFXBuyProvider extends BuyProvider { 'signature': signMessage, }); - final uri = Uri.https(_baseUrl, _signUpPath); + final uri = Uri.https(_baseUrl, _authPath); var response = await http.post( uri, headers: {'Content-Type': 'application/json'}, @@ -115,33 +118,6 @@ class DFXBuyProvider extends BuyProvider { } } - Future signIn() async { - final signMessage = getSignature(await getSignMessage()); - - final requestBody = jsonEncode({ - 'address': walletAddress, - 'signature': signMessage, - }); - - final uri = Uri.https(_baseUrl, _signInPath); - var response = await http.post( - uri, - headers: {'Content-Type': 'application/json'}, - body: requestBody, - ); - - if (response.statusCode == 201) { - final responseBody = jsonDecode(response.body); - return responseBody['accessToken'] as String; - } else if (response.statusCode == 403) { - final responseBody = jsonDecode(response.body); - final message = responseBody['message'] ?? 'Service unavailable in your country'; - throw Exception(message); - } else { - throw Exception('Failed to sign in. Status: ${response.statusCode} ${response.body}'); - } - } - String getSignature(String message) { switch (wallet.type) { case WalletType.ethereum: @@ -164,17 +140,7 @@ class DFXBuyProvider extends BuyProvider { final blockchain = this.blockchain; final actionType = isBuyAction == true ? '/buy' : '/sell'; - String accessToken; - - try { - accessToken = await signUp(); - } on Exception catch (e) { - if (e.toString().contains('409')) { - accessToken = await signIn(); - } else { - rethrow; - } - } + final accessToken = await auth(); final uri = Uri.https('services.dfx.swiss', actionType, { 'session': accessToken, From 9ff6da3d5d2db04069deed46c35a15e4138d777e Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 25 Apr 2024 19:28:18 +0300 Subject: [PATCH 067/157] dynamic max fee rate value (#1395) --- lib/bitcoin/cw_bitcoin.dart | 6 ++++ lib/src/screens/send/widgets/send_card.dart | 2 ++ .../screens/settings/other_settings_page.dart | 1 + .../widgets/setting_priority_picker_cell.dart | 3 ++ .../rbf_details_list_fee_picker_item.dart | 2 ++ .../transaction_details/rbf_details_page.dart | 1 + lib/src/widgets/picker.dart | 28 +++++++++++++------ lib/src/widgets/standard_picker_list.dart | 3 ++ lib/view_model/send/send_view_model.dart | 7 +++++ .../settings/other_settings_view_model.dart | 7 +++++ .../transaction_details_view_model.dart | 2 ++ tool/configure.dart | 1 + 12 files changed, 54 insertions(+), 9 deletions(-) diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 862ce9db57..9bdc0f3ace 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -291,4 +291,10 @@ class CWBitcoin extends Bitcoin { outputsCount, ); } + + @override + int getMaxCustomFeeRate(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + return (bitcoinWallet.feeRate(BitcoinTransactionPriority.fast) * 1.1).round(); + } } diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 7c2bfedd0c..c9ae5182ad 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -675,6 +675,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin( @@ -689,6 +690,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin extends StandardListRow { this.isGridView = false, this.matchingCriteria, this.customValue, + this.maxValue, this.customItemIndex, this.onItemSelected}) : super( @@ -34,6 +35,7 @@ class SettingsPriorityPickerCell extends StandardListRow { displayItem: (ItemType item) => displayItem!(item, sliderValue.round()), selectedAtIndex: selectedAtIndex, customItemIndex: customItemIndex, + maxValue: maxValue, headerEnabled: false, closeOnItemSelected: false, mainAxisAlignment: MainAxisAlignment.center, @@ -61,6 +63,7 @@ class SettingsPriorityPickerCell extends StandardListRow { final bool isGridView; final bool Function(ItemType, String)? matchingCriteria; double? customValue; + double? maxValue; int? customItemIndex; @override diff --git a/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart b/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart index 8f722ee7e8..7615065d7f 100644 --- a/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart +++ b/lib/src/screens/transaction_details/rbf_details_list_fee_picker_item.dart @@ -10,6 +10,7 @@ class StandardPickerListItem extends TransactionDetailsListItem { required this.onItemSelected, required this.selectedIdx, required this.customItemIndex, + this.maxValue, required this.customValue}) : super(title: title, value: value); @@ -18,6 +19,7 @@ class StandardPickerListItem extends TransactionDetailsListItem { final Function(double) onSliderChanged; final Function(T) onItemSelected; final int selectedIdx; + final double? maxValue; final int customItemIndex; double customValue; } diff --git a/lib/src/screens/transaction_details/rbf_details_page.dart b/lib/src/screens/transaction_details/rbf_details_page.dart index 875e0a4efd..3faec48a81 100644 --- a/lib/src/screens/transaction_details/rbf_details_page.dart +++ b/lib/src/screens/transaction_details/rbf_details_page.dart @@ -74,6 +74,7 @@ class RBFDetailsPage extends BasePage { selectedIdx: item.selectedIdx, customItemIndex: item.customItemIndex, customValue: item.customValue, + maxValue: item.maxValue, ); } diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart index d87b5721e9..b744d1db02 100644 --- a/lib/src/widgets/picker.dart +++ b/lib/src/widgets/picker.dart @@ -27,14 +27,21 @@ class Picker extends StatefulWidget { this.headerEnabled = true, this.closeOnItemSelected = true, this.sliderValue, + this.minValue, + this.maxValue, this.customItemIndex, this.isWrapped = true, this.borderColor, this.onSliderChanged, this.matchingCriteria, - }) : assert(hintText == null || - matchingCriteria != - null); // make sure that if the search field is enabled then there is a searching criteria provided + }) : assert(hintText == null || matchingCriteria != null) { + // make sure that if the search field is enabled then there is a searching criteria provided + if (sliderValue != null && maxValue != null) { + if (sliderValue! > maxValue!) { + sliderValue = maxValue; + } + } + } final int selectedAtIndex; final List items; @@ -49,12 +56,14 @@ class Picker extends StatefulWidget { final String? hintText; final bool headerEnabled; final bool closeOnItemSelected; - final double? sliderValue; + double? sliderValue; + final double? minValue; final int? customItemIndex; final bool isWrapped; final Color? borderColor; final Function(double)? onSliderChanged; final bool Function(Item, String)? matchingCriteria; + final double? maxValue; @override _PickerState createState() => _PickerState(items, images, onItemSelected); @@ -138,7 +147,7 @@ class _PickerState extends State> { containerHeight = height * 0.75; } - final content = Column ( + final content = Column( children: [ if (widget.title?.isNotEmpty ?? false) Container( @@ -211,8 +220,9 @@ class _PickerState extends State> { fontWeight: FontWeight.w500, fontFamily: 'Lato', decoration: TextDecoration.none, - color: - Theme.of(context).extension()!.titleColor, + color: Theme.of(context) + .extension()! + .titleColor, ), ), ) @@ -491,8 +501,8 @@ class _PickerState extends State> { child: Slider( value: widget.sliderValue ?? 1, onChanged: isActivated ? widget.onSliderChanged : null, - min: 1, - max: 100, + min: widget.minValue ?? 1, + max: widget.maxValue ?? 100, divisions: 100, ), ), diff --git a/lib/src/widgets/standard_picker_list.dart b/lib/src/widgets/standard_picker_list.dart index eb1d169000..ea8b070971 100644 --- a/lib/src/widgets/standard_picker_list.dart +++ b/lib/src/widgets/standard_picker_list.dart @@ -15,6 +15,7 @@ class StandardPickerList extends StatefulWidget { required this.selectedIdx, required this.customItemIndex, required this.customValue, + this.maxValue, }) : super(key: key); final String title; @@ -26,6 +27,7 @@ class StandardPickerList extends StatefulWidget { final String value; final int selectedIdx; final double customValue; + final double? maxValue; @override _StandardPickerListState createState() => _StandardPickerListState(); @@ -59,6 +61,7 @@ class _StandardPickerListState extends State> { displayItem: adaptedDisplayItem, selectedAtIndex: selectedIdx, customItemIndex: widget.customItemIndex, + maxValue: widget.maxValue, headerEnabled: false, closeOnItemSelected: false, mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 298cc3eed5..2e00d1f0bb 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -166,6 +166,13 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return null; } + int? get maxCustomFeeRate { + if (wallet.type == WalletType.bitcoin) { + return bitcoin!.getMaxCustomFeeRate(wallet); + } + return null; + } + @computed int get customBitcoinFeeRate => _settingsStore.customBitcoinFeeRate; diff --git a/lib/view_model/settings/other_settings_view_model.dart b/lib/view_model/settings/other_settings_view_model.dart index cf410a1a97..0493acf81d 100644 --- a/lib/view_model/settings/other_settings_view_model.dart +++ b/lib/view_model/settings/other_settings_view_model.dart @@ -140,6 +140,13 @@ abstract class OtherSettingsViewModelBase with Store { return customItem != null ? priorities.indexOf(customItem) : null; } + int? get maxCustomFeeRate { + if (_wallet.type == WalletType.bitcoin) { + return bitcoin!.getMaxCustomFeeRate(_wallet); + } + return null; + } + @action ProviderType onBuyProviderTypeSelected(ProviderType buyProviderType) => _settingsStore.defaultBuyProviders[walletType] = buyProviderType; diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index fd6d3ef6ea..be2ebc5453 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -348,12 +348,14 @@ abstract class TransactionDetailsViewModelBase with Store { final customItem = priorities.firstWhereOrNull( (element) => element == sendViewModel.bitcoinTransactionPriorityCustom); final customItemIndex = customItem != null ? priorities.indexOf(customItem) : null; + final maxCustomFeeRate = sendViewModel.maxCustomFeeRate?.toDouble(); RBFListItems.add(StandardPickerListItem( title: S.current.estimated_new_fee, value: bitcoin!.formatterBitcoinAmountToString(amount: newFee) + ' ${walletTypeToCryptoCurrency(wallet.type)}', items: priorityForWalletType(wallet.type), customValue: settingsStore.customBitcoinFeeRate.toDouble(), + maxValue: maxCustomFeeRate, selectedIdx: selectedItem, customItemIndex: customItemIndex ?? 0, displayItem: (dynamic priority, double sliderValue) => diff --git a/tool/configure.dart b/tool/configure.dart index d08724e421..34a39d28ba 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -159,6 +159,7 @@ abstract class Bitcoin { Future isChangeSufficientForFee(Object wallet, String txId, String newFee); int getFeeAmountForPriority(Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, {int? size}); int getFeeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, {int? size}); + int getMaxCustomFeeRate(Object wallet); } """; From a5a3b4ac0ee0392fd0823f1752536fd04654a49a Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 26 Apr 2024 05:32:13 +0300 Subject: [PATCH 068/157] Update crypto_currency.dart --- cw_core/lib/crypto_currency.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index a7edd409fc..f1c1cd8aea 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -10,7 +10,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen this.fullName, this.iconPath, this.tag, - this.enabled = true, + this.enabled = false, }) : super(title: title, raw: raw); From 7fcf48f91da3d82121704bf25c530549a24c9322 Mon Sep 17 00:00:00 2001 From: Serhii Date: Fri, 26 Apr 2024 19:18:26 +0300 Subject: [PATCH 069/157] Fix estimated fee calculation for customs fee rate (#1406) * Update output.dart * fix estimated fee calculation * Update bitcoin_transaction_priority.dart --- cw_bitcoin/lib/bitcoin_transaction_priority.dart | 2 +- lib/bitcoin/cw_bitcoin.dart | 11 ++++++----- lib/view_model/send/output.dart | 4 ++-- lib/view_model/transaction_details_view_model.dart | 14 +++++--------- tool/configure.dart | 2 +- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/cw_bitcoin/lib/bitcoin_transaction_priority.dart b/cw_bitcoin/lib/bitcoin_transaction_priority.dart index d51775368d..7c4dcfd5f5 100644 --- a/cw_bitcoin/lib/bitcoin_transaction_priority.dart +++ b/cw_bitcoin/lib/bitcoin_transaction_priority.dart @@ -37,7 +37,7 @@ class BitcoinTransactionPriority extends TransactionPriority { switch (this) { case BitcoinTransactionPriority.slow: - label = 'Slow ~24hrs'; // '${S.current.transaction_priority_slow} ~24hrs'; + label = 'Slow ~24hrs+'; // '${S.current.transaction_priority_slow} ~24hrs'; break; case BitcoinTransactionPriority.medium: label = 'Medium'; // S.current.transaction_priority_medium; diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 9bdc0f3ace..707f1157bc 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -282,13 +282,14 @@ class CWBitcoin extends Bitcoin { } @override - int getFeeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, - {int? size}) { + int getEstimatedFeeWithFeeRate(Object wallet, int feeRate, int? amount, + {int? outputsCount, int? size}) { final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.feeAmountWithFeeRate( + return bitcoinWallet.calculateEstimatedFeeWithFeeRate( feeRate, - inputsCount, - outputsCount, + amount, + outputsCount: outputsCount, + size: size, ); } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index 6bb3fbb316..07d98ff322 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -126,8 +126,8 @@ abstract class OutputBase with Store { if (_wallet.type == WalletType.bitcoin) { if (_settingsStore.priority[_wallet.type] == bitcoin!.getBitcoinTransactionPriorityCustom()) { - fee = bitcoin!.getFeeAmountWithFeeRate( - _settingsStore.customBitcoinFeeRate, formattedCryptoAmount, 1, 1); + fee = bitcoin!.getEstimatedFeeWithFeeRate(_wallet, + _settingsStore.customBitcoinFeeRate,formattedCryptoAmount); } return bitcoin!.formatterBitcoinAmountToDouble(amount: fee); diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index be2ebc5453..faa49dfc4f 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -390,16 +390,12 @@ abstract class TransactionDetailsViewModelBase with Store { String setNewFee({double? value, required TransactionPriority priority}) { newFee = priority == bitcoin!.getBitcoinTransactionPriorityCustom() && value != null - ? bitcoin!.getFeeAmountWithFeeRate( - wallet, - value.round(), - transactionInfo.inputAddresses?.length ?? 1, - transactionInfo.outputAddresses?.length ?? 1) + ? bitcoin!.getEstimatedFeeWithFeeRate(wallet, value.round(), transactionInfo.amount) : bitcoin!.getFeeAmountForPriority( - wallet, - priority, - transactionInfo.inputAddresses?.length ?? 1, - transactionInfo.outputAddresses?.length ?? 1); + wallet, + priority, + transactionInfo.inputAddresses?.length ?? 1, + transactionInfo.outputAddresses?.length ?? 1); return bitcoin!.formatterBitcoinAmountToString(amount: newFee); } diff --git a/tool/configure.dart b/tool/configure.dart index 34a39d28ba..3b73bfe804 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -158,7 +158,7 @@ abstract class Bitcoin { Future canReplaceByFee(Object wallet, String transactionHash); Future isChangeSufficientForFee(Object wallet, String txId, String newFee); int getFeeAmountForPriority(Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, {int? size}); - int getFeeAmountWithFeeRate(Object wallet, int feeRate, int inputsCount, int outputsCount, {int? size}); + int getEstimatedFeeWithFeeRate(Object wallet, int feeRate, int? amount, {int? outputsCount, int? size}); int getMaxCustomFeeRate(Object wallet); } """; From a6dc9bf9d675d27297afbdec616ba5e1d251d566 Mon Sep 17 00:00:00 2001 From: Serhii Date: Fri, 26 Apr 2024 19:18:35 +0300 Subject: [PATCH 070/157] Update electrum_wallet.dart (#1411) --- cw_bitcoin/lib/electrum_wallet.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 5bed6a4495..6b305722ef 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -1037,9 +1037,11 @@ abstract class ElectrumWalletBase return Future.wait(addressesByType.map((addressRecord) async { final history = await _fetchAddressHistory(addressRecord, addressesSet, currentHeight); + final balance = await electrumClient.getBalance(addressRecord.scriptHash!); if (history.isNotEmpty) { addressRecord.txCount = history.length; + addressRecord.balance = balance['confirmed'] as int? ?? 0; historiesWithDetails.addAll(history); final matchedAddresses = From f3160860b1796ef0abe41299eb954ce26c1b899b Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 26 Apr 2024 22:13:44 +0300 Subject: [PATCH 071/157] Better handle corrupted wallets (#1384) * Fix exchanges not showing * Fix button text on Monero receive screen * Temp fix for ERC20 and SPL tokens not having raw value * fallback to other wallets if the current wallet is corrupted so we give user access to the app --------- Co-authored-by: tuxsudo --- lib/core/wallet_loading_service.dart | 61 ++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/lib/core/wallet_loading_service.dart b/lib/core/wallet_loading_service.dart index 3323e78318..1f17a7a1c8 100644 --- a/lib/core/wallet_loading_service.dart +++ b/lib/core/wallet_loading_service.dart @@ -1,27 +1,28 @@ import 'package:cake_wallet/core/generate_wallet_password.dart'; import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; +import 'package:cake_wallet/utils/exception_handler.dart'; +import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; +import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class WalletLoadingService { - WalletLoadingService( - this.sharedPreferences, this.keyService, this.walletServiceFactory); + WalletLoadingService(this.sharedPreferences, this.keyService, this.walletServiceFactory); final SharedPreferences sharedPreferences; final KeyService keyService; final WalletService Function(WalletType type) walletServiceFactory; - Future renameWallet( - WalletType type, String name, String newName) async { + Future renameWallet(WalletType type, String name, String newName) async { final walletService = walletServiceFactory.call(type); final password = await keyService.getWalletPassword(walletName: name); // Save the current wallet's password to the new wallet name's key - await keyService.saveWalletPassword( - walletName: newName, password: password); + await keyService.saveWalletPassword(walletName: newName, password: password); // Delete previous wallet name from keyService to keep only new wallet's name // otherwise keeps duplicate (old and new names) await keyService.deleteWalletPassword(walletName: name); @@ -38,15 +39,43 @@ class WalletLoadingService { } Future load(WalletType type, String name) async { - final walletService = walletServiceFactory.call(type); - final password = await keyService.getWalletPassword(walletName: name); - final wallet = await walletService.openWallet(name, password); + try { + final walletService = walletServiceFactory.call(type); + final password = await keyService.getWalletPassword(walletName: name); + final wallet = await walletService.openWallet(name, password); - if (type == WalletType.monero) { - await updateMoneroWalletPassword(wallet); - } + if (type == WalletType.monero) { + await updateMoneroWalletPassword(wallet); + } + + return wallet; + } catch (error, stack) { + ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stack)); + + // try opening another wallet that is not corrupted to give user access to the app + final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); - return wallet; + for (var walletInfo in walletInfoSource.values) { + try { + final walletService = walletServiceFactory.call(walletInfo.type); + final password = await keyService.getWalletPassword(walletName: walletInfo.name); + final wallet = await walletService.openWallet(walletInfo.name, password); + + if (walletInfo.type == WalletType.monero) { + await updateMoneroWalletPassword(wallet); + } + + await sharedPreferences.setString(PreferencesKey.currentWalletName, wallet.name); + await sharedPreferences.setInt( + PreferencesKey.currentWalletType, serializeToInt(wallet.type)); + + return wallet; + } catch (_) {} + } + + // if all user's wallets are corrupted throw exception + throw error; + } } Future updateMoneroWalletPassword(WalletBase wallet) async { @@ -61,11 +90,9 @@ class WalletLoadingService { // Save new generated password with backup key for case where // wallet will change password, but it will fail to update in secure storage final bakWalletName = '#__${wallet.name}_bak__#'; - await keyService.saveWalletPassword( - walletName: bakWalletName, password: password); + await keyService.saveWalletPassword(walletName: bakWalletName, password: password); await wallet.changePassword(password); - await keyService.saveWalletPassword( - walletName: wallet.name, password: password); + await keyService.saveWalletPassword(walletName: wallet.name, password: password); isPasswordUpdated = true; await sharedPreferences.setBool(key, isPasswordUpdated); } From 9e4a7f4331d0ed9a26f5d1c73135a7ae06b4d8c8 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 26 Apr 2024 22:29:31 +0300 Subject: [PATCH 072/157] Enhance bitcoin error message (#1399) * Enhance bitcoin error message * fix: unconfirmed spends, spend confirmed first, wrong balance exception * Minor fixes --------- Co-authored-by: Rafael Saes --- cw_bitcoin/lib/electrum_wallet.dart | 44 +++++++++++++++++-- cw_bitcoin/lib/exceptions.dart | 4 +- .../lib/pending_bitcoin_transaction.dart | 2 + cw_bitcoin/pubspec.lock | 34 +++++++------- .../src/pending_bitcoin_cash_transaction.dart | 2 + cw_core/lib/exceptions.dart | 6 ++- cw_core/lib/unspent_transaction_output.dart | 1 + lib/src/screens/send/send_page.dart | 2 +- lib/view_model/send/send_view_model.dart | 2 +- 9 files changed, 72 insertions(+), 25 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 6b305722ef..4a76ee5dd1 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -203,10 +203,14 @@ abstract class ElectrumWalletBase List privateKeys = []; int allInputsAmount = 0; + bool spendsUnconfirmedTX = false; + for (int i = 0; i < unspentCoins.length; i++) { final utx = unspentCoins[i]; - if (utx.isSending) { + if (utx.isSending && !utx.isFrozen) { + if (!spendsUnconfirmedTX) spendsUnconfirmedTX = utx.confirmations == 0; + allInputsAmount += utx.value; final address = addressTypeFromStr(utx.address, network); @@ -264,6 +268,10 @@ abstract class ElectrumWalletBase // Here, when sending all, the output amount equals to the input value - fee to fully spend every input on the transaction and have no amount left for change int amount = allInputsAmount - fee; + if (amount <= 0) { + throw BitcoinTransactionWrongBalanceException(); + } + // Attempting to send less than the dust limit if (_isBelowDust(amount)) { throw BitcoinTransactionNoDustException(); @@ -288,6 +296,7 @@ abstract class ElectrumWalletBase isSendAll: true, hasChange: false, memo: memo, + spendsUnconfirmedTX: spendsUnconfirmedTX, ); } @@ -297,17 +306,25 @@ abstract class ElectrumWalletBase int feeRate, { int? inputsCount, String? memo, + bool? useUnconfirmed, }) async { final utxos = []; List privateKeys = []; int allInputsAmount = 0; + bool spendsUnconfirmedTX = false; int leftAmount = credentialsAmount; - final sendingCoins = unspentCoins.where((utx) => utx.isSending).toList(); + final sendingCoins = unspentCoins.where((utx) => utx.isSending && !utx.isFrozen).toList(); + final unconfirmedCoins = sendingCoins.where((utx) => utx.confirmations == 0).toList(); for (int i = 0; i < sendingCoins.length; i++) { final utx = sendingCoins[i]; + final isUncormirmed = utx.confirmations == 0; + if (useUnconfirmed != true && isUncormirmed) continue; + + if (!spendsUnconfirmedTX) spendsUnconfirmedTX = isUncormirmed; + allInputsAmount += utx.value; leftAmount = leftAmount - utx.value; @@ -345,11 +362,23 @@ abstract class ElectrumWalletBase } final spendingAllCoins = sendingCoins.length == utxos.length; + final spendingAllConfirmedCoins = + !spendsUnconfirmedTX && utxos.length == sendingCoins.length - unconfirmedCoins.length; // How much is being spent - how much is being sent int amountLeftForChangeAndFee = allInputsAmount - credentialsAmount; if (amountLeftForChangeAndFee <= 0) { + if (!spendingAllCoins) { + return estimateTxForAmount( + credentialsAmount, + outputs, + feeRate, + inputsCount: utxos.length + 1, + memo: memo, + useUnconfirmed: useUnconfirmed ?? spendingAllConfirmedCoins, + ); + } throw BitcoinTransactionWrongBalanceException(); } @@ -403,6 +432,7 @@ abstract class ElectrumWalletBase feeRate, inputsCount: utxos.length + 1, memo: memo, + useUnconfirmed: useUnconfirmed ?? spendingAllConfirmedCoins, ); } @@ -449,6 +479,7 @@ abstract class ElectrumWalletBase feeRate, inputsCount: utxos.length + 1, memo: memo, + useUnconfirmed: useUnconfirmed ?? spendingAllConfirmedCoins, ); } } @@ -461,6 +492,7 @@ abstract class ElectrumWalletBase hasChange: true, isSendAll: false, memo: memo, + spendsUnconfirmedTX: spendsUnconfirmedTX, ); } @@ -531,7 +563,7 @@ abstract class ElectrumWalletBase network: network, memo: estimatedTx.memo, outputOrdering: BitcoinOrdering.none, - enableRBF: true, + enableRBF: !estimatedTx.spendsUnconfirmedTX, ); } else { txb = BitcoinTransactionBuilder( @@ -541,7 +573,7 @@ abstract class ElectrumWalletBase network: network, memo: estimatedTx.memo, outputOrdering: BitcoinOrdering.none, - enableRBF: true, + enableRBF: !estimatedTx.spendsUnconfirmedTX, ); } @@ -721,6 +753,7 @@ abstract class ElectrumWalletBase final tx = await fetchTransactionInfo( hash: coin.hash, height: 0, myAddresses: addressesSet); coin.isChange = tx?.direction == TransactionDirection.outgoing; + coin.confirmations = tx?.confirmations; updatedUnspentCoins.add(coin); } catch (_) {} })))); @@ -745,6 +778,7 @@ abstract class ElectrumWalletBase coin.isFrozen = coinInfo.isFrozen; coin.isSending = coinInfo.isSending; coin.note = coinInfo.note; + coin.bitcoinAddressRecord.balance += coinInfo.value; } else { _addCoinInfo(coin); } @@ -1272,6 +1306,7 @@ class EstimatedTxResult { required this.hasChange, required this.isSendAll, this.memo, + required this.spendsUnconfirmedTX, }); final List utxos; @@ -1281,6 +1316,7 @@ class EstimatedTxResult { final bool hasChange; final bool isSendAll; final String? memo; + final bool spendsUnconfirmedTX; } BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { diff --git a/cw_bitcoin/lib/exceptions.dart b/cw_bitcoin/lib/exceptions.dart index 4b03eb9221..979c1a4334 100644 --- a/cw_bitcoin/lib/exceptions.dart +++ b/cw_bitcoin/lib/exceptions.dart @@ -15,7 +15,9 @@ class BitcoinTransactionNoDustOnChangeException extends TransactionNoDustOnChang BitcoinTransactionNoDustOnChangeException(super.max, super.min); } -class BitcoinTransactionCommitFailed extends TransactionCommitFailed {} +class BitcoinTransactionCommitFailed extends TransactionCommitFailed { + BitcoinTransactionCommitFailed({super.errorMessage}); +} class BitcoinTransactionCommitFailedDustChange extends TransactionCommitFailedDustChange {} diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index 529ac61da6..a59b4f4293 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -73,7 +73,9 @@ class PendingBitcoinTransaction with PendingTransaction { if (error.contains("bad-txns-vout-negative")) { throw BitcoinTransactionCommitFailedVoutNegative(); } + throw BitcoinTransactionCommitFailed(errorMessage: error); } + throw BitcoinTransactionCommitFailed(); } diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 53cf550c86..50cd432c06 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" asn1lib: dependency: transitive description: @@ -80,7 +80,7 @@ packages: description: path: "." ref: cake-update-v2 - resolved-ref: "3fd81d238b990bb767fc7a4fdd5053a22a142e2e" + resolved-ref: "01d844a5f5a520a31df5254e34169af4664aa769" url: "https://github.com/cake-tech/bitcoin_base.git" source: git version: "4.2.0" @@ -153,10 +153,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.4.8" + version: "2.4.9" build_runner_core: dependency: transitive description: @@ -177,10 +177,10 @@ packages: dependency: transitive description: name: built_value - sha256: a3ec2e0f967bc47f69f95009bb93db936288d61d5343b9436e378b28a2f830c6 + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.9.2" characters: dependency: transitive description: @@ -309,10 +309,10 @@ packages: dependency: "direct main" description: name: flutter_mobx - sha256: "4a5d062ff85ed3759f4aac6410ff0ffae32e324b2e71ca722ae1b37b32e865f4" + sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" url: "https://pub.dev" source: hosted - version: "2.2.0+2" + version: "2.2.1+1" flutter_test: dependency: "direct dev" description: flutter @@ -322,10 +322,10 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -466,10 +466,10 @@ packages: dependency: "direct main" description: name: mobx - sha256: "74ee54012dc7c1b3276eaa960a600a7418ef5f9997565deb8fca1fd88fb36b78" + sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" url: "https://pub.dev" source: hosted - version: "2.3.0+1" + version: "2.3.3+2" mobx_codegen: dependency: "direct dev" description: @@ -570,10 +570,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + sha256: "70fe966348fe08c34bf929582f1d8247d9d9408130723206472b4687227e4333" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "3.8.0" pool: dependency: transitive description: @@ -586,10 +586,10 @@ packages: dependency: transitive description: name: provider - sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c url: "https://pub.dev" source: hosted - version: "6.1.1" + version: "6.1.2" pub_semver: dependency: transitive description: diff --git a/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart b/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart index da4710a8b1..6d2ab4696d 100644 --- a/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart +++ b/cw_bitcoin_cash/lib/src/pending_bitcoin_cash_transaction.dart @@ -62,7 +62,9 @@ class PendingBitcoinCashTransaction with PendingTransaction { if (error.contains("bad-txns-vout-negative")) { throw BitcoinTransactionCommitFailedVoutNegative(); } + throw BitcoinTransactionCommitFailed(errorMessage: error); } + throw BitcoinTransactionCommitFailed(); } diff --git a/cw_core/lib/exceptions.dart b/cw_core/lib/exceptions.dart index 848ac40e63..d07da81095 100644 --- a/cw_core/lib/exceptions.dart +++ b/cw_core/lib/exceptions.dart @@ -19,7 +19,11 @@ class TransactionNoDustOnChangeException implements Exception { final String min; } -class TransactionCommitFailed implements Exception {} +class TransactionCommitFailed implements Exception { + final String? errorMessage; + + TransactionCommitFailed({this.errorMessage}); +} class TransactionCommitFailedDustChange implements Exception {} diff --git a/cw_core/lib/unspent_transaction_output.dart b/cw_core/lib/unspent_transaction_output.dart index b52daf43cc..595df18f47 100644 --- a/cw_core/lib/unspent_transaction_output.dart +++ b/cw_core/lib/unspent_transaction_output.dart @@ -14,6 +14,7 @@ class Unspent { bool isChange; bool isSending; bool isFrozen; + int? confirmations; String note; bool get isP2wpkh => address.startsWith('bc') || address.startsWith('ltc'); diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 970bb31f27..93fadea72a 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -100,7 +100,7 @@ class SendPage extends BasePage { AppBarStyle get appBarStyle => AppBarStyle.transparent; double _sendCardHeight(BuildContext context) { - double initialHeight = 450; + double initialHeight = 480; if (sendViewModel.hasCoinControl) { initialHeight += 35; } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 2e00d1f0bb..cabb723e1f 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -562,7 +562,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return S.current.tx_no_dust_exception; } if (error is TransactionCommitFailed) { - return S.current.tx_commit_failed; + return "${S.current.tx_commit_failed}${error.errorMessage != null ? "\n\n${error.errorMessage}" : ""}"; } if (error is TransactionCommitFailedDustChange) { return S.current.tx_rejected_dust_change; From 509b92e97f51731a73736ca5c27e3e2d7df3def4 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Mon, 29 Apr 2024 17:49:56 -0700 Subject: [PATCH 073/157] Bitcoin derivations (#1089) * - Update and Fix Conflicts with main * Add Balances for ERC20 tokens * Fix conflicts with main * Add erc20 abi json * Add send erc20 tokens initial function * add missing getHeightByDate in Haven [skip ci] * Allow contacts and wallets from the same tag * Add Shiba Inu icon * Add send ERC-20 tokens initial flow * Add missing import in generated file * Add initial approach for transaction sending for ERC-20 tokens * Refactor signing/sending transactions * Add initial flow for transactions subscription * Refactor signing/sending transactions * Add home settings icon * Fix conflicts with main * Initial flow for home settings * Add logic flow for adding erc20 tokens * Fix initial UI * Finalize UI for Tokens * Integrate UI with Ethereum flow * Add "Enable/Disable" feature for ERC20 tokens * Add initial Erc20 tokens * Add Sorting and Pin Native Token features * Fix price sorting * Sort tokens list as well when Sort criteria changes * - Improve sorting balances flow - Add initial add token from search bar flow * Fix Accounts Popup UI * Fix Pin native token * Fix Enabling/Disabling tokens Fix sorting by fiat once app is opened Improve token availability mechanism * Fix deleting token Fix renaming tokens * Fix issue with search * Add more tokens * - Fix scroll issue - Add ERC20 tokens placeholder image in picker * - Separate and organize default erc20 tokens - Fix scrolling - Add token placeholder images in picker - Sort disabled tokens alphabetically * Change BNB token initial availability [skip ci] * Fix Conflicts with main * Fix Conflicts with main * Add Verse ERC20 token to the initial tokens list * Add rename wallet to Ethereum * Integrate EtherScan API for fetching address transactions Generate Ethereum specific secrets in Ethereum package * Adjust transactions fiat price for ERC20 tokens * Free Up GitHub Actions Ubuntu Runner Disk Space * Free Up GitHub Actions Ubuntu Runner Disk space (trial 2) * Fix Transaction Fee display * Save transaction history * Enhance loading time for erc20 tokens transactions * Minor Fixes and Enhancements * Fix sending erc20 fix block explorer issue * Fix int overflow * Fix transaction amount conversions * Minor: `slow` -> `Slow` [skip-ci] * initial changes * more base config stuff * config changes * successfully builds! * save * successfully add nano wallet * save * seed generation * receive screen + node screen working * tx history working and fiat fixes * balance working * derivation updates * nano-unfinished * sends working * remove fees from send screen, send and receive transactions working * fixes + auto receive incoming txs * fix for scanning QR codes * save * update translations * fixes * more fixes * more strings * small fix * fix github actions workflow * potential fix * potential fix * ci/cd fix * change rep working * seed generation fixes * fixes * save * change rep screen functional * save * banano changes * fixes, start adding ui for PoW * pow node changes * update translations * fix * account changing barely working * save * disable account generation * small fix * save * UI work * save * fixes after merge main * fixes * remove monero stuff, work on derivation ui * lots of fixes + finish up seed derivation * last minute fixes * node related fixes * more fixes * small fix * more fixes * fixes * pretty big refactor for pow, still some bugs * finally works! * get transactions after send * fix * merge conflict fixes * save * fix pow node showing up twice * done * initial changes * small fix * more merge fixes * fixes * more fixes * fix * save * fix manage pow nodes setting appearing on other wallets * fix contact bug * fixes * fiat fixes * save * save * save * save * updates * cleanup * restore fix * fixes * remove deprecated alert * fix * small fix * remove outdated warning * electrum restore fixes * fixes * fixes * fix * derivation fixes * nano fixes pt.1 * nano fixes pt.2 * bip39 fixes * pownode refactor * nodes pages fixes * observer fix * ssl fix * remove old references * remove unused imports * code cleanup * small fix * small potential fix * save * derivation fixes * deterministic fix * fix pt.2 * derivation class fixes * review fixes from nano that also apply here * formatting * stuff that should've stayed deleted * post merge fixes * remove problematic imports and duplicate changes * Delete lib/nano/nano.dart * move wallet restore page proxy code to the view model * fix dashboard page indicators being the same color * debatably better refactoring of derivationInfo, migration needed * additional refactor improvements * blanket comment some stuff out to narrow down this issue * refactor fixes * fix nano exchange * fix , bug, i.e. replace , with . when making a nano transaction * fix nano sending, update restore page wording, and other minor fixes * write migration for existing bitcoin and nano wallets * merge fixes * minor fixes * use default derivation type when restoring from qr code * fixes for restoring * fixes * fixes * merge fix * Fix issues with Creating Electrum and Restoring Bip39 * updates & fixes * Add missing case for no transactions BIP39 wallet restore * Make the default BIP39 the 84 derivation path * Add Samourai Deposit * litecoin mnemonic error fix * Bip39 passphrase support (#1412) * save * passphrase working * fix for when loading wallets + translation update * minor fix * Fix Nano * minor fix [skip ci] --------- Co-authored-by: OmarHatem * change error state seed conditions into throwables [skip ci] * litecoin fixes * Bip39 minor enhancements (#1416) * minor enhancements * rename bitcoin_derivations -> electrum_derivations * Remove duplicate derivations handle default case * minor fix * Enable passphrase for Litecoin * obscure text of passphrase --------- Co-authored-by: OmarHatem Co-authored-by: Justin Ehrenhofer Co-authored-by: fossephate --- assets/nano_pow_node_list.yml | 2 +- cw_bitcoin/lib/bitcoin_mnemonic.dart | 32 +-- cw_bitcoin/lib/bitcoin_wallet.dart | 56 +++++- .../bitcoin_wallet_creation_credentials.dart | 33 +++- cw_bitcoin/lib/bitcoin_wallet_service.dart | 7 +- cw_bitcoin/lib/electrum_derivations.dart | 104 ++++++++++ cw_bitcoin/lib/electrum_wallet.dart | 8 +- cw_bitcoin/lib/electrum_wallet_snapshot.dart | 15 ++ cw_bitcoin/lib/litecoin_wallet.dart | 18 +- cw_bitcoin/lib/litecoin_wallet_service.dart | 7 +- cw_bitcoin/lib/utils.dart | 67 +++++-- cw_bitcoin/pubspec.lock | 32 ++- cw_core/lib/hive_type_ids.dart | 3 +- cw_core/lib/wallet_credentials.dart | 14 +- cw_core/lib/wallet_info.dart | 79 +++++--- cw_core/pubspec.lock | 32 ++- cw_nano/lib/nano_wallet.dart | 7 +- .../lib/nano_wallet_creation_credentials.dart | 19 +- cw_nano/lib/nano_wallet_service.dart | 12 +- lib/bitcoin/cw_bitcoin.dart | 186 +++++++++++++++--- lib/entities/default_settings_migration.dart | 18 ++ lib/entities/parse_address_from_domain.dart | 6 +- lib/main.dart | 6 +- lib/nano/cw_nano.dart | 74 +++++-- .../wallet_restore_choose_derivation.dart | 22 +-- .../wallet_restore_from_seed_form.dart | 30 ++- .../screens/restore/wallet_restore_page.dart | 134 ++++--------- .../screens/wallet_list/wallet_list_page.dart | 4 +- lib/src/widgets/base_text_form_field.dart | 3 + .../restore/restore_from_qr_vm.dart | 44 +++-- lib/view_model/send/send_view_model.dart | 2 +- lib/view_model/wallet_creation_vm.dart | 46 ++++- lib/view_model/wallet_restore_view_model.dart | 52 +++-- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 5 +- 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_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 3 +- 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_yo.arb | 1 + res/values/strings_zh.arb | 1 + tool/configure.dart | 37 +++- 60 files changed, 905 insertions(+), 338 deletions(-) create mode 100644 cw_bitcoin/lib/electrum_derivations.dart diff --git a/assets/nano_pow_node_list.yml b/assets/nano_pow_node_list.yml index b908450348..3bbc7c3fbe 100644 --- a/assets/nano_pow_node_list.yml +++ b/assets/nano_pow_node_list.yml @@ -6,4 +6,4 @@ uri: workers.perish.co - uri: worker.nanoriver.cc - useSSL: true \ No newline at end of file + useSSL: true diff --git a/cw_bitcoin/lib/bitcoin_mnemonic.dart b/cw_bitcoin/lib/bitcoin_mnemonic.dart index 9163fcb116..4a01d6ddcd 100644 --- a/cw_bitcoin/lib/bitcoin_mnemonic.dart +++ b/cw_bitcoin/lib/bitcoin_mnemonic.dart @@ -90,8 +90,7 @@ List prefixMatches(String source, List prefixes) { return prefixes.map((prefix) => hx.startsWith(prefix.toLowerCase())).toList(); } -Future generateMnemonic( - {int strength = 264, String prefix = segwit}) async { +Future generateElectrumMnemonic({int strength = 264, String prefix = segwit}) async { final wordBitlen = logBase(wordlist.length, 2).ceil(); final wordCount = strength / wordBitlen; final byteCount = ((wordCount * wordBitlen).ceil() / 8).ceil(); @@ -106,22 +105,29 @@ Future generateMnemonic( return result; } +Future checkIfMnemonicIsElectrum2(String mnemonic) async { + return prefixMatches(mnemonic, [segwit]).first; +} + +Future getMnemonicHash(String mnemonic) async { + final hmacSha512 = Hmac(sha512, utf8.encode('Seed version')); + final digest = hmacSha512.convert(utf8.encode(normalizeText(mnemonic))); + final hx = digest.toString(); + return hx; +} + Future mnemonicToSeedBytes(String mnemonic, {String prefix = segwit}) async { - final pbkdf2 = cryptography.Pbkdf2( - macAlgorithm: cryptography.Hmac.sha512(), - iterations: 2048, - bits: 512); + final pbkdf2 = + cryptography.Pbkdf2(macAlgorithm: cryptography.Hmac.sha512(), iterations: 2048, bits: 512); final text = normalizeText(mnemonic); // pbkdf2.deriveKey(secretKey: secretKey, nonce: nonce) final key = await pbkdf2.deriveKey( - secretKey: cryptography.SecretKey(text.codeUnits), - nonce: 'electrum'.codeUnits); + secretKey: cryptography.SecretKey(text.codeUnits), nonce: 'electrum'.codeUnits); final bytes = await key.extractBytes(); return Uint8List.fromList(bytes); } -bool matchesAnyPrefix(String mnemonic) => - prefixMatches(mnemonic, [segwit]).any((el) => el); +bool matchesAnyPrefix(String mnemonic) => prefixMatches(mnemonic, [segwit]).any((el) => el); bool validateMnemonic(String mnemonic, {String prefix = segwit}) { try { @@ -208,10 +214,8 @@ String removeCJKSpaces(String source) { } String normalizeText(String source) { - final res = removeCombiningCharacters(unorm.nfkd(source).toLowerCase()) - .trim() - .split('/\s+/') - .join(' '); + final res = + removeCombiningCharacters(unorm.nfkd(source).toLowerCase()).trim().split('/\s+/').join(' '); return removeCJKSpaces(res); } diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index bf59e86371..1d29307cab 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -12,6 +12,7 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_bitcoin/bitcoin_wallet_addresses.dart'; +import 'package:bip39/bip39.dart' as bip39; part 'bitcoin_wallet.g.dart'; @@ -30,8 +31,10 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { ElectrumBalance? initialBalance, Map? initialRegularAddressIndex, Map? initialChangeAddressIndex, + String? passphrase, }) : super( mnemonic: mnemonic, + passphrase: passphrase, password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, @@ -44,14 +47,19 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { initialBalance: initialBalance, seedBytes: seedBytes, currency: CryptoCurrency.btc) { + // in a standard BIP44 wallet, mainHd derivation path = m/84'/0'/0'/0 (account 0, index unspecified here) + // the sideHd derivation path = m/84'/0'/0'/1 (account 1, index unspecified here) + String derivationPath = walletInfo.derivationInfo!.derivationPath!; + String sideDerivationPath = derivationPath.substring(0, derivationPath.length - 1) + "1"; + final hd = bitcoin.HDWallet.fromSeed(seedBytes, network: networkType); walletAddresses = BitcoinWalletAddresses( walletInfo, electrumClient: electrumClient, initialAddresses: initialAddresses, initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath("m/0'/1"), + mainHd: hd.derivePath(derivationPath), + sideHd: hd.derivePath(sideDerivationPath), network: networkParam ?? network, ); autorun((_) { @@ -64,6 +72,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { required String password, required WalletInfo walletInfo, required Box unspentCoinsInfo, + String? passphrase, String? addressPageType, BasedUtxoNetwork? network, List? initialAddresses, @@ -71,14 +80,29 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { Map? initialRegularAddressIndex, Map? initialChangeAddressIndex, }) async { + late Uint8List seedBytes; + + switch (walletInfo.derivationInfo?.derivationType) { + case DerivationType.bip39: + seedBytes = await bip39.mnemonicToSeed( + mnemonic, + passphrase: passphrase ?? "", + ); + break; + case DerivationType.electrum: + default: + seedBytes = await mnemonicToSeedBytes(mnemonic); + break; + } return BitcoinWallet( mnemonic: mnemonic, + passphrase: passphrase ?? "", password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, initialAddresses: initialAddresses, initialBalance: initialBalance, - seedBytes: await mnemonicToSeedBytes(mnemonic), + seedBytes: seedBytes, initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, addressPageType: addressPageType, @@ -97,14 +121,38 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { : BitcoinNetwork.mainnet; final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, network); + walletInfo.derivationInfo ??= DerivationInfo( + derivationType: snp.derivationType ?? DerivationType.electrum, + derivationPath: snp.derivationPath, + ); + + // set the default if not present: + walletInfo.derivationInfo!.derivationPath = snp.derivationPath ?? "m/0'/1"; + + late Uint8List seedBytes; + + switch (walletInfo.derivationInfo!.derivationType) { + case DerivationType.electrum: + seedBytes = await mnemonicToSeedBytes(snp.mnemonic); + break; + case DerivationType.bip39: + default: + seedBytes = await bip39.mnemonicToSeed( + snp.mnemonic, + passphrase: snp.passphrase ?? '', + ); + break; + } + return BitcoinWallet( mnemonic: snp.mnemonic, password: password, + passphrase: snp.passphrase, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, initialAddresses: snp.addresses, initialBalance: snp.balance, - seedBytes: await mnemonicToSeedBytes(snp.mnemonic), + seedBytes: seedBytes, initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, addressPageType: snp.addressPageType, diff --git a/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart b/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart index 37b272a1b6..981c7a4660 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart @@ -2,14 +2,35 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; class BitcoinNewWalletCredentials extends WalletCredentials { - BitcoinNewWalletCredentials({required String name, WalletInfo? walletInfo}) - : super(name: name, walletInfo: walletInfo); + BitcoinNewWalletCredentials( + {required String name, + WalletInfo? walletInfo, + DerivationType? derivationType, + String? derivationPath}) + : super( + name: name, + walletInfo: walletInfo, + ); } class BitcoinRestoreWalletFromSeedCredentials extends WalletCredentials { - BitcoinRestoreWalletFromSeedCredentials( - {required String name, required String password, required this.mnemonic, WalletInfo? walletInfo}) - : super(name: name, password: password, walletInfo: walletInfo); + BitcoinRestoreWalletFromSeedCredentials({ + required String name, + required String password, + required this.mnemonic, + WalletInfo? walletInfo, + required DerivationType derivationType, + required String derivationPath, + String? passphrase, + }) : super( + name: name, + password: password, + passphrase: passphrase, + walletInfo: walletInfo, + derivationInfo: DerivationInfo( + derivationType: derivationType, + derivationPath: derivationPath, + )); final String mnemonic; } @@ -20,4 +41,4 @@ class BitcoinRestoreWalletFromWIFCredentials extends WalletCredentials { : super(name: name, password: password, walletInfo: walletInfo); final String wif; -} \ No newline at end of file +} diff --git a/cw_bitcoin/lib/bitcoin_wallet_service.dart b/cw_bitcoin/lib/bitcoin_wallet_service.dart index 38e769d15d..e0548771b1 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_service.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_service.dart @@ -12,6 +12,7 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:collection/collection.dart'; +import 'package:bip39/bip39.dart' as bip39; class BitcoinWalletService extends WalletService { @@ -29,8 +30,9 @@ class BitcoinWalletService extends WalletService restoreFromSeed(BitcoinRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { - if (!validateMnemonic(credentials.mnemonic)) { + if (!validateMnemonic(credentials.mnemonic) && !bip39.validateMnemonic(credentials.mnemonic)) { throw BitcoinMnemonicIsIncorrectException(); } @@ -114,6 +116,7 @@ class BitcoinWalletService extends WalletService> electrum_derivations = { + DerivationType.electrum: [ + DerivationInfo( + derivationType: DerivationType.electrum, + derivationPath: "m/0'/0", + description: "Electrum", + scriptType: "p2wpkh", + ), + ], + DerivationType.bip39: [ + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/44'/0'/0'", + description: "Standard BIP44", + scriptType: "p2pkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/49'/0'/0'", + description: "Standard BIP49 compatibility segwit", + scriptType: "p2wpkh-p2sh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/0'", + description: "Standard BIP84 native segwit", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/0'", + description: "Non-standard legacy", + scriptType: "p2pkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/0'", + description: "Non-standard compatibility segwit", + scriptType: "p2wpkh-p2sh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/0'", + description: "Non-standard native segwit", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/44'/0'/0'", + description: "Samourai Deposit", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/49'/0'/0'", + description: "Samourai Deposit", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/2147483644'", + description: "Samourai Bad Bank (toxic change)", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/2147483645'", + description: "Samourai Whirlpool Pre Mix", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/2147483646'", + description: "Samourai Whirlpool Post Mix", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/44'/0'/2147483647'", + description: "Samourai Ricochet legacy", + scriptType: "p2pkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/49'/0'/2147483647'", + description: "Samourai Ricochet compatibility segwit", + scriptType: "p2wpkh-p2sh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/2147483647'", + description: "Samourai Ricochet native segwit", + scriptType: "p2wpkh", + ), + DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/2'/0'", + description: "Default Litecoin", + scriptType: "p2wpkh", + ), + ], +}; diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 4a76ee5dd1..8342e4816f 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -55,13 +55,15 @@ abstract class ElectrumWalletBase required this.networkType, required this.mnemonic, required Uint8List seedBytes, + this.passphrase, List? initialAddresses, ElectrumClient? electrumClient, ElectrumBalance? initialBalance, CryptoCurrency? currency}) : hd = currency == CryptoCurrency.bch ? bitcoinCashHDWallet(seedBytes) - : bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath("m/0'/0"), + : bitcoin.HDWallet.fromSeed(seedBytes, network: networkType) + .derivePath(walletInfo.derivationInfo?.derivationPath ?? "m/0'/0"), syncStatus = NotConnectedSyncStatus(), _password = password, _feeRates = [], @@ -92,6 +94,7 @@ abstract class ElectrumWalletBase final bitcoin.HDWallet hd; final String mnemonic; + final String? passphrase; @override @observable @@ -617,6 +620,7 @@ abstract class ElectrumWalletBase String toJSON() => json.encode({ 'mnemonic': mnemonic, + 'passphrase': passphrase ?? '', 'account_index': walletAddresses.currentReceiveAddressIndexByType, 'change_address_index': walletAddresses.currentChangeAddressIndexByType, 'addresses': walletAddresses.allAddresses.map((addr) => addr.toJSON()).toList(), @@ -624,6 +628,8 @@ abstract class ElectrumWalletBase ? SegwitAddresType.p2wpkh.toString() : walletInfo.addressPageType.toString(), 'balance': balance[currency]?.toJSON(), + 'derivationTypeIndex': walletInfo.derivationInfo?.derivationType?.index, + 'derivationPath': walletInfo.derivationInfo?.derivationPath, }); int feeRate(TransactionPriority priority) { diff --git a/cw_bitcoin/lib/electrum_wallet_snapshot.dart b/cw_bitcoin/lib/electrum_wallet_snapshot.dart index 6f76ab312a..218792e3c8 100644 --- a/cw_bitcoin/lib/electrum_wallet_snapshot.dart +++ b/cw_bitcoin/lib/electrum_wallet_snapshot.dart @@ -3,6 +3,7 @@ import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/utils/file.dart'; import 'package:cw_core/wallet_type.dart'; @@ -17,6 +18,9 @@ class ElectrumWalletSnapshot { required this.regularAddressIndex, required this.changeAddressIndex, required this.addressPageType, + this.passphrase, + this.derivationType, + this.derivationPath, }); final String name; @@ -29,6 +33,9 @@ class ElectrumWalletSnapshot { ElectrumBalance balance; Map regularAddressIndex; Map changeAddressIndex; + String? passphrase; + DerivationType? derivationType; + String? derivationPath; static Future load( String name, WalletType type, String password, BasedUtxoNetwork network) async { @@ -37,6 +44,7 @@ class ElectrumWalletSnapshot { final data = json.decode(jsonSource) as Map; final addressesTmp = data['addresses'] as List? ?? []; final mnemonic = data['mnemonic'] as String; + final passphrase = data['passphrase'] as String? ?? ''; final addresses = addressesTmp .whereType() .map((addr) => BitcoinAddressRecord.fromJSON(addr, network)) @@ -46,6 +54,10 @@ class ElectrumWalletSnapshot { var regularAddressIndexByType = {SegwitAddresType.p2wpkh.toString(): 0}; var changeAddressIndexByType = {SegwitAddresType.p2wpkh.toString(): 0}; + final derivationType = + DerivationType.values[(data['derivationTypeIndex'] as int?) ?? DerivationType.electrum.index]; + final derivationPath = data['derivationPath'] as String? ?? "m/0'/0"; + try { regularAddressIndexByType = { SegwitAddresType.p2wpkh.toString(): int.parse(data['account_index'] as String? ?? '0') @@ -65,12 +77,15 @@ class ElectrumWalletSnapshot { name: name, type: type, password: password, + passphrase: passphrase, mnemonic: mnemonic, addresses: addresses, balance: balance, regularAddressIndex: regularAddressIndexByType, changeAddressIndex: changeAddressIndexByType, addressPageType: data['address_page_type'] as String?, + derivationType: derivationType, + derivationPath: derivationPath, ); } } diff --git a/cw_bitcoin/lib/litecoin_wallet.dart b/cw_bitcoin/lib/litecoin_wallet.dart index d2379d5a5a..4d166e47b6 100644 --- a/cw_bitcoin/lib/litecoin_wallet.dart +++ b/cw_bitcoin/lib/litecoin_wallet.dart @@ -15,6 +15,7 @@ import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_bitcoin/litecoin_network.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bip39/bip39.dart' as bip39; part 'litecoin_wallet.g.dart'; @@ -62,11 +63,26 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { required String password, required WalletInfo walletInfo, required Box unspentCoinsInfo, + String? passphrase, String? addressPageType, List? initialAddresses, ElectrumBalance? initialBalance, Map? initialRegularAddressIndex, Map? initialChangeAddressIndex}) async { + late Uint8List seedBytes; + + switch (walletInfo.derivationInfo?.derivationType) { + case DerivationType.bip39: + seedBytes = await bip39.mnemonicToSeed( + mnemonic, + passphrase: passphrase ?? "", + ); + break; + case DerivationType.electrum: + default: + seedBytes = await mnemonicToSeedBytes(mnemonic); + break; + } return LitecoinWallet( mnemonic: mnemonic, password: password, @@ -74,7 +90,7 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { unspentCoinsInfo: unspentCoinsInfo, initialAddresses: initialAddresses, initialBalance: initialBalance, - seedBytes: await mnemonicToSeedBytes(mnemonic), + seedBytes: seedBytes, initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, addressPageType: addressPageType, diff --git a/cw_bitcoin/lib/litecoin_wallet_service.dart b/cw_bitcoin/lib/litecoin_wallet_service.dart index ee3b0e6289..9143556ab9 100644 --- a/cw_bitcoin/lib/litecoin_wallet_service.dart +++ b/cw_bitcoin/lib/litecoin_wallet_service.dart @@ -11,6 +11,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:collection/collection.dart'; +import 'package:bip39/bip39.dart' as bip39; class LitecoinWalletService extends WalletService< BitcoinNewWalletCredentials, @@ -27,8 +28,9 @@ class LitecoinWalletService extends WalletService< @override Future create(BitcoinNewWalletCredentials credentials, {bool? isTestnet}) async { final wallet = await LitecoinWalletBase.create( - mnemonic: await generateMnemonic(), + mnemonic: await generateElectrumMnemonic(), password: credentials.password!, + passphrase: credentials.passphrase, walletInfo: credentials.walletInfo!, unspentCoinsInfo: unspentCoinsInfoSource); await wallet.save(); @@ -100,12 +102,13 @@ class LitecoinWalletService extends WalletService< @override Future restoreFromSeed( BitcoinRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { - if (!validateMnemonic(credentials.mnemonic)) { + if (!validateMnemonic(credentials.mnemonic) && !bip39.validateMnemonic(credentials.mnemonic)) { throw LitecoinMnemonicIsIncorrectException(); } final wallet = await LitecoinWalletBase.create( password: credentials.password!, + passphrase: credentials.passphrase, mnemonic: credentials.mnemonic, walletInfo: credentials.walletInfo!, unspentCoinsInfo: unspentCoinsInfoSource); diff --git a/cw_bitcoin/lib/utils.dart b/cw_bitcoin/lib/utils.dart index b156ccba3a..b3707e764c 100644 --- a/cw_bitcoin/lib/utils.dart +++ b/cw_bitcoin/lib/utils.dart @@ -5,29 +5,58 @@ import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; import 'package:hex/hex.dart'; -bitcoin.PaymentData generatePaymentData({required bitcoin.HDWallet hd, required int index}) => - PaymentData(pubkey: Uint8List.fromList(HEX.decode(hd.derive(index).pubKey!))); +bitcoin.PaymentData generatePaymentData({required bitcoin.HDWallet hd, int? index}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return PaymentData(pubkey: Uint8List.fromList(HEX.decode(pubKey))); +} ECPrivate generateECPrivate( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPrivate.fromWif(hd.derive(index).wif!, netVersion: network.wifNetVer); + {required bitcoin.HDWallet hd, required BasedUtxoNetwork network, int? index}) { + final wif = index != null ? hd.derive(index).wif! : hd.wif!; + return ECPrivate.fromWif(wif, netVersion: network.wifNetVer); +} -String generateP2WPKHAddress( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPublic.fromHex(hd.derive(index).pubKey!).toP2wpkhAddress().toAddress(network); +String generateP2WPKHAddress({ + required bitcoin.HDWallet hd, + required BasedUtxoNetwork network, + int? index, +}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return ECPublic.fromHex(pubKey).toP2wpkhAddress().toAddress(network); +} -String generateP2SHAddress( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPublic.fromHex(hd.derive(index).pubKey!).toP2wpkhInP2sh().toAddress(network); +String generateP2SHAddress({ + required bitcoin.HDWallet hd, + required BasedUtxoNetwork network, + int? index, +}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return ECPublic.fromHex(pubKey).toP2wpkhInP2sh().toAddress(network); +} -String generateP2WSHAddress( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPublic.fromHex(hd.derive(index).pubKey!).toP2wshAddress().toAddress(network); +String generateP2WSHAddress({ + required bitcoin.HDWallet hd, + required BasedUtxoNetwork network, + int? index, +}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return ECPublic.fromHex(pubKey).toP2wshAddress().toAddress(network); +} -String generateP2PKHAddress( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPublic.fromHex(hd.derive(index).pubKey!).toP2pkhAddress().toAddress(network); +String generateP2PKHAddress({ + required bitcoin.HDWallet hd, + required BasedUtxoNetwork network, + int? index, +}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return ECPublic.fromHex(pubKey).toP2pkhAddress().toAddress(network); +} -String generateP2TRAddress( - {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => - ECPublic.fromHex(hd.derive(index).pubKey!).toTaprootAddress().toAddress(network); +String generateP2TRAddress({ + required bitcoin.HDWallet hd, + required BasedUtxoNetwork network, + int? index, +}) { + final pubKey = index != null ? hd.derive(index).pubKey! : hd.pubKey!; + return ECPublic.fromHex(pubKey).toTaprootAddress().toAddress(network); +} diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 50cd432c06..86d58b9b15 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -217,10 +217,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.17.1" convert: dependency: transitive description: @@ -434,18 +434,18 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.15" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.2.0" meta: dependency: transitive description: @@ -663,10 +663,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.9.1" stack_trace: dependency: transitive description: @@ -711,10 +711,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.5.1" timing: dependency: transitive description: @@ -748,21 +748,13 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: "direct overridden" + dependency: transitive description: name: watcher sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -796,5 +788,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.0.0 <4.0.0" flutter: ">=3.10.0" diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index 3fa2eb6470..e0896bab1f 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -14,4 +14,5 @@ const ERC20_TOKEN_TYPE_ID = 12; const NANO_ACCOUNT_TYPE_ID = 13; const POW_NODE_TYPE_ID = 14; const DERIVATION_TYPE_TYPE_ID = 15; -const SPL_TOKEN_TYPE_ID = 16; +const SPL_TOKEN_TYPE_ID = 16; +const DERIVATION_INFO_TYPE_ID = 17; diff --git a/cw_core/lib/wallet_credentials.dart b/cw_core/lib/wallet_credentials.dart index 4d5f331c98..9b28680f96 100644 --- a/cw_core/lib/wallet_credentials.dart +++ b/cw_core/lib/wallet_credentials.dart @@ -7,15 +7,19 @@ abstract class WalletCredentials { this.seedPhraseLength, this.walletInfo, this.password, - this.derivationType, - this.derivationPath, - }); + this.passphrase, + this.derivationInfo, + }) { + if (this.walletInfo != null && derivationInfo != null) { + this.walletInfo!.derivationInfo = derivationInfo; + } + } final String name; final int? height; int? seedPhraseLength; String? password; - DerivationType? derivationType; - String? derivationPath; + String? passphrase; WalletInfo? walletInfo; + DerivationInfo? derivationInfo; } diff --git a/cw_core/lib/wallet_info.dart b/cw_core/lib/wallet_info.dart index 2a44175a79..4892f6d1de 100644 --- a/cw_core/lib/wallet_info.dart +++ b/cw_core/lib/wallet_info.dart @@ -17,28 +17,42 @@ enum DerivationType { @HiveField(3) bip39, @HiveField(4) - electrum1, - @HiveField(5) - electrum2, + electrum, } -class DerivationInfo { +@HiveType(typeId: DerivationInfo.typeId) +class DerivationInfo extends HiveObject { DerivationInfo({ - required this.derivationType, + this.derivationType, this.derivationPath, this.balance = "", this.address = "", - this.height = 0, - this.script_type, + this.transactionsCount = 0, + this.scriptType, this.description, }); - String balance; + static const typeId = DERIVATION_INFO_TYPE_ID; + + @HiveField(0, defaultValue: '') String address; - int height; - final DerivationType derivationType; - final String? derivationPath; - final String? script_type; + + @HiveField(1, defaultValue: '') + String balance; + + @HiveField(2) + int transactionsCount; + + @HiveField(3) + DerivationType? derivationType; + + @HiveField(4) + String? derivationPath; + + @HiveField(5) + final String? scriptType; + + @HiveField(6) final String? description; } @@ -57,8 +71,7 @@ class WalletInfo extends HiveObject { this.yatEid, this.yatLastUsedAddressRaw, this.showIntroCakePayCard, - this.derivationType, - this.derivationPath) + this.derivationInfo) : _yatLastUsedAddressController = StreamController.broadcast(); factory WalletInfo.external({ @@ -74,24 +87,23 @@ class WalletInfo extends HiveObject { bool? showIntroCakePayCard, String yatEid = '', String yatLastUsedAddressRaw = '', - DerivationType? derivationType, - String? derivationPath, + DerivationInfo? derivationInfo, }) { return WalletInfo( - id, - name, - type, - isRecovery, - restoreHeight, - date.millisecondsSinceEpoch, - dirPath, - path, - address, - yatEid, - yatLastUsedAddressRaw, - showIntroCakePayCard, - derivationType, - derivationPath); + id, + name, + type, + isRecovery, + restoreHeight, + date.millisecondsSinceEpoch, + dirPath, + path, + address, + yatEid, + yatLastUsedAddressRaw, + showIntroCakePayCard, + derivationInfo, + ); } static const typeId = WALLET_INFO_TYPE_ID; @@ -143,10 +155,10 @@ class WalletInfo extends HiveObject { List? usedAddresses; @HiveField(16) - DerivationType? derivationType; + DerivationType? derivationType; // no longer used @HiveField(17) - String? derivationPath; + String? derivationPath; // no longer used @HiveField(18) String? addressPageType; @@ -154,6 +166,9 @@ class WalletInfo extends HiveObject { @HiveField(19) String? network; + @HiveField(20) + DerivationInfo? derivationInfo; + String get yatLastUsedAddress => yatLastUsedAddressRaw ?? ''; set yatLastUsedAddress(String address) { diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index aef76f3009..678e57b54a 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.17.1" convert: dependency: transitive description: @@ -343,18 +343,18 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.15" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.2.0" meta: dependency: transitive description: @@ -564,10 +564,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.9.1" stack_trace: dependency: transitive description: @@ -612,10 +612,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.5.1" timing: dependency: transitive description: @@ -641,21 +641,13 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: "direct overridden" + dependency: transitive description: name: watcher sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -689,5 +681,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.0.0 <4.0.0" flutter: ">=3.10.0" diff --git a/cw_nano/lib/nano_wallet.dart b/cw_nano/lib/nano_wallet.dart index 265f78eb79..5efe3006da 100644 --- a/cw_nano/lib/nano_wallet.dart +++ b/cw_nano/lib/nano_wallet.dart @@ -43,7 +43,7 @@ abstract class NanoWalletBase }) : syncStatus = NotConnectedSyncStatus(), _password = password, _mnemonic = mnemonic, - _derivationType = walletInfo.derivationType!, + _derivationType = walletInfo.derivationInfo!.derivationType!, _isTransactionUpdating = false, _client = NanoClient(), walletAddresses = NanoWalletAddresses(walletInfo), @@ -389,7 +389,10 @@ abstract class NanoWalletBase derivationType = DerivationType.bip39; } - walletInfo.derivationType = derivationType; + walletInfo.derivationInfo ??= DerivationInfo(derivationType: derivationType); + if (walletInfo.derivationInfo!.derivationType == null) { + walletInfo.derivationInfo!.derivationType = derivationType; + } return NanoWallet( walletInfo: walletInfo, diff --git a/cw_nano/lib/nano_wallet_creation_credentials.dart b/cw_nano/lib/nano_wallet_creation_credentials.dart index 3616fcf444..4ee79ce484 100644 --- a/cw_nano/lib/nano_wallet_creation_credentials.dart +++ b/cw_nano/lib/nano_wallet_creation_credentials.dart @@ -2,8 +2,15 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; class NanoNewWalletCredentials extends WalletCredentials { - NanoNewWalletCredentials({required String name, String? password}) - : super(name: name, password: password); + NanoNewWalletCredentials({ + required String name, + String? password, + DerivationType? derivationType, + }) : super( + name: name, + password: password, + derivationInfo: DerivationInfo(derivationType: derivationType), + ); } class NanoRestoreWalletFromSeedCredentials extends WalletCredentials { @@ -11,11 +18,11 @@ class NanoRestoreWalletFromSeedCredentials extends WalletCredentials { required String name, required this.mnemonic, String? password, - DerivationType? derivationType, + required DerivationType derivationType, }) : super( name: name, password: password, - derivationType: derivationType, + derivationInfo: DerivationInfo(derivationType: derivationType), ); final String mnemonic; @@ -30,12 +37,12 @@ class NanoRestoreWalletFromKeysCredentials extends WalletCredentials { NanoRestoreWalletFromKeysCredentials({ required String name, required String password, + required DerivationType derivationType, required this.seedKey, - DerivationType? derivationType, }) : super( name: name, password: password, - derivationType: derivationType, + derivationInfo: DerivationInfo(derivationType: derivationType), ); final String seedKey; diff --git a/cw_nano/lib/nano_wallet_service.dart b/cw_nano/lib/nano_wallet_service.dart index 7ab502d49b..b1497a6253 100644 --- a/cw_nano/lib/nano_wallet_service.dart +++ b/cw_nano/lib/nano_wallet_service.dart @@ -28,11 +28,11 @@ class NanoWalletService extends WalletService create(NanoNewWalletCredentials credentials, {bool? isTestnet}) async { // nano standard: - DerivationType derivationType = DerivationType.nano; String seedKey = NanoSeeds.generateSeed(); String mnemonic = NanoDerivations.standardSeedToMnemonic(seedKey); - credentials.walletInfo!.derivationType = derivationType; + // ensure default if not present: + credentials.walletInfo!.derivationInfo ??= DerivationInfo(derivationType: DerivationType.nano); final wallet = NanoWallet( walletInfo: credentials.walletInfo!, @@ -88,9 +88,6 @@ class NanoWalletService extends WalletService BitcoinTransactionPriority.medium; - - @override - WalletCredentials createBitcoinRestoreWalletFromSeedCredentials( - {required String name, required String mnemonic, required String password}) => - BitcoinRestoreWalletFromSeedCredentials(name: name, mnemonic: mnemonic, password: password); + WalletCredentials createBitcoinRestoreWalletFromSeedCredentials({ + required String name, + required String mnemonic, + required String password, + required DerivationType derivationType, + required String derivationPath, + String? passphrase, + }) => + BitcoinRestoreWalletFromSeedCredentials( + name: name, + mnemonic: mnemonic, + password: password, + derivationType: derivationType, + derivationPath: derivationPath, + passphrase: passphrase, + ); @override WalletCredentials createBitcoinRestoreWalletFromWIFCredentials( @@ -23,6 +32,9 @@ class CWBitcoin extends Bitcoin { {required String name, WalletInfo? walletInfo}) => BitcoinNewWalletCredentials(name: name, walletInfo: walletInfo); + @override + TransactionPriority getMediumTransactionPriority() => BitcoinTransactionPriority.medium; + @override List getWordList() => wordlist; @@ -78,21 +90,20 @@ class CWBitcoin extends Bitcoin { final bitcoinFeeRate = priority == BitcoinTransactionPriority.custom && feeRate != null ? feeRate : null; return BitcoinTransactionCredentials( - outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount, - memo: out.memo)) - .toList(), - priority: priority as BitcoinTransactionPriority, - feeRate: bitcoinFeeRate - ); + outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount, + memo: out.memo)) + .toList(), + priority: priority as BitcoinTransactionPriority, + feeRate: bitcoinFeeRate); } @override @@ -248,6 +259,137 @@ class CWBitcoin extends Bitcoin { } } + @override + Future> compareDerivationMethods( + {required String mnemonic, required Node node}) async { + if (await checkIfMnemonicIsElectrum2(mnemonic)) { + return [DerivationType.electrum]; + } + + return [DerivationType.bip39, DerivationType.electrum]; + } + + int _countOccurrences(String str, String charToCount) { + int count = 0; + for (int i = 0; i < str.length; i++) { + if (str[i] == charToCount) { + count++; + } + } + return count; + } + + @override + Future> getDerivationsFromMnemonic({ + required String mnemonic, + required Node node, + String? passphrase, + }) async { + List list = []; + + List types = await compareDerivationMethods(mnemonic: mnemonic, node: node); + if (types.length == 1 && types.first == DerivationType.electrum) { + return [ + DerivationInfo( + derivationType: DerivationType.electrum, + derivationPath: "m/0'/0", + description: "Electrum", + scriptType: "p2wpkh", + ) + ]; + } + + final electrumClient = ElectrumClient(); + await electrumClient.connectToUri(node.uri); + + late BasedUtxoNetwork network; + btc.NetworkType networkType; + switch (node.type) { + case WalletType.litecoin: + network = LitecoinNetwork.mainnet; + networkType = litecoinNetwork; + break; + case WalletType.bitcoin: + default: + network = BitcoinNetwork.mainnet; + networkType = btc.bitcoin; + break; + } + + for (DerivationType dType in electrum_derivations.keys) { + late Uint8List seedBytes; + if (dType == DerivationType.electrum) { + seedBytes = await mnemonicToSeedBytes(mnemonic); + } else if (dType == DerivationType.bip39) { + seedBytes = bip39.mnemonicToSeed(mnemonic, passphrase: passphrase ?? ''); + } + + for (DerivationInfo dInfo in electrum_derivations[dType]!) { + try { + DerivationInfo dInfoCopy = DerivationInfo( + derivationType: dInfo.derivationType, + derivationPath: dInfo.derivationPath, + description: dInfo.description, + scriptType: dInfo.scriptType, + ); + + String derivationPath = dInfoCopy.derivationPath!; + int derivationDepth = _countOccurrences(derivationPath, "/"); + + // the correct derivation depth is dependant on the derivation type: + // the derivation paths defined in electrum_derivations are at the ROOT level, i.e.: + // electrum's format doesn't specify subaddresses, just subaccounts: + + // for BIP44 + if (derivationDepth == 3) { + // we add "/0/0" so that we generate account 0, index 0 and correctly get balance + derivationPath += "/0/0"; + // we don't support sub-ACCOUNTS in bitcoin like we do monero, and so the path dInfoCopy + // expects should be ACCOUNT 0, index unspecified: + dInfoCopy.derivationPath = dInfoCopy.derivationPath! + "/0"; + } + + // var hd = bip32.BIP32.fromSeed(seedBytes).derivePath(derivationPath); + final hd = btc.HDWallet.fromSeed( + seedBytes, + network: networkType, + ).derivePath(derivationPath); + + String? address; + switch (dInfoCopy.scriptType) { + case "p2wpkh": + address = generateP2WPKHAddress(hd: hd, network: network); + break; + case "p2pkh": + address = generateP2PKHAddress(hd: hd, network: network); + break; + case "p2wpkh-p2sh": + address = generateP2SHAddress(hd: hd, network: network); + break; + default: + continue; + } + + final sh = scriptHash(address, network: network); + final history = await electrumClient.getHistory(sh); + + final balance = await electrumClient.getBalance(sh); + dInfoCopy.balance = balance.entries.first.value.toString(); + dInfoCopy.address = address; + dInfoCopy.transactionsCount = history.length; + + list.add(dInfoCopy); + } catch (e) { + print(e); + } + } + } + + // sort the list such that derivations with the most transactions are first: + list.sort((a, b) => b.transactionsCount.compareTo(a.transactionsCount)); + return list; + } + @override bool hasTaprootInput(PendingTransaction pendingTransaction) { return (pendingTransaction as PendingBitcoinTransaction).hasTaprootInputs; diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index a0f570e95c..99178c8156 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -220,6 +220,10 @@ Future defaultSettingsMigration( await updateNanoNodeList(nodes: nodes); break; + case 32: + await updateBtcNanoWalletInfos(walletInfoSource); + break; + default: break; } @@ -756,6 +760,20 @@ Future changeDefaultMoneroNode( } } +Future updateBtcNanoWalletInfos(Box walletsInfoSource) async { + for (WalletInfo walletInfo in walletsInfoSource.values) { + if (walletInfo.type == WalletType.nano || walletInfo.type == WalletType.bitcoin) { + walletInfo.derivationInfo = DerivationInfo( + derivationPath: walletInfo.derivationPath, + derivationType: walletInfo.derivationType, + address: walletInfo.address, + transactionsCount: walletInfo.restoreHeight, + ); + await walletInfo.save(); + } + } +} + Future changeDefaultBitcoinNode( Box nodeSource, SharedPreferences sharedPreferences) async { const cakeWalletBitcoinNodeUriPattern = '.cakewallet.com'; diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index bab0ef51db..f729e6392c 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -51,10 +51,12 @@ class AddressResolver { } final match = RegExp(addressPattern).firstMatch(raw); - return match?.group(0)?.replaceAllMapped(RegExp('[^0-9a-zA-Z]|bitcoincash:|nano_'), + return match?.group(0)?.replaceAllMapped(RegExp('[^0-9a-zA-Z]|bitcoincash:|nano_|ban_'), (Match match) { String group = match.group(0)!; - if (group.startsWith('bitcoincash:') || group.startsWith('nano_')) { + if (group.startsWith('bitcoincash:') || + group.startsWith('nano_') || + group.startsWith('ban_')) { return group; } return ''; diff --git a/lib/main.dart b/lib/main.dart index b80c9eb857..ff5b0e5c09 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -102,6 +102,10 @@ Future initializeAppConfigs() async { CakeHive.registerAdapter(DerivationTypeAdapter()); } + if (!CakeHive.isAdapterRegistered(DERIVATION_INFO_TYPE_ID)) { + CakeHive.registerAdapter(DerivationInfoAdapter()); + } + if (!CakeHive.isAdapterRegistered(WALLET_TYPE_TYPE_ID)) { CakeHive.registerAdapter(WalletTypeAdapter()); } @@ -163,7 +167,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 31, + initialMigrationVersion: 32, ); } diff --git a/lib/nano/cw_nano.dart b/lib/nano/cw_nano.dart index 5896f7c269..13800cff60 100644 --- a/lib/nano/cw_nano.dart +++ b/lib/nano/cw_nano.dart @@ -96,6 +96,7 @@ class CWNano extends Nano { NanoNewWalletCredentials( name: name, password: password, + derivationType: DerivationType.nano, ); @override @@ -103,15 +104,10 @@ class CWNano extends Nano { required String name, required String password, required String mnemonic, - DerivationType? derivationType, + required DerivationType derivationType, }) { - if (derivationType == null) { - // figure out the derivation type as best we can, otherwise set it to "unknown" - if (mnemonic.split(" ").length == 12) { - derivationType = DerivationType.bip39; - } else { - derivationType = DerivationType.unknown; - } + if (mnemonic.split(" ").length == 12 && derivationType != DerivationType.bip39) { + throw Exception("Invalid mnemonic for derivation type!"); } return NanoRestoreWalletFromSeedCredentials( @@ -127,15 +123,10 @@ class CWNano extends Nano { required String name, required String password, required String seedKey, - DerivationType? derivationType, + required DerivationType derivationType, }) { - if (derivationType == null) { - // figure out the derivation type as best we can, otherwise set it to "unknown" - if (seedKey.length == 64) { - derivationType = DerivationType.nano; - } else { - derivationType = DerivationType.unknown; - } + if (seedKey.length == 128 && derivationType != DerivationType.bip39) { + throw Exception("Invalid seed key length for derivation type!"); } return NanoRestoreWalletFromKeysCredentials( @@ -199,7 +190,6 @@ class CWNano extends Nano { } class CWNanoUtil extends NanoUtil { - @override bool isValidBip39Seed(String seed) { return NanoDerivations.isValidBip39Seed(seed); @@ -353,4 +343,54 @@ class CWNanoUtil extends NanoUtil { return [DerivationType.nano, DerivationType.bip39]; } } + + @override + Future> getDerivationsFromMnemonic({ + String? mnemonic, + String? seedKey, + required Node node, + }) async { + List list = []; + + List possibleDerivationTypes = await compareDerivationMethods( + mnemonic: mnemonic, + privateKey: seedKey, + node: node, + ); + if (possibleDerivationTypes.length == 1) { + return [DerivationInfo(derivationType: possibleDerivationTypes.first)]; + } + + AccountInfoResponse? bip39Info = await nanoUtil!.getInfoFromSeedOrMnemonic( + DerivationType.bip39, + mnemonic: mnemonic, + seedKey: seedKey, + node: node, + ); + AccountInfoResponse? standardInfo = await nanoUtil!.getInfoFromSeedOrMnemonic( + DerivationType.nano, + mnemonic: mnemonic, + seedKey: seedKey, + node: node, + ); + + if (standardInfo?.confirmationHeight != null && standardInfo!.confirmationHeight > 0) { + list.add(DerivationInfo( + derivationType: DerivationType.nano, + balance: nanoUtil!.getRawAsUsableString(standardInfo.balance, nanoUtil!.rawPerNano), + address: standardInfo.address!, + transactionsCount: standardInfo.confirmationHeight, + )); + } + + if (bip39Info?.confirmationHeight != null && bip39Info!.confirmationHeight > 0) { + list.add(DerivationInfo( + derivationType: DerivationType.bip39, + balance: nanoUtil!.getRawAsUsableString(bip39Info.balance, nanoUtil!.rawPerNano), + address: bip39Info.address!, + transactionsCount: bip39Info.confirmationHeight, + )); + } + return list; + } } diff --git a/lib/src/screens/restore/wallet_restore_choose_derivation.dart b/lib/src/screens/restore/wallet_restore_choose_derivation.dart index 5cf40e5880..9a7d8eb675 100644 --- a/lib/src/screens/restore/wallet_restore_choose_derivation.dart +++ b/lib/src/screens/restore/wallet_restore_choose_derivation.dart @@ -1,8 +1,5 @@ -import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; -import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/view_model/wallet_restore_choose_derivation_view_model.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:flutter/material.dart'; @@ -13,15 +10,14 @@ class WalletRestoreChooseDerivationPage extends BasePage { WalletRestoreChooseDerivationPage(this.walletRestoreChooseDerivationViewModel) {} @override - Widget middle(BuildContext context) => Observer( - builder: (_) => Text( - S.current.choose_derivation, - style: TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.bold, - fontFamily: 'Lato', - color: titleColor(context)), - )); + Widget middle(BuildContext context) => Text( + S.current.choose_derivation, + style: TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + fontFamily: 'Lato', + color: titleColor(context)), + ); final WalletRestoreChooseDerivationViewModel walletRestoreChooseDerivationViewModel; DerivationType derivationType = DerivationType.unknown; @@ -105,7 +101,7 @@ class WalletRestoreChooseDerivationPage extends BasePage { ), ), Text( - "${S.current.transactions}: ${derivation.height}", + "${S.current.transactions}: ${derivation.transactionsCount}", style: Theme.of(context).primaryTextTheme.labelMedium!.copyWith( fontSize: 16, fontWeight: FontWeight.w500, diff --git a/lib/src/screens/restore/wallet_restore_from_seed_form.dart b/lib/src/screens/restore/wallet_restore_from_seed_form.dart index 6f8f9eb2b9..288862ce74 100644 --- a/lib/src/screens/restore/wallet_restore_from_seed_form.dart +++ b/lib/src/screens/restore/wallet_restore_from_seed_form.dart @@ -20,6 +20,7 @@ class WalletRestoreFromSeedForm extends StatefulWidget { {Key? key, required this.displayLanguageSelector, required this.displayBlockHeightSelector, + required this.displayPassphrase, required this.type, required this.seedTypeViewModel, this.blockHeightFocusNode, @@ -31,6 +32,7 @@ class WalletRestoreFromSeedForm extends StatefulWidget { final WalletType type; final bool displayLanguageSelector; final bool displayBlockHeightSelector; + final bool displayPassphrase; final SeedTypeViewModel seedTypeViewModel; final FocusNode? blockHeightFocusNode; final Function(bool)? onHeightOrDateEntered; @@ -48,6 +50,7 @@ class WalletRestoreFromSeedFormState extends State { formKey = GlobalKey(), languageController = TextEditingController(), nameTextEditingController = TextEditingController(), + passphraseController = TextEditingController(), seedTypeController = TextEditingController(); final GlobalKey seedWidgetStateKey; @@ -55,6 +58,7 @@ class WalletRestoreFromSeedFormState extends State { final TextEditingController languageController; final TextEditingController nameTextEditingController; final TextEditingController seedTypeController; + final TextEditingController passphraseController; final GlobalKey formKey; late ReactionDisposer moneroSeedTypeReaction; String language; @@ -166,15 +170,15 @@ class WalletRestoreFromSeedFormState extends State { ), if (widget.displayLanguageSelector) GestureDetector( - onTap: () async { - await showPopUp( - context: context, - builder: (_) => SeedLanguagePicker( - selected: language, - onItemSelected: _changeLanguage, - seedType: isPolyseed ? SeedType.polyseed : SeedType.legacy, - )); - }, + onTap: () async { + await showPopUp( + context: context, + builder: (_) => SeedLanguagePicker( + selected: language, + onItemSelected: _changeLanguage, + seedType: isPolyseed ? SeedType.polyseed : SeedType.legacy, + )); + }, child: Container( color: Colors.transparent, padding: EdgeInsets.only(top: 20.0), @@ -194,6 +198,14 @@ class WalletRestoreFromSeedFormState extends State { key: blockchainHeightKey, onHeightOrDateEntered: widget.onHeightOrDateEntered, hasDatePicker: widget.type == WalletType.monero), + if (widget.displayPassphrase) ...[ + const SizedBox(height: 10), + BaseTextFormField( + hintText: S.current.passphrase, + controller: passphraseController, + obscureText: true, + ), + ] ])); } diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index fe5ac84873..6fcacfb0a2 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -1,7 +1,5 @@ import 'package:cake_wallet/core/execution_state.dart'; -import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_from_keys_form.dart'; @@ -9,7 +7,6 @@ import 'package:cake_wallet/src/screens/restore/wallet_restore_from_seed_form.da import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; -import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; @@ -17,7 +14,6 @@ import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/view_model/restore/restore_mode.dart'; import 'package:cake_wallet/view_model/seed_type_view_model.dart'; import 'package:cake_wallet/view_model/wallet_restore_view_model.dart'; -import 'package:cw_core/nano_account_info_response.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; @@ -42,6 +38,7 @@ class WalletRestorePage extends BasePage { displayBlockHeightSelector: walletRestoreViewModel.hasBlockchainHeightLanguageSelector, displayLanguageSelector: walletRestoreViewModel.hasSeedLanguageSelector, + displayPassphrase: walletRestoreViewModel.hasPassphrase, type: walletRestoreViewModel.type, key: walletRestoreFromSeedFormKey, blockHeightFocusNode: _blockHeightFocusNode, @@ -99,8 +96,10 @@ class WalletRestorePage extends BasePage { final GlobalKey walletRestoreFromSeedFormKey; final GlobalKey walletRestoreFromKeysFormKey; final FocusNode _blockHeightFocusNode; - DerivationType derivationType = DerivationType.unknown; - String? derivationPath = null; + + // DerivationType derivationType = DerivationType.unknown; + // String? derivationPath = null; + DerivationInfo? derivationInfo; @override Widget body(BuildContext context) { @@ -298,6 +297,11 @@ class WalletRestorePage extends BasePage { -1; } + if (walletRestoreViewModel.hasPassphrase) { + credentials['passphrase'] = + walletRestoreFromSeedFormKey.currentState!.passphraseController.text; + } + credentials['name'] = walletRestoreFromSeedFormKey.currentState!.nameTextEditingController.text; } else if (walletRestoreViewModel.mode == WalletRestoreMode.keys) { @@ -318,58 +322,11 @@ class WalletRestorePage extends BasePage { } } - credentials['derivationType'] = this.derivationType; - credentials['derivationPath'] = this.derivationPath; + credentials['derivationInfo'] = this.derivationInfo; credentials['walletType'] = walletRestoreViewModel.type; return credentials; } - Future> getDerivationInfo(dynamic credentials) async { - var list = []; - var walletType = credentials["walletType"] as WalletType; - var appStore = getIt.get(); - var node = appStore.settingsStore.getCurrentNode(walletType); - - switch (walletType) { - case WalletType.nano: - String? mnemonic = credentials['seed'] as String?; - String? seedKey = credentials['private_key'] as String?; - AccountInfoResponse? bip39Info = await nanoUtil!.getInfoFromSeedOrMnemonic( - DerivationType.bip39, - mnemonic: mnemonic, - seedKey: seedKey, - node: node); - AccountInfoResponse? standardInfo = await nanoUtil!.getInfoFromSeedOrMnemonic( - DerivationType.nano, - mnemonic: mnemonic, - seedKey: seedKey, - node: node, - ); - - if (standardInfo?.balance != null) { - list.add(DerivationInfo( - derivationType: DerivationType.nano, - balance: nanoUtil!.getRawAsUsableString(standardInfo!.balance, nanoUtil!.rawPerNano), - address: standardInfo.address!, - height: standardInfo.confirmationHeight, - )); - } - - if (bip39Info?.balance != null) { - list.add(DerivationInfo( - derivationType: DerivationType.bip39, - balance: nanoUtil!.getRawAsUsableString(bip39Info!.balance, nanoUtil!.rawPerNano), - address: bip39Info.address!, - height: bip39Info.confirmationHeight, - )); - } - break; - default: - break; - } - return list; - } - Future _confirmForm(BuildContext context) async { // Dismissing all visible keyboard to provide context for navigation FocusManager.instance.primaryFocus?.unfocus(); @@ -398,51 +355,46 @@ class WalletRestorePage extends BasePage { walletRestoreViewModel.state = IsExecutingState(); - List derivationTypes = - await walletRestoreViewModel.getDerivationTypes(_credentials()); + DerivationInfo? dInfo; - if (derivationTypes[0] == DerivationType.unknown || derivationTypes.length > 1) { - // push screen to choose the derivation type: - List derivations = await getDerivationInfo(_credentials()); + // get info about the different derivations: + List derivations = + await walletRestoreViewModel.getDerivationInfo(_credentials()); - int derivationsWithHistory = 0; - int derivationWithHistoryIndex = 0; - for (int i = 0; i < derivations.length; i++) { - if (derivations[i].height > 0) { - derivationsWithHistory++; - derivationWithHistoryIndex = i; - } + int derivationsWithHistory = 0; + int derivationWithHistoryIndex = 0; + for (int i = 0; i < derivations.length; i++) { + if (derivations[i].transactionsCount > 0) { + derivationsWithHistory++; + derivationWithHistoryIndex = i; } + } - DerivationInfo? derivationInfo; - - if (derivationsWithHistory > 1) { - derivationInfo = await Navigator.of(context).pushNamed(Routes.restoreWalletChooseDerivation, - arguments: derivations) as DerivationInfo?; - } else if (derivationsWithHistory == 1) { - derivationInfo = derivations[derivationWithHistoryIndex]; - } else if (derivationsWithHistory == 0) { - // default derivation: - derivationInfo = DerivationInfo( - derivationType: derivationTypes[0], - derivationPath: "m/0'/1", - height: 0, - ); - } + if (derivationsWithHistory > 1) { + dInfo = await Navigator.of(context).pushNamed( + Routes.restoreWalletChooseDerivation, + arguments: derivations, + ) as DerivationInfo?; + } else if (derivationsWithHistory == 1) { + dInfo = derivations[derivationWithHistoryIndex]; + } - if (derivationInfo == null) { - walletRestoreViewModel.state = InitialExecutionState(); - return; + // get the default derivation for this wallet type: + if (dInfo == null) { + // we only return 1 derivation if we're pretty sure we know which one to use: + if (derivations.length == 1) { + dInfo = derivations.first; + } else { + // if we have multiple possible derivations, and none have histories + // we just default to the most common one: + dInfo = walletRestoreViewModel.getCommonRestoreDerivation(); } - this.derivationType = derivationInfo.derivationType; - this.derivationPath = derivationInfo.derivationPath; - } else { - // electrum derivation: - this.derivationType = derivationTypes[0]; - this.derivationPath = "m/0'/1"; } - walletRestoreViewModel.state = InitialExecutionState(); + this.derivationInfo = dInfo; + if (this.derivationInfo == null) { + this.derivationInfo = walletRestoreViewModel.getDefaultDerivation(); + } walletRestoreViewModel.create(options: _credentials()); } diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index b57473cba9..81c78b1ab4 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -343,7 +343,9 @@ class WalletListBodyState extends State { }); } } catch (e) { - changeProcessText(S.of(context).wallet_list_failed_to_load(wallet.name, e.toString())); + if (this.mounted) { + changeProcessText(S.of(context).wallet_list_failed_to_load(wallet.name, e.toString())); + } } }, conditionToDetermineIfToUse2FA: diff --git a/lib/src/widgets/base_text_form_field.dart b/lib/src/widgets/base_text_form_field.dart index 5649a07847..534e6dae23 100644 --- a/lib/src/widgets/base_text_form_field.dart +++ b/lib/src/widgets/base_text_form_field.dart @@ -22,6 +22,7 @@ class BaseTextFormField extends StatelessWidget { this.enabled = true, this.readOnly = false, this.enableInteractiveSelection = true, + this.obscureText = false, this.validator, this.textStyle, this.placeholderTextStyle, @@ -57,6 +58,7 @@ class BaseTextFormField extends StatelessWidget { final String? initialValue; final double borderWidth; final void Function(String)? onSubmit; + final bool obscureText; @override Widget build(BuildContext context) { @@ -70,6 +72,7 @@ class BaseTextFormField extends StatelessWidget { textInputAction: textInputAction, textAlign: textAlign, autovalidateMode: autovalidateMode, + obscureText: obscureText, maxLines: maxLines, inputFormatters: inputFormatters, enabled: enabled, diff --git a/lib/view_model/restore/restore_from_qr_vm.dart b/lib/view_model/restore/restore_from_qr_vm.dart index 31f0bfdd2c..b9b493f046 100644 --- a/lib/view_model/restore/restore_from_qr_vm.dart +++ b/lib/view_model/restore/restore_from_qr_vm.dart @@ -30,8 +30,7 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store spendKey = '', wif = '', address = '', - super(appStore, walletInfoSource, walletCreationService, - type: type, isRecovery: true); + super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: true); @observable int height; @@ -51,8 +50,16 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store bool get hasRestorationHeight => type == WalletType.monero; @override - WalletCredentials getCredentialsFromRestoredWallet(dynamic options, RestoredWallet restoreWallet) { + WalletCredentials getCredentialsFromRestoredWallet( + dynamic options, RestoredWallet restoreWallet) { final password = generateWalletPassword(); + String? passphrase; + DerivationInfo? derivationInfo; + if (options != null) { + derivationInfo = options["derivationInfo"] as DerivationInfo?; + passphrase = options["passphrase"] as String?; + } + derivationInfo ??= getDefaultDerivation(); switch (restoreWallet.restoreMode) { case WalletRestoreMode.keys: @@ -86,23 +93,37 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store switch (restoreWallet.type) { case WalletType.monero: return monero!.createMoneroRestoreWalletFromSeedCredentials( - name: name, - height: restoreWallet.height ?? 0, - mnemonic: restoreWallet.mnemonicSeed ?? '', - password: password); + name: name, + height: restoreWallet.height ?? 0, + mnemonic: restoreWallet.mnemonicSeed ?? '', + password: password, + ); case WalletType.bitcoin: case WalletType.litecoin: return bitcoin!.createBitcoinRestoreWalletFromSeedCredentials( - name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + name: name, + mnemonic: restoreWallet.mnemonicSeed ?? '', + password: password, + passphrase: passphrase, + derivationType: derivationInfo!.derivationType!, + derivationPath: derivationInfo.derivationPath!, + ); case WalletType.bitcoinCash: return bitcoinCash!.createBitcoinCashRestoreWalletFromSeedCredentials( - name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + name: name, + mnemonic: restoreWallet.mnemonicSeed ?? '', + password: password, + ); case WalletType.ethereum: return ethereum!.createEthereumRestoreWalletFromSeedCredentials( name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); case WalletType.nano: return nano!.createNanoRestoreWalletFromSeedCredentials( - name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + name: name, + mnemonic: restoreWallet.mnemonicSeed ?? '', + password: password, + derivationType: derivationInfo!.derivationType!, + ); case WalletType.polygon: return polygon!.createPolygonRestoreWalletFromSeedCredentials( name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); @@ -118,7 +139,8 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store } @override - Future processFromRestoredWallet(WalletCredentials credentials, RestoredWallet restoreWallet) async { + Future processFromRestoredWallet( + WalletCredentials credentials, RestoredWallet restoreWallet) async { try { switch (restoreWallet.restoreMode) { case WalletRestoreMode.keys: diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index cabb723e1f..6c0c3870b0 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -423,7 +423,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor Object _credentials() { final priority = _settingsStore.priority[wallet.type]; - if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.solana) { + if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.banano && wallet.type != WalletType.solana) { throw Exception('Priority is null for wallet type: ${wallet.type}'); } diff --git a/lib/view_model/wallet_creation_vm.dart b/lib/view_model/wallet_creation_vm.dart index 4a1e054d60..5c9c29a169 100644 --- a/lib/view_model/wallet_creation_vm.dart +++ b/lib/view_model/wallet_creation_vm.dart @@ -71,9 +71,9 @@ abstract class WalletCreationVMBase with Store { dirPath: dirPath, address: '', showIntroCakePayCard: (!walletCreationService.typeExists(type)) && type != WalletType.haven, - derivationPath: credentials.derivationPath, - derivationType: credentials.derivationType, + derivationInfo: credentials.derivationInfo ?? getDefaultDerivation(), ); + credentials.walletInfo = walletInfo; final wallet = restoreWallet != null ? await processFromRestoredWallet(credentials, restoreWallet) @@ -89,6 +89,48 @@ abstract class WalletCreationVMBase with Store { } } + DerivationInfo? getDefaultDerivation() { + switch (this.type) { + case WalletType.nano: + return DerivationInfo( + derivationType: DerivationType.nano, + ); + case WalletType.bitcoin: + case WalletType.litecoin: + return DerivationInfo( + derivationType: DerivationType.electrum, + derivationPath: "m/0'/0", + ); + default: + return null; + } + } + + DerivationInfo? getCommonRestoreDerivation() { + switch (this.type) { + case WalletType.nano: + return DerivationInfo( + derivationType: DerivationType.nano, + ); + case WalletType.bitcoin: + return DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/0'/0'/0", + description: "Standard BIP84 native segwit", + scriptType: "p2wpkh", + ); + case WalletType.litecoin: + return DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/84'/2'/0'/0", + description: "Standard BIP84 native segwit (litecoin)", + scriptType: "p2wpkh", + ); + default: + return null; + } + } + WalletCredentials getCredentials(dynamic options) => throw UnimplementedError(); Future process(WalletCredentials credentials) => throw UnimplementedError(); diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 93ca813d62..21339f1aed 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cw_core/nano_account_info_response.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; @@ -66,6 +67,8 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { final bool hasBlockchainHeightLanguageSelector; final bool hasRestoreFromPrivateKey; + bool get hasPassphrase => [WalletType.bitcoin, WalletType.litecoin].contains(type); + @observable WalletRestoreMode mode; @@ -75,10 +78,10 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { @override WalletCredentials getCredentials(dynamic options) { final password = generateWalletPassword(); + String? passphrase = options['passphrase'] as String?; final height = options['height'] as int? ?? 0; name = options['name'] as String; - DerivationType? derivationType = options["derivationType"] as DerivationType?; - String? derivationPath = options["derivationPath"] as String?; + DerivationInfo? derivationInfo = options["derivationInfo"] as DerivationInfo?; if (mode == WalletRestoreMode.seed) { final seed = options['seed'] as String; @@ -87,14 +90,15 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { return monero!.createMoneroRestoreWalletFromSeedCredentials( name: name, height: height, mnemonic: seed, password: password); case WalletType.bitcoin: + case WalletType.litecoin: return bitcoin!.createBitcoinRestoreWalletFromSeedCredentials( name: name, mnemonic: seed, password: password, + passphrase: passphrase, + derivationType: derivationInfo!.derivationType!, + derivationPath: derivationInfo.derivationPath!, ); - case WalletType.litecoin: - return bitcoin!.createBitcoinRestoreWalletFromSeedCredentials( - name: name, mnemonic: seed, password: password); case WalletType.haven: return haven!.createHavenRestoreWalletFromSeedCredentials( name: name, height: height, mnemonic: seed, password: password); @@ -106,7 +110,11 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { name: name, mnemonic: seed, password: password); case WalletType.nano: return nano!.createNanoRestoreWalletFromSeedCredentials( - name: name, mnemonic: seed, password: password, derivationType: derivationType); + name: name, + mnemonic: seed, + password: password, + derivationType: derivationInfo!.derivationType!, + ); case WalletType.polygon: return polygon!.createPolygonRestoreWalletFromSeedCredentials( name: name, @@ -185,23 +193,34 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { throw Exception('Unexpected type: ${type.toString()}'); } - Future> getDerivationTypes(dynamic options) async { - final seedKey = options['private_key'] as String?; - final mnemonic = options['seed'] as String?; - WalletType walletType = options['walletType'] as WalletType; + Future> getDerivationInfo(dynamic credentials) async { + var list = []; + var walletType = credentials["walletType"] as WalletType; var appStore = getIt.get(); var node = appStore.settingsStore.getCurrentNode(walletType); - switch (type) { + switch (walletType) { + case WalletType.bitcoin: + case WalletType.litecoin: + String? mnemonic = credentials['seed'] as String?; + String? passphrase = credentials['passphrase'] as String?; + return bitcoin!.getDerivationsFromMnemonic( + mnemonic: mnemonic!, + node: node, + passphrase: passphrase, + ); case WalletType.nano: - return nanoUtil! - .compareDerivationMethods(mnemonic: mnemonic, privateKey: seedKey, node: node); + String? mnemonic = credentials['seed'] as String?; + String? seedKey = credentials['private_key'] as String?; + return nanoUtil!.getDerivationsFromMnemonic( + mnemonic: mnemonic, + seedKey: seedKey, + node: node, + ); default: break; } - - // throw Exception('Unexpected type: ${type.toString()}'); - return [DerivationType.def]; + return list; } @override @@ -209,7 +228,6 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { if (mode == WalletRestoreMode.keys) { return walletCreationService.restoreFromKeys(credentials, isTestnet: useTestnet); } - return walletCreationService.restoreFromSeed(credentials, isTestnet: useTestnet); } } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index cf9959f17a..16a87a8503 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -411,6 +411,7 @@ "outputs": "المخرجات", "overwrite_amount": "تغير المبلغ", "pairingInvalidEvent": "ﺢﻟﺎﺻ ﺮﻴﻏ ﺙﺪﺣ ﻥﺍﺮﻗﺇ", + "passphrase": "عبارة الممر (اختياري)", "password": "كلمة المرور", "paste": "لصق", "pause_wallet_creation": ".ﺎﻴًﻟﺎﺣ ﺎﺘًﻗﺆﻣ ﺔﻔﻗﻮﺘﻣ Haven Wallet ءﺎﺸﻧﺇ ﻰﻠﻋ ﺓﺭﺪﻘﻟﺍ", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index bd1cd645df..4e92cd7077 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -411,6 +411,7 @@ "outputs": "Изходи", "overwrite_amount": "Промени сума", "pairingInvalidEvent": "Невалидно събитие при сдвояване", + "passphrase": "Passphrase (по избор)", "password": "Парола", "paste": "Поставяне", "pause_wallet_creation": "Възможността за създаване на Haven Wallet в момента е на пауза.", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 4d3458bec7..95fdc2a937 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -411,6 +411,7 @@ "outputs": "Výstupy", "overwrite_amount": "Přepsat částku", "pairingInvalidEvent": "Neplatná událost párování", + "passphrase": "Passphrase (volitelné)", "password": "Heslo", "paste": "Vložit", "pause_wallet_creation": "Možnost vytvářet Haven Wallet je momentálně pozastavena.", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 0546140eb7..d2731d3e79 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -411,6 +411,7 @@ "outputs": "Ausgänge", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Paarung ungültiges Ereignis", + "passphrase": "Passphrase (optional)", "password": "Passwort", "paste": "Einfügen", "pause_wallet_creation": "Die Möglichkeit, Haven Wallet zu erstellen, ist derzeit pausiert.", @@ -425,8 +426,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", + "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", @@ -822,4 +823,4 @@ "you_will_get": "Konvertieren zu", "you_will_send": "Konvertieren von", "yy": "YY" -} +} \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 8f8b753d6b..8c302d0961 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -411,6 +411,7 @@ "outputs": "Outputs", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Pairing Invalid Event", + "passphrase": "Passphrase (Optional)", "password": "Password", "paste": "Paste", "pause_wallet_creation": "Ability to create Haven Wallet is currently paused.", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 7de9cff53d..17c4ff681c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -411,6 +411,7 @@ "outputs": "Salidas", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Evento de emparejamiento no válido", + "passphrase": "Passfrase (opcional)", "password": "Contraseña", "paste": "Pegar", "pause_wallet_creation": "La capacidad para crear Haven Wallet está actualmente pausada.", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 2c76122fce..12716ab337 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -411,6 +411,7 @@ "outputs": "Les sorties", "overwrite_amount": "Remplacer le montant", "pairingInvalidEvent": "Événement de couplage non valide", + "passphrase": "Phrase de passe (facultative)", "password": "Mot de passe", "paste": "Coller", "pause_wallet_creation": "La possibilité de créer Haven Wallet est actuellement suspendue.", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index bac970207d..29754cf729 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -413,6 +413,7 @@ "outputs": "Abubuwan fashewa", "overwrite_amount": "Rubuta adadin", "pairingInvalidEvent": "Haɗa Lamarin mara inganci", + "passphrase": "Passphrase (Zabi)", "password": "Kalmar wucewa", "paste": "Manna", "pause_wallet_creation": "A halin yanzu an dakatar da ikon ƙirƙirar Haven Wallet.", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 5a9706bd5d..278adde0f3 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -411,6 +411,7 @@ "outputs": "आउटपुट", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "अमान्य ईवेंट युग्मित करना", + "passphrase": "पासफ्रेज़ (वैकल्पिक)", "password": "पारण शब्द", "paste": "पेस्ट करें", "pause_wallet_creation": "हेवन वॉलेट बनाने की क्षमता फिलहाल रुकी हुई है।", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 94f675a1d2..7940b1addd 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -411,6 +411,7 @@ "outputs": "Izlazi", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Nevažeći događaj uparivanja", + "passphrase": "Prolaznica (neobavezno)", "password": "Lozinka", "paste": "Zalijepi", "pause_wallet_creation": "Mogućnost stvaranja novčanika Haven trenutno je pauzirana.", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 69e270d100..8177afdc25 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -413,6 +413,7 @@ "outputs": "Output", "overwrite_amount": "Timpa jumlah", "pairingInvalidEvent": "Menyandingkan Acara Tidak Valid", + "passphrase": "Frasa sandi (opsional)", "password": "Kata Sandi", "paste": "Tempel", "pause_wallet_creation": "Kemampuan untuk membuat Haven Wallet saat ini dijeda.", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 09b3e43bb4..4cc08f9b16 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -413,6 +413,7 @@ "outputs": "Output", "overwrite_amount": "Sovrascrivi quantità", "pairingInvalidEvent": "Associazione evento non valido", + "passphrase": "Passphrase (opzionale)", "password": "Password", "paste": "Incolla", "pause_wallet_creation": "La possibilità di creare Haven Wallet è attualmente sospesa.", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index b067c27215..a72bbb0e41 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -412,6 +412,7 @@ "outputs": "出力", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "ペアリング無効イベント", + "passphrase": "パスフレーズ(オプション)", "password": "パスワード", "paste": "ペースト", "pause_wallet_creation": "Haven Wallet を作成する機能は現在一時停止されています。", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index d9881ad04b..b80494e80c 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -411,6 +411,7 @@ "outputs": "출력", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "잘못된 이벤트 페어링", + "passphrase": "암호화 (선택 사항)", "password": "암호", "paste": "풀", "pause_wallet_creation": "Haven Wallet 생성 기능이 현재 일시 중지되었습니다.", @@ -425,8 +426,8 @@ "placeholder_transactions": "거래가 여기에 표시됩니다", "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index c36f63414b..97a22d8070 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -411,6 +411,7 @@ "outputs": "ထုတ်လုပ်မှု", "overwrite_amount": "ပမာဏကို ထပ်ရေးပါ။", "pairingInvalidEvent": "မမှန်ကန်သောဖြစ်ရပ်ကို တွဲချိတ်ခြင်း။", + "passphrase": "passphrase (optional)", "password": "စကားဝှက်", "paste": "ငါးပိ", "pause_wallet_creation": "Haven Wallet ဖန်တီးနိုင်မှုကို လောလောဆယ် ခေတ္တရပ်ထားသည်။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index f258b8f62f..a64e264c01 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -411,6 +411,7 @@ "outputs": "Uitgangen", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Koppelen Ongeldige gebeurtenis", + "passphrase": "PassaspHRASE (optioneel)", "password": "Wachtwoord", "paste": "Plakken", "pause_wallet_creation": "De mogelijkheid om Haven Wallet te maken is momenteel onderbroken.", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 4627d02422..109a800ad8 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -411,6 +411,7 @@ "outputs": "Wyjścia", "overwrite_amount": "Nadpisz ilość", "pairingInvalidEvent": "Nieprawidłowe zdarzenie parowania", + "passphrase": "PassPhraza (opcjonalnie)", "password": "Hasło", "paste": "Wklej", "pause_wallet_creation": "Możliwość utworzenia Portfela Haven jest obecnie wstrzymana.", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 2a781c76bb..2d877794a7 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -413,6 +413,7 @@ "outputs": "Saídas", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Emparelhamento de evento inválido", + "passphrase": "Senha (opcional)", "password": "Senha", "paste": "Colar", "pause_wallet_creation": "A capacidade de criar a Haven Wallet está atualmente pausada.", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 22bac3e33b..e6141c29ba 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -412,6 +412,7 @@ "outputs": "Выходы", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недействительное событие сопряжения", + "passphrase": "Passfrase (необязательно)", "password": "Пароль", "paste": "Вставить", "pause_wallet_creation": "Возможность создания Haven Wallet в настоящее время приостановлена.", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index c0f58495c8..ef1a3ea4ef 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -411,6 +411,7 @@ "outputs": "เอาต์พุต", "overwrite_amount": "เขียนทับจำนวน", "pairingInvalidEvent": "การจับคู่เหตุการณ์ที่ไม่ถูกต้อง", + "passphrase": "ข้อความรหัสผ่าน (ไม่บังคับ)", "password": "รหัสผ่าน", "paste": "วาง", "pause_wallet_creation": "ขณะนี้ความสามารถในการสร้าง Haven Wallet ถูกหยุดชั่วคราว", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 8c3b13b3b5..e0258e38a2 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -411,6 +411,7 @@ "outputs": "Mga output", "overwrite_amount": "Overwrite na halaga", "pairingInvalidEvent": "Pagpares ng Di-wastong Kaganapan", + "passphrase": "Passphrase (opsyonal)", "password": "Password", "paste": "I -paste", "pause_wallet_creation": "Kasalukuyang naka-pause ang kakayahang gumawa ng Haven Wallet.", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 534a36c77d..6cacbfd424 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -411,6 +411,7 @@ "outputs": "çıktılar", "overwrite_amount": "Miktarın üzerine yaz", "pairingInvalidEvent": "Geçersiz Etkinliği Eşleştirme", + "passphrase": "Passfrase (isteğe bağlı)", "password": "Parola", "paste": "Yapıştır", "pause_wallet_creation": "Haven Cüzdanı oluşturma yeteneği şu anda duraklatıldı.", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 5d1e2be055..d3f1c5088c 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -411,6 +411,7 @@ "outputs": "Виходи", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недійсна подія сполучення", + "passphrase": "Пасофрази (необов’язково)", "password": "Пароль", "paste": "Вставити", "pause_wallet_creation": "Можливість створення гаманця Haven зараз призупинено.", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index d98a857536..97851b210d 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -413,6 +413,7 @@ "outputs": "نتائج", "overwrite_amount": "رقم کو اوور رائٹ کریں۔", "pairingInvalidEvent": "ﭧﻧﻮﯾﺍ ﻂﻠﻏ ﺎﻧﺎﻨﺑ ﺍﮌﻮﺟ", + "passphrase": "پاسفریز (اختیاری)", "password": "پاس ورڈ", "paste": "چسپاں کریں۔", "pause_wallet_creation": "Haven Wallet ۔ﮯﮨ ﻑﻮﻗﻮﻣ ﻝﺎﺤﻟﺍ ﯽﻓ ﺖﯿﻠﮨﺍ ﯽﮐ ﮯﻧﺎﻨﺑ", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index faaeb8837b..acb5335366 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -412,6 +412,7 @@ "outputs": "Awọn iṣan", "overwrite_amount": "Pààrọ̀ iye owó", "pairingInvalidEvent": "Pipọpọ Iṣẹlẹ Ti ko tọ", + "passphrase": "Ọrọ kukuru (iyan)", "password": "Ọ̀rọ̀ aṣínà", "paste": "Fikún ẹ̀dà yín", "pause_wallet_creation": "Agbara lati ṣẹda Haven Wallet ti wa ni idaduro lọwọlọwọ.", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 2d5251d86a..e17c4a89b7 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -411,6 +411,7 @@ "outputs": "输出", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "配对无效事件", + "passphrase": "密码(可选)", "password": "密码", "paste": "粘贴", "pause_wallet_creation": "创建 Haven 钱包的功能当前已暂停。", diff --git a/tool/configure.dart b/tool/configure.dart index 3b73bfe804..ceb0c9ccc4 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -61,6 +61,8 @@ Future main(List args) async { Future generateBitcoin(bool hasImplementation) async { final outputFile = File(bitcoinOutputPath); const bitcoinCommonHeaders = """ +import 'dart:typed_data'; +import 'package:cw_core/node.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/receive_page_option.dart'; import 'package:cw_core/unspent_transaction_output.dart'; @@ -73,8 +75,17 @@ import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:hive/hive.dart'; -import 'package:bitcoin_base/bitcoin_base.dart';"""; +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:bitcoin_flutter/bitcoin_flutter.dart' as btc; +import 'package:bip32/bip32.dart' as bip32; +import 'package:bip39/bip39.dart' as bip39; +import 'package:hive/hive.dart'; +"""; const bitcoinCWHeaders = """ +import 'package:cw_bitcoin/utils.dart'; +import 'package:cw_bitcoin/litecoin_network.dart'; +import 'package:cw_bitcoin/electrum_derivations.dart'; +import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; @@ -87,6 +98,7 @@ import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet_service.dart'; +import 'package:cw_bitcoin/script_hash.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:mobx/mobx.dart'; """; @@ -112,7 +124,14 @@ import 'package:mobx/mobx.dart'; abstract class Bitcoin { TransactionPriority getMediumTransactionPriority(); - WalletCredentials createBitcoinRestoreWalletFromSeedCredentials({required String name, required String mnemonic, required String password}); + WalletCredentials createBitcoinRestoreWalletFromSeedCredentials({ + required String name, + required String mnemonic, + required String password, + required DerivationType derivationType, + required String derivationPath, + String? passphrase, + }); WalletCredentials createBitcoinRestoreWalletFromWIFCredentials({required String name, required String password, required String wif, WalletInfo? walletInfo}); WalletCredentials createBitcoinNewWalletCredentials({required String name, WalletInfo? walletInfo}); List getWordList(); @@ -147,7 +166,10 @@ abstract class Bitcoin { TransactionPriority getLitecoinTransactionPriorityMedium(); TransactionPriority getBitcoinTransactionPrioritySlow(); TransactionPriority getLitecoinTransactionPrioritySlow(); - + Future> compareDerivationMethods( + {required String mnemonic, required Node node}); + Future> getDerivationsFromMnemonic( + {required String mnemonic, required Node node, String? passphrase}); Future setAddressType(Object wallet, dynamic option); ReceivePageOption getSelectedAddressType(Object wallet); List getBitcoinReceivePageOptions(); @@ -838,14 +860,14 @@ abstract class Nano { required String name, required String password, required String mnemonic, - DerivationType? derivationType, + required DerivationType derivationType, }); WalletCredentials createNanoRestoreWalletFromKeysCredentials({ required String name, required String password, required String seedKey, - DerivationType? derivationType, + required DerivationType derivationType, }); List getNanoWordList(String language); @@ -892,6 +914,11 @@ abstract class NanoUtil { String? privateKey, required Node node, }); + Future> getDerivationsFromMnemonic({ + String? mnemonic, + String? seedKey, + required Node node, + }); } """; From f9e9b1d67ea2c21aa891cf3eb95803f47ac78058 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Tue, 30 Apr 2024 04:05:48 +0300 Subject: [PATCH 074/157] update versions (#1418) --- assets/text/Monerocom_Release_Notes.txt | 3 +-- assets/text/Release_Notes.txt | 10 +++------- lib/src/screens/send/send_page.dart | 2 +- scripts/android/app_env.sh | 8 ++++---- scripts/ios/app_env.sh | 8 ++++---- scripts/macos/app_env.sh | 8 ++++---- 6 files changed, 17 insertions(+), 22 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 09092a8df4..d5297ebe17 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1 @@ -UI enhancements -Bug fixes \ No newline at end of file +Generic bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 69a5145c90..ac648921cd 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,7 +1,3 @@ -Add Replace-By-Fee to boost pending Bitcoin transactions -Enable WalletConnect for Solana -WalletConnect Enhancements -Enhancements for ERC-20 tokens and Solana tokens -Enhancements for Nano wallet -UI enhancements -Bug fixes \ No newline at end of file +Support restoring Non-Electrum Bitcoin Wallets (check supported derivation paths https://github.com/cake-tech/cake_wallet/blob/main/cw_bitcoin/lib/bitcoin_derivations.dart) +Bitcoin enhancements and bug fixes +Generic bug fixes and enhancements \ No newline at end of file diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 93fadea72a..9067a2951b 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -102,7 +102,7 @@ class SendPage extends BasePage { double _sendCardHeight(BuildContext context) { double initialHeight = 480; if (sendViewModel.hasCoinControl) { - initialHeight += 35; + initialHeight += 55; } if (!responsiveLayoutUtil.shouldRenderMobileUI) { diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index c55be89004..5e52d9d963 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.2" -MONERO_COM_BUILD_NUMBER=82 +MONERO_COM_VERSION="1.12.3" +MONERO_COM_BUILD_NUMBER=84 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.15.4" -CAKEWALLET_BUILD_NUMBER=204 +CAKEWALLET_VERSION="4.15.5" +CAKEWALLET_BUILD_NUMBER=206 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index b9dc0e435e..6f5e810ebe 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.2" -MONERO_COM_BUILD_NUMBER=79 +MONERO_COM_VERSION="1.12.3" +MONERO_COM_BUILD_NUMBER=82 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.4" -CAKEWALLET_BUILD_NUMBER=228 +CAKEWALLET_VERSION="4.15.5" +CAKEWALLET_BUILD_NUMBER=231 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 42708f3e3d..309213b4ad 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.2.2" -MONERO_COM_BUILD_NUMBER=13 +MONERO_COM_VERSION="1.2.3" +MONERO_COM_BUILD_NUMBER=16 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.4" -CAKEWALLET_BUILD_NUMBER=63 +CAKEWALLET_VERSION="1.8.5" +CAKEWALLET_BUILD_NUMBER=66 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From e87353c012a12ea82e9841228b67b46c1f76a63d Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Wed, 1 May 2024 19:21:04 +0300 Subject: [PATCH 075/157] fix backward compatibility issue with existing electrum wallets (#1424) --- assets/text/Release_Notes.txt | 4 +--- cw_bitcoin/lib/bitcoin_wallet.dart | 8 ++++---- cw_nano/pubspec.lock | 32 +++++++++++------------------- scripts/android/app_env.sh | 4 ++-- scripts/ios/app_env.sh | 4 ++-- scripts/macos/app_env.sh | 4 ++-- 6 files changed, 23 insertions(+), 33 deletions(-) diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index ac648921cd..ae63062096 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,3 +1 @@ -Support restoring Non-Electrum Bitcoin Wallets (check supported derivation paths https://github.com/cake-tech/cake_wallet/blob/main/cw_bitcoin/lib/bitcoin_derivations.dart) -Bitcoin enhancements and bug fixes -Generic bug fixes and enhancements \ No newline at end of file +Bitcoin Bug fixes and enhancements \ No newline at end of file diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 1d29307cab..33401d6667 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -51,15 +51,14 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { // the sideHd derivation path = m/84'/0'/0'/1 (account 1, index unspecified here) String derivationPath = walletInfo.derivationInfo!.derivationPath!; String sideDerivationPath = derivationPath.substring(0, derivationPath.length - 1) + "1"; - final hd = bitcoin.HDWallet.fromSeed(seedBytes, network: networkType); walletAddresses = BitcoinWalletAddresses( walletInfo, electrumClient: electrumClient, initialAddresses: initialAddresses, initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: hd.derivePath(derivationPath), - sideHd: hd.derivePath(sideDerivationPath), + mainHd: hd, + sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath(sideDerivationPath), network: networkParam ?? network, ); autorun((_) { @@ -127,7 +126,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { ); // set the default if not present: - walletInfo.derivationInfo!.derivationPath = snp.derivationPath ?? "m/0'/1"; + walletInfo.derivationInfo!.derivationPath = snp.derivationPath ?? "m/0'/0"; + walletInfo.derivationInfo!.derivationType = snp.derivationType ?? DerivationType.electrum; late Uint8List seedBytes; diff --git a/cw_nano/pubspec.lock b/cw_nano/pubspec.lock index 0ebc5e75f0..cbcf3d38dc 100644 --- a/cw_nano/pubspec.lock +++ b/cw_nano/pubspec.lock @@ -173,10 +173,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.17.1" convert: dependency: transitive description: @@ -419,18 +419,18 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.15" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.2.0" meta: dependency: transitive description: @@ -713,10 +713,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.9.1" stack_trace: dependency: transitive description: @@ -761,10 +761,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.5.1" timing: dependency: transitive description: @@ -790,21 +790,13 @@ packages: source: hosted version: "2.1.4" watcher: - dependency: "direct overridden" + dependency: transitive description: name: watcher sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -838,5 +830,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.0.0 <4.0.0" flutter: ">=3.7.0" diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 5e52d9d963..52f32b2979 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.5" -CAKEWALLET_BUILD_NUMBER=206 +CAKEWALLET_VERSION="4.15.6" +CAKEWALLET_BUILD_NUMBER=207 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 6f5e810ebe..90f7d807c1 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=82 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.5" -CAKEWALLET_BUILD_NUMBER=231 +CAKEWALLET_VERSION="4.15.6" +CAKEWALLET_BUILD_NUMBER=232 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 309213b4ad..758bfe900c 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=16 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.5" -CAKEWALLET_BUILD_NUMBER=66 +CAKEWALLET_VERSION="1.8.6" +CAKEWALLET_BUILD_NUMBER=67 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From 4c50cc7551fedf7b7d6aded09988c41c7d6d2b76 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Wed, 1 May 2024 09:44:22 -0700 Subject: [PATCH 076/157] minor script fix (#1423) --- run-android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-android.sh b/run-android.sh index dd694267a1..bdacef3925 100755 --- a/run-android.sh +++ b/run-android.sh @@ -4,6 +4,7 @@ get_current_branch() { if git rev-parse --git-dir > /dev/null 2>&1; then branch=$(git rev-parse --abbrev-ref HEAD) + branch=${branch//[-]/_} # Replace all dashes with underscores echo "$branch" else echo "Error: Not a git repository." @@ -15,7 +16,6 @@ get_current_branch() { update_app_properties() { local branch=$1 local file_path="./android/app.properties" - sed -i "s/^id=.*/id=com.cakewallet.$branch/" "$file_path" sed -i "s/^name=.*/name=$branch-Cake Wallet/" "$file_path" } From e4fd53494927d4915fcf9aa9e52d83ed6e108914 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 3 May 2024 20:36:00 +0300 Subject: [PATCH 077/157] Generic Enhancements (#1426) * Better handle deep links after authentication * handle no auth required case and some enhancements * deprecate old variables [skip ci] --- cw_core/lib/wallet_info.dart | 2 + lib/src/screens/root/root.dart | 74 ++++++++++++++++++---------------- 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/cw_core/lib/wallet_info.dart b/cw_core/lib/wallet_info.dart index 4892f6d1de..2768fdc6e2 100644 --- a/cw_core/lib/wallet_info.dart +++ b/cw_core/lib/wallet_info.dart @@ -154,9 +154,11 @@ class WalletInfo extends HiveObject { @HiveField(15) List? usedAddresses; + @deprecated @HiveField(16) DerivationType? derivationType; // no longer used + @deprecated @HiveField(17) String? derivationPath; // no longer used diff --git a/lib/src/screens/root/root.dart b/lib/src/screens/root/root.dart index 8a75b78bba..e3472f510b 100644 --- a/lib/src/screens/root/root.dart +++ b/lib/src/screens/root/root.dart @@ -52,6 +52,7 @@ class RootState extends State with WidgetsBindingObserver { StreamSubscription? stream; ReactionDisposer? _walletReactionDisposer; + ReactionDisposer? _deepLinksReactionDisposer; Uri? launchUri; @override @@ -76,6 +77,7 @@ class RootState extends State with WidgetsBindingObserver { void dispose() { stream?.cancel(); _walletReactionDisposer?.call(); + _deepLinksReactionDisposer?.call(); super.dispose(); } @@ -93,10 +95,32 @@ class RootState extends State with WidgetsBindingObserver { } } - void handleDeepLinking(Uri? uri) { + void handleDeepLinking(Uri? uri) async { if (uri == null || !mounted) return; launchUri = uri; + + bool requireAuth = await widget.authService.requireAuth(); + + if (!requireAuth && widget.authenticationStore.state == AuthenticationState.allowed) { + _navigateToDeepLinkScreen(); + return; + } + + _deepLinksReactionDisposer = reaction( + (_) => widget.authenticationStore.state, + (AuthenticationState state) { + if (state == AuthenticationState.allowed) { + if (widget.appStore.wallet == null) { + waitForWalletInstance(context, launchUri!); + } else { + _navigateToDeepLinkScreen(); + } + _deepLinksReactionDisposer?.call(); + _deepLinksReactionDisposer = null; + } + }, + ); } @override @@ -172,35 +196,8 @@ class RootState extends State with WidgetsBindingObserver { }, ); }); - } else if (_isValidPaymentUri()) { - if (widget.authenticationStore.state == AuthenticationState.uninitialized) { - launchUri = null; - } else { - if (widget.appStore.wallet == null) { - waitForWalletInstance(context, launchUri!); - launchUri = null; - } else { - widget.navigatorKey.currentState?.pushNamed( - Routes.send, - arguments: PaymentRequest.fromUri(launchUri), - ); - launchUri = null; - } - } - launchUri = null; - } else if (isWalletConnectLink) { - if (isEVMCompatibleChain(widget.appStore.wallet!.type)) { - widget.navigatorKey.currentState?.pushNamed( - Routes.walletConnectConnectionsListing, - arguments: launchUri, - ); - launchUri = null; - } else { - _nonETHWalletErrorToast(S.current.switchToEVMCompatibleWallet); - } } - launchUri = null; return WillPopScope( onWillPop: () async => false, child: widget.child, @@ -252,13 +249,10 @@ class RootState extends State with WidgetsBindingObserver { WidgetsBinding.instance.addPostFrameCallback((_) { if (context.mounted) { _walletReactionDisposer = reaction( - (_) => widget.appStore.wallet, - (WalletBase? wallet) { + (_) => widget.appStore.wallet, + (WalletBase? wallet) { if (wallet != null) { - widget.navigatorKey.currentState?.pushNamed( - Routes.send, - arguments: PaymentRequest.fromUri(tempLaunchUri), - ); + _navigateToDeepLinkScreen(); _walletReactionDisposer?.call(); _walletReactionDisposer = null; } @@ -267,4 +261,16 @@ class RootState extends State with WidgetsBindingObserver { } }); } + + void _navigateToDeepLinkScreen() { + if (_getRouteToGo() != null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + widget.navigatorKey.currentState?.pushNamed( + _getRouteToGo()!, + arguments: isWalletConnectLink ? launchUri : PaymentRequest.fromUri(launchUri), + ); + launchUri = null; + }); + } + } } From d1870ba8b87dbe918c0667f588f4376a802a8406 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 3 May 2024 19:00:05 +0100 Subject: [PATCH 078/157] CW-525-Add-Tron-Wallet (#1327) * chore: Initial setup for Tron Wallet * feat: Create Tron Wallet base flow implemented, keys, address, receive, restore and proxy classes all setup * feat: Display seed and key within the app * feat: Activate restore from key and seed for Tron wallet * feat: Add icon for tron wallet in wallet listing page * feat: Activate display of receive address for tron * feat: Fetch and display tron balance, sending transaction flow setup, fee limit calculation setup * feat: Implement sending of native tron, setup sending of trc20 tokens * chore: Rename function * Delete lib/tron/tron.dart * feat: Activate exchange for tron and its tokens, implement balance display for trc20 tokens and setup secrets configuration for tron * feat: Implement tron token management, add, remove, delete, and get tokens in home settings view, also minor cleanup * feat: Activate buy and sell for tron * feat: Implement restore from QR, transactions history listing for both native transactions and trc20 transactions * feat: Activate send all and do some minor cleanups * chore: Fix some lint infos and warnings * chore: Adjust configurations * ci: Modify CI to create and add secrets for node * fix: Fixes made while self reviewing the PR for this feature * feat: Add guide for adding new wallet types, and add fixes to requested changes * fix: Handle exceptions gracefully * fix: Alternative for trc20 estimated fee * fix: Fixes to display of amount and fee, removing clashes * fix: Fee calculation WIP * fix: Fix issue with handling of send all flow and display of amount and fee values before broadcasting transaction * fix: PR review fixes and fix merge conflicts * fix: Modify fetching assetOfTransaction [skip ci] * fix: Move tron settings migration to 33 --- .github/workflows/pr_test_build.yml | 2 + .gitignore | 3 + android/app/src/main/AndroidManifestBase.xml | 3 + assets/tron_node_list.yml | 4 + cw_core/lib/crypto_currency.dart | 2 + cw_core/lib/currency_for_wallet_type.dart | 5 +- cw_core/lib/hive_type_ids.dart | 1 + cw_core/lib/node.dart | 2 + cw_core/lib/wallet_type.dart | 16 +- cw_tron/.gitignore | 30 + cw_tron/.metadata | 10 + cw_tron/CHANGELOG.md | 3 + cw_tron/LICENSE | 1 + cw_tron/README.md | 39 ++ cw_tron/analysis_options.yaml | 4 + cw_tron/lib/cw_tron.dart | 7 + cw_tron/lib/default_tron_tokens.dart | 103 ++++ cw_tron/lib/file.dart | 39 ++ cw_tron/lib/pending_tron_transaction.dart | 33 + cw_tron/lib/tron_abi.dart | 436 +++++++++++++ cw_tron/lib/tron_balance.dart | 34 ++ cw_tron/lib/tron_client.dart | 574 ++++++++++++++++++ cw_tron/lib/tron_exception.dart | 16 + cw_tron/lib/tron_http_provider.dart | 41 ++ cw_tron/lib/tron_token.dart | 80 +++ cw_tron/lib/tron_transaction_credentials.dart | 12 + cw_tron/lib/tron_transaction_history.dart | 80 +++ cw_tron/lib/tron_transaction_info.dart | 93 +++ cw_tron/lib/tron_transaction_model.dart | 205 +++++++ cw_tron/lib/tron_wallet.dart | 560 +++++++++++++++++ cw_tron/lib/tron_wallet_addresses.dart | 36 ++ .../lib/tron_wallet_creation_credentials.dart | 29 + cw_tron/lib/tron_wallet_service.dart | 148 +++++ cw_tron/pubspec.yaml | 33 + cw_tron/test/cw_tron_test.dart | 12 + how_to_add_new_wallet_type.md | 300 +++++++++ ios/Runner/InfoBase.plist | 30 + lib/core/address_validator.dart | 2 + lib/core/seed_validator.dart | 3 + lib/di.dart | 3 + lib/entities/default_settings_migration.dart | 41 +- lib/entities/node_list.dart | 20 +- lib/entities/preferences_key.dart | 1 + lib/entities/priority_for_wallet_type.dart | 3 +- lib/entities/provider_types.dart | 13 + lib/main.dart | 2 +- lib/reactions/fiat_rate_update.dart | 6 + lib/reactions/on_current_wallet_change.dart | 14 +- .../desktop_wallet_selection_dropdown.dart | 3 + .../dashboard/pages/transactions_page.dart | 30 +- .../dashboard/widgets/menu_widget.dart | 6 +- .../screens/wallet_list/wallet_list_page.dart | 3 + lib/store/settings_store.dart | 15 + lib/tron/cw_tron.dart | 114 ++++ .../advanced_privacy_settings_view_model.dart | 1 + .../dashboard/balance_view_model.dart | 7 +- .../dashboard/home_settings_view_model.dart | 33 +- .../dashboard/transaction_list_item.dart | 46 ++ .../exchange/exchange_trade_view_model.dart | 7 +- .../exchange/exchange_view_model.dart | 4 + .../node_create_or_edit_view_model.dart | 1 + .../node_list/node_list_view_model.dart | 3 + .../restore/restore_from_qr_vm.dart | 9 +- .../restore/wallet_restore_from_qr_code.dart | 11 + lib/view_model/send/output.dart | 22 +- .../send/send_template_view_model.dart | 3 +- lib/view_model/send/send_view_model.dart | 19 +- .../settings/other_settings_view_model.dart | 5 +- .../transaction_details_view_model.dart | 54 +- .../wallet_address_list_view_model.dart | 26 + lib/view_model/wallet_keys_view_model.dart | 5 +- lib/view_model/wallet_new_vm.dart | 4 + lib/view_model/wallet_restore_view_model.dart | 17 +- model_generator.sh | 1 + pubspec_base.yaml | 1 + scripts/android/pubspec_gen.sh | 2 +- scripts/ios/app_config.sh | 2 +- scripts/macos/app_config.sh | 2 +- tool/configure.dart | 96 ++- tool/generate_secrets_config.dart | 18 +- tool/import_secrets_config.dart | 14 + tool/utils/secret_key.dart | 4 + 82 files changed, 3660 insertions(+), 62 deletions(-) create mode 100644 assets/tron_node_list.yml create mode 100644 cw_tron/.gitignore create mode 100644 cw_tron/.metadata create mode 100644 cw_tron/CHANGELOG.md create mode 100644 cw_tron/LICENSE create mode 100644 cw_tron/README.md create mode 100644 cw_tron/analysis_options.yaml create mode 100644 cw_tron/lib/cw_tron.dart create mode 100644 cw_tron/lib/default_tron_tokens.dart create mode 100644 cw_tron/lib/file.dart create mode 100644 cw_tron/lib/pending_tron_transaction.dart create mode 100644 cw_tron/lib/tron_abi.dart create mode 100644 cw_tron/lib/tron_balance.dart create mode 100644 cw_tron/lib/tron_client.dart create mode 100644 cw_tron/lib/tron_exception.dart create mode 100644 cw_tron/lib/tron_http_provider.dart create mode 100644 cw_tron/lib/tron_token.dart create mode 100644 cw_tron/lib/tron_transaction_credentials.dart create mode 100644 cw_tron/lib/tron_transaction_history.dart create mode 100644 cw_tron/lib/tron_transaction_info.dart create mode 100644 cw_tron/lib/tron_transaction_model.dart create mode 100644 cw_tron/lib/tron_wallet.dart create mode 100644 cw_tron/lib/tron_wallet_addresses.dart create mode 100644 cw_tron/lib/tron_wallet_creation_credentials.dart create mode 100644 cw_tron/lib/tron_wallet_service.dart create mode 100644 cw_tron/pubspec.yaml create mode 100644 cw_tron/test/cw_tron_test.dart create mode 100644 how_to_add_new_wallet_type.md create mode 100644 lib/tron/cw_tron.dart diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index dc231df42d..46924cb35f 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -113,6 +113,7 @@ jobs: touch lib/.secrets.g.dart touch cw_evm/lib/.secrets.g.dart touch cw_solana/lib/.secrets.g.dart + touch cw_tron/lib/.secrets.g.dart echo "const salt = '${{ secrets.SALT }}';" > lib/.secrets.g.dart echo "const keychainSalt = '${{ secrets.KEY_CHAIN_SALT }}';" >> lib/.secrets.g.dart echo "const key = '${{ secrets.KEY }}';" >> lib/.secrets.g.dart @@ -150,6 +151,7 @@ jobs: echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart + echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart - name: Rename app run: | diff --git a/.gitignore b/.gitignore index 6f2d0a1823..f1e5b6da3f 100644 --- a/.gitignore +++ b/.gitignore @@ -94,9 +94,11 @@ android/app/key.jks **/tool/.evm-secrets-config.json **/tool/.ethereum-secrets-config.json **/tool/.solana-secrets-config.json +**/tool/.tron-secrets-config.json **/lib/.secrets.g.dart **/cw_evm/lib/.secrets.g.dart **/cw_solana/lib/.secrets.g.dart +**/cw_tron/lib/.secrets.g.dart vendor/ @@ -132,6 +134,7 @@ lib/bitcoin_cash/bitcoin_cash.dart lib/nano/nano.dart lib/polygon/polygon.dart lib/solana/solana.dart +lib/tron/tron.dart ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_180.png ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_120.png diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index eea9b55214..485f049e81 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -67,6 +67,9 @@ + + + with Serializable implemen CryptoCurrency.kaspa, CryptoCurrency.digibyte, CryptoCurrency.usdtSol, + CryptoCurrency.usdcTrc20, ]; static const havenCurrencies = [ @@ -217,6 +218,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kas', iconPath: 'assets/images/kaspa_icon.png', decimals: 8); static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8); static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); + static const usdcTrc20 = CryptoCurrency(title: 'USDC', tag: 'TRX', fullName: 'USDC Coin', raw: 92, name: 'usdctrc20', iconPath: 'assets/images/usdc_icon.png', decimals: 6); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/currency_for_wallet_type.dart b/cw_core/lib/currency_for_wallet_type.dart index 58ee37669a..92e78b2e6d 100644 --- a/cw_core/lib/currency_for_wallet_type.dart +++ b/cw_core/lib/currency_for_wallet_type.dart @@ -23,7 +23,10 @@ CryptoCurrency currencyForWalletType(WalletType type) { return CryptoCurrency.maticpoly; case WalletType.solana: return CryptoCurrency.sol; + case WalletType.tron: + return CryptoCurrency.trx; default: - throw Exception('Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); + throw Exception( + 'Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); } } diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index e0896bab1f..e3332a0435 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -16,3 +16,4 @@ const POW_NODE_TYPE_ID = 14; const DERIVATION_TYPE_TYPE_ID = 15; const SPL_TOKEN_TYPE_ID = 16; const DERIVATION_INFO_TYPE_ID = 17; +const TRON_TOKEN_TYPE_ID = 18; diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 9d0806851e..1195b6819f 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -94,6 +94,7 @@ class Node extends HiveObject with Keyable { case WalletType.ethereum: case WalletType.polygon: case WalletType.solana: + case WalletType.tron: return Uri.https(uriRaw, path ?? ''); default: throw Exception('Unexpected type ${type.toString()} for Node uri'); @@ -152,6 +153,7 @@ class Node extends HiveObject with Keyable { case WalletType.ethereum: case WalletType.polygon: case WalletType.solana: + case WalletType.tron: return requestElectrumServer(); default: return false; diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index a63ddf37cd..e846093d0f 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -15,6 +15,7 @@ const walletTypes = [ WalletType.banano, WalletType.polygon, WalletType.solana, + WalletType.tron, ]; @HiveType(typeId: WALLET_TYPE_TYPE_ID) @@ -50,7 +51,10 @@ enum WalletType { polygon, @HiveField(10) - solana + solana, + + @HiveField(11) + tron } int serializeToInt(WalletType type) { @@ -75,6 +79,8 @@ int serializeToInt(WalletType type) { return 8; case WalletType.solana: return 9; + case WalletType.tron: + return 10; default: return -1; } @@ -102,6 +108,8 @@ WalletType deserializeFromInt(int raw) { return WalletType.polygon; case 9: return WalletType.solana; + case 10: + return WalletType.tron; default: throw Exception('Unexpected token: $raw for WalletType deserializeFromInt'); } @@ -129,6 +137,8 @@ String walletTypeToString(WalletType type) { return 'Polygon'; case WalletType.solana: return 'Solana'; + case WalletType.tron: + return 'Tron'; default: return ''; } @@ -156,6 +166,8 @@ String walletTypeToDisplayName(WalletType type) { return 'Polygon (MATIC)'; case WalletType.solana: return 'Solana (SOL)'; + case WalletType.tron: + return 'Tron (TRX)'; default: return ''; } @@ -183,6 +195,8 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.maticpoly; case WalletType.solana: return CryptoCurrency.sol; + case WalletType.tron: + return CryptoCurrency.trx; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); diff --git a/cw_tron/.gitignore b/cw_tron/.gitignore new file mode 100644 index 0000000000..96486fd930 --- /dev/null +++ b/cw_tron/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/cw_tron/.metadata b/cw_tron/.metadata new file mode 100644 index 0000000000..fa347fc6aa --- /dev/null +++ b/cw_tron/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 + channel: stable + +project_type: package diff --git a/cw_tron/CHANGELOG.md b/cw_tron/CHANGELOG.md new file mode 100644 index 0000000000..41cc7d8192 --- /dev/null +++ b/cw_tron/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/cw_tron/LICENSE b/cw_tron/LICENSE new file mode 100644 index 0000000000..ba75c69f7f --- /dev/null +++ b/cw_tron/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/cw_tron/README.md b/cw_tron/README.md new file mode 100644 index 0000000000..02fe8ecabc --- /dev/null +++ b/cw_tron/README.md @@ -0,0 +1,39 @@ + + +TODO: Put a short description of the package here that helps potential users +know whether this package might be useful for them. + +## Features + +TODO: List what your package can do. Maybe include images, gifs, or videos. + +## Getting started + +TODO: List prerequisites and provide or point to information on how to +start using the package. + +## Usage + +TODO: Include short and useful examples for package users. Add longer examples +to `/example` folder. + +```dart +const like = 'sample'; +``` + +## Additional information + +TODO: Tell users more about the package: where to find more information, how to +contribute to the package, how to file issues, what response they can expect +from the package authors, and more. diff --git a/cw_tron/analysis_options.yaml b/cw_tron/analysis_options.yaml new file mode 100644 index 0000000000..a5744c1cfb --- /dev/null +++ b/cw_tron/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/cw_tron/lib/cw_tron.dart b/cw_tron/lib/cw_tron.dart new file mode 100644 index 0000000000..6981fccba9 --- /dev/null +++ b/cw_tron/lib/cw_tron.dart @@ -0,0 +1,7 @@ +library cw_tron; + +/// A Calculator. +class Calculator { + /// Returns [value] plus 1. + int addOne(int value) => value + 1; +} diff --git a/cw_tron/lib/default_tron_tokens.dart b/cw_tron/lib/default_tron_tokens.dart new file mode 100644 index 0000000000..ad70f28cd7 --- /dev/null +++ b/cw_tron/lib/default_tron_tokens.dart @@ -0,0 +1,103 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_tron/tron_token.dart'; + +class DefaultTronTokens { + final List _defaultTokens = [ + TronToken( + name: "Tether USD", + symbol: "USDT", + contractAddress: "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", + decimal: 6, + enabled: true, + ), + TronToken( + name: "USD Coin", + symbol: "USDC", + contractAddress: "TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8", + decimal: 6, + enabled: true, + ), + TronToken( + name: "Bitcoin", + symbol: "BTC", + contractAddress: "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9", + decimal: 8, + enabled: true, + ), + TronToken( + name: "Ethereum", + symbol: "ETH", + contractAddress: "TRFe3hT5oYhjSZ6f3ji5FJ7YCfrkWnHRvh", + decimal: 18, + enabled: true, + ), + TronToken( + name: "Wrapped BTC", + symbol: "WBTC", + contractAddress: "TXpw8XeWYeTUd4quDskoUqeQPowRh4jY65", + decimal: 8, + enabled: true, + ), + TronToken( + name: "Dogecoin", + symbol: "DOGE", + contractAddress: "THbVQp8kMjStKNnf2iCY6NEzThKMK5aBHg", + decimal: 8, + enabled: true, + ), + TronToken( + name: "JUST Stablecoin", + symbol: "USDJ", + contractAddress: "TMwFHYXLJaRUPeW6421aqXL4ZEzPRFGkGT", + decimal: 18, + enabled: false, + ), + TronToken( + name: "SUN", + symbol: "SUN", + contractAddress: "TSSMHYeV2uE9qYH95DqyoCuNCzEL1NvU3S", + decimal: 18, + enabled: false, + ), + TronToken( + name: "Wrapped TRX", + symbol: "WTRX", + contractAddress: "TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR", + decimal: 6, + enabled: false, + ), + TronToken( + name: "BitTorent", + symbol: "BTT", + contractAddress: "TAFjULxiVgT4qWk6UZwjqwZXTSaGaqnVp4", + decimal: 18, + enabled: false, + ), + TronToken( + name: "BUSD Token", + symbol: "BUSD", + contractAddress: "TMz2SWatiAtZVVcH2ebpsbVtYwUPT9EdjH", + decimal: 18, + enabled: false, + ), + TronToken( + name: "HTX", + symbol: "HTX", + contractAddress: "TUPM7K8REVzD2UdV4R5fe5M8XbnR2DdoJ6", + decimal: 18, + enabled: false, + ), + ]; + + List get initialTronTokens => _defaultTokens.map((token) { + String? iconPath; + try { + iconPath = CryptoCurrency.all + .firstWhere((element) => + element.title.toUpperCase() == token.symbol.split(".").first.toUpperCase()) + .iconPath; + } catch (_) {} + + return TronToken.copyWith(token, iconPath, 'TRX'); + }).toList(); +} diff --git a/cw_tron/lib/file.dart b/cw_tron/lib/file.dart new file mode 100644 index 0000000000..8fd236ec32 --- /dev/null +++ b/cw_tron/lib/file.dart @@ -0,0 +1,39 @@ +import 'dart:io'; +import 'package:cw_core/key.dart'; +import 'package:encrypt/encrypt.dart' as encrypt; + +Future write( + {required String path, + required String password, + required String data}) async { + final keys = extractKeys(password); + final key = encrypt.Key.fromBase64(keys.first); + final iv = encrypt.IV.fromBase64(keys.last); + final encrypted = await encode(key: key, iv: iv, data: data); + final f = File(path); + f.writeAsStringSync(encrypted); +} + +Future writeData( + {required String path, + required String password, + required String data}) async { + final keys = extractKeys(password); + final key = encrypt.Key.fromBase64(keys.first); + final iv = encrypt.IV.fromBase64(keys.last); + final encrypted = await encode(key: key, iv: iv, data: data); + final f = File(path); + f.writeAsStringSync(encrypted); +} + +Future read({required String path, required String password}) async { + final file = File(path); + + if (!file.existsSync()) { + file.createSync(); + } + + final encrypted = file.readAsStringSync(); + + return decode(password: password, data: encrypted); +} diff --git a/cw_tron/lib/pending_tron_transaction.dart b/cw_tron/lib/pending_tron_transaction.dart new file mode 100644 index 0000000000..b6d064b31f --- /dev/null +++ b/cw_tron/lib/pending_tron_transaction.dart @@ -0,0 +1,33 @@ + + +import 'package:cw_core/pending_transaction.dart'; +import 'package:web3dart/crypto.dart'; + +class PendingTronTransaction with PendingTransaction { + final Function sendTransaction; + final List signedTransaction; + final String fee; + final String amount; + + PendingTronTransaction({ + required this.sendTransaction, + required this.signedTransaction, + required this.fee, + required this.amount, + }); + + @override + String get amountFormatted => amount; + + @override + Future commit() async => await sendTransaction(); + + @override + String get feeFormatted => fee; + + @override + String get hex => bytesToHex(signedTransaction); + + @override + String get id => ''; +} diff --git a/cw_tron/lib/tron_abi.dart b/cw_tron/lib/tron_abi.dart new file mode 100644 index 0000000000..fdb998636d --- /dev/null +++ b/cw_tron/lib/tron_abi.dart @@ -0,0 +1,436 @@ +final trc20Abi = [ + {"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, + { + "anonymous": false, + "inputs": [ + {"indexed": true, "internalType": "address", "name": "owner", "type": "address"}, + {"indexed": true, "internalType": "address", "name": "spender", "type": "address"}, + {"indexed": false, "internalType": "uint256", "name": "value", "type": "uint256"} + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": false, "internalType": "uint256", "name": "total", "type": "uint256"}, + {"indexed": true, "internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"indexed": true, "internalType": "address", "name": "buyer", "type": "address"}, + {"indexed": true, "internalType": "address", "name": "seller", "type": "address"}, + {"indexed": false, "internalType": "address", "name": "contract_address", "type": "address"} + ], + "name": "OrderPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": true, "internalType": "address", "name": "previousOwner", "type": "address"}, + {"indexed": true, "internalType": "address", "name": "newOwner", "type": "address"} + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": false, "internalType": "address", "name": "token", "type": "address"}, + {"indexed": false, "internalType": "bool", "name": "active", "type": "bool"} + ], + "name": "TokenUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": true, "internalType": "address", "name": "from", "type": "address"}, + {"indexed": true, "internalType": "address", "name": "to", "type": "address"}, + {"indexed": false, "internalType": "uint256", "name": "value", "type": "uint256"} + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": false, "internalType": "string", "name": "username", "type": "string"}, + {"indexed": true, "internalType": "address", "name": "seller", "type": "address"} + ], + "name": "UserRegistred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": true, "internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"indexed": true, "internalType": "address", "name": "buyer", "type": "address"}, + {"indexed": false, "internalType": "address", "name": "seller", "type": "address"} + ], + "name": "WBuyer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + {"indexed": true, "internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"indexed": true, "internalType": "address", "name": "seller", "type": "address"}, + {"indexed": false, "internalType": "address", "name": "buyer", "type": "address"} + ], + "name": "WSeller", + "type": "event" + }, + { + "inputs": [], + "name": "CONTRACTPERCENTAGE", + "outputs": [ + {"internalType": "uint8", "name": "", "type": "uint8"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"internalType": "uint256", "name": "order_total", "type": "uint256"}, + {"internalType": "address", "name": "contractAddress", "type": "address"}, + {"internalType": "address", "name": "seller", "type": "address"} + ], + "name": "PayWithTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "TOKENINCREAMENT", + "outputs": [ + {"internalType": "uint16", "name": "", "type": "uint16"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "", "type": "address"} + ], + "name": "_signer", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "", "type": "address"} + ], + "name": "_tokens", + "outputs": [ + {"internalType": "bool", "name": "active", "type": "bool"}, + {"internalType": "uint16", "name": "token", "type": "uint16"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "", "type": "address"} + ], + "name": "_users", + "outputs": [ + {"internalType": "bool", "name": "active", "type": "bool"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "owner", "type": "address"}, + {"internalType": "address", "name": "spender", "type": "address"} + ], + "name": "allowance", + "outputs": [ + {"internalType": "uint256", "name": "", "type": "uint256"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "spender", "type": "address"}, + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "approve", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "account", "type": "address"} + ], + "name": "balanceOf", + "outputs": [ + {"internalType": "uint256", "name": "", "type": "uint256"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "token", "type": "address"} + ], + "name": "balanceOfContract", + "outputs": [ + {"internalType": "uint256", "name": "", "type": "uint256"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "account", "type": "address"}, + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint256", "name": "value", "type": "uint256"}, + {"internalType": "address", "name": "_contractAddress", "type": "address"} + ], + "name": "contractWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + {"internalType": "uint8", "name": "", "type": "uint8"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "spender", "type": "address"}, + {"internalType": "uint256", "name": "subtractedValue", "type": "uint256"} + ], + "name": "decreaseAllowance", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "spender", "type": "address"}, + {"internalType": "uint256", "name": "addedValue", "type": "uint256"} + ], + "name": "increaseAllowance", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "to", "type": "address"}, + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + {"internalType": "string", "name": "", "type": "string"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + {"internalType": "address", "name": "", "type": "address"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "token", "type": "address"}, + {"internalType": "uint256", "name": "value", "type": "uint256"} + ], + "name": "payToContract", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"internalType": "address", "name": "seller", "type": "address"} + ], + "name": "payWithNativeToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "string", "name": "username", "type": "string"} + ], + "name": "regiserUser", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint16", "name": "id", "type": "uint16"}, + {"internalType": "address", "name": "buyer", "type": "address"}, + {"internalType": "address", "name": "seller", "type": "address"} + ], + "name": "selectOrder", + "outputs": [ + {"internalType": "uint232", "name": "", "type": "uint232"}, + {"internalType": "uint16", "name": "", "type": "uint16"}, + {"internalType": "uint8", "name": "", "type": "uint8"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + {"internalType": "string", "name": "", "type": "string"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "signer", "type": "address"} + ], + "name": "toggleSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "tokenAddress", "type": "address"} + ], + "name": "toggleToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + {"internalType": "uint256", "name": "", "type": "uint256"} + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "to", "type": "address"}, + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "transfer", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "from", "type": "address"}, + {"internalType": "address", "name": "to", "type": "address"}, + {"internalType": "uint256", "name": "amount", "type": "uint256"} + ], + "name": "transferFrom", + "outputs": [ + {"internalType": "bool", "name": "", "type": "bool"} + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "newOwner", "type": "address"} + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "uint8", "name": "newPercentage", "type": "uint8"} + ], + "name": "updateContractPercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address[]", "name": "buyer", "type": "address[]"}, + {"internalType": "bytes[]", "name": "signature", "type": "bytes[]"}, + {"internalType": "uint16[]", "name": "order_id", "type": "uint16[]"}, + {"internalType": "address", "name": "contractAddress", "type": "address"} + ], + "name": "widthrawForSellers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + {"internalType": "address", "name": "seller", "type": "address"}, + {"internalType": "bytes", "name": "signature", "type": "bytes"}, + {"internalType": "uint16", "name": "order_id", "type": "uint16"}, + {"internalType": "address", "name": "contractAddress", "type": "address"} + ], + "name": "widthrowForBuyers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +]; diff --git a/cw_tron/lib/tron_balance.dart b/cw_tron/lib/tron_balance.dart new file mode 100644 index 0000000000..5b2ba3fa7c --- /dev/null +++ b/cw_tron/lib/tron_balance.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:cw_core/balance.dart'; +import 'package:on_chain/on_chain.dart'; + +class TronBalance extends Balance { + TronBalance(this.balance) : super(balance.toInt(), balance.toInt()); + + final BigInt balance; + + @override + String get formattedAdditionalBalance => TronHelper.fromSun(balance); + + @override + String get formattedAvailableBalance => TronHelper.fromSun(balance); + + String toJSON() => json.encode({ + 'balance': balance.toString(), + }); + + static TronBalance? fromJSON(String? jsonSource) { + if (jsonSource == null) { + return null; + } + + final decoded = json.decode(jsonSource) as Map; + + try { + return TronBalance(BigInt.parse(decoded['balance'])); + } catch (e) { + return TronBalance(BigInt.zero); + } + } +} diff --git a/cw_tron/lib/tron_client.dart b/cw_tron/lib/tron_client.dart new file mode 100644 index 0000000000..f03a8abce8 --- /dev/null +++ b/cw_tron/lib/tron_client.dart @@ -0,0 +1,574 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:developer'; + +import 'package:blockchain_utils/blockchain_utils.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_tron/pending_tron_transaction.dart'; +import 'package:cw_tron/tron_abi.dart'; +import 'package:cw_tron/tron_balance.dart'; +import 'package:cw_tron/tron_http_provider.dart'; +import 'package:cw_tron/tron_token.dart'; +import 'package:cw_tron/tron_transaction_model.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:http/http.dart'; +import '.secrets.g.dart' as secrets; +import 'package:on_chain/on_chain.dart'; + +class TronClient { + final httpClient = Client(); + TronProvider? _provider; + // This is an internal tracker, so we don't have to "refetch". + int _nativeTxEstimatedFee = 0; + + int get chainId => 1000; + + Future> fetchTransactions(String address, + {String? contractAddress}) async { + try { + final response = await httpClient.get( + Uri.https( + "api.trongrid.io", + "/v1/accounts/$address/transactions", + { + "only_confirmed": "true", + "limit": "200", + }, + ), + headers: { + 'Content-Type': 'application/json', + 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + }, + ); + final jsonResponse = json.decode(response.body) as Map; + + if (response.statusCode >= 200 && + response.statusCode < 300 && + jsonResponse['status'] != false) { + return (jsonResponse['data'] as List).map((e) { + return TronTransactionModel.fromJson(e as Map); + }).toList(); + } + + return []; + } catch (e, s) { + log('Error getting tx: ${e.toString()}\n ${s.toString()}'); + return []; + } + } + + Future> fetchTrc20ExcludedTransactions(String address) async { + try { + final response = await httpClient.get( + Uri.https( + "api.trongrid.io", + "/v1/accounts/$address/transactions/trc20", + { + "only_confirmed": "true", + "limit": "200", + }, + ), + headers: { + 'Content-Type': 'application/json', + 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + }, + ); + final jsonResponse = json.decode(response.body) as Map; + + if (response.statusCode >= 200 && + response.statusCode < 300 && + jsonResponse['status'] != false) { + return (jsonResponse['data'] as List).map((e) { + return TronTRC20TransactionModel.fromJson(e as Map); + }).toList(); + } + + return []; + } catch (e, s) { + log('Error getting trc20 tx: ${e.toString()}\n ${s.toString()}'); + return []; + } + } + + bool connect(Node node) { + try { + final formattedUrl = '${node.isSSL ? 'https' : 'http'}://${node.uriRaw}'; + _provider = TronProvider(TronHTTPProvider(url: formattedUrl)); + + return true; + } catch (e) { + return false; + } + } + + Future getBalance(TronAddress address) async { + try { + final accountDetails = await _provider!.request(TronRequestGetAccount(address: address)); + + return accountDetails?.balance ?? BigInt.zero; + } catch (_) { + return BigInt.zero; + } + } + + Future getFeeLimit( + TransactionRaw rawTransaction, + TronAddress address, + TronAddress receiverAddress, { + int energyUsed = 0, + bool isEstimatedFeeFlow = false, + }) async { + try { + // Get the tron chain parameters. + final chainParams = await _provider!.request(TronRequestGetChainParameters()); + + final bandWidthInSun = chainParams.getTransactionFee!; + log('BandWidth In Sun: $bandWidthInSun'); + + final energyInSun = chainParams.getEnergyFee!; + log('Energy In Sun: $energyInSun'); + + log( + 'Create Account Fee In System Contract for Chain: ${chainParams.getCreateNewAccountFeeInSystemContract!}', + ); + log('Create Account Fee for Chain: ${chainParams.getCreateAccountFee}'); + + final fakeTransaction = Transaction( + rawData: rawTransaction, + signature: [Uint8List(65)], + ); + + // Calculate the total size of the fake transaction, considering the required network overhead. + final transactionSize = fakeTransaction.length + 64; + + // Assign the calculated size to the variable representing the required bandwidth. + int neededBandWidth = transactionSize; + log('Initial Needed Bandwidth: $neededBandWidth'); + + int neededEnergy = energyUsed; + log('Initial Needed Energy: $neededEnergy'); + + // Fetch account resources to assess the available bandwidth and energy + final accountResource = + await _provider!.request(TronRequestGetAccountResource(address: address)); + + neededEnergy -= accountResource.howManyEnergy.toInt(); + log('Account resource energy: ${accountResource.howManyEnergy.toInt()}'); + log('Needed Energy after deducting from account resource energy: $neededEnergy'); + + // Deduct the bandwidth from the account's available bandwidth. + final BigInt accountBandWidth = accountResource.howManyBandwIth; + log('Account resource bandwidth: ${accountResource.howManyBandwIth.toInt()}'); + + if (accountBandWidth >= BigInt.from(neededBandWidth) && !isEstimatedFeeFlow) { + log('Account has more bandwidth than required'); + neededBandWidth = 0; + } + + if (neededEnergy < 0) { + neededEnergy = 0; + } + + final energyBurn = neededEnergy * energyInSun.toInt(); + log('Energy Burn: $energyBurn'); + + final bandWidthBurn = neededBandWidth * bandWidthInSun; + log('Bandwidth Burn: $bandWidthBurn'); + + int totalBurn = energyBurn + bandWidthBurn; + log('Total Burn: $totalBurn'); + + /// If there is a note (memo), calculate the memo fee. + if (rawTransaction.data != null) { + totalBurn += chainParams.getMemoFee!; + } + + // Check if receiver's account is active + final receiverAccountInfo = + await _provider!.request(TronRequestGetAccount(address: receiverAddress)); + + /// Calculate the resources required to create a new account. + if (receiverAccountInfo == null) { + totalBurn += chainParams.getCreateNewAccountFeeInSystemContract!; + + totalBurn += (chainParams.getCreateAccountFee! * bandWidthInSun); + } + + log('Final total burn: $totalBurn'); + + return totalBurn; + } catch (_) { + return 0; + } + } + + Future getEstimatedFee(TronAddress ownerAddress) async { + const constantAmount = '1000'; + // Fetch the latest Tron block + final block = await _provider!.request(TronRequestGetNowBlock()); + + // Create the transfer contract + final contract = TransferContract( + amount: TronHelper.toSun(constantAmount), + ownerAddress: ownerAddress, + toAddress: ownerAddress, + ); + + // Prepare the contract parameter for the transaction. + final parameter = Any(typeUrl: contract.typeURL, value: contract); + + // Create a TransactionContract object with the contract type and parameter. + final transactionContract = + TransactionContract(type: contract.contractType, parameter: parameter); + + // Set the transaction expiration time (maximum 24 hours) + final expireTime = DateTime.now().toUtc().add(const Duration(hours: 24)); + + // Create a raw transaction + TransactionRaw rawTransaction = TransactionRaw( + refBlockBytes: block.blockHeader.rawData.refBlockBytes, + refBlockHash: block.blockHeader.rawData.refBlockHash, + expiration: BigInt.from(expireTime.millisecondsSinceEpoch), + contract: [transactionContract], + timestamp: block.blockHeader.rawData.timestamp, + ); + + final estimatedFee = await getFeeLimit( + rawTransaction, + ownerAddress, + ownerAddress, + isEstimatedFeeFlow: true, + ); + + _nativeTxEstimatedFee = estimatedFee; + + return estimatedFee; + } + + Future getTRCEstimatedFee(TronAddress ownerAddress) async { + String contractAddress = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; + String constantAmount = + '0'; // We're using 0 as the base amount here as we get an error when balance is zero i.e for new wallets. + final contract = ContractABI.fromJson(trc20Abi, isTron: true); + + final function = contract.functionFromName("transfer"); + + /// address /// amount + final transferparams = [ + ownerAddress, + TronHelper.toSun(constantAmount), + ]; + + final contractAddr = TronAddress(contractAddress); + + final request = await _provider!.request( + TronRequestTriggerConstantContract( + ownerAddress: ownerAddress, + contractAddress: contractAddr, + data: function.encodeHex(transferparams), + ), + ); + + if (!request.isSuccess) { + log("Tron TRC20 error: ${request.error} \n ${request.respose}"); + } + + final feeLimit = await getFeeLimit( + request.transactionRaw!, + ownerAddress, + ownerAddress, + energyUsed: request.energyUsed ?? 0, + isEstimatedFeeFlow: true, + ); + return feeLimit; + } + + Future signTransaction({ + required TronPrivateKey ownerPrivKey, + required String toAddress, + required String amount, + required CryptoCurrency currency, + required BigInt tronBalance, + required bool sendAll, + }) async { + // Get the owner tron address from the key + final ownerAddress = ownerPrivKey.publicKey().toAddress(); + + // Define the receiving Tron address for the transaction. + final receiverAddress = TronAddress(toAddress); + + bool isNativeTransaction = currency == CryptoCurrency.trx; + + String totalAmount; + TransactionRaw rawTransaction; + if (isNativeTransaction) { + if (sendAll) { + final accountResource = + await _provider!.request(TronRequestGetAccountResource(address: ownerAddress)); + + final availableBandWidth = accountResource.howManyBandwIth.toInt(); + + // 269 is the current middle ground for bandwidth per transaction + if (availableBandWidth >= 269) { + totalAmount = amount; + } else { + final amountInSun = TronHelper.toSun(amount).toInt(); + + // 5000 added here is a buffer since we're working with "estimated" value of the fee. + final result = amountInSun - (_nativeTxEstimatedFee + 5000); + + totalAmount = TronHelper.fromSun(BigInt.from(result)); + } + } else { + totalAmount = amount; + } + rawTransaction = await _signNativeTransaction( + ownerAddress, + receiverAddress, + totalAmount, + tronBalance, + sendAll, + ); + } else { + final tokenAddress = (currency as TronToken).contractAddress; + totalAmount = amount; + rawTransaction = await _signTrcTokenTransaction( + ownerAddress, + receiverAddress, + totalAmount, + tokenAddress, + tronBalance, + ); + } + + final signature = ownerPrivKey.sign(rawTransaction.toBuffer()); + + sendTx() async => await sendTransaction( + rawTransaction: rawTransaction, + signature: signature, + ); + + return PendingTronTransaction( + signedTransaction: signature, + amount: totalAmount, + fee: TronHelper.fromSun(rawTransaction.feeLimit ?? BigInt.zero), + sendTransaction: sendTx, + ); + } + + Future _signNativeTransaction( + TronAddress ownerAddress, + TronAddress receiverAddress, + String amount, + BigInt tronBalance, + bool sendAll, + ) async { + // This is introduce to server as a limit in cases where feeLimit is 0 + // The transaction signing will fail if the feeLimit is explicitly 0. + int defaultFeeLimit = 100000; + + final block = await _provider!.request(TronRequestGetNowBlock()); + // Create the transfer contract + final contract = TransferContract( + amount: TronHelper.toSun(amount), + ownerAddress: ownerAddress, + toAddress: receiverAddress, + ); + + // Prepare the contract parameter for the transaction. + final parameter = Any(typeUrl: contract.typeURL, value: contract); + + // Create a TransactionContract object with the contract type and parameter. + final transactionContract = + TransactionContract(type: contract.contractType, parameter: parameter); + + // Set the transaction expiration time (maximum 24 hours) + final expireTime = DateTime.now().toUtc().add(const Duration(hours: 24)); + + // Create a raw transaction + TransactionRaw rawTransaction = TransactionRaw( + refBlockBytes: block.blockHeader.rawData.refBlockBytes, + refBlockHash: block.blockHeader.rawData.refBlockHash, + expiration: BigInt.from(expireTime.millisecondsSinceEpoch), + contract: [transactionContract], + timestamp: block.blockHeader.rawData.timestamp, + ); + + final feeLimit = await getFeeLimit(rawTransaction, ownerAddress, receiverAddress); + final feeLimitToUse = feeLimit != 0 ? feeLimit : defaultFeeLimit; + final tronBalanceInt = tronBalance.toInt(); + + if (feeLimit > tronBalanceInt) { + throw Exception( + 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up.', + ); + } + + rawTransaction = rawTransaction.copyWith( + feeLimit: BigInt.from(feeLimitToUse), + ); + + return rawTransaction; + } + + Future _signTrcTokenTransaction( + TronAddress ownerAddress, + TronAddress receiverAddress, + String amount, + String contractAddress, + BigInt tronBalance, + ) async { + final contract = ContractABI.fromJson(trc20Abi, isTron: true); + + final function = contract.functionFromName("transfer"); + + /// address /// amount + final transferparams = [ + receiverAddress, + TronHelper.toSun(amount), + ]; + + final contractAddr = TronAddress(contractAddress); + + final request = await _provider!.request( + TronRequestTriggerConstantContract( + ownerAddress: ownerAddress, + contractAddress: contractAddr, + data: function.encodeHex(transferparams), + ), + ); + + if (!request.isSuccess) { + log("Tron TRC20 error: ${request.error} \n ${request.respose}"); + } + + final feeLimit = await getFeeLimit( + request.transactionRaw!, + ownerAddress, + receiverAddress, + energyUsed: request.energyUsed ?? 0, + ); + + final tronBalanceInt = tronBalance.toInt(); + + if (feeLimit > tronBalanceInt) { + throw Exception( + 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up.', + ); + } + + final rawTransaction = request.transactionRaw!.copyWith( + feeLimit: BigInt.from(feeLimit), + ); + + return rawTransaction; + } + + Future sendTransaction({ + required TransactionRaw rawTransaction, + required List signature, + }) async { + try { + final transaction = Transaction(rawData: rawTransaction, signature: [signature]); + + final raw = BytesUtils.toHexString(transaction.toBuffer()); + + final txBroadcastResult = await _provider!.request(TronRequestBroadcastHex(transaction: raw)); + + if (txBroadcastResult.isSuccess) { + return txBroadcastResult.txId!; + } else { + throw Exception(txBroadcastResult.error); + } + } catch (e) { + log('Send block Exception: ${e.toString()}'); + throw Exception(e); + } + } + + Future fetchTronTokenBalances(String userAddress, String contractAddress) async { + try { + final ownerAddress = TronAddress(userAddress); + + final tokenAddress = TronAddress(contractAddress); + + final contract = ContractABI.fromJson(trc20Abi, isTron: true); + + final function = contract.functionFromName("balanceOf"); + + final request = await _provider!.request( + TronRequestTriggerConstantContract.fromMethod( + ownerAddress: ownerAddress, + contractAddress: tokenAddress, + function: function, + params: [ownerAddress], + ), + ); + + final outputResult = request.outputResult?.first ?? BigInt.zero; + + return TronBalance(outputResult); + } catch (_) { + return TronBalance(BigInt.zero); + } + } + + Future getTronToken(String contractAddress, String userAddress) async { + try { + final tokenAddress = TronAddress(contractAddress); + + final ownerAddress = TronAddress(userAddress); + + final contract = ContractABI.fromJson(trc20Abi, isTron: true); + + final name = + (await getTokenDetail(contract, "name", ownerAddress, tokenAddress) as String?) ?? ''; + + final symbol = + (await getTokenDetail(contract, "symbol", ownerAddress, tokenAddress) as String?) ?? ''; + + final decimal = + (await getTokenDetail(contract, "decimals", ownerAddress, tokenAddress) as BigInt?) ?? + BigInt.zero; + + return TronToken( + name: name, + symbol: symbol, + contractAddress: contractAddress, + decimal: decimal.toInt(), + ); + } catch (e) { + return null; + } + } + + Future getTokenDetail( + ContractABI contract, + String functionName, + TronAddress ownerAddress, + TronAddress tokenAddress, + ) async { + final function = contract.functionFromName(functionName); + + try { + final request = await _provider!.request( + TronRequestTriggerConstantContract.fromMethod( + ownerAddress: ownerAddress, + contractAddress: tokenAddress, + function: function, + params: [], + ), + ); + + final outputResult = request.outputResult?.first; + + return outputResult; + } catch (_) { + log('Erorr fetching detail: ${_.toString()}'); + + return null; + } + } +} diff --git a/cw_tron/lib/tron_exception.dart b/cw_tron/lib/tron_exception.dart new file mode 100644 index 0000000000..13b98c0248 --- /dev/null +++ b/cw_tron/lib/tron_exception.dart @@ -0,0 +1,16 @@ +import 'package:cw_core/crypto_currency.dart'; + +class TronMnemonicIsIncorrectException implements Exception { + @override + String toString() => + 'Tron mnemonic has incorrect format. Mnemonic should contain 12 or 24 words separated by space.'; +} +class TronTransactionCreationException implements Exception { + final String exceptionMessage; + + TronTransactionCreationException(CryptoCurrency currency) + : exceptionMessage = 'Wrong balance. Not enough ${currency.title} on your balance.'; + + @override + String toString() => exceptionMessage; +} \ No newline at end of file diff --git a/cw_tron/lib/tron_http_provider.dart b/cw_tron/lib/tron_http_provider.dart new file mode 100644 index 0000000000..193a3dbdde --- /dev/null +++ b/cw_tron/lib/tron_http_provider.dart @@ -0,0 +1,41 @@ +import 'dart:convert'; + +import 'package:http/http.dart' as http; +import 'package:on_chain/tron/tron.dart'; +import '.secrets.g.dart' as secrets; + +class TronHTTPProvider implements TronServiceProvider { + TronHTTPProvider( + {required this.url, + http.Client? client, + this.defaultRequestTimeout = const Duration(seconds: 30)}) + : client = client ?? http.Client(); + @override + final String url; + final http.Client client; + final Duration defaultRequestTimeout; + + @override + Future> get(TronRequestDetails params, [Duration? timeout]) async { + final response = await client.get(Uri.parse(params.url(url)), headers: { + 'Content-Type': 'application/json', + 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + }).timeout(timeout ?? defaultRequestTimeout); + final data = json.decode(response.body) as Map; + return data; + } + + @override + Future> post(TronRequestDetails params, [Duration? timeout]) async { + final response = await client + .post(Uri.parse(params.url(url)), + headers: { + 'Content-Type': 'application/json', + 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + }, + body: params.toRequestBody()) + .timeout(timeout ?? defaultRequestTimeout); + final data = json.decode(response.body) as Map; + return data; + } +} diff --git a/cw_tron/lib/tron_token.dart b/cw_tron/lib/tron_token.dart new file mode 100644 index 0000000000..8c45ab486c --- /dev/null +++ b/cw_tron/lib/tron_token.dart @@ -0,0 +1,80 @@ +// ignore_for_file: annotate_overrides, overridden_fields + +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/hive_type_ids.dart'; +import 'package:hive/hive.dart'; + +part 'tron_token.g.dart'; + +@HiveType(typeId: TronToken.typeId) +class TronToken extends CryptoCurrency with HiveObjectMixin { + @HiveField(0) + final String name; + + @HiveField(1) + final String symbol; + + @HiveField(2) + final String contractAddress; + + @HiveField(3) + final int decimal; + + @HiveField(4, defaultValue: true) + bool _enabled; + + @HiveField(5) + final String? iconPath; + + @HiveField(6) + final String? tag; + + bool get enabled => _enabled; + + set enabled(bool value) => _enabled = value; + + TronToken({ + required this.name, + required this.symbol, + required this.contractAddress, + required this.decimal, + bool enabled = true, + this.iconPath, + this.tag = 'TRX', + }) : _enabled = enabled, + super( + name: symbol.toLowerCase(), + title: symbol.toUpperCase(), + fullName: name, + tag: tag, + iconPath: iconPath, + decimals: decimal); + + TronToken.copyWith(TronToken other, String? icon, String? tag) + : name = other.name, + symbol = other.symbol, + contractAddress = other.contractAddress, + decimal = other.decimal, + _enabled = other.enabled, + tag = tag ?? other.tag, + iconPath = icon ?? other.iconPath, + super( + name: other.name, + title: other.symbol.toUpperCase(), + fullName: other.name, + tag: tag ?? other.tag, + iconPath: icon ?? other.iconPath, + decimals: other.decimal, + ); + + static const typeId = TRON_TOKEN_TYPE_ID; + static const boxName = 'TronTokens'; + + @override + bool operator ==(other) => + (other is TronToken && other.contractAddress == contractAddress) || + (other is CryptoCurrency && other.title == title); + + @override + int get hashCode => contractAddress.hashCode; +} diff --git a/cw_tron/lib/tron_transaction_credentials.dart b/cw_tron/lib/tron_transaction_credentials.dart new file mode 100644 index 0000000000..e68d5525b7 --- /dev/null +++ b/cw_tron/lib/tron_transaction_credentials.dart @@ -0,0 +1,12 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/output_info.dart'; + +class TronTransactionCredentials { + TronTransactionCredentials( + this.outputs, { + required this.currency, + }); + + final List outputs; + final CryptoCurrency currency; +} diff --git a/cw_tron/lib/tron_transaction_history.dart b/cw_tron/lib/tron_transaction_history.dart new file mode 100644 index 0000000000..7d7274226b --- /dev/null +++ b/cw_tron/lib/tron_transaction_history.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; +import 'dart:core'; +import 'dart:developer'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_evm/file.dart'; +import 'package:cw_tron/tron_transaction_info.dart'; +import 'package:mobx/mobx.dart'; +import 'package:cw_core/transaction_history.dart'; + +part 'tron_transaction_history.g.dart'; + +class TronTransactionHistory = TronTransactionHistoryBase with _$TronTransactionHistory; + +abstract class TronTransactionHistoryBase extends TransactionHistoryBase + with Store { + TronTransactionHistoryBase({required this.walletInfo, required String password}) + : _password = password { + transactions = ObservableMap(); + } + + String _password; + + final WalletInfo walletInfo; + + Future init() async => await _load(); + + @override + Future save() async { + String transactionsHistoryFileNameForWallet = 'tron_transactions.json'; + try { + final dirPath = await pathForWalletDir(name: walletInfo.name, type: walletInfo.type); + String path = '$dirPath/$transactionsHistoryFileNameForWallet'; + final transactionMaps = transactions.map((key, value) => MapEntry(key, value.toJson())); + final data = json.encode({'transactions': transactionMaps}); + await writeData(path: path, password: _password, data: data); + } catch (e, s) { + log('Error while saving ${walletInfo.type.name} transaction history: ${e.toString()}'); + log(s.toString()); + } + } + + @override + void addOne(TronTransactionInfo transaction) => transactions[transaction.id] = transaction; + + @override + void addMany(Map transactions) => + this.transactions.addAll(transactions); + + Future> _read() async { + String transactionsHistoryFileNameForWallet = 'tron_transactions.json'; + final dirPath = await pathForWalletDir(name: walletInfo.name, type: walletInfo.type); + String path = '$dirPath/$transactionsHistoryFileNameForWallet'; + final content = await read(path: path, password: _password); + if (content.isEmpty) { + return {}; + } + return json.decode(content) as Map; + } + + Future _load() async { + try { + final content = await _read(); + final txs = content['transactions'] as Map? ?? {}; + + for (var entry in txs.entries) { + final val = entry.value; + + if (val is Map) { + final tx = TronTransactionInfo.fromJson(val); + _update(tx); + } + } + } catch (e) { + log(e.toString()); + } + } + + void _update(TronTransactionInfo transaction) => transactions[transaction.id] = transaction; +} diff --git a/cw_tron/lib/tron_transaction_info.dart b/cw_tron/lib/tron_transaction_info.dart new file mode 100644 index 0000000000..28c704d204 --- /dev/null +++ b/cw_tron/lib/tron_transaction_info.dart @@ -0,0 +1,93 @@ +import 'package:cw_core/format_amount.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:on_chain/on_chain.dart' as onchain; +import 'package:on_chain/tron/tron.dart'; + +class TronTransactionInfo extends TransactionInfo { + TronTransactionInfo({ + required this.id, + required this.tronAmount, + required this.txFee, + required this.direction, + required this.blockTime, + required this.to, + required this.from, + required this.isPending, + this.tokenSymbol = 'TRX', + }) : amount = tronAmount.toInt(); + + final String id; + final String? to; + final String? from; + final int amount; + final BigInt tronAmount; + final String tokenSymbol; + final DateTime blockTime; + final bool isPending; + final int? txFee; + final TransactionDirection direction; + + factory TronTransactionInfo.fromJson(Map data) { + return TronTransactionInfo( + id: data['id'] as String, + tronAmount: BigInt.parse(data['tronAmount']), + txFee: data['txFee'], + direction: parseTransactionDirectionFromInt(data['direction'] as int), + blockTime: DateTime.fromMillisecondsSinceEpoch(data['blockTime'] as int), + tokenSymbol: data['tokenSymbol'] as String, + to: data['to'], + from: data['from'], + isPending: data['isPending'], + ); + } + + Map toJson() => { + 'id': id, + 'tronAmount': tronAmount.toString(), + 'txFee': txFee, + 'direction': direction.index, + 'blockTime': blockTime.millisecondsSinceEpoch, + 'tokenSymbol': tokenSymbol, + 'to': to, + 'from': from, + 'isPending': isPending, + }; + + @override + DateTime get date => blockTime; + + String? _fiatAmount; + + @override + String amountFormatted() { + String formattedAmount = _rawAmountAsString(tronAmount); + + return '$formattedAmount $tokenSymbol'; + } + + @override + String fiatAmount() => _fiatAmount ?? ''; + + @override + void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount); + + @override + String feeFormatted() { + final formattedFee = onchain.TronHelper.fromSun(BigInt.from(txFee ?? 0)); + + return '$formattedFee TRX'; + } + + String _rawAmountAsString(BigInt amount) { + String formattedAmount = TronHelper.fromSun(amount); + + if (formattedAmount.length >= 8) { + formattedAmount = formattedAmount.substring(0, 8); + } + + return formattedAmount; + } + + String rawTronAmount() => _rawAmountAsString(tronAmount); +} diff --git a/cw_tron/lib/tron_transaction_model.dart b/cw_tron/lib/tron_transaction_model.dart new file mode 100644 index 0000000000..1748adc53a --- /dev/null +++ b/cw_tron/lib/tron_transaction_model.dart @@ -0,0 +1,205 @@ +import 'package:blockchain_utils/hex/hex.dart'; +import 'package:on_chain/on_chain.dart'; + +class TronTRC20TransactionModel extends TronTransactionModel { + String? transactionId; + + String? tokenSymbol; + + int? timestamp; + + @override + String? from; + + @override + String? to; + + String? value; + + @override + String get hash => transactionId!; + + @override + DateTime get date => DateTime.fromMillisecondsSinceEpoch(timestamp ?? 0); + + @override + BigInt? get amount => BigInt.parse(value ?? '0'); + + @override + int? get fee => 0; + + TronTRC20TransactionModel({ + this.transactionId, + this.tokenSymbol, + this.timestamp, + this.from, + this.to, + this.value, + }); + + TronTRC20TransactionModel.fromJson(Map json) { + transactionId = json['transaction_id']; + tokenSymbol = json['token_info'] != null ? json['token_info']['symbol'] : null; + timestamp = json['block_timestamp']; + from = json['from']; + to = json['to']; + value = json['value']; + } +} + +class TronTransactionModel { + List? ret; + String? txID; + int? blockTimestamp; + List? contracts; + + /// Getters to extract out the needed/useful information directly from the model params + /// Without having to go through extra steps in the methods that use this model. + bool get isError { + if (ret?.first.contractRet == null) return true; + + return ret?.first.contractRet != "SUCCESS"; + } + + String get hash => txID!; + + DateTime get date => DateTime.fromMillisecondsSinceEpoch(blockTimestamp ?? 0); + + String? get from => contracts?.first.parameter?.value?.ownerAddress; + + String? get to => contracts?.first.parameter?.value?.receiverAddress; + + BigInt? get amount => contracts?.first.parameter?.value?.txAmount; + + int? get fee => ret?.first.fee; + + String? get contractAddress => contracts?.first.parameter?.value?.contractAddress; + + TronTransactionModel({ + this.ret, + this.txID, + this.blockTimestamp, + this.contracts, + }); + + TronTransactionModel.fromJson(Map json) { + if (json['ret'] != null) { + ret = []; + json['ret'].forEach((v) { + ret!.add(Ret.fromJson(v)); + }); + } + txID = json['txID']; + blockTimestamp = json['block_timestamp']; + contracts = json['raw_data'] != null + ? (json['raw_data']['contract'] as List) + .map((e) => Contract.fromJson(e as Map)) + .toList() + : null; + } +} + +class Ret { + String? contractRet; + int? fee; + + Ret({this.contractRet, this.fee}); + + Ret.fromJson(Map json) { + contractRet = json['contractRet']; + fee = json['fee']; + } +} + +class Contract { + Parameter? parameter; + String? type; + + Contract({this.parameter, this.type}); + + Contract.fromJson(Map json) { + parameter = json['parameter'] != null ? Parameter.fromJson(json['parameter']) : null; + type = json['type']; + } +} + +class Parameter { + Value? value; + String? typeUrl; + + Parameter({this.value, this.typeUrl}); + + Parameter.fromJson(Map json) { + value = json['value'] != null ? Value.fromJson(json['value']) : null; + typeUrl = json['type_url']; + } +} + +class Value { + String? data; + String? ownerAddress; + String? contractAddress; + int? amount; + String? toAddress; + String? assetName; + + //Getters to extract address for tron transactions + /// If the contract address is null, it returns the toAddress + /// If it's not null, it decodes the data field and gets the receiver address. + String? get receiverAddress { + if (contractAddress == null) return toAddress; + + if (data == null) return null; + + return _decodeAddressFromEncodedDataField(data!); + } + + //Getters to extract amount for tron transactions + /// If the contract address is null, it returns the amount + /// If it's not null, it decodes the data field and gets the tx amount. + BigInt? get txAmount { + if (contractAddress == null) return BigInt.from(amount ?? 0); + + if (data == null) return null; + + return _decodeAmountInvolvedFromEncodedDataField(data!); + } + + Value( + {this.data, + this.ownerAddress, + this.contractAddress, + this.amount, + this.toAddress, + this.assetName}); + + Value.fromJson(Map json) { + data = json['data']; + ownerAddress = json['owner_address']; + contractAddress = json['contract_address']; + amount = json['amount']; + toAddress = json['to_address']; + assetName = json['asset_name']; + } + + /// To get the address from the encoded data field + String _decodeAddressFromEncodedDataField(String output) { + // To get the receiver address from the encoded params + output = output.replaceFirst('0x', '').substring(8); + final abiCoder = ABICoder.fromType('address'); + final decoded = abiCoder.decode(AbiParameter.bytes, hex.decode(output)); + final tronAddress = TronAddress.fromEthAddress((decoded.result as ETHAddress).toBytes()); + + return tronAddress.toString(); + } + + /// To get the amount from the encoded data field + BigInt _decodeAmountInvolvedFromEncodedDataField(String output) { + output = output.replaceFirst('0x', '').substring(72); + final amountAbiCoder = ABICoder.fromType('uint256'); + final decodedA = amountAbiCoder.decode(AbiParameter.uint256, hex.decode(output)); + final amount = decodedA.result as BigInt; + + return amount; + } +} diff --git a/cw_tron/lib/tron_wallet.dart b/cw_tron/lib/tron_wallet.dart new file mode 100644 index 0000000000..a798f343a9 --- /dev/null +++ b/cw_tron/lib/tron_wallet.dart @@ -0,0 +1,560 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; + +import 'package:bip39/bip39.dart' as bip39; +import 'package:blockchain_utils/blockchain_utils.dart'; +import 'package:cw_core/cake_hive.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_addresses.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cw_tron/default_tron_tokens.dart'; +import 'package:cw_tron/file.dart'; +import 'package:cw_tron/tron_abi.dart'; +import 'package:cw_tron/tron_balance.dart'; +import 'package:cw_tron/tron_client.dart'; +import 'package:cw_tron/tron_exception.dart'; +import 'package:cw_tron/tron_token.dart'; +import 'package:cw_tron/tron_transaction_credentials.dart'; +import 'package:cw_tron/tron_transaction_history.dart'; +import 'package:cw_tron/tron_transaction_info.dart'; +import 'package:cw_tron/tron_wallet_addresses.dart'; +import 'package:hive/hive.dart'; +import 'package:mobx/mobx.dart'; +import 'package:on_chain/on_chain.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +part 'tron_wallet.g.dart'; + +class TronWallet = TronWalletBase with _$TronWallet; + +abstract class TronWalletBase + extends WalletBase with Store { + TronWalletBase({ + required WalletInfo walletInfo, + String? mnemonic, + String? privateKey, + required String password, + TronBalance? initialBalance, + }) : syncStatus = const NotConnectedSyncStatus(), + _password = password, + _mnemonic = mnemonic, + _hexPrivateKey = privateKey, + _client = TronClient(), + walletAddresses = TronWalletAddresses(walletInfo), + balance = ObservableMap.of( + {CryptoCurrency.trx: initialBalance ?? TronBalance(BigInt.zero)}, + ), + super(walletInfo) { + this.walletInfo = walletInfo; + transactionHistory = TronTransactionHistory(walletInfo: walletInfo, password: password); + + if (!CakeHive.isAdapterRegistered(TronToken.typeId)) { + CakeHive.registerAdapter(TronTokenAdapter()); + } + + sharedPrefs.complete(SharedPreferences.getInstance()); + } + + final String? _mnemonic; + final String? _hexPrivateKey; + final String _password; + + late final Box tronTokensBox; + + late final TronPrivateKey _tronPrivateKey; + + late final TronPublicKey _tronPublicKey; + + TronPublicKey get tronPublicKey => _tronPublicKey; + + TronPrivateKey get tronPrivateKey => _tronPrivateKey; + + late String _tronAddress; + + late TronClient _client; + + Timer? _transactionsUpdateTimer; + + @override + WalletAddresses walletAddresses; + + @observable + String? nativeTxEstimatedFee; + + @observable + String? trc20EstimatedFee; + + @override + @observable + SyncStatus syncStatus; + + @override + @observable + late ObservableMap balance; + + Completer sharedPrefs = Completer(); + + Future init() async { + await initTronTokensBox(); + + await walletAddresses.init(); + await transactionHistory.init(); + _tronPrivateKey = await getPrivateKey( + mnemonic: _mnemonic, + privateKey: _hexPrivateKey, + password: _password, + ); + + _tronPublicKey = _tronPrivateKey.publicKey(); + + _tronAddress = _tronPublicKey.toAddress().toString(); + + walletAddresses.address = _tronAddress; + + await save(); + } + + static Future open({ + required String name, + required String password, + required WalletInfo walletInfo, + }) async { + final path = await pathForWallet(name: name, type: walletInfo.type); + final jsonSource = await read(path: path, password: password); + final data = json.decode(jsonSource) as Map; + final mnemonic = data['mnemonic'] as String?; + final privateKey = data['private_key'] as String?; + final balance = TronBalance.fromJSON(data['balance'] as String) ?? TronBalance(BigInt.zero); + + return TronWallet( + walletInfo: walletInfo, + password: password, + mnemonic: mnemonic, + privateKey: privateKey, + initialBalance: balance, + ); + } + + void addInitialTokens() { + final initialTronTokens = DefaultTronTokens().initialTronTokens; + + for (var token in initialTronTokens) { + tronTokensBox.put(token.contractAddress, token); + } + } + + Future initTronTokensBox() async { + final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${TronToken.boxName}"; + + tronTokensBox = await CakeHive.openBox(boxName); + } + + String idFor(String name, WalletType type) => '${walletTypeToString(type).toLowerCase()}_$name'; + + Future getPrivateKey({ + String? mnemonic, + String? privateKey, + required String password, + }) async { + assert(mnemonic != null || privateKey != null); + + if (privateKey != null) { + return TronPrivateKey(privateKey); + } + + final seed = bip39.mnemonicToSeed(mnemonic!); + + // Derive a TRON private key from the seed + final bip44 = Bip44.fromSeed(seed, Bip44Coins.tron); + + final childKey = bip44.deriveDefaultPath; + + return TronPrivateKey.fromBytes(childKey.privateKey.raw); + } + + @override + int calculateEstimatedFee(TransactionPriority priority, int? amount) => 0; + + @override + Future changePassword(String password) { + throw UnimplementedError("changePassword"); + } + + @override + void close() { + _transactionsUpdateTimer?.cancel(); + } + + @action + @override + Future connectToNode({required Node node}) async { + try { + syncStatus = ConnectingSyncStatus(); + + final isConnected = _client.connect(node); + + if (!isConnected) { + throw Exception("${walletInfo.type.name.toUpperCase()} Node connection failed"); + } + + _getEstimatedFees(); + _setTransactionUpdateTimer(); + + syncStatus = ConnectedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + } + } + + Future _getEstimatedFees() async { + final nativeFee = await _getNativeTxFee(); + nativeTxEstimatedFee = TronHelper.fromSun(BigInt.from(nativeFee)); + + final trc20Fee = await _getTrc20TxFee(); + trc20EstimatedFee = TronHelper.fromSun(BigInt.from(trc20Fee)); + + log('Native Estimated Fee: $nativeTxEstimatedFee'); + log('TRC20 Estimated Fee: $trc20EstimatedFee'); + } + + Future _getNativeTxFee() async { + try { + final fee = await _client.getEstimatedFee(_tronPublicKey.toAddress()); + return fee; + } catch (e) { + log(e.toString()); + return 0; + } + } + + Future _getTrc20TxFee() async { + try { + final trc20fee = await _client.getTRCEstimatedFee(_tronPublicKey.toAddress()); + return trc20fee; + } catch (e) { + log(e.toString()); + return 0; + } + } + + @action + @override + Future startSync() async { + try { + syncStatus = AttemptingSyncStatus(); + await _updateBalance(); + await fetchTransactions(); + fetchTrc20ExcludedTransactions(); + + syncStatus = SyncedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + } + } + + @override + Future createTransaction(Object credentials) async { + final tronCredentials = credentials as TronTransactionCredentials; + + final outputs = tronCredentials.outputs; + + final hasMultiDestination = outputs.length > 1; + + final CryptoCurrency transactionCurrency = + balance.keys.firstWhere((element) => element.title == tronCredentials.currency.title); + + final walletBalanceForCurrency = balance[transactionCurrency]!.balance; + + BigInt totalAmount = BigInt.zero; + bool shouldSendAll = false; + if (hasMultiDestination) { + if (outputs.any((item) => item.sendAll || (item.formattedCryptoAmount ?? 0) <= 0)) { + throw TronTransactionCreationException(transactionCurrency); + } + + final totalAmountFromCredentials = + outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + + totalAmount = BigInt.from(totalAmountFromCredentials); + + if (walletBalanceForCurrency < totalAmount) { + throw TronTransactionCreationException(transactionCurrency); + } + } else { + final output = outputs.first; + + shouldSendAll = output.sendAll; + + if (shouldSendAll) { + totalAmount = walletBalanceForCurrency; + } else { + final totalOriginalAmount = double.parse(output.cryptoAmount ?? '0.0'); + totalAmount = TronHelper.toSun(totalOriginalAmount.toString()); + } + + if (walletBalanceForCurrency < totalAmount || totalAmount < BigInt.zero) { + throw TronTransactionCreationException(transactionCurrency); + } + } + + final tronBalance = balance[CryptoCurrency.trx]?.balance ?? BigInt.zero; + + final pendingTransaction = await _client.signTransaction( + ownerPrivKey: _tronPrivateKey, + toAddress: tronCredentials.outputs.first.isParsedAddress + ? tronCredentials.outputs.first.extractedAddress! + : tronCredentials.outputs.first.address, + amount: TronHelper.fromSun(totalAmount), + currency: transactionCurrency, + tronBalance: tronBalance, + sendAll: shouldSendAll, + ); + + return pendingTransaction; + } + + @override + Future> fetchTransactions() async { + final address = _tronAddress; + + final transactions = await _client.fetchTransactions(address); + + final Map result = {}; + + final contract = ContractABI.fromJson(trc20Abi, isTron: true); + + final ownerAddress = TronAddress(_tronAddress); + + for (var transactionModel in transactions) { + if (transactionModel.isError) { + continue; + } + + String? tokenSymbol; + if (transactionModel.contractAddress != null) { + final tokenAddress = TronAddress(transactionModel.contractAddress!); + + tokenSymbol = (await _client.getTokenDetail( + contract, + "symbol", + ownerAddress, + tokenAddress, + ) as String?) ?? + ''; + } + + result[transactionModel.hash] = TronTransactionInfo( + id: transactionModel.hash, + tronAmount: transactionModel.amount ?? BigInt.zero, + direction: TronAddress(transactionModel.from!, visible: false).toAddress() == address + ? TransactionDirection.outgoing + : TransactionDirection.incoming, + blockTime: transactionModel.date, + txFee: transactionModel.fee, + tokenSymbol: tokenSymbol ?? "TRX", + to: transactionModel.to, + from: transactionModel.from, + isPending: false, + ); + } + + transactionHistory.addMany(result); + + await transactionHistory.save(); + + return transactionHistory.transactions; + } + + Future fetchTrc20ExcludedTransactions() async { + final address = _tronAddress; + + final transactions = await _client.fetchTrc20ExcludedTransactions(address); + + final Map result = {}; + + for (var transactionModel in transactions) { + if (transactionHistory.transactions.containsKey(transactionModel.hash)) { + continue; + } + + result[transactionModel.hash] = TronTransactionInfo( + id: transactionModel.hash, + tronAmount: transactionModel.amount ?? BigInt.zero, + direction: transactionModel.from! == address + ? TransactionDirection.outgoing + : TransactionDirection.incoming, + blockTime: transactionModel.date, + txFee: transactionModel.fee, + tokenSymbol: transactionModel.tokenSymbol ?? "TRX", + to: transactionModel.to, + from: transactionModel.from, + isPending: false, + ); + } + + transactionHistory.addMany(result); + + await transactionHistory.save(); + } + + @override + Object get keys => throw UnimplementedError("keys"); + + @override + Future rescan({required int height}) { + throw UnimplementedError("rescan"); + } + + @override + Future save() async { + await walletAddresses.updateAddressesInBox(); + final path = await makePath(); + await write(path: path, password: _password, data: toJSON()); + await transactionHistory.save(); + } + + @override + String? get seed => _mnemonic; + + @override + String get privateKey => _tronPrivateKey.toHex(); + + Future makePath() async => pathForWallet(name: walletInfo.name, type: walletInfo.type); + + String toJSON() => json.encode({ + 'mnemonic': _mnemonic, + 'private_key': privateKey, + 'balance': balance[currency]!.toJSON(), + }); + + Future _updateBalance() async { + balance[currency] = await _fetchTronBalance(); + + await _fetchTronTokenBalances(); + await save(); + } + + Future _fetchTronBalance() async { + final balance = await _client.getBalance(_tronPublicKey.toAddress()); + return TronBalance(balance); + } + + Future _fetchTronTokenBalances() async { + for (var token in tronTokensBox.values) { + try { + if (token.enabled) { + balance[token] = await _client.fetchTronTokenBalances( + _tronAddress, + token.contractAddress, + ); + } else { + balance.remove(token); + } + } catch (_) {} + } + } + + Future? updateBalance() async => await _updateBalance(); + + List get tronTokenCurrencies => tronTokensBox.values.toList(); + + Future addTronToken(TronToken token) async { + String? iconPath; + try { + iconPath = CryptoCurrency.all + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()) + .iconPath; + } catch (_) {} + + final newToken = TronToken( + name: token.name, + symbol: token.symbol, + contractAddress: token.contractAddress, + decimal: token.decimal, + enabled: token.enabled, + tag: token.tag ?? "TRX", + iconPath: iconPath, + ); + + await tronTokensBox.put(newToken.contractAddress, newToken); + + if (newToken.enabled) { + balance[newToken] = await _client.fetchTronTokenBalances( + _tronAddress, + newToken.contractAddress, + ); + } else { + balance.remove(newToken); + } + } + + Future deleteTronToken(TronToken token) async { + await token.delete(); + + balance.remove(token); + await _removeTokenTransactionsInHistory(token); + _updateBalance(); + } + + Future _removeTokenTransactionsInHistory(TronToken token) async { + transactionHistory.transactions.removeWhere((key, value) => value.tokenSymbol == token.title); + await transactionHistory.save(); + } + + Future getTronToken(String contractAddress) async => + await _client.getTronToken(contractAddress, _tronAddress); + + @override + Future renameWalletFiles(String newWalletName) async { + String transactionHistoryFileNameForWallet = 'tron_transactions.json'; + + final currentWalletPath = await pathForWallet(name: walletInfo.name, type: type); + final currentWalletFile = File(currentWalletPath); + + final currentDirPath = await pathForWalletDir(name: walletInfo.name, type: type); + final currentTransactionsFile = File('$currentDirPath/$transactionHistoryFileNameForWallet'); + + // Copies current wallet files into new wallet name's dir and files + if (currentWalletFile.existsSync()) { + final newWalletPath = await pathForWallet(name: newWalletName, type: type); + await currentWalletFile.copy(newWalletPath); + } + if (currentTransactionsFile.existsSync()) { + final newDirPath = await pathForWalletDir(name: newWalletName, type: type); + await currentTransactionsFile.copy('$newDirPath/$transactionHistoryFileNameForWallet'); + } + + // Delete old name's dir and files + await Directory(currentDirPath).delete(recursive: true); + } + + void _setTransactionUpdateTimer() { + if (_transactionsUpdateTimer?.isActive ?? false) { + _transactionsUpdateTimer!.cancel(); + } + + _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 20), (_) async { + _updateBalance(); + await fetchTransactions(); + fetchTrc20ExcludedTransactions(); + }); + } + + @override + String signMessage(String message, {String? address}) => + _tronPrivateKey.signPersonalMessage(ascii.encode(message)); + + String getTronBase58AddressFromHex(String hexAddress) { + return TronAddress(hexAddress).toAddress(); + } +} diff --git a/cw_tron/lib/tron_wallet_addresses.dart b/cw_tron/lib/tron_wallet_addresses.dart new file mode 100644 index 0000000000..35939de265 --- /dev/null +++ b/cw_tron/lib/tron_wallet_addresses.dart @@ -0,0 +1,36 @@ +import 'dart:developer'; + +import 'package:cw_core/wallet_addresses.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:mobx/mobx.dart'; + +part 'tron_wallet_addresses.g.dart'; + +class TronWalletAddresses = TronWalletAddressesBase with _$TronWalletAddresses; + +abstract class TronWalletAddressesBase extends WalletAddresses with Store { + TronWalletAddressesBase(WalletInfo walletInfo) + : address = '', + super(walletInfo); + + @override + @observable + String address; + + @override + Future init() async { + address = walletInfo.address; + await updateAddressesInBox(); + } + + @override + Future updateAddressesInBox() async { + try { + addressesMap.clear(); + addressesMap[address] = ''; + await saveAddressesInBox(); + } catch (e) { + log(e.toString()); + } + } +} diff --git a/cw_tron/lib/tron_wallet_creation_credentials.dart b/cw_tron/lib/tron_wallet_creation_credentials.dart new file mode 100644 index 0000000000..dc4f389aa2 --- /dev/null +++ b/cw_tron/lib/tron_wallet_creation_credentials.dart @@ -0,0 +1,29 @@ +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; + +class TronNewWalletCredentials extends WalletCredentials { + TronNewWalletCredentials({required String name, WalletInfo? walletInfo}) + : super(name: name, walletInfo: walletInfo); +} + +class TronRestoreWalletFromSeedCredentials extends WalletCredentials { + TronRestoreWalletFromSeedCredentials( + {required String name, + required String password, + required this.mnemonic, + WalletInfo? walletInfo}) + : super(name: name, password: password, walletInfo: walletInfo); + + final String mnemonic; +} + +class TronRestoreWalletFromPrivateKey extends WalletCredentials { + TronRestoreWalletFromPrivateKey( + {required String name, + required String password, + required this.privateKey, + WalletInfo? walletInfo}) + : super(name: name, password: password, walletInfo: walletInfo); + + final String privateKey; +} diff --git a/cw_tron/lib/tron_wallet_service.dart b/cw_tron/lib/tron_wallet_service.dart new file mode 100644 index 0000000000..f4e98ee5d6 --- /dev/null +++ b/cw_tron/lib/tron_wallet_service.dart @@ -0,0 +1,148 @@ +import 'dart:io'; + +import 'package:bip39/bip39.dart' as bip39; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cw_tron/tron_client.dart'; +import 'package:cw_tron/tron_exception.dart'; +import 'package:cw_tron/tron_wallet.dart'; +import 'package:cw_tron/tron_wallet_creation_credentials.dart'; +import 'package:hive/hive.dart'; +import 'package:collection/collection.dart'; + +class TronWalletService extends WalletService { + TronWalletService(this.walletInfoSource, {required this.client}); + + late TronClient client; + + final Box walletInfoSource; + + @override + WalletType getType() => WalletType.tron; + + @override + Future create( + TronNewWalletCredentials credentials, { + bool? isTestnet, + }) async { + final strength = credentials.seedPhraseLength == 24 ? 256 : 128; + + final mnemonic = bip39.generateMnemonic(strength: strength); + + final wallet = TronWallet( + walletInfo: credentials.walletInfo!, + mnemonic: mnemonic, + password: credentials.password!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + + @override + Future openWallet(String name, String password) async { + final walletInfo = + walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); + + try { + final wallet = await TronWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + + final wallet = await TronWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + return wallet; + } + } + + @override + Future restoreFromKeys( + TronRestoreWalletFromPrivateKey credentials, { + bool? isTestnet, + }) async { + final wallet = TronWallet( + password: credentials.password!, + privateKey: credentials.privateKey, + walletInfo: credentials.walletInfo!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + + @override + Future restoreFromSeed( + TronRestoreWalletFromSeedCredentials credentials, { + bool? isTestnet, + }) async { + if (!bip39.validateMnemonic(credentials.mnemonic)) { + throw TronMnemonicIsIncorrectException(); + } + + final wallet = TronWallet( + password: credentials.password!, + mnemonic: credentials.mnemonic, + walletInfo: credentials.walletInfo!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + + @override + Future rename(String currentName, String password, String newName) async { + final currentWalletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); + final currentWallet = await TronWalletBase.open( + password: password, name: currentName, walletInfo: currentWalletInfo); + + await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); + + final newWalletInfo = currentWalletInfo; + newWalletInfo.id = WalletBase.idFor(newName, getType()); + newWalletInfo.name = newName; + + await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); + } + + @override + Future isWalletExit(String name) async => + File(await pathForWallet(name: name, type: getType())).existsSync(); + + @override + Future remove(String wallet) async { + File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true); + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!; + await walletInfoSource.delete(walletInfo.key); + } +} diff --git a/cw_tron/pubspec.yaml b/cw_tron/pubspec.yaml new file mode 100644 index 0000000000..9d32c4290d --- /dev/null +++ b/cw_tron/pubspec.yaml @@ -0,0 +1,33 @@ +name: cw_tron +description: A new Flutter package project. +version: 0.0.1 +publish_to: none +homepage: https://cakewallet.com + +environment: + sdk: '>=3.0.6 <4.0.0' + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + cw_core: + path: ../cw_core + cw_evm: + path: ../cw_evm + on_chain: ^3.0.1 + blockchain_utils: ^2.1.1 + mobx: ^2.3.0+1 + bip39: ^1.0.6 + hive: ^2.2.3 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + build_runner: ^2.3.3 + mobx_codegen: ^2.1.1 + hive_generator: ^1.1.3 +flutter: + # assets: + # - images/a_dot_burr.jpeg diff --git a/cw_tron/test/cw_tron_test.dart b/cw_tron/test/cw_tron_test.dart new file mode 100644 index 0000000000..55a2b04bee --- /dev/null +++ b/cw_tron/test/cw_tron_test.dart @@ -0,0 +1,12 @@ +import 'package:flutter_test/flutter_test.dart'; + +import 'package:cw_tron/cw_tron.dart'; + +void main() { + test('adds one to input values', () { + final calculator = Calculator(); + expect(calculator.addOne(2), 3); + expect(calculator.addOne(-7), -6); + expect(calculator.addOne(0), 1); + }); +} diff --git a/how_to_add_new_wallet_type.md b/how_to_add_new_wallet_type.md new file mode 100644 index 0000000000..011e999906 --- /dev/null +++ b/how_to_add_new_wallet_type.md @@ -0,0 +1,300 @@ +# Guide to adding a new wallet type in Cake Wallet + +## Wallet Integration + +**N:B** Throughout this guide, `walletx` refers to the specific wallet type you want to add. If you're adding `BNB` to CakeWallet, then `walletx` for you here is `bnb`. + +**Core Folder/Files Setup** +- Idenitify your core component/package (major project component), which would power the integration e.g web3dart, solana, onchain etc +- Add a new entry to `WalletType` class in `cw_core/wallet_type.dart`. +- Fill out the necessary information int he various functions in the files, concerning the wallet name, the native currency type, symbol etc. +- Go to `cw_core/lib/currency_for_wallet_type.dart`, in the `currencyForWalletType` function, add a case for `walletx`, returning the native cryptocurrency for `walletx`. +- If the cryptocurrency for walletx is not available among the default cryptocurrencies, add a new cryptocurrency entry in `cw_core/lib/cryptocurrency.dart`. +- Add the newly created cryptocurrency name to the list named `all` in this file. +- Create a package for the wallet specific integration, name it. `cw_walletx` +- Add the following initial common files and replicate to fit the wallet + - walletx_transaction_history.dart + - walletx_transaction_info.dart + - walletx_mnemonics_exception.dart + - walletx_tokens.dart + - walletx_wallet_service.dart: + - walletx_wallet.dart + - etc. + +- Add the code to run the code generation needed for the files in the `cw_walletx` package to the `model_generator.sh` script + + cd cw_walletx && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. + +- Add the relevant dev_dependencies for generating the files also + - build_runner + - mobx_codegen + - hive_generator + +**WalletX Proxy Setup** + +A `Proxy` class is used to communicate with the specific wallet package we have. Instead of directly making use of methods and parameters in `cw_walletx` within the `lib` directory, we use a proxy to access these data. All important functions, calls and interactions we want to make with our `cw_walletx` package would be defined and done through the proxy class. The class would define the import + +- Create a proxy folder titled `walletx` to handle the wallet operations. It would contain 2 files: `cw_walletx.dart` and `walletx.dart`. +- `cw_walletx.dart` file would hold an implementation class containing major operations to be done in the lib directory. It serves as the link between the cw_walletx package and the rest of the codebase(lib directory files and folders). +- `walletx.dart` would contain the abstract class highlighting the methods that would bring the functionalities and features in the `cw_walletx` package to the rest of the `lib` directory. +- Add `walletx.dart` to `.gitignore` as we won’t be pushing it: `lib/tron/tron.dart`. +- `walletx.dart` would always be generated based on the configure files we would be setting up in the next step. + +**Configuration Files Setup** +- Before we populate the field, head over to `tool/configure.dart` to setup the necessary configurations for the `walletx` proxy. +- Define the output path, it’ll follow the format `lib/walletx/walletx.dart`. +- Add the variable to check if `walletx` is to be activated +- Define the function that would generate the abstract class for the proxy.(We will flesh out this function in the next steps). +- Add the defined variable in step 2 to the `generatePubspec` and `generateWalletTypes`. +- Next, modify the following functions: + - generatePubspec function + 1. Add the parameters to the method params (i.e required bool hasWalletX) + 2. Define a variable to hold the entry for the pubspec.yaml file + + const cwWalletX = """ + cw_tron: + path: ./cw_walletx + """; + + 3. Add an if block that takes in the passed parameter and adds the defined variable(inn the previous step) to the list of outputs + + if (hasWalletX) { + output += '\n$cwWalletX’; + } + + - generateWalletTypes function + 1. Add the parameters to the method params (i.e required bool hasWalletX) + 2. Add an if block to add the wallet type to the list of outputs this function generates + + if (hasWalletX) { + outputContent += '\tWalletType.walletx,\n’; + } + +- Head over to `scripts/android/pubspec.sh` script, and modify the `CONFIG_ARGS` under `$CAKEWALLET`. Add `"—walletx”` to the end of the passed in params. +- Repeat this in `scripts/ios/app_config.sh` and `scripts/macos/app_config.sh` +- Open a terminal and cd into `scripts/android/`. Run the following commands to run setup configuration scripts(proxy class, add walletx to list of wallet types and add cw_walletx to pubspec). + + source ./app_env.sh cakewallet + + ./app_config.sh + + cd cw_walletx && flutter pub get && flutter packages pub run build_runner build + + flutter packages pub run build_runner build --delete-conflicting-outputs + +Moving forward, our interactions with the cw_walletx package would be through the proxy class and its methods. + +**Pre-Wallet Creation for WalletX** +- Go to `di.dart` and locate the block to `registerWalletService`. In this, add the case to handle creating the WalletXWalletService + + case WalletType.walletx: + return walletx!.createWalletXWalletService(_walletInfoSource); + +- Go to `lib/view_model/wallet_new_vm.dart`, in the getCredentials method, which gets the new wallet credentials for walletX add the case for the new wallet + + case WalletType.walletx: + return walletx!.createWalletXNewWalletCredentials(name: name); + +**Node Setup** +- Before we can be able to successfully create a new wallet of wallet type walletx we need to setup the node that the wallet would use: +- In the assets directory, create a new file and name it `walletx_node_list.yml`. This yml file would contain the details for nodes to be used for walletX. An example structure for each node entry + + uri: "api.nodeurl.io" + is_default: true + useSSL: true + +You can add as many node entries as desired. + +- Add the path to the yml file created to the `pubspec_base.yaml` file (`“assets/walletx_node_list.yml”`) +- Go to `lib/entities/node_list.dart`, add a function to load the node entries we made in `walletx_node_list.yml` for walletx. +- Name your function `loadDefaultWalletXNodes()`. The function would handle loading the yml file as a string and parsing it into a Node Object to be used within the app. Here’s a template for the function. + + Future> loadDefaultWalletXNodes() async { + final nodesRaw = await rootBundle.loadString('assets/tron_node_list.yml'); + final loadedNodes = loadYaml(nodesRaw) as YamlList; + final nodes = []; + for (final raw in loadedNodes) { + if (raw is Map) { + final node = Node.fromMap(Map.from(raw)); + node.type = WalletType.tron; + nodes.add(node); + } + } + return nodes; + } + +- Inside the `resetToDefault` function, call the function you created and add the result to the nodes result variable. +- Go to `lib/entities/default_settings_migration.dart` file, we’ll be adding the following to the file. +- At the top of the file, after the imports, define the default nodeUrl for wallet-name. +- Next, write a function to fetch the node for this default uri you added above. + + Node? getWalletXDefaultNode({required Box nodes}) { + return nodes.values.firstWhereOrNull((Node node) => node.uriRaw == walletXDefaultNodeUri) ?? + nodes.values.firstWhereOrNull((node) => node.type == WalletType.walletx); + } + +- Next, write a function that will add the list of nodes we declared in the `walletx_node_list.yml` file to the Nodes Box, to be used in the app. Here’s the format for this function + + Future addWalletXNodeList({required Box nodes}) async { + final nodeList = await loadDefaultWalletXNodes(); + for (var node in nodeList) { + if (nodes.values.firstWhereOrNull((element) => element.uriRaw == node.uriRaw) == null) { + await nodes.add(node); + } + } + } + +- Next, we’ll write the function to change walletX current node to default. An handy function we would make use of later on. Add a new preference key in `lib/entities/preference_key.dart` with the format `PreferencesKey.currentWalletXNodeIdKey`, we’ll use it to identify the current node id. + + Future changeWalletXCurrentNodeToDefault( + {required SharedPreferences sharedPreferences, required Box nodes}) async { + final node = getWalletXDefaultNode(nodes: nodes); + final nodeId = node?.key as int? ?? 0; + await sharedPreferences.setInt(PreferencesKey.currentWalletXNodeIdKey, nodeId); + } + +- Next, in the `defaultSettingsMigration` function at the top of the file, add a new case to handle both `addWalletXNodeList` and `changeWalletXCurrentNodeToDefault` + + case “next-number-increment”: + await addWalletXNodeList(nodes: nodes); + await changeWalletXCurrentNodeToDefault(sharedPreferences: sharedPreferences, nodes: nodes); + break; + +- Next, increase the `initialMigrationVersion` number in `main.dart` to be the new case entry number you entered in the step above for the `defaultSettingsMigration` function. +- Next, go to `lib/view_model/node_list/node_list_view_model.dart` +- In the `reset` function, add a case for walletX: + + case WalletType.tron: + node = getTronDefaultNode(nodes: _nodeSource)!; + break; + +- Lastly, go to `cw_core/lib/node.dart`, +- In the uri getter, add a case to handle the uri setup for walletX. If the node uses http, return `Uri.http`, if not, return `Uri.https` + + case WalletType.walletX: + return Uri.https(uriRaw, ‘’); + +- Also, in the `requestNode` method, add a case for `WalletType.walletx` +- Next is the modifications to `lib/store/settings_store.dart` file: +- In the `load` function, create a variable to fetch the currentWalletxNodeId using the `PreferencesKey.currentWalletXNodeIdKey` we created earlier. +- Create another variable `walletXNode` which gets the walletx node using the nodeId variable assigned in the step above. +- Add a check to see if walletXNode is not null, if it’s not null, assign the created tronNode variable to the nodeMap with a type of walletX + + final walletXNode = nodeSource.get(walletXNodeId); + final walletXNodeId = sharedPreferences.getInt(PreferencesKey.currentWalletXNodeIdKey); + if (walletXNode != null) { + nodes[WalletType.walletx] = walletXNode; + } + +- Repeat the steps above in the `reload` function +- Next, add a case for walletX in the `_saveCurrentNode` function. + +- Run the following commands after to generate modified files in cw_core and lib + + cd cw_core && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. + + flutter packages pub run build_runner build --delete-conflicting-outputs + +- Lastly, before we run the app to test what we’ve done so far, +- Go to `lib/src/dashboard/widgets/menu_widget.dart` and add an icon for walletX to be used within the app. +- Go to `lib/src/screens/wallet_list/wallet_list_page.dart` and add an icon for walletx, add a case for walletx also in the `imageFor` method. +- Do the same thing in `lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart` + +- One last thing before we can create a wallet for walletx, go to `lib/view_model/wallet_new_vm.dart` +- Modify the `seedPhraseWordsLength` getter by adding a case for `WalletType.walletx` + +Now you can run the codebase and successfully create a wallet for type walletX successfully. + +**Display Seeds/Keys** +- Next, we want to set up our wallet to display the seeds and/or keys in the security page of the app. +- Go to `lib/view_model/wallet_keys_view_model.dart` +- Modify the `populateItems` function by adding a case for `WalletType.walletx` in it. +- Now your seeds and/or keys should display when you go to Security and Backup -> Show seed/keys page within the app. + +**Restore Wallet** +- Go to `lib/core/seed_validator.dart` +- In the `getWordList` method, add a case to handle `WalletType.walletx` which would return the word list to be used to validate the passed in seeds. +- Next, go to `lib/restore_view_model.dart` +- Modify the `hasRestoreFromPrivateKey` to reflect if walletx supports restore from Key +- Add a switch case to handle the various restore modes that walletX supports +- Modify the `getCredential` method to handle the restore flows for `WalletType.walletx` +- Run the build_runner code generation command + +**Receive** +- Go to `lib/view_model/wallet_address_list/wallet_address_list_view_model.dart` +- Create an implementation of `PaymentUri` for type WalletX. +- In the uri getter, add a case for `WalletType.walletx` returning the implementation class for `PaymentUri` +- Modify the `addressList` getter to return the address/addresses for walletx + +**Balance Screen** +- Go to `lib/view_model/dashboard/balance_view_model.dart` +- Modify the function to adjust the way the balance is being display on the app: `isHomeScreenSettingsEnabled` +- Add a case to the `availableBalanceLabel` getter to modify the text being displayed (Available or confirmed) +- Same for `additionalBalanceLabel` +- Next, go to `lib/reactions/fiat_rate_update.dart` +- Modify the `startFiatRateUpdate` function and add a check for `WalletType.walletx` to return all the token currencies +- Next, go to `lib/reactions/on_current_wallet_change.dart` +- Modify the `startCurrentWalletChangeReaction` function and add a check for `WalletType.walletx` to return all the token currencies +- Lastly, go to `lib/view_model/dashboard/transaction_list_item.dart` +- In the `formattedFiatAmount` getter, add a case to handle the fiat amount conversion for `WalletType.walletx` + +**Send ViewModel** +- Go to `lib/view_model/send/send_view_model.dart` +- Modify the `_credentials` function to reflect `WalletType.walletx` +- Modify `hasMultipleTokens` to reflect wallets + +**Exchange** +- Go to lib/view_model/exchange/exchange_view_model.dart +- First, add a case for WalletType.walletx in the `initialPairBasedOnWallet` method. +- If WalletX supports tokens, go to `lib/view_model/exchange/exchange_trade_view_model.dart` +- Modify the `_checkIfCanSend` method by creating a `_isWalletXToken` that checks if the from currency is WalletX and if its tag is for walletx +- Add `_isWalletXToken` to the return logic for the method. + +**Secrets** +- Create a json file named `wallet-secrets-config.json` and put an empty curly bracket “{}” in it +- Add a new entry to `tool/utils/secret_key.dart` for walletx +- Modify the `tool/generate_secrets_config.dart` file for walletx, don’t forget to call `secrets.clear()` before adding a new set of generation logic +- Modify the `tool/import_secrets_config.dart` file for walletx +- In the `.gitignore` file, add `**/tool/.walletx-secrets-config.json` and `**/cw_walletx/lib/.secrets.g.dart` + +**HomeSettings: WalletX Tokens Display and Management** +- Go to `lib/view_model/dashboard/home_settings_view_model.dart` +- Modify the `_updateTokensList` method to add all walletx tokens if the wallet type is `WalletType.walletx`. +- Modify the `getTokenAddressBasedOnWallet` method to include a case to fetch the address for a WalletX token. +- Modify the `getToken` method to return a specific walletx token +- Modify the `addToken`, `deleteToken` and `changeTokenAvailability` methods to handle cases where the walletType is walletx + +**Buy and Sell WalletX** +- Go to `lib/entities/provider_types.dart` +- Add a case for `WalletType.walletx` in the `getAvailableBuyProviderTypes` method. Return a list of providers that support buying WalletX. +- Add a case for `WalletType.walletx` in the `getAvailableSellProviderTypes` method. Return a list of providers that support selling WalletX. + +**Restore QR setup** +- Go to `lib/view_model/restore/wallet_restore_from_qr_code.dart` +- Add the scheme for walletx in `_walletTypeMap` +- Also modify `_determineWalletRestoreMode` to include a case for walletx +- Go to `lib/view_model/restore/restore_from_qr_vm.dart` +- Modify `getCredentialsFromRestoredWallet` method +- Go to `lib/core/address_validator.dart` +- Modify the `getAddressFromStringPattern` method to add a case for `WalletType.walletx` +- Add the scheme for walletx for both Android in `AndroidManifestBase.xml` and iOS in `InfoBase.plist` + +**Transaction History** +- Go to `lib/view_model/transaction_details_view_model.dart` +- Add a case for `WalletType.walletx` to add the items to be displayed on the detailed view +- Modify the `_explorerUrl` method to add the blockchain explorer link for WalletX in order to view the more info on a transaction +- Modify the `_explorerDescription` to display the name of the explorer + + + + +# Points to note when adding the new wallet type + +1. if it has tokens (ex. ERC20, SPL, etc...) make sure to add that to this function `_checkIfCanSend` in `exchange_trade_view_model.dart` +2. Check On/Off ramp providers that support the new wallet currency and add them accordingly in `provider_types.dart` +3. Add support for wallet uri scheme to restore from QR for both Android in `AndroidManifestBase.xml` and iOS in `InfoBase.plist` +4. Make sure no imports are using the wallet internal package files directly, instead use the proxy layers that is created in the main lib `lib/cw_ethereum.dart` for example. (i.e try building Monero.com if you get compilation errors, then you probably missed something) +5. + + +Copyright (C) 2018-2023 Cake Labs LLC diff --git a/ios/Runner/InfoBase.plist b/ios/Runner/InfoBase.plist index a7f2088709..443f9791fc 100644 --- a/ios/Runner/InfoBase.plist +++ b/ios/Runner/InfoBase.plist @@ -190,6 +190,36 @@ solana-wallet + + CFBundleTypeRole + Viewer + CFBundleURLName + tron + CFBundleURLSchemes + + tron + + + + CFBundleTypeRole + Viewer + CFBundleURLName + tron-wallet + CFBundleURLSchemes + + tron-wallet + + + + CFBundleTypeRole + Viewer + CFBundleURLName + tron_wallet + CFBundleURLSchemes + + tron_wallet + + CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 967cf9bf0b..01374d5a24 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -294,6 +294,8 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.sol: return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; + case CryptoCurrency.trx: + return '^(T|t)[1-9A-HJ-NP-Za-km-z]{33}\$'; default: if (type.tag == CryptoCurrency.eth.title) { return '0x[0-9a-zA-Z]{42}'; diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 6d04055bae..3e34457571 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/entities/mnemonic_item.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/nano/nano.dart'; @@ -40,6 +41,8 @@ class SeedValidator extends Validator { return polygon!.getPolygonWordList(language); case WalletType.solana: return solana!.getSolanaWordList(language); + case WalletType.tron: + return tron!.getTronWordList(language); default: return []; } diff --git a/lib/di.dart b/lib/di.dart index d78da638c5..00710897f1 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -13,6 +13,7 @@ import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; @@ -873,6 +874,8 @@ Future setup({ return polygon!.createPolygonWalletService(_walletInfoSource); case WalletType.solana: return solana!.createSolanaWalletService(_walletInfoSource); + case WalletType.tron: + return tron!.createTronWalletService(_walletInfoSource); default: throw Exception('Unexpected token: ${param1.toString()} for generating of WalletService'); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 99178c8156..94b23d3c9c 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -36,6 +36,7 @@ const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002'; const nanoDefaultNodeUri = 'rpc.nano.to'; const nanoDefaultPowNodeUri = 'rpc.nano.to'; const solanaDefaultNodeUri = 'rpc.ankr.com'; +const tronDefaultNodeUri = 'api.trongrid.io'; const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002'; Future defaultSettingsMigration( @@ -207,23 +208,22 @@ Future defaultSettingsMigration( case 28: await _updateMoneroPriority(sharedPreferences); break; - case 29: await changeDefaultBitcoinNode(nodes, sharedPreferences); break; - case 30: await disableServiceStatusFiatDisabled(sharedPreferences); break; - case 31: await updateNanoNodeList(nodes: nodes); break; - case 32: await updateBtcNanoWalletInfos(walletInfoSource); break; - + case 33: + await addTronNodeList(nodes: nodes); + await changeTronCurrentNodeToDefault(sharedPreferences: sharedPreferences, nodes: nodes); + break; default: break; } @@ -478,6 +478,11 @@ Node? getSolanaDefaultNode({required Box nodes}) { nodes.values.firstWhereOrNull((node) => node.type == WalletType.solana); } +Node? getTronDefaultNode({required Box nodes}) { + return nodes.values.firstWhereOrNull((Node node) => node.uriRaw == tronDefaultNodeUri) ?? + nodes.values.firstWhereOrNull((node) => node.type == WalletType.tron); +} + Future insecureStorageMigration({ required SharedPreferences sharedPreferences, required FlutterSecureStorage secureStorage, @@ -809,6 +814,7 @@ Future checkCurrentNodes( final currentBitcoinCashNodeId = sharedPreferences.getInt(PreferencesKey.currentBitcoinCashNodeIdKey); final currentSolanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); + final currentTronNodeId = sharedPreferences.getInt(PreferencesKey.currentTronNodeIdKey); final currentMoneroNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentMoneroNodeId); final currentBitcoinElectrumServer = @@ -829,6 +835,8 @@ Future checkCurrentNodes( nodeSource.values.firstWhereOrNull((node) => node.key == currentBitcoinCashNodeId); final currentSolanaNodeServer = nodeSource.values.firstWhereOrNull((node) => node.key == currentSolanaNodeId); + final currentTronNodeServer = + nodeSource.values.firstWhereOrNull((node) => node.key == currentTronNodeId); if (currentMoneroNode == null) { final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero); await nodeSource.add(newCakeWalletNode); @@ -894,6 +902,12 @@ Future checkCurrentNodes( await nodeSource.add(node); await sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, node.key as int); } + + if (currentTronNodeServer == null) { + final node = Node(uri: tronDefaultNodeUri, type: WalletType.tron); + await nodeSource.add(node); + await sharedPreferences.setInt(PreferencesKey.currentTronNodeIdKey, node.key as int); + } } Future resetBitcoinElectrumServer( @@ -1022,3 +1036,20 @@ Future changeSolanaCurrentNodeToDefault( await sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, nodeId); } + +Future addTronNodeList({required Box nodes}) async { + final nodeList = await loadDefaultTronNodes(); + for (var node in nodeList) { + if (nodes.values.firstWhereOrNull((element) => element.uriRaw == node.uriRaw) == null) { + await nodes.add(node); + } + } +} + +Future changeTronCurrentNodeToDefault( + {required SharedPreferences sharedPreferences, required Box nodes}) async { + final node = getTronDefaultNode(nodes: nodes); + final nodeId = node?.key as int? ?? 0; + + await sharedPreferences.setInt(PreferencesKey.currentTronNodeIdKey, nodeId); +} diff --git a/lib/entities/node_list.dart b/lib/entities/node_list.dart index 3c82a3f6cc..c1211d2fe2 100644 --- a/lib/entities/node_list.dart +++ b/lib/entities/node_list.dart @@ -166,6 +166,23 @@ Future> loadDefaultSolanaNodes() async { return nodes; } +Future> loadDefaultTronNodes() async { + final nodesRaw = await rootBundle.loadString('assets/tron_node_list.yml'); + final loadedNodes = loadYaml(nodesRaw) as YamlList; + final nodes = []; + + for (final raw in loadedNodes) { + if (raw is Map) { + final node = Node.fromMap(Map.from(raw)); + + node.type = WalletType.tron; + nodes.add(node); + } + } + + return nodes; +} + Future resetToDefault(Box nodeSource) async { final moneroNodes = await loadDefaultNodes(); final bitcoinElectrumServerList = await loadBitcoinElectrumServerList(); @@ -176,6 +193,7 @@ Future resetToDefault(Box nodeSource) async { final nanoNodes = await loadDefaultNanoNodes(); final polygonNodes = await loadDefaultPolygonNodes(); final solanaNodes = await loadDefaultSolanaNodes(); + final tronNodes = await loadDefaultTronNodes(); final nodes = moneroNodes + bitcoinElectrumServerList + @@ -185,7 +203,7 @@ Future resetToDefault(Box nodeSource) async { bitcoinCashElectrumServerList + nanoNodes + polygonNodes + - solanaNodes; + solanaNodes + tronNodes; await nodeSource.clear(); await nodeSource.addAll(nodes); diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index f512d6b726..55b5d55a13 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -14,6 +14,7 @@ class PreferencesKey { static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentBitcoinCashNodeIdKey = 'current_node_id_bch'; static const currentSolanaNodeIdKey = 'current_node_id_sol'; + static const currentTronNodeIdKey = 'current_node_id_trx'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; static const currentBalanceDisplayModeKey = 'current_balance_display_mode'; static const shouldSaveRecipientAddressKey = 'save_recipient_address'; diff --git a/lib/entities/priority_for_wallet_type.dart b/lib/entities/priority_for_wallet_type.dart index 5fc0b55668..0151c8115a 100644 --- a/lib/entities/priority_for_wallet_type.dart +++ b/lib/entities/priority_for_wallet_type.dart @@ -23,10 +23,11 @@ List priorityForWalletType(WalletType type) { return bitcoinCash!.getTransactionPriorities(); case WalletType.polygon: return polygon!.getTransactionPriorities(); - // no such thing for nano/banano/solana: + // no such thing for nano/banano/solana/tron: case WalletType.nano: case WalletType.banano: case WalletType.solana: + case WalletType.tron: return []; default: return []; diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index ca168a299c..37a492987c 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -69,6 +69,13 @@ class ProvidersHelper { return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood, ProviderType.moonpay]; case WalletType.solana: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; + case WalletType.tron: + return [ + ProviderType.askEachTime, + ProviderType.onramper, + ProviderType.robinhood, + ProviderType.moonpay, + ]; case WalletType.none: case WalletType.haven: return []; @@ -96,6 +103,12 @@ class ProvidersHelper { ProviderType.robinhood, ProviderType.moonpay, ]; + case WalletType.tron: + return [ + ProviderType.askEachTime, + ProviderType.robinhood, + ProviderType.moonpay, + ]; case WalletType.monero: case WalletType.nano: case WalletType.banano: diff --git a/lib/main.dart b/lib/main.dart index ff5b0e5c09..eef8cef62c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -167,7 +167,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 32, + initialMigrationVersion: 33, ); } diff --git a/lib/reactions/fiat_rate_update.dart b/lib/reactions/fiat_rate_update.dart index fb1d4cd1a4..e46ef4b648 100644 --- a/lib/reactions/fiat_rate_update.dart +++ b/lib/reactions/fiat_rate_update.dart @@ -8,6 +8,7 @@ import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/wallet_type.dart'; @@ -53,6 +54,11 @@ Future startFiatRateUpdate( solana!.getSPLTokenCurrencies(appStore.wallet!).where((element) => element.enabled); } + if (appStore.wallet!.type == WalletType.tron) { + currencies = + tron!.getTronTokenCurrencies(appStore.wallet!).where((element) => element.enabled); + } + if (currencies != null) { for (final currency in currencies) { diff --git a/lib/reactions/on_current_wallet_change.dart b/lib/reactions/on_current_wallet_change.dart index a2f2491f14..a6ce2bae9d 100644 --- a/lib/reactions/on_current_wallet_change.dart +++ b/lib/reactions/on_current_wallet_change.dart @@ -4,8 +4,8 @@ import 'package:cake_wallet/entities/update_haven_rate.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/balance.dart'; import 'package:cw_core/transaction_info.dart'; @@ -70,8 +70,10 @@ void startCurrentWalletChangeReaction( .get() .setInt(PreferencesKey.currentWalletType, serializeToInt(wallet.type)); - if (wallet.type == WalletType.monero || wallet.type == WalletType.bitcoin || - wallet.type == WalletType.litecoin || wallet.type == WalletType.bitcoinCash ) { + if (wallet.type == WalletType.monero || + wallet.type == WalletType.bitcoin || + wallet.type == WalletType.litecoin || + wallet.type == WalletType.bitcoinCash) { _setAutoGenerateSubaddressStatus(wallet, settingsStore); } @@ -124,7 +126,11 @@ void startCurrentWalletChangeReaction( currencies = solana!.getSPLTokenCurrencies(appStore.wallet!).where((element) => element.enabled); } - + if (wallet.type == WalletType.tron) { + currencies = + tron!.getTronTokenCurrencies(appStore.wallet!).where((element) => element.enabled); + } + if (currencies != null) { for (final currency in currencies) { () async { diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index 17a22a88fa..18ab9d030f 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -38,6 +38,7 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( @@ -156,6 +157,8 @@ class _DesktopWalletSelectionDropDownState extends State TransactionRow( - onTap: () => Navigator.of(context) - .pushNamed(Routes.transactionDetails, arguments: transaction), - direction: transaction.direction, - formattedDate: DateFormat('HH:mm').format(transaction.date), - formattedAmount: item.formattedCryptoAmount, - formattedFiatAmount: - dashboardViewModel.balanceViewModel.isFiatDisabled - ? '' - : item.formattedFiatAmount, - isPending: transaction.isPending, - title: item.formattedTitle + item.formattedStatus)); + builder: (_) => TransactionRow( + onTap: () => Navigator.of(context) + .pushNamed(Routes.transactionDetails, arguments: transaction), + direction: transaction.direction, + formattedDate: DateFormat('HH:mm').format(transaction.date), + formattedAmount: item.formattedCryptoAmount, + formattedFiatAmount: + dashboardViewModel.balanceViewModel.isFiatDisabled + ? '' + : item.formattedFiatAmount, + isPending: transaction.isPending, + title: item.formattedTitle + item.formattedStatus, + ), + ); } if (item is AnonpayTransactionListItem) { diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart index acd6660255..d9e03dbf90 100644 --- a/lib/src/screens/dashboard/widgets/menu_widget.dart +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -34,7 +34,8 @@ class MenuWidgetState extends State { this.bananoIcon = Image.asset('assets/images/nano_icon.png'), this.bitcoinCashIcon = Image.asset('assets/images/bch_icon.png'), this.polygonIcon = Image.asset('assets/images/matic_icon.png'), - this.solanaIcon = Image.asset('assets/images/sol_icon.png'); + this.solanaIcon = Image.asset('assets/images/sol_icon.png'), + this.tronIcon = Image.asset('assets/images/trx_icon.png'); final largeScreen = 731; @@ -57,6 +58,7 @@ class MenuWidgetState extends State { Image bananoIcon; Image polygonIcon; Image solanaIcon; + Image tronIcon; @override void initState() { @@ -226,6 +228,8 @@ class MenuWidgetState extends State { return polygonIcon; case WalletType.solana: return solanaIcon; + case WalletType.tron: + return tronIcon; default: throw Exception('No icon for ${type.toString()}'); } diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index 81c78b1ab4..601f5d878d 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -104,6 +104,7 @@ class WalletListBodyState extends State { final nanoIcon = Image.asset('assets/images/nano_icon.png', height: 24, width: 24); final polygonIcon = Image.asset('assets/images/matic_icon.png', height: 24, width: 24); final solanaIcon = Image.asset('assets/images/sol_icon.png', height: 24, width: 24); + final tronIcon = Image.asset('assets/images/trx_icon.png', height: 24, width: 24); final scrollController = ScrollController(); final double tileHeight = 60; Flushbar? _progressBar; @@ -316,6 +317,8 @@ class WalletListBodyState extends State { return polygonIcon; case WalletType.solana: return solanaIcon; + case WalletType.tron: + return tronIcon; default: return nonWalletTypeIcon; } diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 165c722428..607551827d 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -872,6 +872,7 @@ abstract class SettingsStoreBase with Store { final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); final nanoPowNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoPowNodeIdKey); final solanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); + final tronNodeId = sharedPreferences.getInt(PreferencesKey.currentTronNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); @@ -882,6 +883,7 @@ abstract class SettingsStoreBase with Store { final nanoNode = nodeSource.get(nanoNodeId); final nanoPowNode = powNodeSource.get(nanoPowNodeId); final solanaNode = nodeSource.get(solanaNodeId); + final tronNode = nodeSource.get(tronNodeId); final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; @@ -944,6 +946,10 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.solana] = solanaNode; } + if (tronNode != null) { + nodes[WalletType.tron] = tronNode; + } + final savedSyncMode = SyncMode.all.firstWhere((element) { return element.type.index == (sharedPreferences.getInt(PreferencesKey.syncModeKey) ?? 0); }); @@ -1238,6 +1244,7 @@ abstract class SettingsStoreBase with Store { final polygonNodeId = sharedPreferences.getInt(PreferencesKey.currentPolygonNodeIdKey); final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); final solanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); + final tronNodeId = sharedPreferences.getInt(PreferencesKey.currentTronNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); @@ -1247,6 +1254,7 @@ abstract class SettingsStoreBase with Store { final bitcoinCashNode = nodeSource.get(bitcoinCashElectrumServerId); final nanoNode = nodeSource.get(nanoNodeId); final solanaNode = nodeSource.get(solanaNodeId); + final tronNode = nodeSource.get(tronNodeId); if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; } @@ -1283,6 +1291,10 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.solana] = solanaNode; } + if (tronNode != null) { + nodes[WalletType.tron] = tronNode; + } + // MIGRATED: useTOTP2FA = await SecureKey.getBool( @@ -1413,6 +1425,9 @@ abstract class SettingsStoreBase with Store { case WalletType.solana: await _sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, node.key as int); break; + case WalletType.tron: + await _sharedPreferences.setInt(PreferencesKey.currentTronNodeIdKey, node.key as int); + break; default: break; } diff --git a/lib/tron/cw_tron.dart b/lib/tron/cw_tron.dart new file mode 100644 index 0000000000..6e4b0a7b0e --- /dev/null +++ b/lib/tron/cw_tron.dart @@ -0,0 +1,114 @@ +part of 'tron.dart'; + +class CWTron extends Tron { + @override + List getTronWordList(String language) => EVMChainMnemonics.englishWordlist; + + WalletService createTronWalletService(Box walletInfoSource) => + TronWalletService(walletInfoSource, client: TronClient()); + + @override + WalletCredentials createTronNewWalletCredentials({ + required String name, + WalletInfo? walletInfo, + }) => + TronNewWalletCredentials(name: name, walletInfo: walletInfo); + + @override + WalletCredentials createTronRestoreWalletFromSeedCredentials({ + required String name, + required String mnemonic, + required String password, + }) => + TronRestoreWalletFromSeedCredentials(name: name, password: password, mnemonic: mnemonic); + + @override + WalletCredentials createTronRestoreWalletFromPrivateKey({ + required String name, + required String privateKey, + required String password, + }) => + TronRestoreWalletFromPrivateKey(name: name, password: password, privateKey: privateKey); + + @override + String getAddress(WalletBase wallet) => (wallet as TronWallet).walletAddresses.address; + + Object createTronTransactionCredentials( + List outputs, { + required CryptoCurrency currency, + }) => + TronTransactionCredentials( + outputs + .map( + (out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount, + ), + ) + .toList(), + currency: currency, + ); + + @override + List getTronTokenCurrencies(WalletBase wallet) => + (wallet as TronWallet).tronTokenCurrencies; + + @override + Future addTronToken(WalletBase wallet, CryptoCurrency token, String contractAddress) async { + final tronToken = TronToken( + name: token.name, + symbol: token.title, + contractAddress: contractAddress, + decimal: token.decimals, + enabled: token.enabled, + iconPath: token.iconPath, + ); + await (wallet as TronWallet).addTronToken(tronToken); + } + + @override + Future deleteTronToken(WalletBase wallet, CryptoCurrency token) async => + await (wallet as TronWallet).deleteTronToken(token as TronToken); + + @override + Future getTronToken(WalletBase wallet, String contractAddress) async => + (wallet as TronWallet).getTronToken(contractAddress); + + @override + double getTransactionAmountRaw(TransactionInfo transactionInfo) { + final amount = (transactionInfo as TronTransactionInfo).rawTronAmount(); + return double.parse(amount); + } + + @override + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction) { + transaction as TronTransactionInfo; + if (transaction.tokenSymbol == CryptoCurrency.trx.title) { + return CryptoCurrency.trx; + } + + wallet as TronWallet; + return wallet.tronTokenCurrencies.firstWhere( + (element) => transaction.tokenSymbol.toLowerCase() == element.symbol.toLowerCase()); + } + + @override + String getTokenAddress(CryptoCurrency asset) => (asset as TronToken).contractAddress; + + @override + String getTronBase58Address(String hexAddress, WalletBase wallet) => + (wallet as TronWallet).getTronBase58AddressFromHex(hexAddress); + + @override + String? getTronNativeEstimatedFee(WalletBase wallet) => + (wallet as TronWallet).nativeTxEstimatedFee; + + @override + String? getTronTRC20EstimatedFee(WalletBase wallet) => (wallet as TronWallet).trc20EstimatedFee; +} diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index a17ddff364..c87e097c3e 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -38,6 +38,7 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { case WalletType.bitcoinCash: case WalletType.polygon: case WalletType.solana: + case WalletType.tron: return true; case WalletType.monero: case WalletType.none: diff --git a/lib/view_model/dashboard/balance_view_model.dart b/lib/view_model/dashboard/balance_view_model.dart index eee53516e0..6f4db52a67 100644 --- a/lib/view_model/dashboard/balance_view_model.dart +++ b/lib/view_model/dashboard/balance_view_model.dart @@ -80,7 +80,9 @@ abstract class BalanceViewModelBase with Store { @computed bool get isHomeScreenSettingsEnabled => - isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; + isEVMCompatibleChain(wallet.type) || + wallet.type == WalletType.solana || + wallet.type == WalletType.tron; @computed bool get hasAccounts => wallet.type == WalletType.monero; @@ -126,6 +128,7 @@ abstract class BalanceViewModelBase with Store { case WalletType.nano: case WalletType.banano: case WalletType.solana: + case WalletType.tron: return S.current.xmr_available_balance; default: return S.current.confirmed; @@ -140,6 +143,7 @@ abstract class BalanceViewModelBase with Store { case WalletType.ethereum: case WalletType.polygon: case WalletType.solana: + case WalletType.tron: return S.current.xmr_full_balance; case WalletType.nano: case WalletType.banano: @@ -287,6 +291,7 @@ abstract class BalanceViewModelBase with Store { case WalletType.ethereum: case WalletType.polygon: case WalletType.solana: + case WalletType.tron: return false; default: return true; diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index e60a37ccf7..9e3be746e5 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; @@ -79,6 +80,10 @@ abstract class HomeSettingsViewModelBase with Store { ); } + if (_balanceViewModel.wallet.type == WalletType.tron) { + await tron!.addTronToken(_balanceViewModel.wallet, token, contractAddress); + } + _updateTokensList(); _updateFiatPrices(token); } @@ -96,6 +101,9 @@ abstract class HomeSettingsViewModelBase with Store { await solana!.deleteSPLToken(_balanceViewModel.wallet, token); } + if (_balanceViewModel.wallet.type == WalletType.tron) { + await tron!.deleteTronToken(_balanceViewModel.wallet, token); + } _updateTokensList(); } @@ -112,6 +120,10 @@ abstract class HomeSettingsViewModelBase with Store { return await solana!.getSPLToken(_balanceViewModel.wallet, contractAddress); } + if (_balanceViewModel.wallet.type == WalletType.tron) { + return await tron!.getTronToken(_balanceViewModel.wallet, contractAddress); + } + return null; } @@ -143,6 +155,11 @@ abstract class HomeSettingsViewModelBase with Store { solana!.addSPLToken(_balanceViewModel.wallet, token, address); } + if (_balanceViewModel.wallet.type == WalletType.tron) { + final address = tron!.getTokenAddress(token); + tron!.addTronToken(_balanceViewModel.wallet, token, address); + } + _refreshTokensList(); } @@ -189,6 +206,14 @@ abstract class HomeSettingsViewModelBase with Store { .toList() ..sort(_sortFunc)); } + + if (_balanceViewModel.wallet.type == WalletType.tron) { + tokens.addAll(tron! + .getTronTokenCurrencies(_balanceViewModel.wallet) + .where((element) => _matchesSearchText(element)) + .toList() + ..sort(_sortFunc)); + } } @action @@ -207,7 +232,7 @@ abstract class HomeSettingsViewModelBase with Store { bool _matchesSearchText(CryptoCurrency asset) { final address = getTokenAddressBasedOnWallet(asset); - // The homes settings would only be displayed for either of Ethereum, Polygon or Solana Wallets. + // The homes settings would only be displayed for either of Tron, Ethereum, Polygon or Solana Wallets. if (address == null) return false; return searchText.isEmpty || @@ -217,6 +242,10 @@ abstract class HomeSettingsViewModelBase with Store { } String? getTokenAddressBasedOnWallet(CryptoCurrency asset) { + if (_balanceViewModel.wallet.type == WalletType.tron) { + return tron!.getTokenAddress(asset); + } + if (_balanceViewModel.wallet.type == WalletType.solana) { return solana!.getTokenAddress(asset); } @@ -229,7 +258,7 @@ abstract class HomeSettingsViewModelBase with Store { return polygon!.getTokenAddress(asset); } - // We return null if it's neither Polygin, Ethereum or Solana wallet (which is actually impossible because we only display home settings for either of these three wallets). + // We return null if it's neither Tron, Polygon, Ethereum or Solana wallet (which is actually impossible because we only display home settings for either of these three wallets). return null; } } diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index 99de14a18b..fb5348a29e 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -4,7 +4,10 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -34,6 +37,11 @@ class TransactionListItem extends ActionListItem with Keyable { @override dynamic get keyIndex => transaction.id; + bool get hasTokens => + isEVMCompatibleChain(balanceViewModel.wallet.type) || + balanceViewModel.wallet.type == WalletType.solana || + balanceViewModel.wallet.type == WalletType.tron; + String get formattedCryptoAmount { return displayMode == BalanceDisplayMode.hiddenBalance ? '---' : transaction.amountFormatted(); } @@ -63,6 +71,34 @@ class TransactionListItem extends ActionListItem with Keyable { return transaction.isPending ? S.current.pending : ''; } + CryptoCurrency? get assetOfTransaction { + try { + if (balanceViewModel.wallet.type == WalletType.ethereum) { + final asset = ethereum!.assetOfTransaction(balanceViewModel.wallet, transaction); + return asset; + } + + if (balanceViewModel.wallet.type == WalletType.polygon) { + final asset = polygon!.assetOfTransaction(balanceViewModel.wallet, transaction); + return asset; + } + + if (balanceViewModel.wallet.type == WalletType.solana) { + final asset = solana!.assetOfTransaction(balanceViewModel.wallet, transaction); + return asset; + } + + if (balanceViewModel.wallet.type == WalletType.tron) { + final asset = tron!.assetOfTransaction(balanceViewModel.wallet, transaction); + return asset; + } + } catch (e) { + return null; + } + + return null; + } + String get formattedFiatAmount { var amount = ''; @@ -114,6 +150,16 @@ class TransactionListItem extends ActionListItem with Keyable { price: price, ); break; + + case WalletType.tron: + final asset = tron!.assetOfTransaction(balanceViewModel.wallet, transaction); + final price = balanceViewModel.fiatConvertationStore.prices[asset]; + final cryptoAmount = tron!.getTransactionAmountRaw(transaction); + amount = calculateFiatAmountRaw( + cryptoAmount: cryptoAmount, + price: price, + ); + break; default: break; } diff --git a/lib/view_model/exchange/exchange_trade_view_model.dart b/lib/view_model/exchange/exchange_trade_view_model.dart index 9bd9ef913c..94fec2fa27 100644 --- a/lib/view_model/exchange/exchange_trade_view_model.dart +++ b/lib/view_model/exchange/exchange_trade_view_model.dart @@ -178,6 +178,10 @@ abstract class ExchangeTradeViewModelBase with Store { wallet.currency == CryptoCurrency.maticpoly && tradesStore.trade!.from.tag == CryptoCurrency.maticpoly.tag; + bool _isTronToken() => + wallet.currency == CryptoCurrency.trx && + tradesStore.trade!.from.tag == CryptoCurrency.trx.title; + bool _isSplToken() => wallet.currency == CryptoCurrency.sol && tradesStore.trade!.from.tag == CryptoCurrency.sol.title; @@ -186,6 +190,7 @@ abstract class ExchangeTradeViewModelBase with Store { tradesStore.trade!.provider == ExchangeProviderDescription.xmrto || _isEthToken() || _isPolygonToken() || - _isSplToken(); + _isSplToken() || + _isTronToken(); } } diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 4e5902faa6..e5533f48a8 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -676,6 +676,10 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with depositCurrency = CryptoCurrency.sol; receiveCurrency = CryptoCurrency.xmr; break; + case WalletType.tron: + depositCurrency = CryptoCurrency.trx; + receiveCurrency = CryptoCurrency.xmr; + break; default: break; } 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 7fe3d1c981..000c9bdeae 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 @@ -76,6 +76,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { case WalletType.solana: case WalletType.banano: case WalletType.nano: + case WalletType.tron: return true; case WalletType.none: case WalletType.monero: diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart index 9c2d2611e2..a7fe9c6caf 100644 --- a/lib/view_model/node_list/node_list_view_model.dart +++ b/lib/view_model/node_list/node_list_view_model.dart @@ -82,6 +82,9 @@ abstract class NodeListViewModelBase with Store { case WalletType.solana: node = getSolanaDefaultNode(nodes: _nodeSource)!; break; + case WalletType.tron: + node = getTronDefaultNode(nodes: _nodeSource)!; + break; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}'); } diff --git a/lib/view_model/restore/restore_from_qr_vm.dart b/lib/view_model/restore/restore_from_qr_vm.dart index b9b493f046..1e9aea2c24 100644 --- a/lib/view_model/restore/restore_from_qr_vm.dart +++ b/lib/view_model/restore/restore_from_qr_vm.dart @@ -4,13 +4,14 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/view_model/restore/restore_mode.dart'; import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/store/app_store.dart'; -import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_base.dart'; import 'package:cake_wallet/core/generate_wallet_password.dart'; import 'package:cake_wallet/core/wallet_creation_service.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -86,6 +87,9 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store case WalletType.solana: return solana!.createSolanaRestoreWalletFromPrivateKey( name: name, password: password, privateKey: restoreWallet.privateKey!); + case WalletType.tron: + return tron!.createTronRestoreWalletFromPrivateKey( + name: name, password: password, privateKey: restoreWallet.privateKey!); default: throw Exception('Unexpected type: ${restoreWallet.type.toString()}'); } @@ -130,6 +134,9 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store case WalletType.solana: return solana!.createSolanaRestoreWalletFromSeedCredentials( name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + case WalletType.tron: + return tron!.createTronRestoreWalletFromSeedCredentials( + name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); default: throw Exception('Unexpected type: ${type.toString()}'); } diff --git a/lib/view_model/restore/wallet_restore_from_qr_code.dart b/lib/view_model/restore/wallet_restore_from_qr_code.dart index 925c08cca6..09b5c9d963 100644 --- a/lib/view_model/restore/wallet_restore_from_qr_code.dart +++ b/lib/view_model/restore/wallet_restore_from_qr_code.dart @@ -33,6 +33,9 @@ class WalletRestoreFromQRCode { 'bitcoincash-wallet': WalletType.bitcoinCash, 'bitcoincash_wallet': WalletType.bitcoinCash, 'solana-wallet': WalletType.solana, + 'tron': WalletType.tron, + 'tron-wallet': WalletType.tron, + 'tron_wallet': WalletType.tron, }; static bool _containsAssetSpecifier(String code) => _extractWalletType(code) != null; @@ -184,6 +187,14 @@ class WalletRestoreFromQRCode { return WalletRestoreMode.keys; } + if (type == WalletType.tron && credentials.containsKey('private_key')) { + final privateKey = credentials['private_key'] as String; + if (privateKey.isEmpty) { + throw Exception('Unexpected restore mode: private_key'); + } + return WalletRestoreMode.keys; + } + throw Exception('Unexpected restore mode: restore params are invalid'); } } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index 07d98ff322..a79baea487 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -8,6 +8,7 @@ import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/src/screens/send/widgets/extract_address_from_parsed.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -117,6 +118,17 @@ abstract class OutputBase with Store { @computed double get estimatedFee { try { + if (_wallet.type == WalletType.tron) { + if (cryptoCurrencyHandler() == CryptoCurrency.trx) { + final nativeEstimatedFee = tron!.getTronNativeEstimatedFee(_wallet) ?? 0; + return double.parse(nativeEstimatedFee.toString()); + } else { + final trc20EstimatedFee = tron!.getTronTRC20EstimatedFee(_wallet) ?? 0; + return double.parse(trc20EstimatedFee.toString()); + } + + } + if (_wallet.type == WalletType.solana) { return solana!.getEstimateFees(_wallet) ?? 0.0; } @@ -163,8 +175,11 @@ abstract class OutputBase with Store { @computed String get estimatedFeeFiatAmount { try { - final currency = - isEVMCompatibleChain(_wallet.type) ? _wallet.currency : cryptoCurrencyHandler(); + final currency = (isEVMCompatibleChain(_wallet.type) || + _wallet.type == WalletType.solana || + _wallet.type == WalletType.tron) + ? _wallet.currency + : cryptoCurrencyHandler(); final fiat = calculateFiatAmountRaw( price: _fiatConversationStore.prices[currency]!, cryptoAmount: estimatedFee); return fiat; @@ -269,6 +284,9 @@ abstract class OutputBase with Store { case WalletType.solana: maximumFractionDigits = 12; break; + case WalletType.tron: + maximumFractionDigits = 12; + break; default: break; } diff --git a/lib/view_model/send/send_template_view_model.dart b/lib/view_model/send/send_template_view_model.dart index f79fbddc70..66a3c37c8c 100644 --- a/lib/view_model/send/send_template_view_model.dart +++ b/lib/view_model/send/send_template_view_model.dart @@ -53,7 +53,8 @@ abstract class SendTemplateViewModelBase with Store { _wallet.type != WalletType.haven && _wallet.type != WalletType.ethereum && _wallet.type != WalletType.polygon && - _wallet.type != WalletType.solana; + _wallet.type != WalletType.solana && + _wallet.type != WalletType.tron; @computed CryptoCurrency get cryptoCurrency => _wallet.currency; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 6c0c3870b0..bafc1317df 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -12,6 +12,7 @@ import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; import 'package:cw_core/exceptions.dart'; @@ -50,7 +51,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor void onWalletChange(wallet) { currencies = wallet.balance.keys.toList(); selectedCryptoCurrency = wallet.currency; - hasMultipleTokens = isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; + hasMultipleTokens = isEVMCompatibleChain(wallet.type) || + wallet.type == WalletType.solana || + wallet.type == WalletType.tron; } SendViewModelBase( @@ -64,7 +67,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor currencies = appStore.wallet!.balance.keys.toList(), selectedCryptoCurrency = appStore.wallet!.currency, hasMultipleTokens = isEVMCompatibleChain(appStore.wallet!.type) || - appStore.wallet!.type == WalletType.solana, + appStore.wallet!.type == WalletType.solana || + appStore.wallet!.type == WalletType.tron, outputs = ObservableList(), _settingsStore = appStore.settingsStore, fiatFromSettings = appStore.settingsStore.fiatCurrency, @@ -110,6 +114,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor @computed bool get isBatchSending => outputs.length > 1; + bool get shouldDisplaySendALL => walletType != WalletType.solana || walletType != WalletType.tron; + @computed String get pendingTransactionFiatAmount { if (pendingTransaction == null) { @@ -236,7 +242,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor bool get hasFeesPriority => wallet.type != WalletType.nano && wallet.type != WalletType.banano && - wallet.type != WalletType.solana; + wallet.type != WalletType.solana && + wallet.type != WalletType.tron; + @observable CryptoCurrency selectedCryptoCurrency; @@ -423,7 +431,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor Object _credentials() { final priority = _settingsStore.priority[wallet.type]; - if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.banano && wallet.type != WalletType.solana) { + if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.banano && wallet.type != WalletType.solana && + wallet.type != WalletType.tron) { throw Exception('Priority is null for wallet type: ${wallet.type}'); } @@ -453,6 +462,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor case WalletType.solana: return solana! .createSolanaTransactionCredentials(outputs, currency: selectedCryptoCurrency); + case WalletType.tron: + return tron!.createTronTransactionCredentials(outputs, currency: selectedCryptoCurrency); default: throw Exception('Unexpected wallet type: ${wallet.type}'); } diff --git a/lib/view_model/settings/other_settings_view_model.dart b/lib/view_model/settings/other_settings_view_model.dart index 0493acf81d..7e751a9208 100644 --- a/lib/view_model/settings/other_settings_view_model.dart +++ b/lib/view_model/settings/other_settings_view_model.dart @@ -56,8 +56,9 @@ abstract class OtherSettingsViewModelBase with Store { _wallet.type == WalletType.nano || _wallet.type == WalletType.banano; @computed - bool get displayTransactionPriority => - !(changeRepresentativeEnabled || _wallet.type == WalletType.solana); + bool get displayTransactionPriority => !(changeRepresentativeEnabled || + _wallet.type == WalletType.solana || + _wallet.type == WalletType.tron); @computed bool get isEnabledBuyAction => !_settingsStore.disableBuy && _wallet.type != WalletType.haven; diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index faa49dfc4f..526ff03356 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -1,3 +1,7 @@ +import 'package:cake_wallet/tron/tron.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; @@ -14,10 +18,7 @@ import 'package:cake_wallet/utils/date_formatter.dart'; import 'package:cake_wallet/view_model/send/send_view_model.dart'; import 'package:collection/collection.dart'; import 'package:cw_core/transaction_direction.dart'; -import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:intl/src/intl/date_format.dart'; import 'package:mobx/mobx.dart'; @@ -71,6 +72,9 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.solana: _addSolanaListItems(tx, dateFormat); break; + case WalletType.tron: + _addTronListItems(tx, dateFormat); + break; default: break; } @@ -160,6 +164,8 @@ abstract class TransactionDetailsViewModelBase with Store { return 'https://polygonscan.com/tx/${txId}'; case WalletType.solana: return 'https://solscan.io/tx/${txId}'; + case WalletType.tron: + return 'https://tronscan.org/#/transaction/${txId}'; default: return ''; } @@ -186,6 +192,8 @@ abstract class TransactionDetailsViewModelBase with Store { return S.current.view_transaction_on + 'polygonscan.com'; case WalletType.solana: return S.current.view_transaction_on + 'solscan.io'; + case WalletType.tron: + return S.current.view_transaction_on + 'tronscan.org'; default: return ''; } @@ -339,20 +347,19 @@ abstract class TransactionDetailsViewModelBase with Store { transactionInfo.inputAddresses?.length ?? 1, transactionInfo.outputAddresses?.length ?? 1); - RBFListItems.add(StandartListItem( - title: S.current.old_fee, - value: tx.feeFormatted() ?? '0.0')); + RBFListItems.add(StandartListItem(title: S.current.old_fee, value: tx.feeFormatted() ?? '0.0')); final priorities = priorityForWalletType(wallet.type); final selectedItem = priorities.indexOf(sendViewModel.transactionPriority); - final customItem = priorities.firstWhereOrNull( - (element) => element == sendViewModel.bitcoinTransactionPriorityCustom); + final customItem = priorities + .firstWhereOrNull((element) => element == sendViewModel.bitcoinTransactionPriorityCustom); final customItemIndex = customItem != null ? priorities.indexOf(customItem) : null; final maxCustomFeeRate = sendViewModel.maxCustomFeeRate?.toDouble(); RBFListItems.add(StandardPickerListItem( title: S.current.estimated_new_fee, - value: bitcoin!.formatterBitcoinAmountToString(amount: newFee) + ' ${walletTypeToCryptoCurrency(wallet.type)}', + value: bitcoin!.formatterBitcoinAmountToString(amount: newFee) + + ' ${walletTypeToCryptoCurrency(wallet.type)}', items: priorityForWalletType(wallet.type), customValue: settingsStore.customBitcoinFeeRate.toDouble(), maxValue: maxCustomFeeRate, @@ -378,6 +385,27 @@ abstract class TransactionDetailsViewModelBase with Store { } } + void _addTronListItems(TransactionInfo tx, DateFormat dateFormat) { + final _items = [ + StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), + StandartListItem( + title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), + StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), + if (tx.feeFormatted()?.isNotEmpty ?? false) + StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), + if (showRecipientAddress && tx.to != null) + StandartListItem( + title: S.current.transaction_details_recipient_address, + value: tron!.getTronBase58Address(tx.to!, wallet)), + if (tx.from != null) + StandartListItem( + title: S.current.transaction_details_source_address, + value: tron!.getTronBase58Address(tx.from!, wallet)), + ]; + + items.addAll(_items); + } + @action Future _checkForRBF() async { if (wallet.type == WalletType.bitcoin && @@ -392,10 +420,10 @@ abstract class TransactionDetailsViewModelBase with Store { newFee = priority == bitcoin!.getBitcoinTransactionPriorityCustom() && value != null ? bitcoin!.getEstimatedFeeWithFeeRate(wallet, value.round(), transactionInfo.amount) : bitcoin!.getFeeAmountForPriority( - wallet, - priority, - transactionInfo.inputAddresses?.length ?? 1, - transactionInfo.outputAddresses?.length ?? 1); + wallet, + priority, + transactionInfo.inputAddresses?.length ?? 1, + transactionInfo.outputAddresses?.length ?? 1); return bitcoin!.formatterBitcoinAmountToString(amount: newFee); } diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index 20980f5f0c..f6e1359e10 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -12,6 +12,7 @@ import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/store/yat/yat_store.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/utils/list_item.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_account_list_header.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_header.dart'; @@ -175,6 +176,21 @@ class SolanaURI extends PaymentURI { } } +class TronURI extends PaymentURI { + TronURI({required String amount, required String address}) + : super(amount: amount, address: address); + + @override + String toString() { + var base = 'tron:' + address; + if (amount.isNotEmpty) { + base += '?amount=${amount.replaceAll(',', '.')}'; + } + + return base; + } +} + abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewModel with Store { WalletAddressListViewModelBase({ required AppStore appStore, @@ -273,6 +289,10 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo return SolanaURI(amount: amount, address: address.address); } + if (wallet.type == WalletType.tron) { + return TronURI(amount: amount, address: address.address); + } + throw Exception('Unexpected type: ${type.toString()}'); } @@ -348,6 +368,12 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); } + if (wallet.type == WalletType.tron) { + final primaryAddress = tron!.getAddress(wallet); + + addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); + } + if (searchText.isNotEmpty) { return ObservableList.of(addressList.where((item) { if (item is WalletAddressListItem) { diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index c33c855048..6b5ae55599 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -118,7 +118,8 @@ abstract class WalletKeysViewModelBase with Store { } if (isEVMCompatibleChain(_appStore.wallet!.type) || - _appStore.wallet!.type == WalletType.solana) { + _appStore.wallet!.type == WalletType.solana || + _appStore.wallet!.type == WalletType.tron) { items.addAll([ if (_appStore.wallet!.privateKey != null) StandartListItem(title: S.current.private_key, value: _appStore.wallet!.privateKey!), @@ -175,6 +176,8 @@ abstract class WalletKeysViewModelBase with Store { return 'polygon-wallet'; case WalletType.solana: return 'solana-wallet'; + case WalletType.tron: + return 'tron-wallet'; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.toString()}'); } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index 8b19108ecb..e19efabc50 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -43,6 +44,7 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { return 16; } return 25; + case WalletType.tron: case WalletType.solana: case WalletType.polygon: case WalletType.ethereum: @@ -79,6 +81,8 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { return polygon!.createPolygonNewWalletCredentials(name: name); case WalletType.solana: return solana!.createSolanaNewWalletCredentials(name: name); + case WalletType.tron: + return tron!.createTronNewWalletCredentials(name: name); default: throw Exception('Unexpected type: ${type.toString()}'); } diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 21339f1aed..e19a83bc36 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -6,6 +6,7 @@ import 'package:cw_core/nano_account_info_response.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/store/app_store.dart'; @@ -34,7 +35,8 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { type == WalletType.polygon || type == WalletType.nano || type == WalletType.banano || - type == WalletType.solana, + type == WalletType.solana || + type == WalletType.tron, isButtonEnabled = false, mode = WalletRestoreMode.seed, super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: true) { @@ -48,6 +50,7 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { case WalletType.nano: case WalletType.banano: case WalletType.solana: + case WalletType.tron: availableModes = [WalletRestoreMode.seed, WalletRestoreMode.keys]; break; default: @@ -127,6 +130,12 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { mnemonic: seed, password: password, ); + case WalletType.tron: + return tron!.createTronRestoreWalletFromSeedCredentials( + name: name, + mnemonic: seed, + password: password, + ); default: break; } @@ -185,6 +194,12 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { password: password, privateKey: options['private_key'] as String, ); + case WalletType.tron: + return tron!.createTronRestoreWalletFromPrivateKey( + name: name, + password: password, + privateKey: options['private_key'] as String, + ); default: break; } diff --git a/model_generator.sh b/model_generator.sh index 8a60986216..ee88644b69 100755 --- a/model_generator.sh +++ b/model_generator.sh @@ -6,6 +6,7 @@ cd cw_haven && flutter pub get && flutter packages pub run build_runner build -- cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. +cd cw_tron && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_ethereum && flutter pub get && cd .. cd cw_polygon && flutter pub get && cd .. flutter packages pub run build_runner build --delete-conflicting-outputs diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 3ec3e79785..bdfa70964f 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -158,6 +158,7 @@ flutter: - assets/nano_pow_node_list.yml - assets/polygon_node_list.yml - assets/solana_node_list.yml + - assets/tron_node_list.yml - assets/text/ - assets/faq/ - assets/animation/ diff --git a/scripts/android/pubspec_gen.sh b/scripts/android/pubspec_gen.sh index d238052fe7..bc7985506e 100755 --- a/scripts/android/pubspec_gen.sh +++ b/scripts/android/pubspec_gen.sh @@ -10,7 +10,7 @@ case $APP_ANDROID_TYPE in CONFIG_ARGS="--monero" ;; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana" + CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana --tron" ;; $HAVEN) CONFIG_ARGS="--haven" diff --git a/scripts/ios/app_config.sh b/scripts/ios/app_config.sh index 9f59d66322..ab7fbd4228 100755 --- a/scripts/ios/app_config.sh +++ b/scripts/ios/app_config.sh @@ -28,7 +28,7 @@ case $APP_IOS_TYPE in CONFIG_ARGS="--monero" ;; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana" + CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana --tron" ;; $HAVEN) diff --git a/scripts/macos/app_config.sh b/scripts/macos/app_config.sh index bd1417c4bd..a1143bb12a 100755 --- a/scripts/macos/app_config.sh +++ b/scripts/macos/app_config.sh @@ -31,7 +31,7 @@ case $APP_MACOS_TYPE in $MONERO_COM) CONFIG_ARGS="--monero";; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash --solana";; #--haven + CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash --solana --tron";; #--haven esac cp -rf pubspec_description.yaml pubspec.yaml diff --git a/tool/configure.dart b/tool/configure.dart index ceb0c9ccc4..f136c9a2a9 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -8,6 +8,7 @@ const bitcoinCashOutputPath = 'lib/bitcoin_cash/bitcoin_cash.dart'; const nanoOutputPath = 'lib/nano/nano.dart'; const polygonOutputPath = 'lib/polygon/polygon.dart'; const solanaOutputPath = 'lib/solana/solana.dart'; +const tronOutputPath = 'lib/tron/tron.dart'; const walletTypesPath = 'lib/wallet_types.g.dart'; const pubspecDefaultPath = 'pubspec_default.yaml'; const pubspecOutputPath = 'pubspec.yaml'; @@ -23,6 +24,7 @@ Future main(List args) async { final hasBanano = args.contains('${prefix}banano'); final hasPolygon = args.contains('${prefix}polygon'); final hasSolana = args.contains('${prefix}solana'); + final hasTron = args.contains('${prefix}tron'); await generateBitcoin(hasBitcoin); await generateMonero(hasMonero); @@ -32,6 +34,7 @@ Future main(List args) async { await generateNano(hasNano); await generatePolygon(hasPolygon); await generateSolana(hasSolana); + await generateTron(hasTron); // await generateBanano(hasEthereum); await generatePubspec( @@ -44,6 +47,7 @@ Future main(List args) async { hasBitcoinCash: hasBitcoinCash, hasPolygon: hasPolygon, hasSolana: hasSolana, + hasTron: hasTron, ); await generateWalletTypes( hasMonero: hasMonero, @@ -55,6 +59,7 @@ Future main(List args) async { hasBitcoinCash: hasBitcoinCash, hasPolygon: hasPolygon, hasSolana: hasSolana, + hasTron: hasTron, ); } @@ -1024,6 +1029,79 @@ abstract class Solana { await outputFile.writeAsString(output); } +Future generateTron(bool hasImplementation) async { + final outputFile = File(tronOutputPath); + const tronCommonHeaders = """ +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/output_info.dart'; +import 'package:cw_core/transaction_info.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/wallet_service.dart'; +import 'package:hive/hive.dart'; + +"""; + const tronCWHeaders = """ +import 'package:cw_evm/evm_chain_mnemonics.dart'; +import 'package:cw_tron/tron_transaction_credentials.dart'; +import 'package:cw_tron/tron_transaction_info.dart'; +import 'package:cw_tron/tron_wallet_creation_credentials.dart'; + +import 'package:cw_tron/tron_client.dart'; +import 'package:cw_tron/tron_token.dart'; +import 'package:cw_tron/tron_wallet.dart'; +import 'package:cw_tron/tron_wallet_service.dart'; + +"""; + const tronCwPart = "part 'cw_tron.dart';"; + const tronContent = """ +abstract class Tron { + List getTronWordList(String language); + WalletService createTronWalletService(Box walletInfoSource); + WalletCredentials createTronNewWalletCredentials({required String name, WalletInfo? walletInfo}); + WalletCredentials createTronRestoreWalletFromSeedCredentials({required String name, required String mnemonic, required String password}); + WalletCredentials createTronRestoreWalletFromPrivateKey({required String name, required String privateKey, required String password}); + String getAddress(WalletBase wallet); + + Object createTronTransactionCredentials( + List outputs, { + required CryptoCurrency currency, + }); + + List getTronTokenCurrencies(WalletBase wallet); + Future addTronToken(WalletBase wallet, CryptoCurrency token, String contractAddress); + Future deleteTronToken(WalletBase wallet, CryptoCurrency token); + Future getTronToken(WalletBase wallet, String contractAddress); + + double getTransactionAmountRaw(TransactionInfo transactionInfo); + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); + String getTokenAddress(CryptoCurrency asset); + String getTronBase58Address(String hexAddress, WalletBase wallet); + + String? getTronNativeEstimatedFee(WalletBase wallet); + String? getTronTRC20EstimatedFee(WalletBase wallet); +} + """; + + const tronEmptyDefinition = 'Tron? tron;\n'; + const tronCWDefinition = 'Tron? tron = CWTron();\n'; + + final output = '$tronCommonHeaders\n' + + (hasImplementation ? '$tronCWHeaders\n' : '\n') + + (hasImplementation ? '$tronCwPart\n\n' : '\n') + + (hasImplementation ? tronCWDefinition : tronEmptyDefinition) + + '\n' + + tronContent; + + if (outputFile.existsSync()) { + await outputFile.delete(); + } + + await outputFile.writeAsString(output); +} + Future generatePubspec( {required bool hasMonero, required bool hasBitcoin, @@ -1033,7 +1111,8 @@ Future generatePubspec( required bool hasBanano, required bool hasBitcoinCash, required bool hasPolygon, - required bool hasSolana}) async { + required bool hasSolana, + required bool hasTron}) async { const cwCore = """ cw_core: path: ./cw_core @@ -1082,6 +1161,10 @@ Future generatePubspec( cw_evm: path: ./cw_evm """; + const cwTron = """ + cw_tron: + path: ./cw_tron + """; final inputFile = File(pubspecOutputPath); final inputText = await inputFile.readAsString(); final inputLines = inputText.split('\n'); @@ -1121,6 +1204,10 @@ Future generatePubspec( output += '\n$cwSolana'; } + if (hasTron) { + output += '\n$cwTron'; + } + if (hasHaven && !hasMonero) { output += '\n$cwSharedExternal\n$cwHaven'; } else if (hasHaven) { @@ -1152,7 +1239,8 @@ Future generateWalletTypes( required bool hasBanano, required bool hasBitcoinCash, required bool hasPolygon, - required bool hasSolana}) async { + required bool hasSolana, + required bool hasTron}) async { final walletTypesFile = File(walletTypesPath); if (walletTypesFile.existsSync()) { @@ -1191,6 +1279,10 @@ Future generateWalletTypes( outputContent += '\tWalletType.solana,\n'; } + if (hasTron) { + outputContent += '\tWalletType.tron,\n'; + } + if (hasNano) { outputContent += '\tWalletType.nano,\n'; } diff --git a/tool/generate_secrets_config.dart b/tool/generate_secrets_config.dart index 8745c2933e..6aaa39b7c9 100644 --- a/tool/generate_secrets_config.dart +++ b/tool/generate_secrets_config.dart @@ -6,6 +6,7 @@ import 'utils/utils.dart'; const configPath = 'tool/.secrets-config.json'; const evmChainsConfigPath = 'tool/.evm-secrets-config.json'; const solanaConfigPath = 'tool/.solana-secrets-config.json'; +const tronConfigPath = 'tool/.tron-secrets-config.json'; Future main(List args) async => generateSecretsConfig(args); @@ -20,9 +21,10 @@ Future generateSecretsConfig(List args) async { final configFile = File(configPath); final evmChainsConfigFile = File(evmChainsConfigPath); final solanaConfigFile = File(solanaConfigPath); + final tronConfigFile = File(tronConfigPath); final secrets = {}; - + secrets.addAll(extraInfo); secrets.removeWhere((key, dynamic value) { if (key.contains('--')) { @@ -78,4 +80,18 @@ Future generateSecretsConfig(List args) async { secretsJson = JsonEncoder.withIndent(' ').convert(secrets); await solanaConfigFile.writeAsString(secretsJson); + + secrets.clear(); + + SecretKey.tronSecrets.forEach((sec) { + if (secrets[sec.name] != null) { + return; + } + + secrets[sec.name] = sec.generate(); + }); + + secretsJson = JsonEncoder.withIndent(' ').convert(secrets); + + await tronConfigFile.writeAsString(secretsJson); } diff --git a/tool/import_secrets_config.dart b/tool/import_secrets_config.dart index 02061669b6..b2f3ca6914 100644 --- a/tool/import_secrets_config.dart +++ b/tool/import_secrets_config.dart @@ -10,6 +10,9 @@ const evmChainsOutputPath = 'cw_evm/lib/.secrets.g.dart'; const solanaConfigPath = 'tool/.solana-secrets-config.json'; const solanaOutputPath = 'cw_solana/lib/.secrets.g.dart'; + +const tronConfigPath = 'tool/.tron-secrets-config.json'; +const tronOutputPath = 'cw_tron/lib/.secrets.g.dart'; Future main(List args) async => importSecretsConfig(); Future importSecretsConfig() async { @@ -29,6 +32,11 @@ Future importSecretsConfig() async { final solanaOutput = solanaInput.keys.fold('', (String acc, String val) => acc + generateConst(val, solanaInput)); + final tronOutputFile = File(tronOutputPath); + final tronInput = json.decode(File(tronConfigPath).readAsStringSync()) as Map; + final tronOutput = + tronInput.keys.fold('', (String acc, String val) => acc + generateConst(val, tronInput)); + if (outputFile.existsSync()) { await outputFile.delete(); } @@ -46,4 +54,10 @@ Future importSecretsConfig() async { } await solanaOutputFile.writeAsString(solanaOutput); + + if (tronOutputFile.existsSync()) { + await tronOutputFile.delete(); + } + + await tronOutputFile.writeAsString(tronOutput); } diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 5d5e61cecf..542e91b381 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -50,6 +50,10 @@ class SecretKey { SecretKey('ankrApiKey', () => ''), ]; + static final tronSecrets = [ + SecretKey('tronGridApiKey', () => ''), + ]; + final String name; final String Function() generate; } From d5543ceb08b055d5c0b3342ba7a3b5ca9983a8cb Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Sat, 4 May 2024 05:35:15 -0700 Subject: [PATCH 079/157] nano derivation fix (#1428) --- lib/nano/cw_nano.dart | 54 ++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/lib/nano/cw_nano.dart b/lib/nano/cw_nano.dart index 13800cff60..ad02d2ccb9 100644 --- a/lib/nano/cw_nano.dart +++ b/lib/nano/cw_nano.dart @@ -228,35 +228,47 @@ class CWNanoUtil extends NanoUtil { }) async { NanoClient nanoClient = NanoClient(); nanoClient.connect(node); - late String publicAddress; + String? publicAddress; - if (seedKey != null) { - if (seedKey.length == 64) { - try { - mnemonic = NanoDerivations.standardSeedToMnemonic(seedKey); - } catch (e) { - print("not a valid 'nano' seed key"); + if (seedKey == null && mnemonic == null) { + throw Exception("One of seed key OR mnemonic must be provided!"); + } + + try { + if (seedKey != null) { + if (seedKey.length == 64) { + try { + mnemonic = NanoDerivations.standardSeedToMnemonic(seedKey); + } catch (e) { + print("not a valid 'nano' seed key"); + } + } + if (derivationType == DerivationType.bip39) { + publicAddress = await NanoDerivations.hdSeedToAddress(seedKey, index: 0); + } else if (derivationType == DerivationType.nano) { + publicAddress = await NanoDerivations.standardSeedToAddress(seedKey, index: 0); } } + if (derivationType == DerivationType.bip39) { - publicAddress = await NanoDerivations.hdSeedToAddress(seedKey, index: 0); - } else if (derivationType == DerivationType.nano) { - publicAddress = await NanoDerivations.standardSeedToAddress(seedKey, index: 0); + if (mnemonic != null) { + seedKey = await NanoDerivations.hdMnemonicListToSeed(mnemonic.split(' ')); + publicAddress = await NanoDerivations.hdSeedToAddress(seedKey, index: 0); + } } - } - if (derivationType == DerivationType.bip39) { - if (mnemonic != null) { - seedKey = await NanoDerivations.hdMnemonicListToSeed(mnemonic.split(' ')); - publicAddress = await NanoDerivations.hdSeedToAddress(seedKey, index: 0); + if (derivationType == DerivationType.nano) { + if (mnemonic != null) { + seedKey = await NanoDerivations.standardMnemonicToSeed(mnemonic); + publicAddress = await NanoDerivations.standardSeedToAddress(seedKey, index: 0); + } } - } + } catch (_) {} - if (derivationType == DerivationType.nano) { - if (mnemonic != null) { - seedKey = await NanoDerivations.standardMnemonicToSeed(mnemonic); - publicAddress = await NanoDerivations.standardSeedToAddress(seedKey, index: 0); - } + if (publicAddress == null) { + // we couldn't derive a public address for the derivation type provided + // i.e. a bip39 seed was provided and we were instructed to derive a "nano" type address + return null; } AccountInfoResponse? accountInfo = await nanoClient.getAccountInfo(publicAddress); From 043d7d7c8bcfa2e85ea9ad6b0c6bfef9bca40a00 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Sat, 4 May 2024 15:35:26 +0300 Subject: [PATCH 080/157] Generic fixes (#1427) * fix for private key solana * Fix Solana wallet open --- cw_solana/lib/solana_wallet.dart | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index f3eef465c1..6692b65a6e 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -145,12 +145,17 @@ abstract class SolanaWalletBase Future getWalletPair({String? mnemonic, String? privateKey}) async { assert(mnemonic != null || privateKey != null); - if (privateKey != null) { - final privateKeyBytes = base58decode(privateKey); - return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes.take(32).toList()); + if (mnemonic != null) { + return Wallet.fromMnemonic(mnemonic, account: 0, change: 0); } - return Wallet.fromMnemonic(mnemonic!, account: 0, change: 0); + try { + final privateKeyBytes = base58decode(privateKey!); + return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes.take(32).toList()); + } catch (_) { + final privateKeyBytes = HEX.decode(privateKey!); + return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes); + } } @override @@ -360,7 +365,7 @@ abstract class SolanaWalletBase String toJSON() => json.encode({ 'mnemonic': _mnemonic, - 'private_key': privateKey, + 'private_key': _hexPrivateKey, 'balance': balance[currency]!.toJSON(), }); From 5eabdcdca1973fc892aef540d1fb3efb91eed89a Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Sat, 4 May 2024 20:44:50 -0500 Subject: [PATCH 081/157] Cw 604 integrate bitcoin ledger (#1407) * CW-503 Prepare Ledger integration * CW-503 Revert Tor ignore * CW-503 Add Connect Device Page * CW-503 Add createWalletFromDevice for monero * CW-503 Add Connect Device Page * CW-503 Add Connect Device Page * CW-503 Add Debug Options * CW-503 Add proper hardware wallet selection screen * CW-503 Minor design changes on connect_device_page * CW-503 Add Create Wallet from Ledger * CW-503 Spent Ledger ETH Funds * CW-503 Minor fixes * CW-503 Fix Merge conflicts * CW-503 Fix Merge conflicts * CW-503 Fix Merge conflicts * CW-503 Fix minor conflicts * CW-503 Improve Ledger BLE Communication * CW-503 Improve Ledger BLE Communication * CW-503 Rollback Monero Test code * CW-503 Fix Execution failed for task :app:checkReleaseDuplicateClasses * CW-503 Better Error-Exceptions * CW-503 Add SetPinScreen before restore from hardware-wallet * CW-503 override web3dart to use cake's git hosted version * CW-503 Implement ledger sign messages * CW-503 Implement ledger sign messages and send erc20 tokens * CW-503 Fix merge conflicts * CW-503 Fix merge conflicts * CW-503 Use dep override for ledger_flutter * CW-503 Ledger ERC20 finalisation * CW-503 More graceful error handling * CW-503 Even more graceful error handling & remove debug code * CW-503 Minor Changes for Vik * CW-503 Fix USB connection * CW-503 Maybe this overrides web3dart finally * Indicate Loading on the first 5 Wallet Accounts * Prepare Ledger Bitcoin * Fix conflicts with main * Add Bluetooth permission to iOS [skip ci] * add privacyinfo for ios [skip ci] * update PrivacyInfo.xcprivacy [scip ci] * ios shit [skip ci] * Improve bitcoin xpub * Resolve open Todos regarding iOS Support * Minor debug * Remove erc20 dependency to have more granular control over the tx UX * Create Bitcoin Wallets using xpub * Create Bitcoin Wallets using xpub * Better error handling * Improve Ledger account handling * Add Bitcoin Support for Ledger * Add Bitcoin Support for Ledger * Add Bitcoin Support for Ledger * Implement requested Changes * Implement requested Changes * Minor fix * Implement requested Changes * Implement requested Changes * Add comment to remind me * Enable RBF for Bitcoin Ledger * Fix merge conflicts * Update wallet_info.dart * Cw 503 ledger support (#1310) * CW-503 Prepare Ledger integration * CW-503 Revert Tor ignore * CW-503 Add Connect Device Page * CW-503 Add createWalletFromDevice for monero * CW-503 Add Connect Device Page * CW-503 Add Connect Device Page * CW-503 Add Debug Options * CW-503 Add proper hardware wallet selection screen * CW-503 Minor design changes on connect_device_page * CW-503 Add Create Wallet from Ledger * CW-503 Spent Ledger ETH Funds * CW-503 Minor fixes * CW-503 Fix Merge conflicts * CW-503 Fix Merge conflicts * CW-503 Fix Merge conflicts * CW-503 Fix minor conflicts * CW-503 Improve Ledger BLE Communication * CW-503 Improve Ledger BLE Communication * CW-503 Rollback Monero Test code * CW-503 Fix Execution failed for task :app:checkReleaseDuplicateClasses * CW-503 Better Error-Exceptions * CW-503 Add SetPinScreen before restore from hardware-wallet * CW-503 override web3dart to use cake's git hosted version * CW-503 Implement ledger sign messages * CW-503 Implement ledger sign messages and send erc20 tokens * CW-503 Fix merge conflicts * CW-503 Fix merge conflicts * CW-503 Use dep override for ledger_flutter * CW-503 Ledger ERC20 finalisation * CW-503 More graceful error handling * CW-503 Even more graceful error handling & remove debug code * CW-503 Minor Changes for Vik * CW-503 Fix USB connection * CW-503 Maybe this overrides web3dart finally * Indicate Loading on the first 5 Wallet Accounts * Fix conflicts with main * Add Bluetooth permission to iOS [skip ci] * add privacyinfo for ios [skip ci] * update PrivacyInfo.xcprivacy [scip ci] * ios shit [skip ci] * Resolve open Todos regarding iOS Support * Remove erc20 dependency to have more granular control over the tx UX * Better error handling * Improve Ledger account handling * Implement requested Changes * Implement requested Changes * Implement requested Changes * Implement requested Changes * Fix merge conflicts * Update wallet_info.dart --------- Co-authored-by: Omar Hatem * Fix merge conflicts * Fix merge conflicts * Minor Fix to derivations * Update cw_bitcoin/lib/bitcoin_wallet.dart [skip ci] * Update cw_bitcoin/lib/bitcoin_wallet.dart [skip ci] * Update cw_bitcoin/lib/electrum_wallet.dart [skip ci] * Fix backward compatibility issues * Merge Tron * Fix Tron with HW changes * fix ble on iOS fix tron address validation --------- Co-authored-by: Omar Hatem --- android/app/src/main/AndroidManifestBase.xml | 20 ++ android/build.gradle | 2 +- assets/images/bluetooth.png | Bin 0 -> 1809 bytes assets/images/ledger_nano.png | Bin 0 -> 1463 bytes assets/images/usb.png | Bin 0 -> 2490 bytes .../lib/bitcoin_hardware_wallet_service.dart | 43 +++ cw_bitcoin/lib/bitcoin_wallet.dart | 118 +++++-- .../bitcoin_wallet_creation_credentials.dart | 20 +- cw_bitcoin/lib/bitcoin_wallet_service.dart | 28 +- cw_bitcoin/lib/electrum_derivations.dart | 2 +- cw_bitcoin/lib/electrum_wallet.dart | 163 +++++++-- cw_bitcoin/lib/electrum_wallet_snapshot.dart | 8 +- cw_bitcoin/lib/litecoin_wallet.dart | 6 +- cw_bitcoin/lib/litecoin_wallet_service.dart | 7 +- cw_bitcoin/lib/psbt_transaction_builder.dart | 96 ++++++ cw_bitcoin/pubspec.lock | 75 +++- cw_bitcoin/pubspec.yaml | 4 + .../lib/src/bitcoin_cash_wallet.dart | 8 +- .../lib/src/bitcoin_cash_wallet_service.dart | 7 +- .../lib/hardware/device_connection_type.dart | 28 ++ .../device_not_connected_exception.dart | 7 + .../lib/hardware/hardware_account_data.dart | 19 ++ cw_core/lib/hive_type_ids.dart | 1 + cw_core/lib/wallet_base.dart | 4 +- cw_core/lib/wallet_credentials.dart | 2 + cw_core/lib/wallet_info.dart | 21 +- cw_core/lib/wallet_service.dart | 4 +- cw_ethereum/lib/ethereum_wallet_service.dart | 26 +- cw_ethereum/pubspec.yaml | 6 + cw_evm/lib/contract/erc20.dart | 209 ++++++++++++ cw_evm/lib/evm_chain_client.dart | 51 ++- cw_evm/lib/evm_chain_exceptions.dart | 2 + .../evm_chain_hardware_wallet_service.dart | 35 ++ .../evm_chain_transaction_credentials.dart | 1 + cw_evm/lib/evm_chain_wallet.dart | 36 +- ...evm_chain_wallet_creation_credentials.dart | 11 + cw_evm/lib/evm_chain_wallet_service.dart | 6 +- cw_evm/lib/evm_ledger_credentials.dart | 103 ++++++ cw_evm/pubspec.yaml | 15 +- cw_haven/lib/haven_wallet_service.dart | 8 +- cw_monero/lib/api/signatures.dart | 3 + cw_monero/lib/api/types.dart | 3 + cw_monero/lib/api/wallet_manager.dart | 37 ++ cw_monero/lib/monero_wallet.dart | 2 +- cw_monero/lib/monero_wallet_service.dart | 7 +- cw_nano/lib/nano_wallet_service.dart | 7 +- cw_polygon/lib/polygon_wallet_service.dart | 24 ++ cw_polygon/pubspec.yaml | 5 + cw_solana/lib/solana_wallet_service.dart | 11 +- cw_tron/lib/tron_wallet.dart | 2 +- cw_tron/lib/tron_wallet_service.dart | 16 +- how_to_add_new_wallet_type.md | 3 +- ios/Podfile.lock | 11 + ios/Runner.xcodeproj/project.pbxproj | 4 + ios/Runner/InfoBase.plist | 14 +- ios/Runner/PrivacyInfo.xcprivacy | 24 ++ lib/bitcoin/cw_bitcoin.dart | 30 +- lib/buy/buy_provider.dart | 3 + lib/buy/dfx/dfx_buy_provider.dart | 24 +- lib/buy/moonpay/moonpay_provider.dart | 3 +- lib/buy/onramper/onramper_buy_provider.dart | 2 +- lib/buy/robinhood/robinhood_buy_provider.dart | 25 +- lib/buy/wyre/wyre_buy_provider.dart | 2 +- lib/core/address_validator.dart | 5 +- lib/core/wallet_creation_service.dart | 15 + lib/di.dart | 319 +++++++++--------- lib/ethereum/cw_ethereum.dart | 33 +- lib/main.dart | 6 +- lib/polygon/cw_polygon.dart | 62 +++- lib/router.dart | 196 +++++++---- lib/routes.dart | 3 + .../connect_device/connect_device_page.dart | 221 ++++++++++++ .../connect_device/debug_device_page.dart | 212 ++++++++++++ .../select_hardware_wallet_account_page.dart | 256 ++++++++++++++ .../connect_device/widgets/device_tile.dart | 78 +++++ .../desktop_sidebar/side_menu_item.dart | 1 + .../desktop_sidebar_wrapper.dart | 3 +- .../screens/dashboard/pages/balance_page.dart | 11 + .../new_wallet/new_wallet_type_page.dart | 150 ++++---- .../new_wallet/widgets/select_button.dart | 71 ++-- .../screens/restore/restore_options_page.dart | 114 ++++--- lib/src/screens/send/send_page.dart | 68 +++- .../settings/connection_sync_page.dart | 11 +- .../dashboard/dashboard_view_model.dart | 4 +- .../hardware_wallet/ledger_view_model.dart | 66 ++++ lib/view_model/send/send_view_model.dart | 25 +- .../send/send_view_model_state.dart | 1 + lib/view_model/wallet_creation_vm.dart | 3 +- .../wallet_hardware_restore_view_model.dart | 110 ++++++ macos/Runner/InfoBase.plist | 17 + pubspec_base.yaml | 9 + res/values/strings_ar.arb | 14 + res/values/strings_bg.arb | 14 + res/values/strings_cs.arb | 14 + res/values/strings_de.arb | 14 + res/values/strings_en.arb | 14 + res/values/strings_es.arb | 14 + res/values/strings_fr.arb | 14 + res/values/strings_ha.arb | 14 + res/values/strings_hi.arb | 14 + res/values/strings_hr.arb | 14 + res/values/strings_id.arb | 14 + res/values/strings_it.arb | 14 + res/values/strings_ja.arb | 14 + res/values/strings_ko.arb | 14 + res/values/strings_my.arb | 14 + res/values/strings_nl.arb | 14 + res/values/strings_pl.arb | 14 + res/values/strings_pt.arb | 14 + res/values/strings_ru.arb | 14 + res/values/strings_th.arb | 14 + res/values/strings_tl.arb | 14 + res/values/strings_tr.arb | 14 + res/values/strings_uk.arb | 14 + res/values/strings_ur.arb | 14 + res/values/strings_yo.arb | 14 + res/values/strings_zh.arb | 14 + tool/configure.dart | 34 +- 118 files changed, 3358 insertions(+), 574 deletions(-) create mode 100644 assets/images/bluetooth.png create mode 100644 assets/images/ledger_nano.png create mode 100644 assets/images/usb.png create mode 100644 cw_bitcoin/lib/bitcoin_hardware_wallet_service.dart create mode 100644 cw_bitcoin/lib/psbt_transaction_builder.dart create mode 100644 cw_core/lib/hardware/device_connection_type.dart create mode 100644 cw_core/lib/hardware/device_not_connected_exception.dart create mode 100644 cw_core/lib/hardware/hardware_account_data.dart create mode 100644 cw_evm/lib/contract/erc20.dart create mode 100644 cw_evm/lib/evm_chain_hardware_wallet_service.dart create mode 100644 cw_evm/lib/evm_ledger_credentials.dart create mode 100644 ios/Runner/PrivacyInfo.xcprivacy create mode 100644 lib/src/screens/connect_device/connect_device_page.dart create mode 100644 lib/src/screens/connect_device/debug_device_page.dart create mode 100644 lib/src/screens/connect_device/select_hardware_wallet_account_page.dart create mode 100644 lib/src/screens/connect_device/widgets/device_tile.dart create mode 100644 lib/view_model/hardware_wallet/ledger_view_model.dart create mode 100644 lib/view_model/wallet_hardware_restore_view_model.dart diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 485f049e81..23207d629e 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -9,6 +9,26 @@ + + + + + + + + + + + + + + @~0drDELIAGL9O(c600d`2O+f$vv5yPiYq2%h9LkSeAb$aHE4UTp-UvtP z0bxgQNw4vxQIFgTw!G7M3npY^yl>3z{MgJ#ie%Yi$;_L1^PTr&1K@Bt91e%W;cz%U zHW*mK$agEF%wv!7HTU`R+V7O|ks<>GSm%<`W&p6wC8f{+ZR~JKDKC*sc&?+GL9sXX{>a7nQnpj-T27@?qgmG!EU zRP9(Dhp<>>>_GKamvu?FV{tb_!o+R>#`!*BSg_R}e!E-%g~+-j#vt+E7rOya?TFR0 z6g`p;c^Pj{_2G;zsRiB^%^f9AA}*-5TUw+U;p%W!W`swR%Y{D152EF%7{P(En{P#8 zX8;;O`~@?Vm4-&hPpobxt&s9lPiHxJdyFvoV$70?yGx>naJ5|860&HFbnr2l?(e^o z*x`(K6LBNlpp3=IKf(p1fW%c$wfxhG=W(JDST1gbgu5y~wYu5qZqnfgoZ_xkHTj4V z8H(xyjUb%O31N63Q}YwQ=HQm(zF*1Wt`a_OI%;gNK*VkhcCA8`SH?Y@Sl#d#%u>dB zjLrGn7lvRzb{xQAt6H9)>GV-B`F;=%$wCA;`CfyM9crksQ+^Q(Zly$pgf~)gXg&r> z@B-E6d&fYTe9lkqio3y~rt(HD;pjl72BCpyD2nAesB|#+NBbV%J}Q@nD;f)YwdDga zGyvR_h*m};t8}WnrD@QN)`X0dLW+Q{bb^54oJytB4I|3azZ3^%%ZEMjbL5ndIE0(c zv$;U&Fv@q?Dfj(xlbSn>=?_4?-al|><3`2P2?iBmge(}Ybh=?&gT~0@$|3_6YitOW zj@N{7(OgRey-n2ka#@a=oe^B?}&|K(pW5Mx`EFjwGZGMgYNL$9MU zrqe4%_lV))?2FqhC;0dPK>S#!WfdcHNTYll2AGfgwnBK@{v?lN4HvF z4MrOvH}Mn$abHP&NmHt`SBz6ZZ7_An7!%nm_!N3$^z#Sbz(245lyqTgG4c?`fEqQX z6UpUm+0>4D121Bo9!qdb#6_$rE@CEj)SDHGxHGs;$zHt!J7m~>qD(dNu?9vQ!ZNAD z_u%Y}j#OuyXg9!B>X5OXCI;^cBCb!ZcFO|GxE7^0GO5ETWK*4{$W(0xkV_rXkV$n0 z#bA?b>!2Ae29QY|%GPkor8;>rKe3{AxG^K;7 zLq2w!fSRsiFjNPXDLMo)>xK;j0# zfEu|%4O53P=WQ_rf#oOEo&_;(OQk|e)Bw1eE^6^9GLvuLZJsBVG&i+pAu$7>(!te4 zt;NSxnskL48o_V*m9>oYMdcZ2YLaK#_>C@vdZ@XDQ>Y?h(6*c7+;V zmOvpG`jCk`sp=7neFp@6!i;rnzz{2{a<6$duCg5bqU7-t41E-7$q#V}WUy4-nO9O( zp{`Gu^Jlg4{Fu_oZ(jgK%!e}m>Jq51q$RmNVG&BeNymTqx>_zNjls*h9Q>U+I%N`j zUeKlgtbk&Abvd=&d1b5qI*A!T2eK;XLJ;^`OV(3U8E1>j31j^Zu+8O!vD*M1v{g=) zGTa206UOofx56k`=5oTM>JaXXSuQ6`stsVG%L$X-r>7h0a>Ar=2bk@0!lcRoHn^NH z>2X1pxSTM??*N~(Q?Kg{%PyA_#`qo3?Kz}6!pCuAY>!x*w|~E=ckG-OF302!cq&FW zYF{Tv_Fq;hV6HYT|DCPF;cz${4u`|x`1trA%wM^0H~j||00000NkvXXu0mjfmUmu1 literal 0 HcmV?d00001 diff --git a/assets/images/ledger_nano.png b/assets/images/ledger_nano.png new file mode 100644 index 0000000000000000000000000000000000000000..bb61ba1750728b5584680110bd90727c3e195eca GIT binary patch literal 1463 zcmV;o1xWgdP)@~0drDELIAGL9O(c600d`2O+f$vv5yPXg70CCgwzCt2)>6E5>gQmA^0Admtb5#jNp4@T7ppl2?XCG zvl5I6&<#GdX&}HZO+ObEO*1LMh=4G`-``rVKYsMEJvYB3Y?P3=fUv>$ez#RZq5`4@ z-@`@;i3x}sd=J|sBqAWG;Ct94A+~^|gYRLBgjfPh1>eI436TYu4!%d$B}5WX{=8Yr zA+%KO;s)O%%Mv09c=gh?Iz{7ZP@ANJ?~zpr4n%;;XqSUOPd4}-hqO(kZL8W*oBBJ{ zMZ!5Ck^qg(A{ZiT5+Zd$ugrgVMbQNr?FO>c9Yq@h-ds8oLevz^Sb_$T1U&xZVRsr1 zJ_`~euLGv#;Lp2+SSw+c5TDq&AeIo1M6#hQAv%fG16V>d60L}_gzzL@6J`nFFmhJ} zOVG!N00~Rb!~R z=8tYgi|P$ufI;;41FB$<)CEZN4j!Mt6zm5I=z&2dB0!=#cvm=Wn1cNP7usNuRL6i( z{Q6>fSHthapnDIPE+Dk~eQYH0ZX+!L z2|n?jEf6;2ickuW4`UQu@fR>Yh@K;$@%xXrBlQl-R74&fqsgfA56-%Xccb14uM{BA zEd!$@>hlN_OU7jpDdFAgcUHrECl4{80i;VglQv`=1SnB`qAa@`Ra+Nfqg-vabO+{G z0%Y(Hw%2ZeB~+H1H4?EQh4{C^*+M})pda1`4Y&&mflN)GoE%-Dv;2NwLjj92!wVY3 zx&pGs*_Hla^-IN=(UotfRhJdA)yhhfx+DLx=`g+CR{c-D0*1)NW}$fDKS5JUI)iIe zoY@eL*r_akvqOD)X|#R+Z1%P6uPu)qOD0bx4arV#hN?UaZ{&lp?Hykk0rm)b+g1Q zASCk4FU(xHOA)RGweuS@MqvS(3<6)6sSdgwR4lNlSihG>JwWD3C|UIYvQG&$3o@rO zCRgk1m&CmSN-}c@79c?HHFz|LH}*o@roz+E1Q|Tn5c2jEr2rI;axTk6e^sYaz|-UZ zH-QO2^k{sz74=!!QiPFbu=Q;yG(reAP{& RfT{oh002ovPDHLkV1g$1iR}OY literal 0 HcmV?d00001 diff --git a/assets/images/usb.png b/assets/images/usb.png new file mode 100644 index 0000000000000000000000000000000000000000..1163c573dca2792b4b7afeed0e3a9aeb146b3f8a GIT binary patch literal 2490 zcmV;r2}SmaP)@~0drDELIAGL9O(c600d`2O+f$vv5yPi7QC^PRa&!L4UJx^4H=`K@Vm^t zbo4FwC1!xeyhtWzfQUMx;?_sPGj8i}Y!uK#z2}XIs-SEO4NDvNN%$pRpu)rV)u^fCC z?hJOVdj~>@|06w&Qa}*AG;yrQS@*qxs7~%Z*}*6UAPdm<8VmN`%?nisV2kfjDS-&; zU=T(rK-T7d!V4?>r_b?Gf;`8xuyqa$Lxjhhal>1yWyEd{AhfX0k&Pd0tAq}{;`=a! z9p0ZF?e9AEX8po8Xe4v_fZ4_6>-=q>?t78o`sUjCGZ2E(d&|Xq8^2@;%s~_g8m$(c z(WQt?ZNj=JEqqbRIoAEi!WZ~6`GR$ScHy%UXkg?NAR|AAbcgqYX&4y(EavW%%F9KF z$;c@n$IDJU;d{_@KF>>7Oh!rpGWv0lWycSGmb;0^ATcYbRIX0vauX$1@f;GqEbkH0 zBWhE#-QH_7>(xN7RW~`Z%Cd`Ug)J!ly8#2DT>-9j;ouShR-R7vuC0ag$ClUB&g{ZU zovn$>y3INj90!sa&=-Dtn@!b5-)lV5S#8C>*Hq?f2(&6-_S6?k{6kh{eMH4ba}|S7 zVQZrN#;Gfpf4cE;4N|~D84&$7Aj0=EVY{Yp5t8_xKob&1<{?&#w!zV~Lv;0Z`Rs_I zMFBGM-O6u@#Ufyrj>rhLM{Eu@oStCfk+) z2@Xz@aEyknqPkcb>RYYT?lVV-SXPj27v?}Y`f2rldr!_bx;DQEH(!{j`3BSYS+4I8 z!>%3}HZ|Ea_Va9y`+t!Bh8VGeLTh6P4EJyMgd(U}Q zo&g$&Wd+HG`r5+Es)ewmxUI;c2C*;zgF?aVFQgTwc4q>>{4w_A_c=_BPHF zsp(kOs%+xAt14ngL-RJ(+KzP^Vtd1~raGw?Rdp3nn^{~r?zcBN2YN&m0`dhdSbIuiy69g<6+4l~0p^|KOp`4{)o| z&^Z^)xbr(TL(A{_!3`%s6M2?daMtmYtq1 z`!atYMdi&28wT2Q!re`+!f8D4Qv!i=ZEG#PQ7`_7m7gfvfXAf-K1%qU2T7uafpN8= zx;Vzko&5W~)ki9AC89EdNAVD%Qe+!C|UnX+OZ4o+qO`-gcK8Wpq zFNIk;q#2M-;}fVe0-|do{6#Qw!0h6czXC!O+fLg#7o}8D*&h%I_CYxF=8&`g|JH83 zF@#b{A<;cR%uNJT6P84l7REm@js+n=HUL5=CFj` zOQH(c-`lNm{&y)S9WAGY<+#c0fv!y zi_&ZFd|sAO4mxlZVinbn6fZ4&AMZcw2Y3IuZo(*6kxGx)%;Iu2U@6i9`xom6T2Csb z3%!?A&Wd>a;CAE1qbJxp$2mxrjUT`L^af;z)H-A&T54N#SZh_ne}Gh5lq68MwRV19 z4$P3MxxiAz5nw2xh_16EFOZyUt3@TtLJlL~D_VQFGQiNIq22Jcyq;E=dEM*mNF29- zN~FqGWt>cO%JSzLJ;|3fn(6Ei>}ryRUnVh3w3#PI^# z5>(q4`qII$lK{=N`6Ixd$Rtw4A1oF?&Gwn45>bH$(_C z1SRhC`?=ze-+q{AFIrfP*#mf4DFs{)U88AR>Luoh-AbkCDh$RbK-KgewH?%L8j(%f z2Mf)KC7GiD_2#<`(VzE=@3kbG!6Pz~=Z2buF$xH1`d01_eV?Zo;eN9VE5&~2jk=DUjC`UBDB!GG>doLPjEaVKPSl!u7^;}J zGh4R1|0sposAcruyLtXF7=%$~s8l~Y?RL1T2H9lgge&(I&Pp?GTVKWTG%jkZc(%;!;qZsMnHoaBsJk zg+`6cD8R$36P56F?=OasP)4B@{}jV9W5$dbGbSzm1;CLXRIgSxn*aa+07*qoM6N<$ Eg4H^$Hvj+t literal 0 HcmV?d00001 diff --git a/cw_bitcoin/lib/bitcoin_hardware_wallet_service.dart b/cw_bitcoin/lib/bitcoin_hardware_wallet_service.dart new file mode 100644 index 0000000000..345d645d10 --- /dev/null +++ b/cw_bitcoin/lib/bitcoin_hardware_wallet_service.dart @@ -0,0 +1,43 @@ +import 'dart:async'; + +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:bitcoin_flutter/bitcoin_flutter.dart'; +import 'package:cw_bitcoin/utils.dart'; +import 'package:cw_core/hardware/hardware_account_data.dart'; +import 'package:ledger_bitcoin/ledger_bitcoin.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; + +class BitcoinHardwareWalletService { + BitcoinHardwareWalletService(this.ledger, this.device); + + final Ledger ledger; + final LedgerDevice device; + + Future> getAvailableAccounts({int index = 0, int limit = 5}) async { + final bitcoinLedgerApp = BitcoinLedgerApp(ledger); + + final masterFp = await bitcoinLedgerApp.getMasterFingerprint(device); + print(masterFp); + + final accounts = []; + final indexRange = List.generate(limit, (i) => i + index); + + for (final i in indexRange) { + final derivationPath = "m/84'/0'/$i'"; + final xpub = await bitcoinLedgerApp.getXPubKey(device, derivationPath: derivationPath); + HDWallet hd = HDWallet.fromBase58(xpub).derive(0); + + final address = generateP2WPKHAddress(hd: hd, index: 0, network: BitcoinNetwork.mainnet); + + accounts.add(HardwareAccountData( + address: address, + accountIndex: i, + derivationPath: derivationPath, + masterFingerprint: masterFp, + xpub: xpub, + )); + } + + return accounts; + } +} diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 33401d6667..f96b0e4dad 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -1,8 +1,13 @@ import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:convert/convert.dart'; + import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; +import 'package:cw_bitcoin/psbt_transaction_builder.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:hive/hive.dart'; +import 'package:ledger_bitcoin/ledger_bitcoin.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; @@ -20,11 +25,12 @@ class BitcoinWallet = BitcoinWalletBase with _$BitcoinWallet; abstract class BitcoinWalletBase extends ElectrumWallet with Store { BitcoinWalletBase({ - required String mnemonic, required String password, required WalletInfo walletInfo, required Box unspentCoinsInfo, - required Uint8List seedBytes, + Uint8List? seedBytes, + String? mnemonic, + String? xpub, String? addressPageType, BasedUtxoNetwork? networkParam, List? initialAddresses, @@ -33,24 +39,26 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { Map? initialChangeAddressIndex, String? passphrase, }) : super( - mnemonic: mnemonic, - passphrase: passphrase, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - networkType: networkParam == null - ? bitcoin.bitcoin - : networkParam == BitcoinNetwork.mainnet - ? bitcoin.bitcoin - : bitcoin.testnet, - initialAddresses: initialAddresses, - initialBalance: initialBalance, - seedBytes: seedBytes, - currency: CryptoCurrency.btc) { + mnemonic: mnemonic, + passphrase: passphrase, + xpub: xpub, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + networkType: networkParam == null + ? bitcoin.bitcoin + : networkParam == BitcoinNetwork.mainnet + ? bitcoin.bitcoin + : bitcoin.testnet, + initialAddresses: initialAddresses, + initialBalance: initialBalance, + seedBytes: seedBytes, + currency: CryptoCurrency.btc) { // in a standard BIP44 wallet, mainHd derivation path = m/84'/0'/0'/0 (account 0, index unspecified here) // the sideHd derivation path = m/84'/0'/0'/1 (account 1, index unspecified here) - String derivationPath = walletInfo.derivationInfo!.derivationPath!; - String sideDerivationPath = derivationPath.substring(0, derivationPath.length - 1) + "1"; + // String derivationPath = walletInfo.derivationInfo!.derivationPath!; + // String sideDerivationPath = derivationPath.substring(0, derivationPath.length - 1) + "1"; + // final hd = bitcoin.HDWallet.fromSeed(seedBytes, network: networkType); walletAddresses = BitcoinWalletAddresses( walletInfo, electrumClient: electrumClient, @@ -58,7 +66,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath(sideDerivationPath), + sideHd: accountHD.derive(1), network: networkParam ?? network, ); autorun((_) { @@ -129,23 +137,26 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { walletInfo.derivationInfo!.derivationPath = snp.derivationPath ?? "m/0'/0"; walletInfo.derivationInfo!.derivationType = snp.derivationType ?? DerivationType.electrum; - late Uint8List seedBytes; + Uint8List? seedBytes = null; - switch (walletInfo.derivationInfo!.derivationType) { - case DerivationType.electrum: - seedBytes = await mnemonicToSeedBytes(snp.mnemonic); - break; - case DerivationType.bip39: - default: - seedBytes = await bip39.mnemonicToSeed( - snp.mnemonic, - passphrase: snp.passphrase ?? '', - ); - break; + if (snp.mnemonic != null) { + switch (walletInfo.derivationInfo!.derivationType) { + case DerivationType.electrum: + seedBytes = await mnemonicToSeedBytes(snp.mnemonic!); + break; + case DerivationType.bip39: + default: + seedBytes = await bip39.mnemonicToSeed( + snp.mnemonic!, + passphrase: snp.passphrase ?? '', + ); + break; + } } return BitcoinWallet( mnemonic: snp.mnemonic, + xpub: snp.xpub, password: password, passphrase: snp.passphrase, walletInfo: walletInfo, @@ -159,4 +170,49 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { networkParam: network, ); } + + Ledger? _ledger; + LedgerDevice? _ledgerDevice; + BitcoinLedgerApp? _bitcoinLedgerApp; + + void setLedger(Ledger setLedger, LedgerDevice setLedgerDevice) { + _ledger = setLedger; + _ledgerDevice = setLedgerDevice; + _bitcoinLedgerApp = BitcoinLedgerApp(_ledger!, derivationPath: walletInfo.derivationInfo!.derivationPath!); + } + + @override + Future buildHardwareWalletTransaction({ + required List outputs, + required BigInt fee, + required BasedUtxoNetwork network, + required List utxos, + required Map publicKeys, + String? memo, + bool enableRBF = false, + BitcoinOrdering inputOrdering = BitcoinOrdering.bip69, + BitcoinOrdering outputOrdering = BitcoinOrdering.bip69, + }) async { + final masterFingerprint = await _bitcoinLedgerApp!.getMasterFingerprint(_ledgerDevice!); + + final psbtReadyInputs = []; + for (final utxo in utxos) { + final rawTx = await electrumClient.getTransactionHex(hash: utxo.utxo.txHash); + final publicKeyAndDerivationPath = publicKeys[utxo.ownerDetails.address.pubKeyHash()]!; + + psbtReadyInputs.add(PSBTReadyUtxoWithAddress( + utxo: utxo.utxo, + rawTx: rawTx, + ownerDetails: utxo.ownerDetails, + ownerDerivationPath: publicKeyAndDerivationPath.derivationPath, + ownerMasterFingerprint: masterFingerprint, + ownerPublicKey: publicKeyAndDerivationPath.publicKey, + )); + } + + final psbt = PSBTTransactionBuild(inputs: psbtReadyInputs, outputs: outputs, enableRBF: enableRBF); + + final rawHex = await _bitcoinLedgerApp!.signPsbt(_ledgerDevice!, psbt: psbt.psbt); + return BtcTransaction.fromRaw(hex.encode(rawHex)); + } } diff --git a/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart b/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart index 981c7a4660..915d7cc103 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_creation_credentials.dart @@ -1,3 +1,4 @@ +import 'package:cw_core/hardware/hardware_account_data.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; @@ -36,9 +37,22 @@ class BitcoinRestoreWalletFromSeedCredentials extends WalletCredentials { } class BitcoinRestoreWalletFromWIFCredentials extends WalletCredentials { - BitcoinRestoreWalletFromWIFCredentials( - {required String name, required String password, required this.wif, WalletInfo? walletInfo}) - : super(name: name, password: password, walletInfo: walletInfo); + BitcoinRestoreWalletFromWIFCredentials({ + required String name, + required String password, + required this.wif, + WalletInfo? walletInfo, + }) : super(name: name, password: password, walletInfo: walletInfo); final String wif; } + +class BitcoinRestoreWalletFromHardware extends WalletCredentials { + BitcoinRestoreWalletFromHardware({ + required String name, + required this.hwAccountData, + WalletInfo? walletInfo, + }) : super(name: name, walletInfo: walletInfo); + + final HardwareAccountData hwAccountData; +} diff --git a/cw_bitcoin/lib/bitcoin_wallet_service.dart b/cw_bitcoin/lib/bitcoin_wallet_service.dart index e0548771b1..cf99324da7 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_service.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_service.dart @@ -14,8 +14,11 @@ import 'package:hive/hive.dart'; import 'package:collection/collection.dart'; import 'package:bip39/bip39.dart' as bip39; -class BitcoinWalletService extends WalletService { +class BitcoinWalletService extends WalletService< + BitcoinNewWalletCredentials, + BitcoinRestoreWalletFromSeedCredentials, + BitcoinRestoreWalletFromWIFCredentials, + BitcoinRestoreWalletFromHardware> { BitcoinWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -99,9 +102,28 @@ class BitcoinWalletService extends WalletService restoreFromHardwareWallet(BitcoinRestoreWalletFromHardware credentials, + {bool? isTestnet}) async { + + final network = isTestnet == true ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet; + credentials.walletInfo?.network = network.value; + credentials.walletInfo?.derivationInfo?.derivationPath = credentials.hwAccountData.derivationPath; + + final wallet = await BitcoinWallet(password: credentials.password!, + xpub: credentials.hwAccountData.xpub, + walletInfo: credentials.walletInfo!, + unspentCoinsInfo: unspentCoinsInfoSource, + networkParam: network, + ); + await wallet.save(); + await wallet.init(); + return wallet; + } + @override Future restoreFromKeys(BitcoinRestoreWalletFromWIFCredentials credentials, - {bool? isTestnet}) async => + {bool? isTestnet}) async => throw UnimplementedError(); @override diff --git a/cw_bitcoin/lib/electrum_derivations.dart b/cw_bitcoin/lib/electrum_derivations.dart index 631805c54d..19d444a412 100644 --- a/cw_bitcoin/lib/electrum_derivations.dart +++ b/cw_bitcoin/lib/electrum_derivations.dart @@ -4,7 +4,7 @@ Map> electrum_derivations = { DerivationType.electrum: [ DerivationInfo( derivationType: DerivationType.electrum, - derivationPath: "m/0'/0", + derivationPath: "m/0'", description: "Electrum", scriptType: "p2wpkh", ), diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 8342e4816f..783eb10d73 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -4,8 +4,8 @@ import 'dart:io'; import 'dart:math'; import 'package:bitcoin_base/bitcoin_base.dart'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin_base; +import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:collection/collection.dart'; import 'package:cw_bitcoin/address_from_output.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; @@ -37,9 +37,9 @@ import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; +import 'package:http/http.dart' as http; import 'package:mobx/mobx.dart'; import 'package:rxdart/subjects.dart'; -import 'package:http/http.dart' as http; part 'electrum_wallet.g.dart'; @@ -53,17 +53,16 @@ abstract class ElectrumWalletBase required WalletInfo walletInfo, required Box unspentCoinsInfo, required this.networkType, - required this.mnemonic, - required Uint8List seedBytes, + String? xpub, + String? mnemonic, + Uint8List? seedBytes, this.passphrase, List? initialAddresses, ElectrumClient? electrumClient, ElectrumBalance? initialBalance, CryptoCurrency? currency}) - : hd = currency == CryptoCurrency.bch - ? bitcoinCashHDWallet(seedBytes) - : bitcoin.HDWallet.fromSeed(seedBytes, network: networkType) - .derivePath(walletInfo.derivationInfo?.derivationPath ?? "m/0'/0"), + : accountHD = + getAccountHDWallet(currency, networkType, seedBytes, xpub, walletInfo.derivationInfo), syncStatus = NotConnectedSyncStatus(), _password = password, _feeRates = [], @@ -80,20 +79,44 @@ abstract class ElectrumWalletBase this.unspentCoinsInfo = unspentCoinsInfo, this.network = _getNetwork(networkType, currency), this.isTestnet = networkType == bitcoin.testnet, + this._mnemonic = mnemonic, super(walletInfo) { this.electrumClient = electrumClient ?? ElectrumClient(); this.walletInfo = walletInfo; transactionHistory = ElectrumTransactionHistory(walletInfo: walletInfo, password: password); } + static bitcoin.HDWallet getAccountHDWallet( + CryptoCurrency? currency, + bitcoin.NetworkType networkType, + Uint8List? seedBytes, + String? xpub, + DerivationInfo? derivationInfo) { + if (seedBytes == null && xpub == null) { + throw Exception( + "To create a Wallet you need either a seed or an xpub. This should not happen"); + } + + if (seedBytes != null) { + return currency == CryptoCurrency.bch + ? bitcoinCashHDWallet(seedBytes) + : bitcoin.HDWallet.fromSeed(seedBytes, network: networkType) + .derivePath(_hardenedDerivationPath(derivationInfo?.derivationPath ?? "m/0'")); + } + + return bitcoin.HDWallet.fromBase58(xpub!); + } + static bitcoin.HDWallet bitcoinCashHDWallet(Uint8List seedBytes) => - bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'/0"); + bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'"); static int estimatedTransactionSize(int inputsCount, int outputsCounts) => inputsCount * 68 + outputsCounts * 34 + 10; - final bitcoin.HDWallet hd; - final String mnemonic; + final bitcoin.HDWallet accountHD; + final String? _mnemonic; + + bitcoin.HDWallet get hd => accountHD.derive(0); final String? passphrase; @override @@ -123,10 +146,10 @@ abstract class ElectrumWalletBase .map((addr) => scriptHash(addr.address, network: network)) .toList(); - String get xpub => hd.base58!; + String get xpub => accountHD.base58!; @override - String get seed => mnemonic; + String? get seed => _mnemonic; bitcoin.NetworkType networkType; BasedUtxoNetwork network; @@ -203,7 +226,9 @@ abstract class ElectrumWalletBase int credentialsAmount = 0, }) async { final utxos = []; - List privateKeys = []; + final privateKeys = []; + final publicKeys = {}; + int allInputsAmount = 0; bool spendsUnconfirmedTX = false; @@ -217,12 +242,22 @@ abstract class ElectrumWalletBase allInputsAmount += utx.value; final address = addressTypeFromStr(utx.address, network); - final privkey = generateECPrivate( - hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, - index: utx.bitcoinAddressRecord.index, - network: network); + final hd = + utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd; + final derivationPath = + "${_hardenedDerivationPath(walletInfo.derivationInfo?.derivationPath ?? "m/0'")}" + "/${utx.bitcoinAddressRecord.isHidden ? "1" : "0"}" + "/${utx.bitcoinAddressRecord.index}"; + final pubKeyHex = hd.derive(utx.bitcoinAddressRecord.index).pubKey!; - privateKeys.add(privkey); + publicKeys[address.pubKeyHash()] = PublicKeyWithDerivationPath(pubKeyHex, derivationPath); + + if (!walletInfo.isHardwareWallet) { + final privkey = + generateECPrivate(hd: hd, index: utx.bitcoinAddressRecord.index, network: network); + + privateKeys.add(privkey); + } utxos.add( UtxoWithAddress( @@ -233,7 +268,7 @@ abstract class ElectrumWalletBase scriptType: _getScriptType(address), ), ownerDetails: UtxoAddressDetails( - publicKey: privkey.getPublic().toHex(), + publicKey: pubKeyHex, address: address, ), ), @@ -294,6 +329,7 @@ abstract class ElectrumWalletBase return EstimatedTxResult( utxos: utxos, privateKeys: privateKeys, + publicKeys: publicKeys, fee: fee, amount: amount, isSendAll: true, @@ -312,7 +348,9 @@ abstract class ElectrumWalletBase bool? useUnconfirmed, }) async { final utxos = []; - List privateKeys = []; + final privateKeys = []; + final publicKeys = {}; + int allInputsAmount = 0; bool spendsUnconfirmedTX = false; @@ -332,12 +370,23 @@ abstract class ElectrumWalletBase leftAmount = leftAmount - utx.value; final address = addressTypeFromStr(utx.address, network); - final privkey = generateECPrivate( - hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, - index: utx.bitcoinAddressRecord.index, - network: network); - privateKeys.add(privkey); + final hd = + utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd; + final derivationPath = + "${_hardenedDerivationPath(walletInfo.derivationInfo?.derivationPath ?? "m/0'")}" + "/${utx.bitcoinAddressRecord.isHidden ? "1" : "0"}" + "/${utx.bitcoinAddressRecord.index}"; + final pubKeyHex = hd.derive(utx.bitcoinAddressRecord.index).pubKey!; + + publicKeys[address.pubKeyHash()] = PublicKeyWithDerivationPath(pubKeyHex, derivationPath); + + if (!walletInfo.isHardwareWallet) { + final privkey = + generateECPrivate(hd: hd, index: utx.bitcoinAddressRecord.index, network: network); + + privateKeys.add(privkey); + } utxos.add( UtxoWithAddress( @@ -348,7 +397,7 @@ abstract class ElectrumWalletBase scriptType: _getScriptType(address), ), ownerDetails: UtxoAddressDetails( - publicKey: privkey.getPublic().toHex(), + publicKey: pubKeyHex, address: address, ), ), @@ -490,6 +539,7 @@ abstract class ElectrumWalletBase return EstimatedTxResult( utxos: utxos, privateKeys: privateKeys, + publicKeys: publicKeys, fee: fee, amount: amount, hasChange: true, @@ -557,6 +607,35 @@ abstract class ElectrumWalletBase ); } + if (walletInfo.isHardwareWallet) { + final transaction = await buildHardwareWalletTransaction( + utxos: estimatedTx.utxos, + outputs: outputs, + publicKeys: estimatedTx.publicKeys, + fee: BigInt.from(estimatedTx.fee), + network: network, + memo: estimatedTx.memo, + outputOrdering: BitcoinOrdering.none, + enableRBF: true, + ); + + return PendingBitcoinTransaction( + transaction, + type, + electrumClient: electrumClient, + amount: estimatedTx.amount, + fee: estimatedTx.fee, + feeRate: feeRateInt.toString(), + network: network, + hasChange: estimatedTx.hasChange, + isSendAll: estimatedTx.isSendAll, + hasTaprootInputs: false, // ToDo: (Konsti) Support Taproot + )..addListener((transaction) async { + transactionHistory.addOne(transaction); + await updateBalance(); + }); + } + BasedBitcoinTransacationBuilder txb; if (network is BitcoinCashNetwork) { txb = ForkedTransactionBuilder( @@ -618,8 +697,22 @@ abstract class ElectrumWalletBase } } + Future buildHardwareWalletTransaction({ + required List outputs, + required BigInt fee, + required BasedUtxoNetwork network, + required List utxos, + required Map publicKeys, + String? memo, + bool enableRBF = false, + BitcoinOrdering inputOrdering = BitcoinOrdering.bip69, + BitcoinOrdering outputOrdering = BitcoinOrdering.bip69, + }) async => + throw UnimplementedError(); + String toJSON() => json.encode({ - 'mnemonic': mnemonic, + 'mnemonic': _mnemonic, + 'xpub': xpub, 'passphrase': passphrase ?? '', 'account_index': walletAddresses.currentReceiveAddressIndexByType, 'change_address_index': walletAddresses.currentChangeAddressIndexByType, @@ -1263,7 +1356,7 @@ abstract class ElectrumWalletBase void setExceptionHandler(void Function(FlutterErrorDetails) onError) => _onError = onError; @override - String signMessage(String message, {String? address = null}) { + Future signMessage(String message, {String? address = null}) async { final index = address != null ? walletAddresses.allAddresses.firstWhere((element) => element.address == address).index : null; @@ -1286,6 +1379,9 @@ abstract class ElectrumWalletBase return BitcoinNetwork.mainnet; } + + static String _hardenedDerivationPath(String derivationPath) => + derivationPath.substring(0, derivationPath.lastIndexOf("'") + 1); } class EstimateTxParams { @@ -1307,6 +1403,7 @@ class EstimatedTxResult { EstimatedTxResult({ required this.utxos, required this.privateKeys, + required this.publicKeys, required this.fee, required this.amount, required this.hasChange, @@ -1317,6 +1414,7 @@ class EstimatedTxResult { final List utxos; final List privateKeys; + final Map publicKeys; // PubKey to derivationPath final int fee; final int amount; final bool hasChange; @@ -1325,6 +1423,13 @@ class EstimatedTxResult { final bool spendsUnconfirmedTX; } +class PublicKeyWithDerivationPath { + const PublicKeyWithDerivationPath(this.publicKey, this.derivationPath); + + final String derivationPath; + final String publicKey; +} + BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { if (network is BitcoinCashNetwork) { if (!address.startsWith("bitcoincash:") && diff --git a/cw_bitcoin/lib/electrum_wallet_snapshot.dart b/cw_bitcoin/lib/electrum_wallet_snapshot.dart index 218792e3c8..340b17cfb9 100644 --- a/cw_bitcoin/lib/electrum_wallet_snapshot.dart +++ b/cw_bitcoin/lib/electrum_wallet_snapshot.dart @@ -13,6 +13,7 @@ class ElectrumWalletSnapshot { required this.type, required this.password, required this.mnemonic, + required this.xpub, required this.addresses, required this.balance, required this.regularAddressIndex, @@ -28,7 +29,8 @@ class ElectrumWalletSnapshot { final WalletType type; final String? addressPageType; - String mnemonic; + String? mnemonic; + String? xpub; List addresses; ElectrumBalance balance; Map regularAddressIndex; @@ -43,7 +45,8 @@ class ElectrumWalletSnapshot { final jsonSource = await read(path: path, password: password); final data = json.decode(jsonSource) as Map; final addressesTmp = data['addresses'] as List? ?? []; - final mnemonic = data['mnemonic'] as String; + final mnemonic = data['mnemonic'] as String?; + final xpub = data['xpub'] as String?; final passphrase = data['passphrase'] as String? ?? ''; final addresses = addressesTmp .whereType() @@ -79,6 +82,7 @@ class ElectrumWalletSnapshot { password: password, passphrase: passphrase, mnemonic: mnemonic, + xpub: xpub, addresses: addresses, balance: balance, regularAddressIndex: regularAddressIndexByType, diff --git a/cw_bitcoin/lib/litecoin_wallet.dart b/cw_bitcoin/lib/litecoin_wallet.dart index 4d166e47b6..2ffb994052 100644 --- a/cw_bitcoin/lib/litecoin_wallet.dart +++ b/cw_bitcoin/lib/litecoin_wallet.dart @@ -50,7 +50,7 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath("m/0'/1"), + sideHd: accountHD.derive(1), network: network, ); autorun((_) { @@ -106,13 +106,13 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, LitecoinNetwork.mainnet); return LitecoinWallet( - mnemonic: snp.mnemonic, + mnemonic: snp.mnemonic!, password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, initialAddresses: snp.addresses, initialBalance: snp.balance, - seedBytes: await mnemonicToSeedBytes(snp.mnemonic), + seedBytes: await mnemonicToSeedBytes(snp.mnemonic!), initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, addressPageType: snp.addressPageType, diff --git a/cw_bitcoin/lib/litecoin_wallet_service.dart b/cw_bitcoin/lib/litecoin_wallet_service.dart index 9143556ab9..bb51a4eaa0 100644 --- a/cw_bitcoin/lib/litecoin_wallet_service.dart +++ b/cw_bitcoin/lib/litecoin_wallet_service.dart @@ -16,7 +16,7 @@ import 'package:bip39/bip39.dart' as bip39; class LitecoinWalletService extends WalletService< BitcoinNewWalletCredentials, BitcoinRestoreWalletFromSeedCredentials, - BitcoinRestoreWalletFromWIFCredentials> { + BitcoinRestoreWalletFromWIFCredentials,BitcoinNewWalletCredentials> { LitecoinWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -94,6 +94,11 @@ class LitecoinWalletService extends WalletService< await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); } + @override + Future restoreFromHardwareWallet(BitcoinNewWalletCredentials credentials) { + throw UnimplementedError("Restoring a Litecoin wallet from a hardware wallet is not yet supported!"); + } + @override Future restoreFromKeys( BitcoinRestoreWalletFromWIFCredentials credentials, {bool? isTestnet}) async => diff --git a/cw_bitcoin/lib/psbt_transaction_builder.dart b/cw_bitcoin/lib/psbt_transaction_builder.dart new file mode 100644 index 0000000000..d8d2c9fac8 --- /dev/null +++ b/cw_bitcoin/lib/psbt_transaction_builder.dart @@ -0,0 +1,96 @@ +import 'dart:typed_data'; + +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:convert/convert.dart'; +import 'package:ledger_bitcoin/psbt.dart'; + +class PSBTTransactionBuild { + final PsbtV2 psbt = PsbtV2(); + + PSBTTransactionBuild( + {required List inputs, required List outputs, bool enableRBF = true}) { + psbt.setGlobalTxVersion(2); + psbt.setGlobalInputCount(inputs.length); + psbt.setGlobalOutputCount(outputs.length); + + for (var i = 0; i < inputs.length; i++) { + final input = inputs[i]; + + print(input.utxo.isP2tr()); + print(input.utxo.isSegwit()); + print(input.utxo.isP2shSegwit()); + + psbt.setInputPreviousTxId(i, Uint8List.fromList(hex.decode(input.utxo.txHash).reversed.toList())); + psbt.setInputOutputIndex(i, input.utxo.vout); + psbt.setInputSequence(i, enableRBF ? 0x1 : 0xffffffff); + + + if (input.utxo.isSegwit()) { + setInputSegwit(i, input); + } else if (input.utxo.isP2shSegwit()) { + setInputP2shSegwit(i, input); + } else if (input.utxo.isP2tr()) { + // ToDo: (Konsti) Handle Taproot Inputs + } else { + setInputP2pkh(i, input); + } + } + + for (var i = 0; i < outputs.length; i++) { + final output = outputs[i]; + + if (output is BitcoinOutput) { + psbt.setOutputScript(i, Uint8List.fromList(output.address.toScriptPubKey().toBytes())); + psbt.setOutputAmount(i, output.value.toInt()); + } + } + } + + void setInputP2pkh(int i, PSBTReadyUtxoWithAddress input) { + psbt.setInputNonWitnessUtxo(i, Uint8List.fromList(hex.decode(input.rawTx))); + psbt.setInputBip32Derivation( + i, + Uint8List.fromList(hex.decode(input.ownerPublicKey)), + input.ownerMasterFingerprint, + BIPPath.fromString(input.ownerDerivationPath).toPathArray()); + } + + void setInputSegwit(int i, PSBTReadyUtxoWithAddress input) { + psbt.setInputNonWitnessUtxo(i, Uint8List.fromList(hex.decode(input.rawTx))); + psbt.setInputBip32Derivation( + i, + Uint8List.fromList(hex.decode(input.ownerPublicKey)), + input.ownerMasterFingerprint, + BIPPath.fromString(input.ownerDerivationPath).toPathArray()); + + psbt.setInputWitnessUtxo(i, Uint8List.fromList(bigIntToUint64LE(input.utxo.value)), + Uint8List.fromList(input.ownerDetails.address.toScriptPubKey().toBytes())); + } + + void setInputP2shSegwit(int i, PSBTReadyUtxoWithAddress input) { + psbt.setInputNonWitnessUtxo(i, Uint8List.fromList(hex.decode(input.rawTx))); + psbt.setInputBip32Derivation(i, Uint8List.fromList(hex.decode(input.ownerPublicKey)), + input.ownerMasterFingerprint, BIPPath.fromString(input.ownerDerivationPath).toPathArray()); + + psbt.setInputRedeemScript( + i, Uint8List.fromList(input.ownerDetails.address.toScriptPubKey().toBytes())); + psbt.setInputWitnessUtxo(i, Uint8List.fromList(bigIntToUint64LE(input.utxo.value)), + Uint8List.fromList(input.ownerDetails.address.toScriptPubKey().toBytes())); + } +} + +class PSBTReadyUtxoWithAddress extends UtxoWithAddress { + final String rawTx; + final String ownerDerivationPath; + final Uint8List ownerMasterFingerprint; + final String ownerPublicKey; + + PSBTReadyUtxoWithAddress({ + required super.utxo, + required this.rawTx, + required super.ownerDetails, + required this.ownerDerivationPath, + required this.ownerMasterFingerprint, + required this.ownerPublicKey, + }); +} diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 86d58b9b15..a398a11e0b 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -260,6 +260,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.4" + dart_varuint_bitcoin: + dependency: transitive + description: + name: dart_varuint_bitcoin + sha256: "4f0ccc9733fb54148b9d3688eea822b7aaabf5cc00025998f8c09a1d45b31b4b" + url: "https://pub.dev" + source: hosted + version: "1.0.3" encrypt: dependency: transitive description: @@ -313,6 +321,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.1+1" + flutter_reactive_ble: + dependency: transitive + description: + name: flutter_reactive_ble + sha256: "247e2efa76de203d1ba11335c13754b5b9d0504b5423e5b0c93a600f016b24e0" + url: "https://pub.dev" + source: hosted + version: "5.3.1" flutter_test: dependency: "direct dev" description: flutter @@ -326,6 +342,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + functional_data: + dependency: transitive + description: + name: functional_data + sha256: aefdec4365452283b2a7cf420a3169654d51d3e9553069a22d76680d7a9d7c3d + url: "https://pub.dev" + source: hosted + version: "1.1.1" glob: dependency: transitive description: @@ -422,6 +446,31 @@ packages: url: "https://pub.dev" source: hosted version: "4.8.1" + ledger_bitcoin: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: b6ed573cbeb57d5f0d39dfe4254bf9d15b620ab6 + url: "https://github.com/cake-tech/ledger-bitcoin.git" + source: git + version: "0.0.1" + ledger_flutter: + dependency: "direct main" + description: + name: ledger_flutter + sha256: f1680060ed6ff78f275837e0024ccaf667715a59ba7aa29fa7354bc7752e71c8 + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ledger_usb: + dependency: transitive + description: + name: ledger_usb + sha256: "52c92d03a4cffe06c82921c8e2f79f3cdad6e1cf78e1e9ca35444196ff8f14c2" + url: "https://pub.dev" + source: hosted + version: "1.0.0" logging: dependency: transitive description: @@ -582,6 +631,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "01dd9bd0fa02548bf2ceee13545d4a0ec6046459d847b6b061d8a27237108a08" + url: "https://pub.dev" + source: hosted + version: "2.1.0" provider: dependency: transitive description: @@ -606,6 +663,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.3" + reactive_ble_mobile: + dependency: transitive + description: + name: reactive_ble_mobile + sha256: "9ec2b4c9c725e439950838d551579750060258fbccd5536d0543b4d07d225798" + url: "https://pub.dev" + source: hosted + version: "5.3.1" + reactive_ble_platform_interface: + dependency: transitive + description: + name: reactive_ble_platform_interface + sha256: "632c92401a2d69c9b94bd48f8fd47488a7013f3d1f9b291884350291a4a81813" + url: "https://pub.dev" + source: hosted + version: "5.3.1" rxdart: dependency: "direct main" description: @@ -788,5 +861,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.0.6 <4.0.0" flutter: ">=3.10.0" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 632a3140a6..9adf77652d 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -35,6 +35,10 @@ dependencies: url: https://github.com/cake-tech/bitcoin_base.git ref: cake-update-v2 blockchain_utils: ^2.1.1 + ledger_flutter: ^1.0.1 + ledger_bitcoin: + git: + url: https://github.com/cake-tech/ledger-bitcoin.git dev_dependencies: flutter_test: diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index 1f04e56242..d58144f1ea 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -51,7 +51,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'/1"), + sideHd: accountHD.derive(1), network: network, initialAddressPageType: addressPageType, ); @@ -93,7 +93,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { final snp = await ElectrumWalletSnapshot.load( name, walletInfo.type, password, BitcoinCashNetwork.mainnet); return BitcoinCashWallet( - mnemonic: snp.mnemonic, + mnemonic: snp.mnemonic!, password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, @@ -118,7 +118,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { } }).toList(), initialBalance: snp.balance, - seedBytes: await Mnemonic.toSeed(snp.mnemonic), + seedBytes: await Mnemonic.toSeed(snp.mnemonic!), initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, addressPageType: P2pkhAddressType.p2pkh, @@ -166,7 +166,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { } @override - String signMessage(String message, {String? address = null}) { + Future signMessage(String message, {String? address = null}) async { final index = address != null ? walletAddresses.allAddresses .firstWhere((element) => element.address == AddressUtils.toLegacyAddress(address)) diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart index df8e841f8d..e6c0cad07d 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart @@ -12,7 +12,7 @@ import 'package:collection/collection.dart'; import 'package:hive/hive.dart'; class BitcoinCashWalletService extends WalletService { + BitcoinCashRestoreWalletFromSeedCredentials, BitcoinCashRestoreWalletFromWIFCredentials, BitcoinCashNewWalletCredentials> { BitcoinCashWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -93,6 +93,11 @@ class BitcoinCashWalletService extends WalletService restoreFromHardwareWallet(BitcoinCashNewWalletCredentials credentials) { + throw UnimplementedError("Restoring a Bitcoin Cash wallet from a hardware wallet is not yet supported!"); + } + @override Future restoreFromKeys(credentials, {bool? isTestnet}) { // TODO: implement restoreFromKeys diff --git a/cw_core/lib/hardware/device_connection_type.dart b/cw_core/lib/hardware/device_connection_type.dart new file mode 100644 index 0000000000..99fd5b1f0e --- /dev/null +++ b/cw_core/lib/hardware/device_connection_type.dart @@ -0,0 +1,28 @@ +import 'package:cw_core/wallet_type.dart'; + +enum DeviceConnectionType { + usb, + ble; + + static List supportedConnectionTypes(WalletType walletType, + [bool isIOS = false]) { + switch (walletType) { + case WalletType.bitcoin: + case WalletType.ethereum: + case WalletType.polygon: + if (isIOS) return [DeviceConnectionType.ble]; + return [DeviceConnectionType.ble, DeviceConnectionType.usb]; + default: + return []; + } + } + + String get iconString { + switch (this) { + case ble: + return 'assets/images/bluetooth.png'; + case usb: + return 'assets/images/usb.png'; + } + } +} diff --git a/cw_core/lib/hardware/device_not_connected_exception.dart b/cw_core/lib/hardware/device_not_connected_exception.dart new file mode 100644 index 0000000000..bc2a1b095d --- /dev/null +++ b/cw_core/lib/hardware/device_not_connected_exception.dart @@ -0,0 +1,7 @@ +class DeviceNotConnectedException implements Exception { + final String message; + + DeviceNotConnectedException({ + this.message = '', + }); +} diff --git a/cw_core/lib/hardware/hardware_account_data.dart b/cw_core/lib/hardware/hardware_account_data.dart new file mode 100644 index 0000000000..a9562f8beb --- /dev/null +++ b/cw_core/lib/hardware/hardware_account_data.dart @@ -0,0 +1,19 @@ +import 'dart:typed_data'; + +class HardwareAccountData { + HardwareAccountData({ + required this.address, + required this.accountIndex, + required this.derivationPath, + this.xpub, + this.masterFingerprint, + }); + + final String address; + final int accountIndex; + final String derivationPath; + + // Bitcoin Specific + final Uint8List? masterFingerprint; + final String? xpub; +} diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index e3332a0435..4da616a79c 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -17,3 +17,4 @@ const DERIVATION_TYPE_TYPE_ID = 15; const SPL_TOKEN_TYPE_ID = 16; const DERIVATION_INFO_TYPE_ID = 17; const TRON_TOKEN_TYPE_ID = 18; +const HARDWARE_WALLET_TYPE_TYPE_ID = 19; diff --git a/cw_core/lib/wallet_base.dart b/cw_core/lib/wallet_base.dart index 037a26d381..709462fa13 100644 --- a/cw_core/lib/wallet_base.dart +++ b/cw_core/lib/wallet_base.dart @@ -56,6 +56,8 @@ abstract class WalletBase false; + bool get isHardwareWallet => walletInfo.isHardwareWallet; + Future connectToNode({required Node node}); // there is a default definition here because only coins with a pow node (nano based) need to override this @@ -88,7 +90,7 @@ abstract class WalletBase renameWalletFiles(String newWalletName); - String signMessage(String message, {String? address = null}) => throw UnimplementedError(); + Future signMessage(String message, {String? address = null}) => throw UnimplementedError(); bool? isTestnet; } diff --git a/cw_core/lib/wallet_credentials.dart b/cw_core/lib/wallet_credentials.dart index 9b28680f96..30ae2546c6 100644 --- a/cw_core/lib/wallet_credentials.dart +++ b/cw_core/lib/wallet_credentials.dart @@ -9,6 +9,7 @@ abstract class WalletCredentials { this.password, this.passphrase, this.derivationInfo, + this.hardwareWalletType, }) { if (this.walletInfo != null && derivationInfo != null) { this.walletInfo!.derivationInfo = derivationInfo; @@ -22,4 +23,5 @@ abstract class WalletCredentials { String? passphrase; WalletInfo? walletInfo; DerivationInfo? derivationInfo; + HardwareWalletType? hardwareWalletType; } diff --git a/cw_core/lib/wallet_info.dart b/cw_core/lib/wallet_info.dart index 2768fdc6e2..57cdad81b0 100644 --- a/cw_core/lib/wallet_info.dart +++ b/cw_core/lib/wallet_info.dart @@ -1,4 +1,5 @@ import 'dart:async'; + import 'package:cw_core/address_info.dart'; import 'package:cw_core/hive_type_ids.dart'; import 'package:cw_core/wallet_type.dart'; @@ -20,6 +21,12 @@ enum DerivationType { electrum, } +@HiveType(typeId: HARDWARE_WALLET_TYPE_TYPE_ID) +enum HardwareWalletType { + @HiveField(0) + ledger, +} + @HiveType(typeId: DerivationInfo.typeId) class DerivationInfo extends HiveObject { DerivationInfo({ @@ -40,7 +47,7 @@ class DerivationInfo extends HiveObject { @HiveField(1, defaultValue: '') String balance; - @HiveField(2) + @HiveField(2, defaultValue: 0) int transactionsCount; @HiveField(3) @@ -71,8 +78,9 @@ class WalletInfo extends HiveObject { this.yatEid, this.yatLastUsedAddressRaw, this.showIntroCakePayCard, - this.derivationInfo) - : _yatLastUsedAddressController = StreamController.broadcast(); + this.derivationInfo, + this.hardwareWalletType, + ): _yatLastUsedAddressController = StreamController.broadcast(); factory WalletInfo.external({ required String id, @@ -88,6 +96,7 @@ class WalletInfo extends HiveObject { String yatEid = '', String yatLastUsedAddressRaw = '', DerivationInfo? derivationInfo, + HardwareWalletType? hardwareWalletType, }) { return WalletInfo( id, @@ -103,6 +112,7 @@ class WalletInfo extends HiveObject { yatLastUsedAddressRaw, showIntroCakePayCard, derivationInfo, + hardwareWalletType, ); } @@ -171,6 +181,9 @@ class WalletInfo extends HiveObject { @HiveField(20) DerivationInfo? derivationInfo; + @HiveField(21) + HardwareWalletType? hardwareWalletType; + String get yatLastUsedAddress => yatLastUsedAddressRaw ?? ''; set yatLastUsedAddress(String address) { @@ -187,6 +200,8 @@ class WalletInfo extends HiveObject { return showIntroCakePayCard!; } + bool get isHardwareWallet => hardwareWalletType != null; + DateTime get date => DateTime.fromMillisecondsSinceEpoch(timestamp); Stream get yatLastUsedAddressStream => _yatLastUsedAddressController.stream; diff --git a/cw_core/lib/wallet_service.dart b/cw_core/lib/wallet_service.dart index 22981b9db1..fcbd59ff3d 100644 --- a/cw_core/lib/wallet_service.dart +++ b/cw_core/lib/wallet_service.dart @@ -6,11 +6,13 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_type.dart'; abstract class WalletService { + RFK extends WalletCredentials, RFH extends WalletCredentials> { WalletType getType(); Future create(N credentials, {bool? isTestnet}); + Future restoreFromHardwareWallet(RFH credentials); + Future restoreFromSeed(RFS credentials, {bool? isTestnet}); Future restoreFromKeys(RFK credentials, {bool? isTestnet}); diff --git a/cw_ethereum/lib/ethereum_wallet_service.dart b/cw_ethereum/lib/ethereum_wallet_service.dart index 53c8bfea95..c0d3df2d6e 100644 --- a/cw_ethereum/lib/ethereum_wallet_service.dart +++ b/cw_ethereum/lib/ethereum_wallet_service.dart @@ -1,11 +1,12 @@ +import 'package:bip39/bip39.dart' as bip39; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_ethereum/ethereum_client.dart'; import 'package:cw_ethereum/ethereum_mnemonics_exception.dart'; import 'package:cw_ethereum/ethereum_wallet.dart'; import 'package:cw_evm/evm_chain_wallet_creation_credentials.dart'; import 'package:cw_evm/evm_chain_wallet_service.dart'; -import 'package:bip39/bip39.dart' as bip39; class EthereumWalletService extends EVMChainWalletService { EthereumWalletService(super.walletInfoSource, {required this.client}); @@ -82,6 +83,29 @@ class EthereumWalletService extends EVMChainWalletService { await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); } + @override + Future restoreFromHardwareWallet( + EVMChainRestoreWalletFromHardware credentials) async { + credentials.walletInfo!.derivationInfo = DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/44'/60'/${credentials.hwAccountData.accountIndex}'/0/0" + ); + credentials.walletInfo!.hardwareWalletType = credentials.hardwareWalletType; + credentials.walletInfo!.address = credentials.hwAccountData.address; + + final wallet = EthereumWallet( + walletInfo: credentials.walletInfo!, + password: credentials.password!, + client: client, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + @override Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials, {bool? isTestnet}) async { diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 649ec574b0..5f78fba3d8 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -19,6 +19,12 @@ dependencies: path: ../cw_evm hive: ^2.2.3 +dependency_overrides: + web3dart: + git: + url: https://github.com/cake-tech/web3dart.git + ref: cake + dev_dependencies: flutter_test: sdk: flutter diff --git a/cw_evm/lib/contract/erc20.dart b/cw_evm/lib/contract/erc20.dart new file mode 100644 index 0000000000..297b77e712 --- /dev/null +++ b/cw_evm/lib/contract/erc20.dart @@ -0,0 +1,209 @@ +import 'dart:typed_data'; + +import 'package:web3dart/web3dart.dart' as web3; + +final _contractAbi = web3.ContractAbi.fromJson( + '[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]', + 'Erc20'); + +/// Interface of the ERC20 standard as defined in the EIP. +class ERC20 extends web3.GeneratedContract { + /// Constructor. + ERC20({ + required web3.EthereumAddress address, + required web3.Web3Client client, + int? chainId, + }) : super(web3.DeployedContract(_contractAbi, address), client, chainId); + + /// Returns the remaining number of tokens that [spender] will be allowed to spend on behalf of [owner] through [transferFrom]. This is zero by default. This value changes when [approve] or [transferFrom] are called. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future allowance( + web3.EthereumAddress owner, + web3.EthereumAddress spender, { + web3.BlockNum? atBlock, + }) async { + final function = self.abi.functions[0]; + assert(checkSignature(function, 'dd62ed3e')); + final params = [owner, spender]; + final response = await read(function, params, atBlock); + return (response[0] as BigInt); + } + + /// Sets [amount] as the allowance of [spender] over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an [Approval] event. + /// + /// The optional [transaction] parameter can be used to override parameters + /// like the gas price, nonce and max gas. The `data` and `to` fields will be + /// set by the contract. + Future approve( + web3.EthereumAddress spender, + BigInt amount, { + required web3.Credentials credentials, + web3.Transaction? transaction, + }) async { + final function = self.abi.functions[1]; + assert(checkSignature(function, '095ea7b3')); + final params = [spender, amount]; + return writeRaw(credentials, transaction, function, params); + } + + /// Returns the amount of tokens owned by [account]. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future balanceOf( + web3.EthereumAddress account, { + web3.BlockNum? atBlock, + }) async { + final function = self.abi.functions[2]; + assert(checkSignature(function, '70a08231')); + final params = [account]; + final response = await read(function, params, atBlock); + return (response[0] as BigInt); + } + + /// Returns the decimal precision of the token. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future decimals({web3.BlockNum? atBlock}) async { + final function = self.abi.functions[3]; + assert(checkSignature(function, '313ce567')); + final params = []; + final response = await read(function, params, atBlock); + return (response[0] as BigInt); + } + + /// Returns the name of the token. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future name({web3.BlockNum? atBlock}) async { + final function = self.abi.functions[4]; + assert(checkSignature(function, '06fdde03')); + final params = []; + final response = await read(function, params, atBlock); + return (response[0] as String); + } + + /// Returns the symbol of the token. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future symbol({web3.BlockNum? atBlock}) async { + final function = self.abi.functions[5]; + assert(checkSignature(function, '95d89b41')); + final params = []; + final response = await read(function, params, atBlock); + return (response[0] as String); + } + + /// Returns the amount of tokens in existence. + /// + /// The optional [atBlock] parameter can be used to view historical data. When + /// set, the function will be evaluated in the specified block. By default, the + /// latest on-chain block will be used. + Future totalSupply({web3.BlockNum? atBlock}) async { + final function = self.abi.functions[6]; + assert(checkSignature(function, '18160ddd')); + final params = []; + final response = await read(function, params, atBlock); + return (response[0] as BigInt); + } + + /// Moves [amount] tokens from the caller's account to [recipient]. Returns a boolean value indicating whether the operation succeeded. Emits a [Transfer] event. + /// + /// The optional [transaction] parameter can be used to override parameters + /// like the gas price, nonce and max gas. The `data` and `to` fields will be + /// set by the contract. + Future transfer( + web3.EthereumAddress recipient, + BigInt amount, { + required web3.Credentials credentials, + web3.Transaction? transaction, + }) async { + final function = self.abi.functions[7]; + assert(checkSignature(function, 'a9059cbb')); + final params = [recipient, amount]; + return writeRaw(credentials, transaction, function, params); + } + + /// Moves [amount] tokens from [sender] to [recipient] using the allowance mechanism. [amount] is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a [Transfer] event. + /// + /// The optional [transaction] parameter can be used to override parameters + /// like the gas price, nonce and max gas. The `data` and `to` fields will be + /// set by the contract. + Future transferFrom(web3.EthereumAddress sender, + web3.EthereumAddress recipient, BigInt amount, + {required web3.Credentials credentials, + web3.Transaction? transaction}) async { + final function = self.abi.functions[8]; + assert(checkSignature(function, '23b872dd')); + final params = [sender, recipient, amount]; + return writeRaw(credentials, transaction, function, params); + } + + /// Returns a live stream of all Approval events emitted by this contract. + Stream approvalEvents( + {web3.BlockNum? fromBlock, web3.BlockNum? toBlock}) { + final event = self.event('Approval'); + final filter = web3.FilterOptions.events( + contract: self, event: event, fromBlock: fromBlock, toBlock: toBlock); + return client.events(filter).map((web3.FilterEvent result) { + final decoded = event.decodeResults(result.topics!, result.data!); + return Approval._(decoded); + }); + } + + /// Returns a live stream of all Transfer events emitted by this contract. + Stream transferEvents( + {web3.BlockNum? fromBlock, web3.BlockNum? toBlock}) { + final event = self.event('Transfer'); + final filter = web3.FilterOptions.events( + contract: self, event: event, fromBlock: fromBlock, toBlock: toBlock); + return client.events(filter).map((web3.FilterEvent result) { + final decoded = event.decodeResults(result.topics!, result.data!); + return Transfer._(decoded); + }); + } +} + +/// Emitted when the allowance of a [spender] for an [owner] is set by a call to [ERC20.approve]. [value] is the new allowance. +class Approval { + Approval._(List response) + : owner = (response[0] as web3.EthereumAddress), + spender = (response[1] as web3.EthereumAddress), + value = (response[2] as BigInt); + + /// The owner address. + final web3.EthereumAddress owner; + + /// The spender address. + final web3.EthereumAddress spender; + + /// Value. + final BigInt value; +} + +/// Emitted when [value] tokens are moved from one account ([from]) to another ([to]). Note that [value] may be zero. +class Transfer { + Transfer._(List response) + : from = (response[0] as web3.EthereumAddress), + to = (response[1] as web3.EthereumAddress), + value = (response[2] as BigInt); + + /// From address. + final web3.EthereumAddress from; + + /// To address. + final web3.EthereumAddress to; + + /// Value. + final BigInt value; +} diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index 8f0df3926b..2185936ea9 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -2,21 +2,20 @@ import 'dart:async'; import 'dart:convert'; import 'dart:developer'; -import 'package:cw_core/node.dart'; -import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/crypto_currency.dart'; - -import 'package:cw_evm/evm_erc20_balance.dart'; +import 'package:cw_core/erc20_token.dart'; +import 'package:cw_core/node.dart'; import 'package:cw_evm/evm_chain_transaction_model.dart'; -import 'package:cw_evm/pending_evm_chain_transaction.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; +import 'package:cw_evm/evm_erc20_balance.dart'; +import 'package:cw_evm/pending_evm_chain_transaction.dart'; import 'package:cw_evm/.secrets.g.dart' as secrets; import 'package:flutter/services.dart'; - +import 'package:hex/hex.dart' as hex; import 'package:http/http.dart'; -import 'package:erc20/erc20.dart'; import 'package:web3dart/web3dart.dart'; -import 'package:hex/hex.dart' as hex; + +import 'contract/erc20.dart'; abstract class EVMChainClient { final httpClient = Client(); @@ -82,7 +81,7 @@ abstract class EVMChainClient { } Future signTransaction({ - required EthPrivateKey privateKey, + required Credentials privateKey, required String toAddress, required BigInt amount, required int gas, @@ -96,8 +95,7 @@ abstract class EVMChainClient { currency == CryptoCurrency.maticpoly || contractAddress != null); - bool isEVMCompatibleChain = - currency == CryptoCurrency.eth || currency == CryptoCurrency.maticpoly; + bool isNativeToken = currency == CryptoCurrency.eth || currency == CryptoCurrency.maticpoly; final price = _client!.getGasPrice(); @@ -105,17 +103,16 @@ abstract class EVMChainClient { from: privateKey.address, to: EthereumAddress.fromHex(toAddress), maxPriorityFeePerGas: EtherAmount.fromInt(EtherUnit.gwei, priority.tip), - amount: isEVMCompatibleChain ? EtherAmount.inWei(amount) : EtherAmount.zero(), + amount: isNativeToken ? EtherAmount.inWei(amount) : EtherAmount.zero(), data: data != null ? hexToBytes(data) : null, ); - final signedTransaction = - await _client!.signTransaction(privateKey, transaction, chainId: chainId); + Uint8List signedTransaction; final Function _sendTransaction; - if (isEVMCompatibleChain) { - _sendTransaction = () async => await sendTransaction(signedTransaction); + if (isNativeToken) { + signedTransaction = await _client!.signTransaction(privateKey, transaction, chainId: chainId); } else { final erc20 = ERC20( client: _client!, @@ -123,16 +120,17 @@ abstract class EVMChainClient { chainId: chainId, ); - _sendTransaction = () async { - await erc20.transfer( - EthereumAddress.fromHex(toAddress), - amount, - credentials: privateKey, - transaction: transaction, - ); - }; + signedTransaction = await erc20.transfer( + EthereumAddress.fromHex(toAddress), + amount, + credentials: privateKey, + transaction: transaction, + ); } + _sendTransaction = () async => await sendTransaction(signedTransaction); + + return PendingEVMChainTransaction( signedTransaction: signedTransaction, amount: amount.toString(), @@ -158,8 +156,9 @@ abstract class EVMChainClient { ); } - Future sendTransaction(Uint8List signedTransaction) async => - await _client!.sendRawTransaction(prepareSignedTransactionForSending(signedTransaction)); + Future sendTransaction(Uint8List signedTransaction) async { + return await _client!.sendRawTransaction(prepareSignedTransactionForSending(signedTransaction)); + } Future getTransactionDetails(String transactionHash) async { // Wait for the transaction receipt to become available diff --git a/cw_evm/lib/evm_chain_exceptions.dart b/cw_evm/lib/evm_chain_exceptions.dart index 8aa371b198..d0f300270e 100644 --- a/cw_evm/lib/evm_chain_exceptions.dart +++ b/cw_evm/lib/evm_chain_exceptions.dart @@ -6,6 +6,8 @@ class EVMChainTransactionCreationException implements Exception { EVMChainTransactionCreationException(CryptoCurrency currency) : exceptionMessage = 'Wrong balance. Not enough ${currency.title} on your balance.'; + EVMChainTransactionCreationException.fromMessage(this.exceptionMessage); + @override String toString() => exceptionMessage; } diff --git a/cw_evm/lib/evm_chain_hardware_wallet_service.dart b/cw_evm/lib/evm_chain_hardware_wallet_service.dart new file mode 100644 index 0000000000..6f0d11f2e5 --- /dev/null +++ b/cw_evm/lib/evm_chain_hardware_wallet_service.dart @@ -0,0 +1,35 @@ +import 'dart:async'; + +import 'package:cw_core/hardware/hardware_account_data.dart'; +import 'package:ledger_ethereum/ledger_ethereum.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; + +class EVMChainHardwareWalletService { + EVMChainHardwareWalletService(this.ledger, this.device); + + final Ledger ledger; + final LedgerDevice device; + + Future> getAvailableAccounts({int index = 0, int limit = 5}) async { + final ethereumLedgerApp = EthereumLedgerApp(ledger); + + final version = await ethereumLedgerApp.getVersion(device); + + final accounts = []; + final indexRange = List.generate(limit, (i) => i + index); + + for (final i in indexRange) { + final derivationPath = "m/44'/60'/$i'/0/0"; + final address = + await ethereumLedgerApp.getAccounts(device, accountsDerivationPath: derivationPath); + + accounts.add(HardwareAccountData( + address: address.first, + accountIndex: i, + derivationPath: derivationPath, + )); + } + + return accounts; + } +} diff --git a/cw_evm/lib/evm_chain_transaction_credentials.dart b/cw_evm/lib/evm_chain_transaction_credentials.dart index 5b5bdf1700..02927cb4df 100644 --- a/cw_evm/lib/evm_chain_transaction_credentials.dart +++ b/cw_evm/lib/evm_chain_transaction_credentials.dart @@ -1,6 +1,7 @@ import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/output_info.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; class EVMChainTransactionCredentials { EVMChainTransactionCredentials( diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index 558013252b..56b58d4004 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -25,6 +25,7 @@ import 'package:cw_evm/evm_chain_transaction_history.dart'; import 'package:cw_evm/evm_chain_transaction_model.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; import 'package:cw_evm/evm_chain_wallet_addresses.dart'; +import 'package:cw_evm/evm_ledger_credentials.dart'; import 'package:cw_evm/file.dart'; import 'package:hex/hex.dart'; import 'package:hive/hive.dart'; @@ -83,9 +84,9 @@ abstract class EVMChainWalletBase late final Box evmChainErc20TokensBox; - late final EthPrivateKey _evmChainPrivateKey; + late final Credentials _evmChainPrivateKey; - EthPrivateKey get evmChainPrivateKey => _evmChainPrivateKey; + Credentials get evmChainPrivateKey => _evmChainPrivateKey; late EVMChainClient _client; @@ -141,12 +142,18 @@ abstract class EVMChainWalletBase await walletAddresses.init(); await transactionHistory.init(); - _evmChainPrivateKey = await getPrivateKey( - mnemonic: _mnemonic, - privateKey: _hexPrivateKey, - password: _password, - ); - walletAddresses.address = _evmChainPrivateKey.address.hexEip55; + + if (walletInfo.isHardwareWallet) { + _evmChainPrivateKey = EvmLedgerCredentials(walletInfo.address); + walletAddresses.address = walletInfo.address; + } else { + _evmChainPrivateKey = await getPrivateKey( + mnemonic: _mnemonic, + privateKey: _hexPrivateKey, + password: _password, + ); + walletAddresses.address = _evmChainPrivateKey.address.hexEip55; + } await save(); } @@ -283,6 +290,11 @@ abstract class EVMChainWalletBase } } + if (transactionCurrency is Erc20Token && isHardwareWallet) { + await (_evmChainPrivateKey as EvmLedgerCredentials) + .provideERC20Info(transactionCurrency.contractAddress, _client.chainId); + } + final pendingEVMChainTransaction = await _client.signTransaction( privateKey: _evmChainPrivateKey, toAddress: _credentials.outputs.first.isParsedAddress @@ -377,7 +389,9 @@ abstract class EVMChainWalletBase String? get seed => _mnemonic; @override - String get privateKey => HEX.encode(_evmChainPrivateKey.privateKey); + String? get privateKey => evmChainPrivateKey is EthPrivateKey + ? HEX.encode((evmChainPrivateKey as EthPrivateKey).privateKey) + : null; Future makePath() async => pathForWallet(name: walletInfo.name, type: walletInfo.type); @@ -535,8 +549,8 @@ abstract class EVMChainWalletBase } @override - String signMessage(String message, {String? address}) => - bytesToHex(_evmChainPrivateKey.signPersonalMessageToUint8List(ascii.encode(message))); + Future signMessage(String message, {String? address}) async => + bytesToHex(await _evmChainPrivateKey.signPersonalMessage(ascii.encode(message))); Web3Client? getWeb3Client() => _client.getWeb3Client(); } diff --git a/cw_evm/lib/evm_chain_wallet_creation_credentials.dart b/cw_evm/lib/evm_chain_wallet_creation_credentials.dart index 7c3271daf0..be763bac72 100644 --- a/cw_evm/lib/evm_chain_wallet_creation_credentials.dart +++ b/cw_evm/lib/evm_chain_wallet_creation_credentials.dart @@ -1,3 +1,4 @@ +import 'package:cw_core/hardware/hardware_account_data.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; @@ -27,3 +28,13 @@ class EVMChainRestoreWalletFromPrivateKey extends WalletCredentials { final String privateKey; } + +class EVMChainRestoreWalletFromHardware extends WalletCredentials { + EVMChainRestoreWalletFromHardware({ + required String name, + required this.hwAccountData, + WalletInfo? walletInfo, + }) : super(name: name, walletInfo: walletInfo); + + final HardwareAccountData hwAccountData; +} diff --git a/cw_evm/lib/evm_chain_wallet_service.dart b/cw_evm/lib/evm_chain_wallet_service.dart index d77a3a81ac..2bbe6bd474 100644 --- a/cw_evm/lib/evm_chain_wallet_service.dart +++ b/cw_evm/lib/evm_chain_wallet_service.dart @@ -13,7 +13,8 @@ import 'package:hive/hive.dart'; abstract class EVMChainWalletService extends WalletService< EVMChainNewWalletCredentials, EVMChainRestoreWalletFromSeedCredentials, - EVMChainRestoreWalletFromPrivateKey> { + EVMChainRestoreWalletFromPrivateKey, + EVMChainRestoreWalletFromHardware> { EVMChainWalletService(this.walletInfoSource); final Box walletInfoSource; @@ -24,6 +25,9 @@ abstract class EVMChainWalletService extends WalletSer @override Future create(EVMChainNewWalletCredentials credentials, {bool? isTestnet}); + @override + Future restoreFromHardwareWallet(EVMChainRestoreWalletFromHardware credentials); + @override Future openWallet(String name, String password); diff --git a/cw_evm/lib/evm_ledger_credentials.dart b/cw_evm/lib/evm_ledger_credentials.dart new file mode 100644 index 0000000000..0d8de17368 --- /dev/null +++ b/cw_evm/lib/evm_ledger_credentials.dart @@ -0,0 +1,103 @@ +import 'dart:async'; +import 'dart:typed_data'; + +import 'package:cw_core/hardware/device_not_connected_exception.dart'; +import 'package:ledger_ethereum/ledger_ethereum.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; +import 'package:web3dart/crypto.dart'; +import 'package:web3dart/web3dart.dart'; + +class EvmLedgerCredentials extends CredentialsWithKnownAddress { + final String _address; + + Ledger? ledger; + LedgerDevice? ledgerDevice; + EthereumLedgerApp? ethereumLedgerApp; + + EvmLedgerCredentials(this._address); + + @override + EthereumAddress get address => EthereumAddress.fromHex(_address); + + void setLedger(Ledger setLedger, [LedgerDevice? setLedgerDevice, String? derivationPath]) { + ledger = setLedger; + ledgerDevice = setLedgerDevice; + ethereumLedgerApp = + EthereumLedgerApp(ledger!, derivationPath: derivationPath ?? "m/44'/60'/0'/0/0"); + } + + @override + MsgSignature signToEcSignature(Uint8List payload, {int? chainId, bool isEIP1559 = false}) => + throw UnimplementedError("EvmLedgerCredentials.signToEcSignature"); + + @override + Future signToSignature(Uint8List payload, + {int? chainId, bool isEIP1559 = false}) async { + if (ledgerDevice == null && ledger?.devices.isNotEmpty != true) { + throw DeviceNotConnectedException(); + } + + final sig = await ethereumLedgerApp!.signTransaction(device, payload); + + final v = sig[0].toInt(); + final r = bytesToHex(sig.sublist(1, 1 + 32)); + final s = bytesToHex(sig.sublist(1 + 32, 1 + 32 + 32)); + + var truncChainId = chainId ?? 1; + while (truncChainId.bitLength > 32) { + truncChainId >>= 8; + } + + final truncTarget = truncChainId * 2 + 35; + + int parity = v; + if (truncTarget & 0xff == v) { + parity = 0; + } else if ((truncTarget + 1) & 0xff == v) { + parity = 1; + } + + // https://github.com/ethereumjs/ethereumjs-util/blob/8ffe697fafb33cefc7b7ec01c11e3a7da787fe0e/src/signature.ts#L26 + int chainIdV; + if (isEIP1559) { + chainIdV = v; + } else { + chainIdV = chainId != null ? (parity + (chainId * 2 + 35)) : parity; + } + + return MsgSignature(BigInt.parse(r, radix: 16), BigInt.parse(s, radix: 16), chainIdV); + } + + @override + Future signPersonalMessage(Uint8List payload, {int? chainId}) async { + if (isNotConnected) throw DeviceNotConnectedException(); + + final sig = await ethereumLedgerApp!.signMessage(device, payload); + + final r = sig.sublist(1, 1 + 32); + final s = sig.sublist(1 + 32, 1 + 32 + 32); + final v = [sig[0]]; + + // https://github.com/ethereumjs/ethereumjs-util/blob/8ffe697fafb33cefc7b7ec01c11e3a7da787fe0e/src/signature.ts#L63 + return Uint8List.fromList(r + s + v); + } + + @override + Uint8List signPersonalMessageToUint8List(Uint8List payload, {int? chainId}) => + throw UnimplementedError("EvmLedgerCredentials.signPersonalMessageToUint8List"); + + Future provideERC20Info(String erc20ContractAddress, int chainId) async { + if (isNotConnected) throw DeviceNotConnectedException(); + + try { + await ethereumLedgerApp!.getAndProvideERC20TokenInformation(device, + erc20ContractAddress: erc20ContractAddress, chainId: chainId); + } on LedgerException catch (e) { + if (e.errorCode != -28672) rethrow; + } + } + + bool get isNotConnected => (ledgerDevice ?? ledger?.devices.firstOrNull) == null; + + LedgerDevice get device => ledgerDevice ?? ledger!.devices.first; +} diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index c202cc72a2..fb0384064f 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -13,7 +13,6 @@ dependencies: flutter: sdk: flutter web3dart: ^2.7.1 - erc20: ^1.0.1 bip39: ^1.0.6 bip32: ^2.0.0 hex: ^0.2.0 @@ -23,6 +22,20 @@ dependencies: shared_preferences: ^2.0.15 cw_core: path: ../cw_core + ledger_flutter: ^1.0.1 + ledger_ethereum: + git: + url: https://github.com/cake-tech/ledger-ethereum.git + +dependency_overrides: + web3dart: + git: + url: https://github.com/cake-tech/web3dart.git + ref: cake + ledger_flutter: + git: + url: https://github.com/cake-tech/ledger-flutter.git + ref: cake dev_dependencies: flutter_test: diff --git a/cw_haven/lib/haven_wallet_service.dart b/cw_haven/lib/haven_wallet_service.dart index d4808c2d6a..14bc520dac 100644 --- a/cw_haven/lib/haven_wallet_service.dart +++ b/cw_haven/lib/haven_wallet_service.dart @@ -56,7 +56,8 @@ class HavenRestoreWalletFromKeysCredentials extends WalletCredentials { class HavenWalletService extends WalletService< HavenNewWalletCredentials, HavenRestoreWalletFromSeedCredentials, - HavenRestoreWalletFromKeysCredentials> { + HavenRestoreWalletFromKeysCredentials, + HavenNewWalletCredentials> { HavenWalletService(this.walletInfoSource); final Box walletInfoSource; @@ -172,6 +173,11 @@ class HavenWalletService extends WalletService< await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); } + @override + Future restoreFromHardwareWallet(HavenNewWalletCredentials credentials) { + throw UnimplementedError("Restoring a Haven wallet from a hardware wallet is not yet supported!"); + } + @override Future restoreFromKeys( HavenRestoreWalletFromKeysCredentials credentials, {bool? isTestnet}) async { diff --git a/cw_monero/lib/api/signatures.dart b/cw_monero/lib/api/signatures.dart index bc4fc9d381..bba7b55282 100644 --- a/cw_monero/lib/api/signatures.dart +++ b/cw_monero/lib/api/signatures.dart @@ -17,6 +17,9 @@ typedef restore_wallet_from_keys = Int8 Function(Pointer, Pointer, P typedef restore_wallet_from_spend_key = Int8 Function(Pointer, Pointer, Pointer, Pointer, Pointer, Int32, Int64, Pointer); +// typedef restore_wallet_from_device = Int8 Function(Pointer, Pointer, Pointer, +// Int32, Int64, Pointer); + typedef is_wallet_exist = Int8 Function(Pointer); typedef load_wallet = Int8 Function(Pointer, Pointer, Int8); diff --git a/cw_monero/lib/api/types.dart b/cw_monero/lib/api/types.dart index 40a1e03213..87d8a153e8 100644 --- a/cw_monero/lib/api/types.dart +++ b/cw_monero/lib/api/types.dart @@ -17,6 +17,9 @@ typedef RestoreWalletFromKeys = int Function(Pointer, Pointer, typedef RestoreWalletFromSpendKey = int Function(Pointer, Pointer, Pointer, Pointer, Pointer, int, int, Pointer); +typedef RestoreWalletFromDevice = int Function(Pointer, Pointer, Pointer, + int, int, Pointer); + typedef IsWalletExist = int Function(Pointer); typedef LoadWallet = int Function(Pointer, Pointer, int); diff --git a/cw_monero/lib/api/wallet_manager.dart b/cw_monero/lib/api/wallet_manager.dart index 0aa694e9ae..ae88f76ab2 100644 --- a/cw_monero/lib/api/wallet_manager.dart +++ b/cw_monero/lib/api/wallet_manager.dart @@ -31,6 +31,11 @@ final restoreWalletFromSpendKeyNative = moneroApi 'restore_wallet_from_spend_key') .asFunction(); +// final restoreWalletFromDeviceNative = moneroApi +// .lookup>( +// 'restore_wallet_from_device') +// .asFunction(); + final isWalletExistNative = moneroApi .lookup>('is_wallet_exist') .asFunction(); @@ -185,6 +190,38 @@ void restoreWalletFromSpendKeySync( } } +// void restoreMoneroWalletFromDevice( +// {required String path, +// required String password, +// required String deviceName, +// int nettype = 0, +// int restoreHeight = 0}) { +// +// final pathPointer = path.toNativeUtf8(); +// final passwordPointer = password.toNativeUtf8(); +// final deviceNamePointer = deviceName.toNativeUtf8(); +// final errorMessagePointer = ''.toNativeUtf8(); +// +// final isWalletRestored = restoreWalletFromDeviceNative( +// pathPointer, +// passwordPointer, +// deviceNamePointer, +// nettype, +// restoreHeight, +// errorMessagePointer) != 0; +// +// calloc.free(pathPointer); +// calloc.free(passwordPointer); +// +// storeSync(); +// +// if (!isWalletRestored) { +// throw WalletRestoreFromKeysException( +// message: convertUTF8ToString(pointer: errorMessagePointer)); +// } +// } + + void loadWallet({ required String path, required String password, diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index d00a54c8ff..c270bb113e 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -686,7 +686,7 @@ abstract class MoneroWalletBase void setExceptionHandler(void Function(FlutterErrorDetails) e) => onError = e; @override - String signMessage(String message, {String? address}) { + Future signMessage(String message, {String? address}) async { final useAddress = address ?? ""; return monero_wallet.signMessage(message, address: useAddress); } diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index 1f33dbb3d9..bc59499f95 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -55,7 +55,7 @@ class MoneroRestoreWalletFromKeysCredentials extends WalletCredentials { } class MoneroWalletService extends WalletService { + MoneroRestoreWalletFromSeedCredentials, MoneroRestoreWalletFromKeysCredentials, MoneroNewWalletCredentials> { MoneroWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -227,6 +227,11 @@ class MoneroWalletService extends WalletService restoreFromHardwareWallet(MoneroNewWalletCredentials credentials) { + throw UnimplementedError("Restoring a Monero wallet from a hardware wallet is not yet supported!"); + } + @override Future restoreFromSeed(MoneroRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { diff --git a/cw_nano/lib/nano_wallet_service.dart b/cw_nano/lib/nano_wallet_service.dart index b1497a6253..a1af3c872a 100644 --- a/cw_nano/lib/nano_wallet_service.dart +++ b/cw_nano/lib/nano_wallet_service.dart @@ -14,7 +14,7 @@ import 'package:nanodart/nanodart.dart'; import 'package:nanoutil/nanoutil.dart'; class NanoWalletService extends WalletService { + NanoRestoreWalletFromSeedCredentials, NanoRestoreWalletFromKeysCredentials, NanoNewWalletCredentials> { NanoWalletService(this.walletInfoSource); final Box walletInfoSource; @@ -109,6 +109,11 @@ class NanoWalletService extends WalletService restoreFromHardwareWallet(NanoNewWalletCredentials credentials) { + throw UnimplementedError("Restoring a Nano wallet from a hardware wallet is not yet supported!"); + } + @override Future restoreFromSeed(NanoRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { if (credentials.mnemonic.contains(' ')) { diff --git a/cw_polygon/lib/polygon_wallet_service.dart b/cw_polygon/lib/polygon_wallet_service.dart index 59e14abbfd..ee84a014eb 100644 --- a/cw_polygon/lib/polygon_wallet_service.dart +++ b/cw_polygon/lib/polygon_wallet_service.dart @@ -1,5 +1,6 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_evm/evm_chain_wallet_creation_credentials.dart'; import 'package:cw_evm/evm_chain_wallet_service.dart'; @@ -86,6 +87,29 @@ class PolygonWalletService extends EVMChainWalletService { return wallet; } + @override + Future restoreFromHardwareWallet( + EVMChainRestoreWalletFromHardware credentials) async { + credentials.walletInfo!.derivationInfo = DerivationInfo( + derivationType: DerivationType.bip39, + derivationPath: "m/44'/60'/${credentials.hwAccountData.accountIndex}'/0/0" + ); + credentials.walletInfo!.hardwareWalletType = credentials.hardwareWalletType; + credentials.walletInfo!.address = credentials.hwAccountData.address; + + final wallet = PolygonWallet( + walletInfo: credentials.walletInfo!, + password: credentials.password!, + client: client, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + @override Future restoreFromSeed(EVMChainRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index 505838d7c1..dbef40b46d 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -23,6 +23,11 @@ dependencies: bip39: ^1.0.6 collection: ^1.17.1 +dependency_overrides: + web3dart: + git: + url: https://github.com/cake-tech/web3dart.git + ref: cake dev_dependencies: flutter_test: diff --git a/cw_solana/lib/solana_wallet_service.dart b/cw_solana/lib/solana_wallet_service.dart index 83370ff73c..4afb2f7f47 100644 --- a/cw_solana/lib/solana_wallet_service.dart +++ b/cw_solana/lib/solana_wallet_service.dart @@ -2,7 +2,10 @@ import 'dart:io'; import 'package:bip39/bip39.dart' as bip39; import 'package:collection/collection.dart'; +import 'package:cw_core/balance.dart'; import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; @@ -13,7 +16,7 @@ import 'package:cw_solana/solana_wallet_creation_credentials.dart'; import 'package:hive/hive.dart'; class SolanaWalletService extends WalletService { + SolanaRestoreWalletFromSeedCredentials, SolanaRestoreWalletFromPrivateKey, SolanaNewWalletCredentials> { SolanaWalletService(this.walletInfoSource); final Box walletInfoSource; @@ -134,4 +137,10 @@ class SolanaWalletService extends WalletService, TransactionInfo>> restoreFromHardwareWallet(SolanaNewWalletCredentials credentials) { + // TODO: implement restoreFromHardwareWallet + throw UnimplementedError(); + } } diff --git a/cw_tron/lib/tron_wallet.dart b/cw_tron/lib/tron_wallet.dart index a798f343a9..6cef05348f 100644 --- a/cw_tron/lib/tron_wallet.dart +++ b/cw_tron/lib/tron_wallet.dart @@ -551,7 +551,7 @@ abstract class TronWalletBase } @override - String signMessage(String message, {String? address}) => + Future signMessage(String message, {String? address}) async => _tronPrivateKey.signPersonalMessage(ascii.encode(message)); String getTronBase58AddressFromHex(String hexAddress) { diff --git a/cw_tron/lib/tron_wallet_service.dart b/cw_tron/lib/tron_wallet_service.dart index f4e98ee5d6..c8344d5f46 100644 --- a/cw_tron/lib/tron_wallet_service.dart +++ b/cw_tron/lib/tron_wallet_service.dart @@ -1,7 +1,10 @@ import 'dart:io'; import 'package:bip39/bip39.dart' as bip39; +import 'package:cw_core/balance.dart'; import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; @@ -13,8 +16,11 @@ import 'package:cw_tron/tron_wallet_creation_credentials.dart'; import 'package:hive/hive.dart'; import 'package:collection/collection.dart'; -class TronWalletService extends WalletService { +class TronWalletService extends WalletService< + TronNewWalletCredentials, + TronRestoreWalletFromSeedCredentials, + TronRestoreWalletFromPrivateKey, + TronNewWalletCredentials> { TronWalletService(this.walletInfoSource, {required this.client}); late TronClient client; @@ -145,4 +151,10 @@ class TronWalletService extends WalletService info.id == WalletBase.idFor(wallet, getType()))!; await walletInfoSource.delete(walletInfo.key); } + + @override + Future, TransactionInfo>> restoreFromHardwareWallet(TronNewWalletCredentials credentials) { + // TODO: implement restoreFromHardwareWallet + throw UnimplementedError(); + } } diff --git a/how_to_add_new_wallet_type.md b/how_to_add_new_wallet_type.md index 011e999906..95b82d802f 100644 --- a/how_to_add_new_wallet_type.md +++ b/how_to_add_new_wallet_type.md @@ -277,6 +277,7 @@ Now you can run the codebase and successfully create a wallet for type walletX s - Modify `getCredentialsFromRestoredWallet` method - Go to `lib/core/address_validator.dart` - Modify the `getAddressFromStringPattern` method to add a case for `WalletType.walletx` +- and if it has tokens (ex. erc20, trc20, spl tokens) then add them to the switch case as well - Add the scheme for walletx for both Android in `AndroidManifestBase.xml` and iOS in `InfoBase.plist` **Transaction History** @@ -291,10 +292,10 @@ Now you can run the codebase and successfully create a wallet for type walletX s # Points to note when adding the new wallet type 1. if it has tokens (ex. ERC20, SPL, etc...) make sure to add that to this function `_checkIfCanSend` in `exchange_trade_view_model.dart` +1. if it has tokens (ex. ERC20, SPL, etc...) make sure to add a check for the tags as well in the 2. Check On/Off ramp providers that support the new wallet currency and add them accordingly in `provider_types.dart` 3. Add support for wallet uri scheme to restore from QR for both Android in `AndroidManifestBase.xml` and iOS in `InfoBase.plist` 4. Make sure no imports are using the wallet internal package files directly, instead use the proxy layers that is created in the main lib `lib/cw_ethereum.dart` for example. (i.e try building Monero.com if you get compilation errors, then you probably missed something) -5. Copyright (C) 2018-2023 Cake Labs LLC diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 67c0c9ee82..cd03e10a99 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -131,7 +131,12 @@ PODS: - FlutterMacOS - permission_handler_apple (9.1.1): - Flutter + - Protobuf (3.25.3) - ReachabilitySwift (5.0.0) + - reactive_ble_mobile (0.0.1): + - Flutter + - Protobuf (~> 3.5) + - SwiftProtobuf (~> 1.0) - SDWebImage (5.18.11): - SDWebImage/Core (= 5.18.11) - SDWebImage/Core (5.18.11) @@ -179,6 +184,7 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - reactive_ble_mobile (from `.symlinks/plugins/reactive_ble_mobile/ios`) - sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) @@ -196,6 +202,7 @@ SPEC REPOS: - DKPhotoGallery - MTBBarcodeScanner - OrderedSet + - Protobuf - ReachabilitySwift - SDWebImage - SwiftProtobuf @@ -244,6 +251,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" + reactive_ble_mobile: + :path: ".symlinks/plugins/reactive_ble_mobile/ios" sensitive_clipboard: :path: ".symlinks/plugins/sensitive_clipboard/ios" share_plus: @@ -286,7 +295,9 @@ SPEC CHECKSUMS: package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 + Protobuf: 8e9074797a13c484a79959fdb819ef4ae6da7dbe ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 + reactive_ble_mobile: 9ce6723d37ccf701dbffd202d487f23f5de03b4c SDWebImage: a3ba0b8faac7228c3c8eadd1a55c9c9fe5e16457 sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 7a8b99b497..8ed46a0288 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -40,6 +41,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; AD0937B0140D5A4C24E73BEA /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -123,6 +125,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, + 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, @@ -196,6 +199,7 @@ 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/Runner/InfoBase.plist b/ios/Runner/InfoBase.plist index 443f9791fc..02365bda7d 100644 --- a/ios/Runner/InfoBase.plist +++ b/ios/Runner/InfoBase.plist @@ -210,16 +210,6 @@ tron-wallet - - CFBundleTypeRole - Viewer - CFBundleURLName - tron_wallet - CFBundleURLSchemes - - tron_wallet - - CFBundleVersion $(CURRENT_PROJECT_VERSION) @@ -238,6 +228,10 @@ Enable Face ID for fast and secure access to wallets and private keys NSPhotoLibraryUsageDescription We need access to documents folder for getting access to open/save backup file + NSBluetoothPeripheralUsageDescription + We need access to Bluetooth in order to connect to your hardware wallet when needed + NSBluetoothAlwaysUsageDescription + We need access to Bluetooth in order to connect to your hardware wallet when needed UIBackgroundModes fetch diff --git a/ios/Runner/PrivacyInfo.xcprivacy b/ios/Runner/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..51fa92043c --- /dev/null +++ b/ios/Runner/PrivacyInfo.xcprivacy @@ -0,0 +1,24 @@ + + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + \ No newline at end of file diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 7ae01df1c0..56c9c7dffb 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -32,6 +32,14 @@ class CWBitcoin extends Bitcoin { {required String name, WalletInfo? walletInfo}) => BitcoinNewWalletCredentials(name: name, walletInfo: walletInfo); + @override + WalletCredentials createBitcoinHardwareWalletCredentials( + {required String name, + required HardwareAccountData accountData, + WalletInfo? walletInfo}) => + BitcoinRestoreWalletFromHardware( + name: name, hwAccountData: accountData, walletInfo: walletInfo); + @override TransactionPriority getMediumTransactionPriority() => BitcoinTransactionPriority.medium; @@ -292,7 +300,7 @@ class CWBitcoin extends Bitcoin { return [ DerivationInfo( derivationType: DerivationType.electrum, - derivationPath: "m/0'/0", + derivationPath: "m/0'", description: "Electrum", scriptType: "p2wpkh", ) @@ -344,9 +352,6 @@ class CWBitcoin extends Bitcoin { if (derivationDepth == 3) { // we add "/0/0" so that we generate account 0, index 0 and correctly get balance derivationPath += "/0/0"; - // we don't support sub-ACCOUNTS in bitcoin like we do monero, and so the path dInfoCopy - // expects should be ACCOUNT 0, index unspecified: - dInfoCopy.derivationPath = dInfoCopy.derivationPath! + "/0"; } // var hd = bip32.BIP32.fromSeed(seedBytes).derivePath(derivationPath); @@ -440,4 +445,21 @@ class CWBitcoin extends Bitcoin { final bitcoinWallet = wallet as ElectrumWallet; return (bitcoinWallet.feeRate(BitcoinTransactionPriority.fast) * 1.1).round(); } + + @override + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device) { + (wallet as BitcoinWallet).setLedger(ledger, device); + } + + @override + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, + {int index = 0, int limit = 5}) async { + final hardwareWalletService = BitcoinHardwareWalletService(ledgerVM.ledger, ledgerVM.device); + try { + return hardwareWalletService.getAvailableAccounts(index: index, limit: limit); + } on LedgerException catch (err) { + print(err.message); + throw err; + } + } } diff --git a/lib/buy/buy_provider.dart b/lib/buy/buy_provider.dart index 4e4c113f4e..1a37e09b3f 100644 --- a/lib/buy/buy_provider.dart +++ b/lib/buy/buy_provider.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/buy/buy_amount.dart'; import 'package:cake_wallet/buy/order.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:flutter/material.dart'; @@ -7,10 +8,12 @@ abstract class BuyProvider { BuyProvider({ required this.wallet, required this.isTestEnvironment, + required this.ledgerVM, }); final WalletBase wallet; final bool isTestEnvironment; + final LedgerViewModel? ledgerVM; String get title; diff --git a/lib/buy/dfx/dfx_buy_provider.dart b/lib/buy/dfx/dfx_buy_provider.dart index bf67edd237..2a7e2ab137 100644 --- a/lib/buy/dfx/dfx_buy_provider.dart +++ b/lib/buy/dfx/dfx_buy_provider.dart @@ -3,9 +3,11 @@ import 'dart:convert'; import 'package:cake_wallet/buy/buy_provider.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; @@ -13,8 +15,8 @@ import 'package:http/http.dart' as http; import 'package:url_launcher/url_launcher.dart'; class DFXBuyProvider extends BuyProvider { - DFXBuyProvider({required WalletBase wallet, bool isTestEnvironment = false}) - : super(wallet: wallet, isTestEnvironment: isTestEnvironment); + DFXBuyProvider({required WalletBase wallet, bool isTestEnvironment = false, LedgerViewModel? ledgerVM}) + : super(wallet: wallet, isTestEnvironment: isTestEnvironment, ledgerVM: ledgerVM); static const _baseUrl = 'api.dfx.swiss'; // static const _signMessagePath = '/v1/auth/signMessage'; @@ -91,7 +93,7 @@ class DFXBuyProvider extends BuyProvider { // } Future auth() async { - final signMessage = getSignature(await getSignMessage()); + final signMessage = await getSignature(await getSignMessage()); final requestBody = jsonEncode({ 'wallet': walletName, @@ -118,7 +120,7 @@ class DFXBuyProvider extends BuyProvider { } } - String getSignature(String message) { + Future getSignature(String message) async { switch (wallet.type) { case WalletType.ethereum: case WalletType.polygon: @@ -135,6 +137,20 @@ class DFXBuyProvider extends BuyProvider { @override Future launchProvider(BuildContext context, bool? isBuyAction) async { + if (wallet.isHardwareWallet) { + if (!ledgerVM!.isConnected) { + await Navigator.of(context).pushNamed(Routes.connectDevices, + arguments: ConnectDevicePageParams( + walletType: wallet.walletInfo.type, + onConnectDevice: (BuildContext context, LedgerViewModel ledgerVM) { + ledgerVM.setLedger(wallet); + Navigator.of(context).pop(); + })); + } else { + ledgerVM!.setLedger(wallet); + } + } + try { final assetOut = this.assetOut; final blockchain = this.blockchain; diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index fea8fdabd1..53f018d577 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -14,7 +14,6 @@ import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/device_info.dart'; -import 'package:crypto/crypto.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; @@ -30,7 +29,7 @@ class MoonPayProvider extends BuyProvider { }) : baseSellUrl = isTestEnvironment ? _baseSellTestUrl : _baseSellProductUrl, baseBuyUrl = isTestEnvironment ? _baseBuyTestUrl : _baseBuyProductUrl, this._settingsStore = settingsStore, - super(wallet: wallet, isTestEnvironment: isTestEnvironment); + super(wallet: wallet, isTestEnvironment: isTestEnvironment, ledgerVM: null); final SettingsStore _settingsStore; diff --git a/lib/buy/onramper/onramper_buy_provider.dart b/lib/buy/onramper/onramper_buy_provider.dart index 3819f074d1..1f1c86962f 100644 --- a/lib/buy/onramper/onramper_buy_provider.dart +++ b/lib/buy/onramper/onramper_buy_provider.dart @@ -13,7 +13,7 @@ import 'package:url_launcher/url_launcher.dart'; class OnRamperBuyProvider extends BuyProvider { OnRamperBuyProvider(this._settingsStore, {required WalletBase wallet, bool isTestEnvironment = false}) - : super(wallet: wallet, isTestEnvironment: isTestEnvironment); + : super(wallet: wallet, isTestEnvironment: isTestEnvironment, ledgerVM: null); static const _baseUrl = 'buy.onramper.com'; diff --git a/lib/buy/robinhood/robinhood_buy_provider.dart b/lib/buy/robinhood/robinhood_buy_provider.dart index 7610e51f38..ab58754dd9 100644 --- a/lib/buy/robinhood/robinhood_buy_provider.dart +++ b/lib/buy/robinhood/robinhood_buy_provider.dart @@ -3,8 +3,11 @@ import 'dart:convert'; import 'package:cake_wallet/.secrets.g.dart' as secrets; import 'package:cake_wallet/buy/buy_provider.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; @@ -12,8 +15,8 @@ import 'package:http/http.dart' as http; import 'package:url_launcher/url_launcher.dart'; class RobinhoodBuyProvider extends BuyProvider { - RobinhoodBuyProvider({required WalletBase wallet, bool isTestEnvironment = false}) - : super(wallet: wallet, isTestEnvironment: isTestEnvironment); + RobinhoodBuyProvider({required WalletBase wallet, bool isTestEnvironment = false, LedgerViewModel? ledgerVM}) + : super(wallet: wallet, isTestEnvironment: isTestEnvironment, ledgerVM: ledgerVM); static const _baseUrl = 'applink.robinhood.com'; static const _cIdBaseUrl = 'exchange-helper.cakewallet.com'; @@ -34,7 +37,7 @@ class RobinhoodBuyProvider extends BuyProvider { String get _apiSecret => secrets.exchangeHelperApiKey; - String getSignature(String message) { + Future getSignature(String message) { switch (wallet.type) { case WalletType.ethereum: case WalletType.polygon: @@ -53,7 +56,7 @@ class RobinhoodBuyProvider extends BuyProvider { final valid_until = (DateTime.now().millisecondsSinceEpoch / 1000).round() + 10; final message = "$_apiSecret:${valid_until}"; - final signature = getSignature(message); + final signature = await getSignature(message); final uri = Uri.https(_cIdBaseUrl, "/api/robinhood"); @@ -84,6 +87,20 @@ class RobinhoodBuyProvider extends BuyProvider { } Future launchProvider(BuildContext context, bool? isBuyAction) async { + if (wallet.isHardwareWallet) { + if (!ledgerVM!.isConnected) { + await Navigator.of(context).pushNamed(Routes.connectDevices, + arguments: ConnectDevicePageParams( + walletType: wallet.walletInfo.type, + onConnectDevice: (BuildContext context, LedgerViewModel ledgerVM) { + ledgerVM.setLedger(wallet); + Navigator.of(context).pop(); + })); + } else { + ledgerVM!.setLedger(wallet); + } + } + try { final uri = await requestProviderUrl(); await launchUrl(uri, mode: LaunchMode.externalApplication); diff --git a/lib/buy/wyre/wyre_buy_provider.dart b/lib/buy/wyre/wyre_buy_provider.dart index 4dd091c33e..e09186ad54 100644 --- a/lib/buy/wyre/wyre_buy_provider.dart +++ b/lib/buy/wyre/wyre_buy_provider.dart @@ -14,7 +14,7 @@ import 'package:cake_wallet/.secrets.g.dart' as secrets; class WyreBuyProvider extends BuyProvider { WyreBuyProvider({required WalletBase wallet, bool isTestEnvironment = false}) : baseApiUrl = isTestEnvironment ? _baseTestApiUrl : _baseProductApiUrl, - super(wallet: wallet, isTestEnvironment: isTestEnvironment); + super(wallet: wallet, isTestEnvironment: isTestEnvironment, ledgerVM: null); static const _baseTestApiUrl = 'https://api.testwyre.com'; static const _baseProductApiUrl = 'https://api.sendwyre.com'; diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 01374d5a24..e507f52128 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -295,7 +295,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.sol: return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.trx: - return '^(T|t)[1-9A-HJ-NP-Za-km-z]{33}\$'; + return '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; default: if (type.tag == CryptoCurrency.eth.title) { return '0x[0-9a-zA-Z]{42}'; @@ -306,6 +306,9 @@ class AddressValidator extends TextValidator { if (type.tag == CryptoCurrency.sol.title) { return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; } + if (type.tag == CryptoCurrency.trx.title) { + return '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; + } return null; } diff --git a/lib/core/wallet_creation_service.dart b/lib/core/wallet_creation_service.dart index 31a893ad6b..646e47537a 100644 --- a/lib/core/wallet_creation_service.dart +++ b/lib/core/wallet_creation_service.dart @@ -101,4 +101,19 @@ class WalletCreationService { return wallet; } + + Future restoreFromHardwareWallet(WalletCredentials credentials) async { + checkIfExists(credentials.name); + final password = generateWalletPassword(); + credentials.password = password; + await keyService.saveWalletPassword(password: password, walletName: credentials.name); + final wallet = await _service!.restoreFromHardwareWallet(credentials); + + if (wallet.type == WalletType.monero) { + await sharedPreferences.setBool( + PreferencesKey.moneroWalletUpdateV1Key(wallet.name), _isNewMoneroWalletPasswordUpdated); + } + + return wallet; + } } diff --git a/lib/di.dart b/lib/di.dart index 00710897f1..d280362b49 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -1,237 +1,240 @@ +import 'package:cake_wallet/.secrets.g.dart' as secrets; import 'package:cake_wallet/anonpay/anonpay_api.dart'; import 'package:cake_wallet/anonpay/anonpay_info_base.dart'; import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; +import 'package:cake_wallet/anypay/any_pay_payment_committed_info.dart'; +import 'package:cake_wallet/anypay/anypay_api.dart'; +import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/buy/moonpay/moonpay_provider.dart'; import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart'; -import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; +import 'package:cake_wallet/buy/order.dart'; import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart'; +import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart'; +import 'package:cake_wallet/core/auth_service.dart'; +import 'package:cake_wallet/core/backup_service.dart'; +import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/core/wallet_connect/wallet_connect_key_service.dart'; import 'package:cake_wallet/core/wallet_connect/wc_bottom_sheet_service.dart'; -import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart'; import 'package:cake_wallet/core/wallet_connect/web3wallet_service.dart'; +import 'package:cake_wallet/core/wallet_creation_service.dart'; +import 'package:cake_wallet/core/wallet_loading_service.dart'; import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; +import 'package:cake_wallet/entities/biometric_auth.dart'; +import 'package:cake_wallet/entities/contact.dart'; +import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cw_core/receive_page_option.dart'; +import 'package:cake_wallet/entities/qr_view_data.dart'; +import 'package:cake_wallet/entities/template.dart'; +import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; -import 'package:cake_wallet/nano/nano.dart'; +import 'package:cake_wallet/exchange/exchange_template.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/haven/haven.dart'; +import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart'; import 'package:cake_wallet/ionia/ionia_anypay.dart'; +import 'package:cake_wallet/ionia/ionia_api.dart'; import 'package:cake_wallet/ionia/ionia_gift_card.dart'; +import 'package:cake_wallet/ionia/ionia_merchant.dart'; +import 'package:cake_wallet/ionia/ionia_service.dart'; import 'package:cake_wallet/ionia/ionia_tip.dart'; +import 'package:cake_wallet/monero/monero.dart'; +import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/reactions/on_authentication_state_change.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/src/screens/anonpay_details/anonpay_details_page.dart'; +import 'package:cake_wallet/src/screens/auth/auth_page.dart'; +import 'package:cake_wallet/src/screens/backup/backup_page.dart'; +import 'package:cake_wallet/src/screens/backup/edit_backup_password_page.dart'; import 'package:cake_wallet/src/screens/buy/buy_options_page.dart'; +import 'package:cake_wallet/src/screens/buy/buy_webview_page.dart'; import 'package:cake_wallet/src/screens/buy/webview_page.dart'; +import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; +import 'package:cake_wallet/src/screens/contact/contact_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/dashboard_page.dart'; import 'package:cake_wallet/src/screens/dashboard/desktop_dashboard_page.dart'; import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart'; import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart'; import 'package:cake_wallet/src/screens/dashboard/edit_token_page.dart'; import 'package:cake_wallet/src/screens/dashboard/home_settings_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/pages/address_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/pages/balance_page.dart'; import 'package:cake_wallet/src/screens/dashboard/pages/transactions_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart'; +import 'package:cake_wallet/src/screens/faq/faq_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_cards_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_redeem_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_tip_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_gift_card_detail_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_more_options_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_payment_status_page.dart'; +import 'package:cake_wallet/src/screens/ionia/ionia.dart'; +import 'package:cake_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart'; +import 'package:cake_wallet/src/screens/monero_accounts/monero_account_list_page.dart'; import 'package:cake_wallet/src/screens/nano/nano_change_rep_page.dart'; import 'package:cake_wallet/src/screens/nano_accounts/nano_account_edit_or_create_page.dart'; import 'package:cake_wallet/src/screens/nano_accounts/nano_account_list_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart'; +import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; import 'package:cake_wallet/src/screens/nodes/pow_node_create_or_edit_page.dart'; +import 'package:cake_wallet/src/screens/order_details/order_details_page.dart'; +import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart'; import 'package:cake_wallet/src/screens/receive/anonpay_receive_page.dart'; +import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart'; +import 'package:cake_wallet/src/screens/receive/receive_page.dart'; +import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; +import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; +import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_choose_derivation.dart'; +import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; +import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; +import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; +import 'package:cake_wallet/src/screens/send/send_page.dart'; +import 'package:cake_wallet/src/screens/send/send_template_page.dart'; +import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; import 'package:cake_wallet/src/screens/settings/display_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/domain_lookups_page.dart'; import 'package:cake_wallet/src/screens/settings/manage_nodes_page.dart'; import 'package:cake_wallet/src/screens/settings/other_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/privacy_page.dart'; import 'package:cake_wallet/src/screens/settings/security_backup_page.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_redeem_page.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_gift_card_detail_page.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_more_options_page.dart'; -import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; -import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/settings/tor_page.dart'; +import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart'; -import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; -import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; +import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; +import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.dart'; +import 'package:cake_wallet/src/screens/support/support_page.dart'; import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart'; import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart'; +import 'package:cake_wallet/src/screens/trade_details/trade_details_page.dart'; +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; +import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart'; +import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart'; +import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart'; import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart'; import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart'; +import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; +import 'package:cake_wallet/src/screens/wallet_list/wallet_list_page.dart'; +import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart'; +import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/store/authentication_store.dart'; +import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; +import 'package:cake_wallet/store/dashboard/orders_store.dart'; +import 'package:cake_wallet/store/dashboard/trade_filter_store.dart'; +import 'package:cake_wallet/store/dashboard/trades_store.dart'; +import 'package:cake_wallet/store/dashboard/transaction_filter_store.dart'; +import 'package:cake_wallet/store/node_list_store.dart'; +import 'package:cake_wallet/store/secret_store.dart'; +import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/store/templates/exchange_template_store.dart'; +import 'package:cake_wallet/store/templates/send_template_store.dart'; +import 'package:cake_wallet/store/wallet_list_store.dart'; +import 'package:cake_wallet/store/yat/yat_store.dart'; import 'package:cake_wallet/themes/theme_list.dart'; import 'package:cake_wallet/utils/device_info.dart'; -import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart'; import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; -import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart'; +import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/anon_invoice_page_view_model.dart'; import 'package:cake_wallet/view_model/anonpay_details_view_model.dart'; +import 'package:cake_wallet/view_model/auth_view_model.dart'; +import 'package:cake_wallet/view_model/backup_view_model.dart'; +import 'package:cake_wallet/view_model/buy/buy_amount_view_model.dart'; +import 'package:cake_wallet/view_model/buy/buy_view_model.dart'; +import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; +import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart'; +import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; +import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/home_settings_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/market_place_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/nft_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/receive_option_view_model.dart'; +import 'package:cake_wallet/view_model/edit_backup_password_view_model.dart'; +import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart'; +import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_account_view_model.dart'; import 'package:cake_wallet/view_model/ionia/ionia_auth_view_model.dart'; import 'package:cake_wallet/view_model/ionia/ionia_buy_card_view_model.dart'; -import 'package:cake_wallet/view_model/ionia/ionia_custom_tip_view_model.dart'; import 'package:cake_wallet/view_model/ionia/ionia_custom_redeem_view_model.dart'; -import 'package:cake_wallet/ionia/ionia_service.dart'; -import 'package:cake_wallet/ionia/ionia_api.dart'; -import 'package:cake_wallet/ionia/ionia_merchant.dart'; -import 'package:cake_wallet/monero/monero.dart'; -import 'package:cake_wallet/haven/haven.dart'; -import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_cards_page.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_page.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_tip_page.dart'; -import 'package:cake_wallet/src/screens/ionia/ionia.dart'; -import 'package:cake_wallet/src/screens/dashboard/pages/balance_page.dart'; -import 'package:cake_wallet/view_model/ionia/ionia_account_view_model.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_custom_tip_view_model.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_gift_card_details_view_model.dart'; import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_payment_status_view_model.dart'; import 'package:cake_wallet/view_model/ionia/ionia_purchase_merch_view_model.dart'; +import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart'; +import 'package:cake_wallet/view_model/monero_account_list/monero_account_edit_or_create_view_model.dart'; +import 'package:cake_wallet/view_model/monero_account_list/monero_account_list_view_model.dart'; import 'package:cake_wallet/view_model/nano_account_list/nano_account_edit_or_create_view_model.dart'; import 'package:cake_wallet/view_model/nano_account_list/nano_account_list_view_model.dart'; +import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; +import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart'; import 'package:cake_wallet/view_model/node_list/pow_node_list_view_model.dart'; +import 'package:cake_wallet/view_model/order_details_view_model.dart'; +import 'package:cake_wallet/view_model/rescan_view_model.dart'; +import 'package:cake_wallet/view_model/restore/restore_from_qr_vm.dart'; +import 'package:cake_wallet/view_model/restore_from_backup_view_model.dart'; import 'package:cake_wallet/view_model/seed_type_view_model.dart'; +import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; +import 'package:cake_wallet/view_model/send/send_view_model.dart'; import 'package:cake_wallet/view_model/set_up_2fa_viewmodel.dart'; -import 'package:cake_wallet/view_model/restore/restore_from_qr_vm.dart'; import 'package:cake_wallet/view_model/settings/display_settings_view_model.dart'; import 'package:cake_wallet/view_model/settings/other_settings_view_model.dart'; import 'package:cake_wallet/view_model/settings/privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/settings/security_settings_view_model.dart'; -import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/settings/trocador_providers_view_model.dart'; -import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; -import 'package:cake_wallet/view_model/wallet_list/wallet_edit_view_model.dart'; -import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart'; -import 'package:cake_wallet/view_model/wallet_restore_choose_derivation_view_model.dart'; -import 'package:cw_core/erc20_token.dart'; -import 'package:cw_core/nano_account.dart'; -import 'package:cw_core/unspent_coins_info.dart'; -import 'package:cake_wallet/core/backup_service.dart'; -import 'package:cw_core/wallet_service.dart'; -import 'package:cake_wallet/entities/biometric_auth.dart'; -import 'package:cake_wallet/entities/contact_record.dart'; -import 'package:cake_wallet/buy/order.dart'; -import 'package:cake_wallet/entities/transaction_description.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cake_wallet/entities/contact.dart'; -import 'package:cw_core/node.dart'; -import 'package:cake_wallet/exchange/trade.dart'; -import 'package:cake_wallet/reactions/on_authentication_state_change.dart'; -import 'package:cake_wallet/src/screens/backup/backup_page.dart'; -import 'package:cake_wallet/src/screens/backup/edit_backup_password_page.dart'; -import 'package:cake_wallet/src/screens/buy/buy_webview_page.dart'; -import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; -import 'package:cake_wallet/src/screens/contact/contact_page.dart'; -import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; -import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart'; -import 'package:cake_wallet/src/screens/faq/faq_page.dart'; -import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart'; -import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; -import 'package:cake_wallet/src/screens/order_details/order_details_page.dart'; -import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; -import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; -import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; -import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; -import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; -import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; -import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; -import 'package:cake_wallet/src/screens/send/send_template_page.dart'; -import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; -import 'package:cake_wallet/src/screens/support/support_page.dart'; -import 'package:cake_wallet/src/screens/trade_details/trade_details_page.dart'; -import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart'; -import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart'; -import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart'; -import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; -import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; -import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; -import 'package:cake_wallet/store/dashboard/orders_store.dart'; -import 'package:cake_wallet/store/node_list_store.dart'; -import 'package:cake_wallet/store/secret_store.dart'; -import 'package:cake_wallet/store/settings_store.dart'; -import 'package:cake_wallet/core/auth_service.dart'; -import 'package:cake_wallet/core/key_service.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cake_wallet/src/screens/monero_accounts/monero_account_list_page.dart'; -import 'package:cake_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart'; -import 'package:cake_wallet/src/screens/auth/auth_page.dart'; -import 'package:cake_wallet/src/screens/dashboard/dashboard_page.dart'; -import 'package:cake_wallet/src/screens/receive/receive_page.dart'; -import 'package:cake_wallet/src/screens/send/send_page.dart'; -import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.dart'; -import 'package:cake_wallet/src/screens/wallet_list/wallet_list_page.dart'; -import 'package:cake_wallet/store/wallet_list_store.dart'; -import 'package:cake_wallet/store/yat/yat_store.dart'; -import 'package:cake_wallet/view_model/backup_view_model.dart'; -import 'package:cake_wallet/view_model/buy/buy_amount_view_model.dart'; -import 'package:cake_wallet/view_model/buy/buy_view_model.dart'; -import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; -import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart'; -import 'package:cake_wallet/view_model/edit_backup_password_view_model.dart'; -import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart'; -import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart'; -import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart'; -import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; -import 'package:cake_wallet/view_model/order_details_view_model.dart'; -import 'package:cake_wallet/view_model/rescan_view_model.dart'; -import 'package:cake_wallet/view_model/restore_from_backup_view_model.dart'; -import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; import 'package:cake_wallet/view_model/setup_pin_code_view_model.dart'; import 'package:cake_wallet/view_model/support_view_model.dart'; -import 'package:cake_wallet/view_model/transaction_details_view_model.dart'; import 'package:cake_wallet/view_model/trade_details_view_model.dart'; +import 'package:cake_wallet/view_model/transaction_details_view_model.dart'; import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_details_view_model.dart'; import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_item.dart'; import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_list_view_model.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart'; -import 'package:cake_wallet/view_model/auth_view_model.dart'; -import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; -import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart'; -import 'package:cake_wallet/view_model/monero_account_list/monero_account_edit_or_create_view_model.dart'; -import 'package:cake_wallet/view_model/monero_account_list/monero_account_list_view_model.dart'; -import 'package:cake_wallet/view_model/send/send_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_hardware_restore_view_model.dart'; import 'package:cake_wallet/view_model/wallet_keys_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_list/wallet_edit_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_new_vm.dart'; +import 'package:cake_wallet/view_model/wallet_restore_choose_derivation_view_model.dart'; import 'package:cake_wallet/view_model/wallet_restore_view_model.dart'; import 'package:cake_wallet/view_model/wallet_seed_view_model.dart'; -import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/nano_account.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/receive_page_option.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/unspent_coins_info.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:get_it/get_it.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:cake_wallet/core/wallet_creation_service.dart'; -import 'package:cake_wallet/store/app_store.dart'; -import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/view_model/wallet_new_vm.dart'; -import 'package:cake_wallet/store/authentication_store.dart'; -import 'package:cake_wallet/store/dashboard/trades_store.dart'; -import 'package:cake_wallet/store/dashboard/trade_filter_store.dart'; -import 'package:cake_wallet/store/dashboard/transaction_filter_store.dart'; -import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; -import 'package:cake_wallet/store/templates/send_template_store.dart'; -import 'package:cake_wallet/store/templates/exchange_template_store.dart'; -import 'package:cake_wallet/entities/template.dart'; -import 'package:cake_wallet/exchange/exchange_template.dart'; -import 'package:cake_wallet/.secrets.g.dart' as secrets; -import 'package:cake_wallet/src/screens/dashboard/pages/address_page.dart'; -import 'package:cake_wallet/anypay/anypay_api.dart'; -import 'package:cake_wallet/view_model/ionia/ionia_gift_card_details_view_model.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_payment_status_page.dart'; -import 'package:cake_wallet/view_model/ionia/ionia_payment_status_view_model.dart'; -import 'package:cake_wallet/anypay/any_pay_payment_committed_info.dart'; -import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart'; -import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart'; -import 'package:cake_wallet/core/wallet_loading_service.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cake_wallet/entities/qr_view_data.dart'; import 'buy/dfx/dfx_buy_provider.dart'; import 'core/totp_request_details.dart'; @@ -308,6 +311,7 @@ Future setup({ getIt.registerFactory>(() => _powNodeSource, instanceName: Node.boxName + "pow"); getIt.registerSingleton(AuthenticationStore()); + getIt.registerSingleton(LedgerViewModel()); getIt.registerSingleton(WalletListStore()); getIt.registerSingleton(NodeListStoreBase.instance); getIt.registerSingleton(settingsStore); @@ -367,6 +371,11 @@ Future setup({ getIt.get(param1: type), _walletInfoSource, type); }); + getIt.registerFactoryParam((type, _) => + WalletHardwareRestoreViewModel(getIt.get(), getIt.get(), + getIt.get(param1: type), _walletInfoSource, + type: type)); + getIt.registerFactory(() => WalletAddressListViewModel( appStore: getIt.get(), yatStore: getIt.get(), @@ -490,12 +499,8 @@ Future setup({ getIt.registerLazySingleton(() => KeyServiceImpl()); getIt.registerLazySingleton(() { - final Web3WalletService web3WalletService = Web3WalletService( - getIt.get(), - getIt.get(), - appStore, - getIt.get() - ); + final Web3WalletService web3WalletService = Web3WalletService(getIt.get(), + getIt.get(), appStore, getIt.get()); web3WalletService.create(); return web3WalletService; }); @@ -599,6 +604,7 @@ Future setup({ getIt.get(), getIt.get(), _transactionDescriptionBox, + getIt.get(), ), ); @@ -804,11 +810,11 @@ Future setup({ editingNode: editingNode, isSelected: isSelected)); - getIt.registerFactory( - () => RobinhoodBuyProvider(wallet: getIt.get().wallet!)); + getIt.registerFactory(() => RobinhoodBuyProvider( + wallet: getIt.get().wallet!, ledgerVM: getIt.get())); - getIt - .registerFactory(() => DFXBuyProvider(wallet: getIt.get().wallet!)); + getIt.registerFactory(() => DFXBuyProvider( + wallet: getIt.get().wallet!, ledgerVM: getIt.get())); getIt.registerFactory(() => MoonPayProvider( settingsStore: getIt.get().settingsStore, @@ -928,8 +934,17 @@ Future setup({ transactionDetailsViewModel: getIt.get(param1: transactionInfo))); - getIt.registerFactoryParam( - (param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); + getIt.registerFactoryParam?>((param1, additionalParams) { + final isCreate = additionalParams?[0] ?? true; + final isHardwareWallet = additionalParams?[1] ?? false; + + return NewWalletTypePage( + onTypeSelected: param1, + isCreate: isCreate, + isHardwareWallet: isHardwareWallet, + ); + }); getIt.registerFactoryParam( (seedPhraseLength, _) => PreSeedPage(seedPhraseLength)); @@ -1144,9 +1159,9 @@ Future setup({ getIt.registerFactory(() => IoniaAccountCardsPage(getIt.get())); getIt.registerFactoryParam( - (TransactionInfo transactionInfo, _) => RBFDetailsPage( + (TransactionInfo transactionInfo, _) => RBFDetailsPage( transactionDetailsViewModel: - getIt.get(param1: transactionInfo))); + getIt.get(param1: transactionInfo))); getIt.registerFactory(() => AnonPayApi( useTorOnly: getIt.get().exchangeStatus == ExchangeApiMode.torOnly, diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index 61d5b6ae32..e72108e797 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -30,14 +30,23 @@ class CWEthereum extends Ethereum { }) => EVMChainRestoreWalletFromPrivateKey(name: name, password: password, privateKey: privateKey); + @override + WalletCredentials createEthereumHardwareWalletCredentials({ + required String name, + required HardwareAccountData hwAccountData, + WalletInfo? walletInfo, + }) => + EVMChainRestoreWalletFromHardware( + name: name, hwAccountData: hwAccountData, walletInfo: walletInfo); + @override String getAddress(WalletBase wallet) => (wallet as EthereumWallet).walletAddresses.address; @override String getPrivateKey(WalletBase wallet) { final privateKeyHolder = (wallet as EthereumWallet).evmChainPrivateKey; - String stringKey = bytesToHex(privateKeyHolder.privateKey); - return stringKey; + if (privateKeyHolder is EthPrivateKey) return bytesToHex(privateKeyHolder.privateKey); + return ""; } @override @@ -159,4 +168,24 @@ class CWEthereum extends Ethereum { } String getTokenAddress(CryptoCurrency asset) => (asset as Erc20Token).contractAddress; + + @override + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device) { + ((wallet as EVMChainWallet).evmChainPrivateKey as EvmLedgerCredentials).setLedger( + ledger, + device.connectionType == ConnectionType.usb ? device : null, + wallet.walletInfo.derivationInfo?.derivationPath); + } + + @override + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, + {int index = 0, int limit = 5}) async { + final hardwareWalletService = EVMChainHardwareWalletService(ledgerVM.ledger, ledgerVM.device); + try { + return await hardwareWalletService.getAvailableAccounts(index: index, limit: limit); + } on LedgerException catch (err) { + print(err.message); + throw err; + } + } } diff --git a/lib/main.dart b/lib/main.dart index eef8cef62c..b274c7a84d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -105,7 +105,11 @@ Future initializeAppConfigs() async { if (!CakeHive.isAdapterRegistered(DERIVATION_INFO_TYPE_ID)) { CakeHive.registerAdapter(DerivationInfoAdapter()); } - + + if (!CakeHive.isAdapterRegistered(HARDWARE_WALLET_TYPE_TYPE_ID)) { + CakeHive.registerAdapter(HardwareWalletTypeAdapter()); + } + if (!CakeHive.isAdapterRegistered(WALLET_TYPE_TYPE_ID)) { CakeHive.registerAdapter(WalletTypeAdapter()); } diff --git a/lib/polygon/cw_polygon.dart b/lib/polygon/cw_polygon.dart index 5baf4fbbc1..16aba284db 100644 --- a/lib/polygon/cw_polygon.dart +++ b/lib/polygon/cw_polygon.dart @@ -30,14 +30,23 @@ class CWPolygon extends Polygon { }) => EVMChainRestoreWalletFromPrivateKey(name: name, password: password, privateKey: privateKey); + @override + WalletCredentials createPolygonHardwareWalletCredentials({ + required String name, + required HardwareAccountData hwAccountData, + WalletInfo? walletInfo, + }) => + EVMChainRestoreWalletFromHardware( + name: name, hwAccountData: hwAccountData, walletInfo: walletInfo); + @override String getAddress(WalletBase wallet) => (wallet as PolygonWallet).walletAddresses.address; @override String getPrivateKey(WalletBase wallet) { final privateKeyHolder = (wallet as PolygonWallet).evmChainPrivateKey; - String stringKey = bytesToHex(privateKeyHolder.privateKey); - return stringKey; + if (privateKeyHolder is EthPrivateKey) return bytesToHex(privateKeyHolder.privateKey); + return ""; } @override @@ -67,21 +76,21 @@ class CWPolygon extends Polygon { int? feeRate, }) => EVMChainTransactionCredentials( - outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) - .toList(), - priority: priority as EVMChainTransactionPriority, - currency: currency, - feeRate: feeRate, - ); + outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + priority: priority as EVMChainTransactionPriority, + currency: currency, + feeRate: feeRate, + ); Object createPolygonTransactionCredentialsRaw( List outputs, { @@ -157,4 +166,23 @@ class CWPolygon extends Polygon { } String getTokenAddress(CryptoCurrency asset) => (asset as Erc20Token).contractAddress; + + @override + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device) { + ((wallet as EVMChainWallet).evmChainPrivateKey as EvmLedgerCredentials).setLedger( + ledger, + device.connectionType == ConnectionType.usb ? device : null, + wallet.walletInfo.derivationInfo?.derivationPath); + } + + @override + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, + {int index = 0, int limit = 5}) async { + final hardwareWalletService = EVMChainHardwareWalletService(ledgerVM.ledger, ledgerVM.device); + try { + return await hardwareWalletService.getAvailableAccounts(index: index, limit: limit); + } on LedgerException catch (err) { + throw err; + } + } } diff --git a/lib/router.dart b/lib/router.dart index 9f5dfb838d..3032ceb6a8 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -1,120 +1,124 @@ import 'package:cake_wallet/anonpay/anonpay_info_base.dart'; import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; +import 'package:cake_wallet/anypay/any_pay_payment_committed_info.dart'; +import 'package:cake_wallet/buy/order.dart'; import 'package:cake_wallet/core/totp_request_details.dart'; import 'package:cake_wallet/core/wallet_connect/web3wallet_service.dart'; +import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/contact_record.dart'; -import 'package:cake_wallet/buy/order.dart'; import 'package:cake_wallet/entities/qr_view_data.dart'; import 'package:cake_wallet/entities/wallet_nft_response.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart'; +import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/anonpay_details/anonpay_details_page.dart'; +import 'package:cake_wallet/src/screens/auth/auth_page.dart'; import 'package:cake_wallet/src/screens/backup/backup_page.dart'; import 'package:cake_wallet/src/screens/backup/edit_backup_password_page.dart'; import 'package:cake_wallet/src/screens/buy/buy_options_page.dart'; import 'package:cake_wallet/src/screens/buy/buy_webview_page.dart'; import 'package:cake_wallet/src/screens/buy/webview_page.dart'; +import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart'; +import 'package:cake_wallet/src/screens/connect_device/select_hardware_wallet_account_page.dart'; +import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; +import 'package:cake_wallet/src/screens/contact/contact_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/dashboard_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_dashboard_actions.dart'; import 'package:cake_wallet/src/screens/dashboard/edit_token_page.dart'; import 'package:cake_wallet/src/screens/dashboard/home_settings_page.dart'; +import 'package:cake_wallet/src/screens/dashboard/pages/address_page.dart'; import 'package:cake_wallet/src/screens/dashboard/pages/nft_details_page.dart'; -import 'package:cake_wallet/src/screens/nano/nano_change_rep_page.dart'; -import 'package:cake_wallet/src/screens/nano_accounts/nano_account_edit_or_create_page.dart'; -import 'package:cake_wallet/src/screens/nodes/pow_node_create_or_edit_page.dart'; -import 'package:cake_wallet/src/screens/restore/sweeping_wallet_page.dart'; -import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart'; -import 'package:cake_wallet/src/screens/receive/anonpay_receive_page.dart'; -import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_dashboard_actions.dart'; import 'package:cake_wallet/src/screens/dashboard/pages/transactions_page.dart'; -import 'package:cake_wallet/src/screens/restore/wallet_restore_choose_derivation.dart'; -import 'package:cake_wallet/src/screens/settings/desktop_settings/desktop_settings_page.dart'; -import 'package:cake_wallet/src/screens/settings/display_settings_page.dart'; -import 'package:cake_wallet/src/screens/settings/domain_lookups_page.dart'; -import 'package:cake_wallet/src/screens/settings/manage_nodes_page.dart'; -import 'package:cake_wallet/src/screens/settings/other_settings_page.dart'; -import 'package:cake_wallet/src/screens/settings/privacy_page.dart'; -import 'package:cake_wallet/src/screens/settings/security_backup_page.dart'; +import 'package:cake_wallet/src/screens/disclaimer/disclaimer_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; +import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; +import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart'; +import 'package:cake_wallet/src/screens/faq/faq_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_cards_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_account_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_redeem_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_custom_tip_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_gift_card_detail_page.dart'; import 'package:cake_wallet/src/screens/ionia/cards/ionia_more_options_page.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_payment_status_page.dart'; +import 'package:cake_wallet/src/screens/ionia/ionia.dart'; +import 'package:cake_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart'; +import 'package:cake_wallet/src/screens/nano/nano_change_rep_page.dart'; +import 'package:cake_wallet/src/screens/nano_accounts/nano_account_edit_or_create_page.dart'; import 'package:cake_wallet/src/screens/new_wallet/advanced_privacy_settings_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/new_wallet_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart'; +import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; +import 'package:cake_wallet/src/screens/nodes/pow_node_create_or_edit_page.dart'; import 'package:cake_wallet/src/screens/order_details/order_details_page.dart'; import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; +import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart'; +import 'package:cake_wallet/src/screens/receive/anonpay_receive_page.dart'; +import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart'; +import 'package:cake_wallet/src/screens/receive/receive_page.dart'; +import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; +import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; +import 'package:cake_wallet/src/screens/restore/sweeping_wallet_page.dart'; +import 'package:cake_wallet/src/screens/restore/wallet_restore_choose_derivation.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; +import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; +import 'package:cake_wallet/src/screens/send/send_page.dart'; +import 'package:cake_wallet/src/screens/send/send_template_page.dart'; import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; -import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; +import 'package:cake_wallet/src/screens/settings/desktop_settings/desktop_settings_page.dart'; +import 'package:cake_wallet/src/screens/settings/display_settings_page.dart'; +import 'package:cake_wallet/src/screens/settings/domain_lookups_page.dart'; +import 'package:cake_wallet/src/screens/settings/manage_nodes_page.dart'; +import 'package:cake_wallet/src/screens/settings/other_settings_page.dart'; +import 'package:cake_wallet/src/screens/settings/privacy_page.dart'; +import 'package:cake_wallet/src/screens/settings/security_backup_page.dart'; import 'package:cake_wallet/src/screens/settings/tor_page.dart'; +import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart'; -import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; -import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; +import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; +import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.dart'; import 'package:cake_wallet/src/screens/support/support_page.dart'; import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart'; import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart'; +import 'package:cake_wallet/src/screens/trade_details/trade_details_page.dart'; +import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart'; import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart'; import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart'; +import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart'; import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart'; +import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; +import 'package:cake_wallet/src/screens/wallet_list/wallet_list_page.dart'; +import 'package:cake_wallet/src/screens/welcome/create_welcome_page.dart'; import 'package:cake_wallet/utils/payment_request.dart'; +import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/nft_view_model.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart'; import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; -import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/seed_type_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_hardware_restore_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_new_vm.dart'; import 'package:cake_wallet/wallet_type_utils.dart'; +import 'package:cake_wallet/wallet_types.g.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/nano_account.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:cake_wallet/routes.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/di.dart'; -import 'package:cake_wallet/view_model/wallet_new_vm.dart'; -import 'package:cake_wallet/exchange/trade.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/src/screens/dashboard/dashboard_page.dart'; -import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; -import 'package:cake_wallet/src/screens/auth/auth_page.dart'; -import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; -import 'package:cake_wallet/src/screens/receive/receive_page.dart'; -import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.dart'; -import 'package:cake_wallet/src/screens/wallet_list/wallet_list_page.dart'; -import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart'; -import 'package:cake_wallet/src/screens/new_wallet/new_wallet_page.dart'; -import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; -import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; -import 'package:cake_wallet/src/screens/send/send_page.dart'; -import 'package:cake_wallet/src/screens/disclaimer/disclaimer_page.dart'; -import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart'; -import 'package:cake_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart'; -import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; -import 'package:cake_wallet/src/screens/contact/contact_page.dart'; -import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; -import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; -import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; -import 'package:cake_wallet/src/screens/faq/faq_page.dart'; -import 'package:cake_wallet/src/screens/trade_details/trade_details_page.dart'; -import 'package:cake_wallet/src/screens/welcome/create_welcome_page.dart'; -import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart'; -import 'package:cake_wallet/src/screens/send/send_template_page.dart'; -import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; -import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; -import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart'; import 'package:flutter/services.dart'; -import 'package:cake_wallet/wallet_types.g.dart'; -import 'package:cake_wallet/src/screens/dashboard/pages/address_page.dart'; -import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart'; -import 'package:cake_wallet/src/screens/ionia/ionia.dart'; -import 'package:cake_wallet/src/screens/ionia/cards/ionia_payment_status_page.dart'; -import 'package:cake_wallet/anypay/any_pay_payment_committed_info.dart'; -import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/node.dart'; import 'src/screens/dashboard/pages/nft_import_page.dart'; @@ -151,7 +155,15 @@ Route createRoute(RouteSettings settings) { final walletNewVM = getIt.get(param1: type); final seedTypeViewModel = getIt.get(); - return CupertinoPageRoute(builder: (_) => NewWalletPage(walletNewVM, seedTypeViewModel)); + return CupertinoPageRoute( + builder: (_) => NewWalletPage(walletNewVM, seedTypeViewModel)); + + case Routes.chooseHardwareWalletAccount: + final arguments = settings.arguments as List; + final type = arguments[0] as WalletType; + final walletVM = getIt.get(param1: type); + + return CupertinoPageRoute(builder: (_) => SelectHardwareWalletAccountPage(walletVM)); case Routes.setupPin: Function(PinCodeState, String)? callback; @@ -168,7 +180,7 @@ Route createRoute(RouteSettings settings) { builder: (_) => getIt.get( param1: (BuildContext context, WalletType type) => Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: type), - param2: false)); + param2: [false, false])); case Routes.restoreOptions: final isNewInstall = settings.arguments as bool; @@ -199,7 +211,46 @@ Route createRoute(RouteSettings settings) { builder: (_) => getIt.get( param1: (BuildContext context, WalletType type) => Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: type), - param2: false)); + param2: [false, false])); + } + + case Routes.restoreWalletFromHardwareWallet: + final isNewInstall = settings.arguments as bool; + + if (isNewInstall) { + return CupertinoPageRoute( + builder: (_) => getIt.get( + param1: (PinCodeState context, dynamic _) => + Navigator.of(context.context).pushNamed(Routes.restoreWalletFromHardwareWallet, arguments: false), + ), + fullscreenDialog: true, + ); + } + if (isSingleCoin) { + return MaterialPageRoute( + builder: (_) => ConnectDevicePage( + ConnectDevicePageParams( + walletType: availableWalletTypes.first, + onConnectDevice: (BuildContext context, _) => + Navigator.of(context).pushNamed(Routes.chooseHardwareWalletAccount, + arguments: [availableWalletTypes.first]), + ), + getIt.get(), + )); + } else { + return CupertinoPageRoute( + builder: (_) => getIt.get( + param1: (BuildContext context, WalletType type) { + final arguments = ConnectDevicePageParams( + walletType: type, + onConnectDevice: (BuildContext context, _) => + Navigator.of(context).pushNamed(Routes.chooseHardwareWalletAccount, + arguments: [type]), + ); + + Navigator.of(context).pushNamed(Routes.connectDevices, arguments: arguments); + }, + param2: [false, true])); } case Routes.restoreWalletTypeFromQR: @@ -400,8 +451,7 @@ Route createRoute(RouteSettings settings) { case Routes.buySellPage: final args = settings.arguments as bool; - return MaterialPageRoute( - builder: (_) => getIt.get(param1: args)); + return MaterialPageRoute(builder: (_) => getIt.get(param1: args)); case Routes.buyWebView: final args = settings.arguments as List; @@ -424,8 +474,7 @@ Route createRoute(RouteSettings settings) { case Routes.preSeedPage: return MaterialPageRoute( - builder: (_) => getIt.get( - param1: settings.arguments as int)); + builder: (_) => getIt.get(param1: settings.arguments as int)); case Routes.backup: return CupertinoPageRoute( @@ -647,6 +696,11 @@ Route createRoute(RouteSettings settings) { case Routes.torPage: return MaterialPageRoute(builder: (_) => getIt.get()); + case Routes.connectDevices: + final params = settings.arguments as ConnectDevicePageParams; + return MaterialPageRoute( + builder: (_) => ConnectDevicePage(params, getIt.get())); + default: return MaterialPageRoute( builder: (_) => Scaffold( diff --git a/lib/routes.dart b/lib/routes.dart index 9c4e216519..1b518d3289 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -6,9 +6,11 @@ class Routes { static const seed = '/seed'; static const restoreOptions = '/restore_options'; static const restoreWalletFromSeedKeys = '/restore_wallet_from_seeds_keys'; + static const restoreWalletFromHardwareWallet = '/restore/hardware_wallet'; static const restoreWalletTypeFromQR = '/restore_wallet_from_qr_code'; static const restoreWalletChooseDerivation = '/restore_wallet_choose_derivation'; + static const chooseHardwareWalletAccount = '/restore/hardware_wallet/accounts'; static const dashboard = '/dashboard'; static const send = '/send'; static const transactionDetails = '/transaction_info'; @@ -107,4 +109,5 @@ class Routes { static const nftDetailsPage = '/nft_details_page'; static const importNFTPage = '/import_nft_page'; static const torPage = '/tor_page'; + static const connectDevices = '/device/connect'; } diff --git a/lib/src/screens/connect_device/connect_device_page.dart b/lib/src/screens/connect_device/connect_device_page.dart new file mode 100644 index 0000000000..dfb32bebac --- /dev/null +++ b/lib/src/screens/connect_device/connect_device_page.dart @@ -0,0 +1,221 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/connect_device/widgets/device_tile.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:flutter/material.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; +import 'package:permission_handler/permission_handler.dart'; + +typedef OnConnectDevice = void Function(BuildContext, LedgerViewModel); + +class ConnectDevicePageParams { + final WalletType walletType; + final OnConnectDevice onConnectDevice; + + ConnectDevicePageParams({required this.walletType, required this.onConnectDevice}); +} + +class ConnectDevicePage extends BasePage { + final WalletType walletType; + final OnConnectDevice onConnectDevice; + final LedgerViewModel ledgerVM; + + ConnectDevicePage(ConnectDevicePageParams params, this.ledgerVM) + : walletType = params.walletType, + onConnectDevice = params.onConnectDevice; + + @override + String get title => S.current.restore_title_from_hardware_wallet; + + @override + Widget body(BuildContext context) => ConnectDevicePageBody(walletType, onConnectDevice, ledgerVM); +} + +class ConnectDevicePageBody extends StatefulWidget { + final WalletType walletType; + final OnConnectDevice onConnectDevice; + final LedgerViewModel ledgerVM; + + const ConnectDevicePageBody(this.walletType, this.onConnectDevice, this.ledgerVM); + + @override + ConnectDevicePageBodyState createState() => ConnectDevicePageBodyState(); +} + +class ConnectDevicePageBodyState extends State { + final imageLedger = 'assets/images/ledger_nano.png'; + + final ledger = Ledger( + options: LedgerOptions( + scanMode: ScanMode.balanced, + maxScanDuration: const Duration(minutes: 5), + ), + onPermissionRequest: (_) async { + Map statuses = await [ + Permission.bluetoothScan, + Permission.bluetoothConnect, + Permission.bluetoothAdvertise, + ].request(); + + return statuses.values.where((status) => status.isDenied).isEmpty; + }, + ); + + var bleIsEnabled = true; + var bleDevices = []; + var usbDevices = []; + + late Timer? _usbRefreshTimer = null; + late Timer? _bleRefreshTimer = null; + late StreamSubscription? _bleRefresh = null; + + @override + void initState() { + super.initState(); + Future.delayed( + Duration(seconds: 1), + () => _bleRefresh = ledger.scan().listen((device) => setState(() => bleDevices.add(device))), + ); + // _bleRefreshTimer = Timer.periodic(Duration(seconds: 1), (_) => _refreshBleDevices()); + + if (Platform.isAndroid) { + _usbRefreshTimer = Timer.periodic(Duration(seconds: 1), (_) => _refreshUsbDevices()); + } + } + + @override + void dispose() { + _bleRefreshTimer?.cancel(); + _usbRefreshTimer?.cancel(); + _bleRefresh?.cancel(); + super.dispose(); + } + + Future _refreshUsbDevices() async { + final dev = await ledger.listUsbDevices(); + if (usbDevices.length != dev.length) setState(() => usbDevices = dev); + } + + Future _refreshBleDevices() async { + final isBleEnabled = await Permission.bluetooth.serviceStatus.isEnabled; + + setState(() => bleIsEnabled = isBleEnabled); + + if (isBleEnabled) { + _bleRefresh = ledger.scan().listen((device) => setState(() => bleDevices.add(device))); + _bleRefreshTimer?.cancel(); + _bleRefreshTimer = null; + } + } + + Future _connectToDevice(LedgerDevice device) async { + await widget.ledgerVM.connectLedger(device); + widget.onConnectDevice(context, widget.ledgerVM); + } + + @override + Widget build(BuildContext context) { + return Center( + child: Container( + width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint, + height: double.infinity, + padding: EdgeInsets.symmetric(vertical: 24, horizontal: 24), + child: SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), + child: Text( + Platform.isIOS + ? S.of(context).connect_your_hardware_wallet_ios + : S.of(context).connect_your_hardware_wallet, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor), + textAlign: TextAlign.center, + ), + ), + if (!bleIsEnabled) + Padding( + padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), + child: Text( + S.of(context).ledger_please_enable_bluetooth, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor), + textAlign: TextAlign.center, + ), + ), + if (bleDevices.length > 0) ...[ + Padding( + padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), + child: Container( + width: double.infinity, + child: Text( + S.of(context).bluetooth, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: Theme.of(context).extension()!.titleColor, + ), + ), + ), + ), + ...bleDevices + .map( + (device) => Padding( + padding: EdgeInsets.only(bottom: 20), + child: DeviceTile( + onPressed: () => _connectToDevice(device), + title: device.name, + leading: imageLedger, + connectionType: device.connectionType, + ), + ), + ) + .toList() + ], + if (usbDevices.length > 0) ...[ + Padding( + padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), + child: Container( + width: double.infinity, + child: Text( + S.of(context).usb, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: Theme.of(context).extension()!.titleColor, + ), + ), + ), + ), + ...usbDevices + .map( + (device) => Padding( + padding: EdgeInsets.only(bottom: 20), + child: DeviceTile( + onPressed: () => _connectToDevice(device), + title: device.name, + leading: imageLedger, + connectionType: device.connectionType, + ), + ), + ) + .toList(), + ] + ], + ), + ), + ), + ); + } +} diff --git a/lib/src/screens/connect_device/debug_device_page.dart b/lib/src/screens/connect_device/debug_device_page.dart new file mode 100644 index 0000000000..f5a9ef2a44 --- /dev/null +++ b/lib/src/screens/connect_device/debug_device_page.dart @@ -0,0 +1,212 @@ +// import 'dart:convert'; +// +// import 'package:cake_wallet/src/screens/base_page.dart'; +// import 'package:cake_wallet/src/screens/connect_device/widgets/device_tile.dart'; +// import 'package:cake_wallet/src/widgets/primary_button.dart'; +// import 'package:cake_wallet/utils/responsive_layout_util.dart'; +// import 'package:convert/convert.dart'; +// import 'package:flutter/material.dart'; +// import 'package:ledger_bitcoin/ledger_bitcoin.dart'; +// import 'package:ledger_flutter/ledger_flutter.dart'; +// import 'package:permission_handler/permission_handler.dart'; +// import 'package:polyseed/polyseed.dart'; +// +// class DebugDevicePage extends BasePage { +// @override +// String get title => "Connect Ledger"; +// +// @override +// Widget body(BuildContext context) => DebugDevicePageBody(); +// } +// +// class DebugDevicePageBody extends StatefulWidget { +// @override +// DebugDevicePageBodyState createState() => DebugDevicePageBodyState(); +// } +// +// class DebugDevicePageBodyState extends State { +// final imageLedger = Image.asset( +// 'assets/images/ledger_icon_black.png', +// width: 40, +// ); +// final ledger = Ledger( +// options: LedgerOptions( +// scanMode: ScanMode.balanced, +// maxScanDuration: const Duration(milliseconds: 5000), +// ), +// onPermissionRequest: (status) async { +// Map statuses = await [ +// // Permission.location, +// Permission.bluetoothScan, +// Permission.bluetoothConnect, +// Permission.bluetoothAdvertise, +// ].request(); +// +// if (status != BleStatus.ready) { +// return false; +// } +// +// return statuses.values.where((status) => status.isDenied).isEmpty; +// }, +// ); +// +// late BitcoinLedgerApp btc; +// var devices = []; +// var status = ""; +// var counter = 0; +// LedgerDevice? selectedDevice = null; +// +// @override +// void initState() { +// super.initState(); +// btc = BitcoinLedgerApp(ledger); +// } +// +// @override +// void dispose() { +// super.dispose(); +// ledger.close(ConnectionType.ble); +// ledger.close(ConnectionType.usb); +// } +// +// Future reconnectCurrentDevice() async { +// // await ledger.disconnect(selectedDevice!); +// // await ledger.connect(selectedDevice!); +// } +// +// Future disconnectCurrentDevice() async { +// await ledger.disconnect(selectedDevice!); +// setState(() => selectedDevice = null); +// } +// +// @override +// Widget build(BuildContext context) { +// final imageLedger = 'assets/images/ledger_nano.png'; +// +// return Center( +// child: Container( +// width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint, +// height: double.infinity, +// padding: EdgeInsets.symmetric(vertical: 24, horizontal: 24), +// child: SingleChildScrollView( +// child: Column( +// children: [ +// Padding( +// padding: EdgeInsets.only(top: 20), +// child: Text(status), +// ), +// if (selectedDevice != null) ...[ +// DebugButton( +// title: "Get Version", +// method: "Version", +// func: () async => await btc.getVersion(selectedDevice!), +// ), +// DebugButton( +// title: "Get Master Fingerprint", +// method: "Master Fingerprint", +// func: () async => hex.encode(await btc.getMasterFingerprint(selectedDevice!)), +// ), +// DebugButton( +// title: "Get XPub", +// method: "XPub", +// func: () async => await btc.getXPubKey(selectedDevice!, derivationPath: "m/84'/0'/$counter'"), +// ), +// DebugButton( +// title: "Get Wallet Address", +// method: "Wallet Address", +// func: () async { +// setState(() => counter++); +// final derivationPath = "m/84'/0'/$counter'/0/0"; +// return await btc.getAccounts(selectedDevice!, accountsDerivationPath: derivationPath); +// // return await ethereum!.getHardwareWalletAccounts(selectedDevice!); +// }, +// ), +// DebugButton( +// title: "Send Money", +// method: "Sig", +// func: () async { +// final psbt = PsbtV2(); +// final psbtBuf = base64.decode( +// "cHNidP8BAgQCAAAAAQQBAQEFAQIAAQ4gTW6k/cwKKu1u7m9oKr5ob7VcAC0IPkfaDitRi/FkD7sBDwQAAAAAARAE/////wEA/ekBAQAAAAABA9AYVQLI722H0osKMa/4dvMucrnKV1Myxtlp0l0BoOBDAQAAAAD/////ku6r2ABaHt9N26f/P4eMljX8t1f4lBcFfEwuNm/uXYoBAAAAAP////+YeAl8arEGKOcyrWJAYwSboyCstkhHN8zn7/vy7pkYTAEAAAAA/////wHlHgAAAAAAABYAFKdq0umSucBGVkl2MpT6Hgo/0a/xAkcwRAIgMkiJmNFbEi2I3CQYOwyV/JepCnFQRvj4xghkySpFcJMCIGAypkkWltfj+ucvqUIu27tusDAIAAB+rBhX/GV7hPlEASEDyLmWyTLjLfC9kn8pnW42jW5N6EJo5fObjWWEyfLDu9UCSDBFAiEAg9crVtwBPF+sWk+Th6pLwzDjJGItwsUCvoBPtmMTEb4CIDGuM7WOguV0TP21oidF3bSUZlEAjUHWfWzxLKw+3LofASEDfN16xKb70UZSeQyX5Tlh8iRq7np5Nlz9GYdcSU50sKwCSDBFAiEAvotOblaEiBptRWkvb6bj2MGyRjTphKLBLiHYmrRMTCgCIEKJH+z65uPSSz1NIb0d/u3bU9l0xcWk0idEsXjB+BIiASEDrAEiEtrSNKxbh6F/KPaCTafF2LVjCzb75WB+x4xSuoQAAAAAAQEf5R4AAAAAAAAWABSnatLpkrnARlZJdjKU+h4KP9Gv8SIGA3xMuxmPsBAm9aMEUBs3N46DB+Kdts3bZR/Wxt+uM0H4GKtN6bpUAACAAAAAgAAAAIAAAAAAAAAAAAABBBTk7bEOxYcdXDi1eeWraYDufm6eJgEDCOgDAAAAAAAAAAEEFDX3g/pnDXIfsRw8shK42NZn+SdpAQMIiBMAAAAAAAAiAgN8TLsZj7AQJvWjBFAbNzeOgwfinbbN22Uf1sbfrjNB+BirTem6VAAAgAAAAIAAAACAAAAAAAAAAAAA" +// ); +// psbt.deserialize(psbtBuf); +// final result = await btc.signPsbt(selectedDevice!, psbt: psbt); +// return result.toHexString(); +// }, +// ), +// Padding( +// padding: EdgeInsets.only(top: 20), +// child: PrimaryButton( +// text: "Disconnect", +// onPressed: () => disconnectCurrentDevice(), +// color: Theme.of(context).primaryColor, +// textColor: Colors.white), +// ), +// ], +// if (selectedDevice == null) ...[ +// ...devices +// .map( +// (device) => Padding( +// padding: EdgeInsets.only(bottom: 20), +// child: DeviceTile( +// onPressed: () { +// setState(() => selectedDevice = device); +// ledger.connect(device); +// }, +// title: device.name, +// leading: imageLedger, +// connectionType: device.connectionType, +// ), +// ), +// ) +// .toList(), +// PrimaryButton( +// text: "Refresh BLE", +// onPressed: () async { +// setState(() => devices = []); +// ledger.scan().listen((device) => setState(() { +// devices.add(device); +// })); +// }, +// color: Theme.of(context).primaryColor, +// textColor: Colors.white), +// Padding( +// padding: EdgeInsets.only(top: 20), +// child: PrimaryButton( +// text: "Use USB", +// onPressed: () async { +// final dev = await ledger.listUsbDevices(); +// setState(() => devices = dev); +// }, +// color: Theme.of(context).primaryColor, +// textColor: Colors.white), +// ), +// ], +// ], +// ), +// )), +// ); +// } +// +// Widget DebugButton( +// {required String title, required String method, required Future Function() func}) { +// return Padding( +// padding: EdgeInsets.only(top: 20), +// child: PrimaryButton( +// text: title, +// onPressed: () async { +// try { +// setState(() => status = "Sending..."); +// final acc = await func(); +// setState(() => status = "$method: $acc"); +// print("$method: $acc"); +// } on LedgerException catch (ex) { +// setState(() => status = "${ex.errorCode.toRadixString(16)} ${ex.message}"); +// print("${ex.errorCode.toRadixString(16)} ${ex.message}"); +// } +// }, +// color: Theme.of(context).primaryColor, +// textColor: Colors.white), +// ); +// } +// } diff --git a/lib/src/screens/connect_device/select_hardware_wallet_account_page.dart b/lib/src/screens/connect_device/select_hardware_wallet_account_page.dart new file mode 100644 index 0000000000..31542ab5fa --- /dev/null +++ b/lib/src/screens/connect_device/select_hardware_wallet_account_page.dart @@ -0,0 +1,256 @@ +import 'package:cake_wallet/core/wallet_name_validator.dart'; +import 'package:cake_wallet/entities/generate_name.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; +import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; +import 'package:cake_wallet/view_model/wallet_hardware_restore_view_model.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_mobx/flutter_mobx.dart'; +import 'package:mobx/mobx.dart'; + +class SelectHardwareWalletAccountPage extends BasePage { + SelectHardwareWalletAccountPage(this._walletHardwareRestoreVM); + + final WalletHardwareRestoreViewModel _walletHardwareRestoreVM; + + @override + String get title => S.current.restore_title_from_hardware_wallet; + + @override + Widget body(BuildContext context) => SelectHardwareWalletAccountForm(_walletHardwareRestoreVM); +} + +class SelectHardwareWalletAccountForm extends StatefulWidget { + SelectHardwareWalletAccountForm(this._walletHardwareRestoreVM); + + final WalletHardwareRestoreViewModel _walletHardwareRestoreVM; + + @override + _SelectHardwareWalletAccountFormState createState() => + _SelectHardwareWalletAccountFormState(_walletHardwareRestoreVM); +} + +class _SelectHardwareWalletAccountFormState extends State { + _SelectHardwareWalletAccountFormState(this._walletHardwareRestoreVM) + : _formKey = GlobalKey(), + _controller = TextEditingController(); + + final GlobalKey _formKey; + final WalletHardwareRestoreViewModel _walletHardwareRestoreVM; + final TextEditingController _controller; + + @override + void initState() { + super.initState(); + _setEffects(context); + if (_walletHardwareRestoreVM.availableAccounts.length == 0) _loadMoreAccounts(); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.only(top: 24), + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + content: Center( + child: ConstrainedBox( + constraints: + BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(top: 0), + child: Form( + key: _formKey, + child: Stack( + alignment: Alignment.centerRight, + children: [ + TextFormField( + onChanged: (value) => _walletHardwareRestoreVM.name = value, + controller: _controller, + style: TextStyle( + fontSize: 20.0, + fontWeight: FontWeight.w600, + color: Theme.of(context).extension()!.titleColor, + ), + decoration: InputDecoration( + hintStyle: TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.hintTextColor, + ), + hintText: S.of(context).wallet_name, + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: + Theme.of(context).extension()!.underlineColor, + width: 1.0, + ), + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: + Theme.of(context).extension()!.underlineColor, + width: 1.0, + ), + ), + suffixIcon: Semantics( + label: S.of(context).generate_name, + child: IconButton( + onPressed: () async { + final rName = await generateName(); + FocusManager.instance.primaryFocus?.unfocus(); + + setState(() { + _controller.text = rName; + _walletHardwareRestoreVM.name = rName; + _controller.selection = TextSelection.fromPosition( + TextPosition(offset: _controller.text.length)); + }); + }, + icon: Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.0), + color: Theme.of(context).hintColor, + ), + width: 34, + height: 34, + child: Image.asset( + 'assets/images/refresh_icon.png', + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor, + ), + ), + ), + ), + ), + validator: WalletNameValidator(), + ), + ], + ), + ), + ), + Padding( + padding: EdgeInsets.only(top: 20), + child: Container( + width: double.infinity, + child: Text( + "Available accounts", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor, + ), + ), + ), + ), + Observer( + builder: (context) => Column( + children: _walletHardwareRestoreVM.availableAccounts.map((acc) { + final address = acc.address; + return Padding( + padding: EdgeInsets.only(top: 10), + child: SelectButton( + image: Image.asset( + walletTypeToCryptoCurrency(_walletHardwareRestoreVM.type).iconPath ?? + '', + height: 24, + width: 24, + ), + text: + "${address.substring(0, 6)}...${address.substring(address.length - 6)}", + showTrailingIcon: false, + height: 54, + isSelected: _walletHardwareRestoreVM.selectedAccount == acc, + onTap: () => + setState(() => _walletHardwareRestoreVM.selectedAccount = acc), + ), + ); + }).toList(), + ), + ), + Padding( + padding: EdgeInsets.only(top: 10), + child: Observer(builder: (context) { + return LoadingPrimaryButton( + onPressed: _loadMoreAccounts, + text: S.of(context).load_more, + color: Theme.of(context).primaryColor, + textColor: Colors.white, + isLoading: _walletHardwareRestoreVM.isLoadingMoreAccounts, + ); + }), + ), + ], + ), + ), + ), + bottomSectionPadding: EdgeInsets.all(24), + bottomSection: Observer( + builder: (context) { + return LoadingPrimaryButton( + onPressed: _confirmForm, + text: S.of(context).seed_language_next, + color: Colors.green, + textColor: Colors.white, + isDisabled: _walletHardwareRestoreVM.name.isEmpty, + ); + }, + ), + ), + ); + } + + Future _loadMoreAccounts() async { + _walletHardwareRestoreVM.isLoadingMoreAccounts = true; + _walletHardwareRestoreVM.getNextAvailableAccounts(5); + } + + Future _confirmForm() async { + await _walletHardwareRestoreVM.create(); + } + + bool _effectsInstalled = false; + + void _setEffects(BuildContext context) { + if (_effectsInstalled) return; + + reaction((_) => _walletHardwareRestoreVM.error, (String? error) { + + if (error != null) { + + if (error == S.current.ledger_connection_error) + Navigator.of(context).pop(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).error, + alertContent: error, + buttonText: S.of(context).ok, + buttonAction: () { + _walletHardwareRestoreVM.error = null; + Navigator.of(context).pop(); + }); + }); + }); + } + }); + + _effectsInstalled = true; + } +} diff --git a/lib/src/screens/connect_device/widgets/device_tile.dart b/lib/src/screens/connect_device/widgets/device_tile.dart new file mode 100644 index 0000000000..8367d16067 --- /dev/null +++ b/lib/src/screens/connect_device/widgets/device_tile.dart @@ -0,0 +1,78 @@ +import 'package:cake_wallet/themes/extensions/option_tile_theme.dart'; +import 'package:flutter/material.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; + +class DeviceTile extends StatelessWidget { + const DeviceTile({ + required this.onPressed, + required this.title, + this.leading, + this.connectionType, + }); + + final VoidCallback onPressed; + final String title; + final String? leading; + final ConnectionType? connectionType; + + String? get connectionTypeIcon { + switch (connectionType) { + case ConnectionType.ble: + return 'assets/images/bluetooth.png'; + case ConnectionType.usb: + return 'assets/images/usb.png'; + case null: + return null; + } + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onPressed, + child: Container( + width: double.infinity, + padding: EdgeInsets.all(24), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(12)), + color: Theme.of(context).cardColor, + ), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (leading != null) + Image.asset( + leading!, + height: 30, + color: Theme.of(context).extension()!.titleColor, + ), + Expanded( + child: Padding( + padding: EdgeInsets.only(left: 16), + child: Text( + title, + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor, + ), + ), + ), + ), + if (connectionTypeIcon != null) + Center( + child: Image.asset( + connectionTypeIcon!, + height: 25, + color: Theme.of(context).extension()!.titleColor, + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart index 940ab54cad..f839f9d270 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart @@ -45,6 +45,7 @@ class SideMenuItem extends StatelessWidget { ? Icon( icon, color: _setColor(context), + size: 30, ) : Image.asset( imagePath ?? '', diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart index 7ba169154f..d9b5091363 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart @@ -82,7 +82,8 @@ class DesktopSidebarWrapper extends BasePage { width: sideMenuWidth, topItems: [ SideMenuItem( - imagePath: 'assets/images/wallet_outline.png', + // imagePath: 'assets/images/wallet_outline.png', + icon: Icons.home, isSelected: desktopSidebarViewModel.currentPage == SidebarItem.dashboard, onTap: () { desktopSidebarViewModel.onPageChange(SidebarItem.dashboard); diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index a2ad3fb809..83a57060de 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -148,6 +148,17 @@ class CryptoBalanceWidget extends StatelessWidget { maxLines: 1, textAlign: TextAlign.center, ), + if (dashboardViewModel.wallet.isHardwareWallet) + Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/ledger_nano.png', + width: 24, + color: Theme.of(context) + .extension()! + .pageTitleTextColor, + ), + ), if (dashboardViewModel .balanceViewModel.isHomeScreenSettingsEnabled) InkWell( diff --git a/lib/src/screens/new_wallet/new_wallet_type_page.dart b/lib/src/screens/new_wallet/new_wallet_type_page.dart index 8c8a94a7e6..dc22a60db9 100644 --- a/lib/src/screens/new_wallet/new_wallet_type_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_type_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; @@ -10,14 +12,20 @@ import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/wallet_types.g.dart'; +import 'package:cw_core/hardware/device_connection_type.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; class NewWalletTypePage extends BasePage { - NewWalletTypePage({required this.onTypeSelected, required this.isCreate}); + NewWalletTypePage({ + required this.onTypeSelected, + required this.isCreate, + required this.isHardwareWallet, + }); final void Function(BuildContext, WalletType) onTypeSelected; final bool isCreate; + final bool isHardwareWallet; final walletTypeImage = Image.asset('assets/images/wallet_type.png'); final walletTypeLightImage = Image.asset('assets/images/wallet_type_light.png'); @@ -31,15 +39,22 @@ class NewWalletTypePage extends BasePage { onTypeSelected: onTypeSelected, walletImage: currentTheme.type == ThemeType.dark ? walletTypeImage : walletTypeLightImage, isCreate: isCreate, + isHardwareWallet: isHardwareWallet, ); } class WalletTypeForm extends StatefulWidget { - WalletTypeForm({required this.onTypeSelected, required this.walletImage, required this.isCreate}); + WalletTypeForm({ + required this.onTypeSelected, + required this.walletImage, + required this.isCreate, + required this.isHardwareWallet, + }); final void Function(BuildContext, WalletType) onTypeSelected; final Image walletImage; final bool isCreate; + final bool isHardwareWallet; @override WalletTypeFormState createState() => WalletTypeFormState(); @@ -58,7 +73,11 @@ class WalletTypeFormState extends State { @override void initState() { - types = filteredTypes = availableWalletTypes; + types = filteredTypes = availableWalletTypes + .where((element) => + !widget.isHardwareWallet || + DeviceConnectionType.supportedConnectionTypes(element, Platform.isIOS).isNotEmpty) + .toList(); super.initState(); searchController.addListener(() { @@ -74,76 +93,81 @@ class WalletTypeFormState extends State { @override Widget build(BuildContext context) { return Center( - child: ConstrainedBox( - constraints: - BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(top: 48), - child: Text( - S.of(context).choose_wallet_currency, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.titleColor), - ), - ), - Padding( - padding: const EdgeInsets.fromLTRB(24, 24, 24, 12), - child: SearchBarWidget(searchController: searchController, borderRadius: 24), + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + child: Column( + children: [ + Padding( + padding: EdgeInsets.only(top: 48), + child: Text( + S.of(context).choose_wallet_currency, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor, ), - Expanded( - child: ScrollableWithBottomSection( - contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), - content: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - ...filteredTypes.map((type) => Padding( - padding: EdgeInsets.only(top: 12), - child: SelectButton( - image: Image.asset( - walletTypeToCryptoCurrency(type).iconPath ?? '', - height: 24, - width: 24), - text: walletTypeToDisplayName(type), - showTrailingIcon: false, - height: 54, - isSelected: selected == type, - onTap: () => setState(() => selected = type)), - )) - ], - ), - bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), - bottomSection: PrimaryButton( - onPressed: () => onTypeSelected(), - text: S.of(context).seed_language_next, - color: Theme.of(context).primaryColor, - textColor: Colors.white, - isDisabled: selected == null, + ), + ), + Padding( + padding: EdgeInsets.fromLTRB(24, 24, 24, 12), + child: SearchBarWidget(searchController: searchController, borderRadius: 24), + ), + Expanded( + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + content: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ...filteredTypes.map( + (type) => Padding( + padding: EdgeInsets.only(top: 12), + child: SelectButton( + image: Image.asset( + walletTypeToCryptoCurrency(type).iconPath ?? '', + height: 24, + width: 24, + ), + text: walletTypeToDisplayName(type), + showTrailingIcon: false, + height: 54, + isSelected: selected == type, + onTap: () => setState(() => selected = type), + deviceConnectionTypes: widget.isHardwareWallet + ? DeviceConnectionType.supportedConnectionTypes(type, Platform.isIOS) + : [], + ), + ), ), - ), + ], ), - ], - ))); + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + bottomSection: PrimaryButton( + onPressed: () => onTypeSelected(), + text: S.of(context).seed_language_next, + color: Theme.of(context).primaryColor, + textColor: Colors.white, + isDisabled: selected == null, + ), + ), + ), + ], + ), + ), + ); } Future onTypeSelected() async { - if (selected == null) { - throw Exception('Wallet Type is not selected yet.'); - } + if (selected == null) throw Exception('Wallet Type is not selected yet.'); if (selected == WalletType.haven && widget.isCreate) { return await showPopUp( context: context, - builder: (BuildContext context) { - return PopUpCancellableAlertDialog( - contentText: S.of(context).pause_wallet_creation, - actionButtonText: S.of(context).ok, - buttonAction: () => Navigator.of(context).pop(), - ); - }, + builder: (BuildContext context) => PopUpCancellableAlertDialog( + contentText: S.of(context).pause_wallet_creation, + actionButtonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop(), + ), ); } diff --git a/lib/src/screens/new_wallet/widgets/select_button.dart b/lib/src/screens/new_wallet/widgets/select_button.dart index d94c9767d2..2eda77d014 100644 --- a/lib/src/screens/new_wallet/widgets/select_button.dart +++ b/lib/src/screens/new_wallet/widgets/select_button.dart @@ -1,7 +1,8 @@ -import 'package:flutter/material.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/themes/extensions/filter_theme.dart'; import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; +import 'package:cw_core/hardware/device_connection_type.dart'; +import 'package:flutter/material.dart'; class SelectButton extends StatelessWidget { SelectButton({ @@ -16,6 +17,7 @@ class SelectButton extends StatelessWidget { this.textColor, this.arrowColor, this.borderColor, + this.deviceConnectionTypes, }); final Image? image; @@ -24,6 +26,7 @@ class SelectButton extends StatelessWidget { final bool isSelected; final VoidCallback onTap; final bool showTrailingIcon; + final List? deviceConnectionTypes; final double height; final Color? color; final Color? textColor; @@ -33,15 +36,26 @@ class SelectButton extends StatelessWidget { @override Widget build(BuildContext context) { final backgroundColor = color ?? (isSelected ? Colors.green : Theme.of(context).cardColor); - final effectiveTextColor = textColor ?? (isSelected - ? Theme.of(context).extension()!.restoreWalletButtonTextColor - : Theme.of(context).extension()!.buttonTextColor); - final effectiveArrowColor = arrowColor ?? (isSelected - ? Theme.of(context).extension()!.restoreWalletButtonTextColor - : Theme.of(context).extension()!.titlesColor); + final effectiveTextColor = textColor ?? + (isSelected + ? Theme.of(context).extension()!.restoreWalletButtonTextColor + : Theme.of(context).extension()!.buttonTextColor); + final effectiveArrowColor = arrowColor ?? + (isSelected + ? Theme.of(context).extension()!.restoreWalletButtonTextColor + : Theme.of(context).extension()!.titlesColor); + + final trailingIcons = []; + final selectArrowImage = + Image.asset('assets/images/select_arrow.png', color: effectiveArrowColor); - final selectArrowImage = Image.asset('assets/images/select_arrow.png', - color: effectiveArrowColor); + deviceConnectionTypes?.forEach((element) => trailingIcons.add(Image.asset( + element.iconString, + color: effectiveArrowColor, + height: 24, + ))); + + if (showTrailingIcon) trailingIcons.add(selectArrowImage); return GestureDetector( onTap: onTap, @@ -54,34 +68,33 @@ class SelectButton extends StatelessWidget { borderRadius: BorderRadius.all(Radius.circular(30)), color: backgroundColor, border: borderColor != null ? Border.all(color: borderColor!) : null, - ), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - image ?? Offstage(), - Padding( - padding: image != null - ? EdgeInsets.only(left: 15) - : EdgeInsets.only(left: 0), - child: Text( - text, - style: TextStyle( - fontSize: textSize, - fontWeight: FontWeight.w500, - color: effectiveTextColor, + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image ?? Offstage(), + Padding( + padding: image != null ? EdgeInsets.only(left: 15) : EdgeInsets.only(left: 0), + child: Text( + text, + style: TextStyle( + fontSize: textSize, + fontWeight: FontWeight.w500, + color: effectiveTextColor, + ), ), - ), - ) - ], + ) + ], + ), ), - if (showTrailingIcon) selectArrowImage + ...trailingIcons ], ), ), diff --git a/lib/src/screens/restore/restore_options_page.dart b/lib/src/screens/restore/restore_options_page.dart index 91ee9bd0b5..a0f3a597e5 100644 --- a/lib/src/screens/restore/restore_options_page.dart +++ b/lib/src/screens/restore/restore_options_page.dart @@ -1,19 +1,19 @@ import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/di.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/option_tile.dart'; +import 'package:cake_wallet/themes/extensions/option_tile_theme.dart'; +import 'package:cake_wallet/utils/permission_handler.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/view_model/restore/restore_from_qr_vm.dart'; import 'package:cake_wallet/view_model/restore/wallet_restore_from_qr_code.dart'; -import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:flutter/material.dart'; -import 'package:cake_wallet/routes.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:cake_wallet/src/screens/base_page.dart'; -import 'package:cake_wallet/generated/i18n.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:cake_wallet/utils/permission_handler.dart'; class RestoreOptionsPage extends BasePage { RestoreOptionsPage({required this.isNewInstall}); @@ -22,12 +22,15 @@ class RestoreOptionsPage extends BasePage { String get title => S.current.restore_restore_wallet; final bool isNewInstall; - final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png'); - final imageBackup = Image.asset('assets/images/backup.png'); - final qrCode = Image.asset('assets/images/restore_qr.png'); @override Widget body(BuildContext context) { + final imageColor = Theme.of(context).extension()!.titleColor; + final imageLedger = Image.asset('assets/images/ledger_nano.png', width: 40, color: imageColor); + final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png', color: imageColor); + final imageBackup = Image.asset('assets/images/backup.png', color: imageColor); + final qrCode = Image.asset('assets/images/restore_qr.png', color: imageColor); + return Center( child: Container( width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint, @@ -37,53 +40,37 @@ class RestoreOptionsPage extends BasePage { child: Column( children: [ OptionTile( - onPressed: () => Navigator.pushNamed(context, Routes.restoreWalletFromSeedKeys, - arguments: isNewInstall), - image: imageSeedKeys, - title: S.of(context).restore_title_from_seed_keys, - description: S.of(context).restore_description_from_seed_keys), + onPressed: () => Navigator.pushNamed(context, Routes.restoreWalletFromSeedKeys, + arguments: isNewInstall), + image: imageSeedKeys, + title: S.of(context).restore_title_from_seed_keys, + description: S.of(context).restore_description_from_seed_keys, + ), if (isNewInstall) Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - onPressed: () => Navigator.pushNamed(context, Routes.restoreFromBackup), - image: imageBackup, - title: S.of(context).restore_title_from_backup, - description: S.of(context).restore_description_from_backup), + onPressed: () => Navigator.pushNamed(context, Routes.restoreFromBackup), + image: imageBackup, + title: S.of(context).restore_title_from_backup, + description: S.of(context).restore_description_from_backup, + ), ), Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - onPressed: () async { - bool isCameraPermissionGranted = - await PermissionHandler.checkPermission(Permission.camera, context); - if (!isCameraPermissionGranted) return; - bool isPinSet = false; - if (isNewInstall) { - await Navigator.pushNamed(context, Routes.setupPin, - arguments: (PinCodeState setupPinContext, String _) { - setupPinContext.close(); - isPinSet = true; - }); - } - if (!isNewInstall || isPinSet) { - try { - final restoreWallet = - await WalletRestoreFromQRCode.scanQRCodeForRestoring(context); - - final restoreFromQRViewModel = - getIt.get(param1: restoreWallet.type); - - await restoreFromQRViewModel.create(restoreWallet: restoreWallet); - if (restoreFromQRViewModel.state is FailureState) { - _onWalletCreateFailure(context, - 'Create wallet state: ${(restoreFromQRViewModel.state as FailureState).error}'); - } - } catch (e) { - _onWalletCreateFailure(context, e.toString()); - } - } - }, + onPressed: () => Navigator.pushNamed( + context, Routes.restoreWalletFromHardwareWallet, + arguments: isNewInstall), + image: imageLedger, + title: S.of(context).restore_title_from_hardware_wallet, + description: S.of(context).restore_description_from_hardware_wallet, + ), + ), + Padding( + padding: EdgeInsets.only(top: 24), + child: OptionTile( + onPressed: () => _onScanQRCode(context), image: qrCode, title: S.of(context).scan_qr_code, description: S.of(context).cold_or_recover_wallet), @@ -105,4 +92,35 @@ class RestoreOptionsPage extends BasePage { buttonAction: () => Navigator.of(context).pop()); }); } + + Future _onScanQRCode(BuildContext context) async { + final isCameraPermissionGranted = + await PermissionHandler.checkPermission(Permission.camera, context); + + if (!isCameraPermissionGranted) return; + bool isPinSet = false; + if (isNewInstall) { + await Navigator.pushNamed(context, Routes.setupPin, + arguments: (PinCodeState setupPinContext, String _) { + setupPinContext.close(); + isPinSet = true; + }); + } + if (!isNewInstall || isPinSet) { + try { + final restoreWallet = await WalletRestoreFromQRCode.scanQRCodeForRestoring(context); + + final restoreFromQRViewModel = + getIt.get(param1: restoreWallet.type); + + await restoreFromQRViewModel.create(restoreWallet: restoreWallet); + if (restoreFromQRViewModel.state is FailureState) { + _onWalletCreateFailure(context, + 'Create wallet state: ${(restoreFromQRViewModel.state as FailureState).error}'); + } + } catch (e) { + _onWalletCreateFailure(context, e.toString()); + } + } + } } diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 9067a2951b..6481333911 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -1,39 +1,40 @@ import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/entities/contact_record.dart'; +import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/template.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.dart'; +import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart'; import 'package:cake_wallet/src/screens/send/widgets/send_card.dart'; import 'package:cake_wallet/src/widgets/add_template_button.dart'; +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:cake_wallet/src/widgets/picker.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; import 'package:cake_wallet/src/widgets/template_tile.dart'; +import 'package:cake_wallet/src/widgets/trail_button.dart'; import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart'; import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/request_review_handler.dart'; 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/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'; +import 'package:cw_core/crypto_currency.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:mobx/mobx.dart'; -import 'package:cake_wallet/routes.dart'; -import 'package:cake_wallet/view_model/send/send_view_model.dart'; -import 'package:cake_wallet/core/execution_state.dart'; -import 'package:cake_wallet/src/screens/base_page.dart'; -import 'package:cake_wallet/src/widgets/primary_button.dart'; -import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; -import 'package:cake_wallet/src/widgets/trail_button.dart'; -import 'package:cake_wallet/utils/show_pop_up.dart'; -import 'package:cake_wallet/view_model/send/send_view_model_state.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; -import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; -import 'package:cw_core/crypto_currency.dart'; class SendPage extends BasePage { SendPage({ @@ -369,6 +370,21 @@ class SendPage extends BasePage { return; } + if (sendViewModel.wallet.isHardwareWallet) { + if (!sendViewModel.ledgerViewModel.isConnected) { + await Navigator.of(context).pushNamed(Routes.connectDevices, + arguments: ConnectDevicePageParams( + walletType: sendViewModel.walletType, + onConnectDevice: (BuildContext context, _) { + sendViewModel.ledgerViewModel.setLedger(sendViewModel.wallet); + Navigator.of(context).pop(); + }, + )); + } else { + sendViewModel.ledgerViewModel.setLedger(sendViewModel.wallet); + } + } + final check = sendViewModel.shouldDisplayTotp(); authService.authenticateAction( context, @@ -384,7 +400,8 @@ class SendPage extends BasePage { color: Theme.of(context).primaryColor, textColor: Colors.white, isLoading: sendViewModel.state is IsExecutingState || - sendViewModel.state is TransactionCommitting, + sendViewModel.state is TransactionCommitting || + sendViewModel.state is IsAwaitingDeviceResponseState, isDisabled: !sendViewModel.isReadyForSend, ); }, @@ -395,12 +412,20 @@ class SendPage extends BasePage { ); } + BuildContext? dialogContext; + void _setEffects(BuildContext context) { if (_effectsInstalled) { return; } reaction((_) => sendViewModel.state, (ExecutionState state) { + + if (dialogContext != null && dialogContext?.mounted == true) { + Navigator.of(dialogContext!).pop(); + } + + if (state is FailureState) { WidgetsBinding.instance.addPostFrameCallback((_) { showPopUp( @@ -510,6 +535,21 @@ class SendPage extends BasePage { sendViewModel.clearOutputs(); }); } + + if (state is IsAwaitingDeviceResponseState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext context) { + dialogContext = context; + return AlertWithOneAction( + alertTitle: S.of(context).proceed_on_device, + alertContent: S.of(context).proceed_on_device_description, + buttonText: S.of(context).cancel, + buttonAction: () => Navigator.of(context).pop()); + }); + }); + } }); _effectsInstalled = true; diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index 8c4da4cc54..7b4fb3b1ca 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -1,10 +1,14 @@ import 'dart:io'; +import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/wallet_connect_button.dart'; +import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; @@ -12,10 +16,6 @@ import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cw_core/battery_optimization_native.dart'; import 'package:flutter/material.dart'; -import 'package:cake_wallet/routes.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/screens/base_page.dart'; -import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; class ConnectionSyncPage extends BasePage { @@ -106,7 +106,8 @@ class ConnectionSyncPage extends BasePage { ); }, ), - if (isWalletConnectCompatibleChain(dashboardViewModel.wallet.type)) ...[ + if (isWalletConnectCompatibleChain(dashboardViewModel.wallet.type) && + !dashboardViewModel.wallet.isHardwareWallet) ...[ // ToDo: Remove this line once WalletConnect is implemented WalletConnectTile( onTap: () => Navigator.of(context).pushNamed(Routes.walletConnectConnectionsListing), ), diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index ef521c311c..24d02d68dd 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -509,7 +509,9 @@ abstract class DashboardViewModelBase with Store { final path = await pathForWallet(name: walletInfo.name, type: walletInfo.type); final jsonSource = await read(path: path, password: password); final data = json.decode(jsonSource) as Map; - final mnemonic = data['mnemonic'] as String; + final mnemonic = data['mnemonic'] as String?; + + if (mnemonic == null) continue; final hash = await Cryptography.instance.sha256().hash(utf8.encode(mnemonic)); final seedSha = bytesToHex(hash.bytes); diff --git a/lib/view_model/hardware_wallet/ledger_view_model.dart b/lib/view_model/hardware_wallet/ledger_view_model.dart new file mode 100644 index 0000000000..453df44db0 --- /dev/null +++ b/lib/view_model/hardware_wallet/ledger_view_model.dart @@ -0,0 +1,66 @@ +import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; +import 'package:permission_handler/permission_handler.dart'; + +class LedgerViewModel { + final Ledger ledger = Ledger( + options: LedgerOptions( + scanMode: ScanMode.balanced, + maxScanDuration: const Duration(minutes: 5), + ), + onPermissionRequest: (_) async { + Map statuses = await [ + Permission.bluetoothScan, + Permission.bluetoothConnect, + Permission.bluetoothAdvertise, + ].request(); + + return statuses.values.where((status) => status.isDenied).isEmpty; + }, + ); + + Future connectLedger(LedgerDevice device) async { + await ledger.connect(device); + + if (device.connectionType == ConnectionType.usb) _device = device; + } + + LedgerDevice? _device; + + bool get isConnected => ledger.devices.isNotEmpty || _device != null; + + LedgerDevice get device => _device ?? ledger.devices.first; + + void setLedger(WalletBase wallet) { + switch (wallet.type) { + case WalletType.bitcoin: + return bitcoin!.setLedger(wallet, ledger, device); + case WalletType.ethereum: + return ethereum!.setLedger(wallet, ledger, device); + case WalletType.polygon: + return polygon!.setLedger(wallet, ledger, device); + default: + throw Exception('Unexpected wallet type: ${wallet.type}'); + } + } + + String? interpretErrorCode(String errorCode) { + switch (errorCode) { + case "6985": + return S.current.ledger_error_tx_rejected_by_user; + case "5515": + return S.current.ledger_error_device_locked; + case "6d02": // UNKNOWN_APDU + case "6511": + case "6e00": + return S.current.ledger_error_wrong_app; + default: + return null; + } + } +} diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index bafc1317df..2a6bf553b6 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -15,11 +15,13 @@ import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cw_core/exceptions.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; import 'package:hive/hive.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/entities/template.dart'; import 'package:cake_wallet/core/address_validator.dart'; @@ -63,6 +65,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor this.balanceViewModel, this.contactListViewModel, this.transactionDescriptionBox, + this.ledgerViewModel, ) : state = InitialExecutionState(), currencies = appStore.wallet!.balance.keys.toList(), selectedCryptoCurrency = appStore.wallet!.currency, @@ -266,6 +269,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor final SendTemplateViewModel sendTemplateViewModel; final BalanceViewModel balanceViewModel; final ContactListViewModel contactListViewModel; + final LedgerViewModel ledgerViewModel; final FiatConversionStore _fiatConversationStore; final Box transactionDescriptionBox; @@ -340,7 +344,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor try { state = IsExecutingState(); + if (wallet.isHardwareWallet) state = IsAwaitingDeviceResponseState(); + pendingTransaction = await wallet.createTransaction(_credentials()); + if (provider is ThorChainExchangeProvider) { final outputCount = pendingTransaction?.outputCount ?? 0; if (outputCount > 10) { @@ -354,7 +361,15 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor state = ExecutedSuccessfullyState(); return pendingTransaction; } catch (e) { - state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); + if (e is LedgerException) { + final errorCode = e.errorCode.toRadixString(16); + final fallbackMsg = e.message.isNotEmpty ? e.message : "Unexpected Ledger Error Code: $errorCode"; + final errorMsg = ledgerViewModel.interpretErrorCode(errorCode) ?? fallbackMsg; + + state = FailureState(errorMsg); + } else { + state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); + } } return null; } @@ -390,15 +405,13 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor String address = outputs.fold('', (acc, value) { return value.isParsedAddress - ? acc + value.address + '\n' + value.extractedAddress + '\n\n' - : acc + value.address + '\n\n'; + ? '$acc${value.address}\n${value.extractedAddress}\n\n' + : '$acc${value.address}\n\n'; }); address = address.trim(); - String note = outputs.fold('', (acc, value) { - return acc + value.note + '\n'; - }); + String note = outputs.fold('', (acc, value) => '$acc${value.note}\n'); note = note.trim(); diff --git a/lib/view_model/send/send_view_model_state.dart b/lib/view_model/send/send_view_model_state.dart index 6d63eb9c20..df31041bc9 100644 --- a/lib/view_model/send/send_view_model_state.dart +++ b/lib/view_model/send/send_view_model_state.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/core/execution_state.dart'; +class IsAwaitingDeviceResponseState extends IsExecutingState {} class TransactionCommitting extends ExecutionState {} class TransactionCommitted extends ExecutionState {} diff --git a/lib/view_model/wallet_creation_vm.dart b/lib/view_model/wallet_creation_vm.dart index 5c9c29a169..f825f0c475 100644 --- a/lib/view_model/wallet_creation_vm.dart +++ b/lib/view_model/wallet_creation_vm.dart @@ -72,6 +72,7 @@ abstract class WalletCreationVMBase with Store { address: '', showIntroCakePayCard: (!walletCreationService.typeExists(type)) && type != WalletType.haven, derivationInfo: credentials.derivationInfo ?? getDefaultDerivation(), + hardwareWalletType: credentials.hardwareWalletType, ); credentials.walletInfo = walletInfo; @@ -99,7 +100,7 @@ abstract class WalletCreationVMBase with Store { case WalletType.litecoin: return DerivationInfo( derivationType: DerivationType.electrum, - derivationPath: "m/0'/0", + derivationPath: "m/0'", ); default: return null; diff --git a/lib/view_model/wallet_hardware_restore_view_model.dart b/lib/view_model/wallet_hardware_restore_view_model.dart new file mode 100644 index 0000000000..804ef7e3cd --- /dev/null +++ b/lib/view_model/wallet_hardware_restore_view_model.dart @@ -0,0 +1,110 @@ +import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/core/wallet_creation_service.dart'; +import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; +import 'package:cake_wallet/view_model/wallet_creation_vm.dart'; +import 'package:cw_core/hardware/hardware_account_data.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/wallet_type.dart'; +import 'package:hive/hive.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; +import 'package:mobx/mobx.dart'; + +part 'wallet_hardware_restore_view_model.g.dart'; + +class WalletHardwareRestoreViewModel = WalletHardwareRestoreViewModelBase + with _$WalletHardwareRestoreViewModel; + +abstract class WalletHardwareRestoreViewModelBase extends WalletCreationVM with Store { + final LedgerViewModel ledgerViewModel; + + int _nextIndex = 0; + + WalletHardwareRestoreViewModelBase(this.ledgerViewModel, AppStore appStore, + WalletCreationService walletCreationService, Box walletInfoSource, + {required WalletType type}) + : super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: true); + + @observable + String name = ""; + + @observable + HardwareAccountData? selectedAccount = null; + + @observable + bool isLoadingMoreAccounts = false; + + @observable + String? error = null; + + // @observable + ObservableList availableAccounts = ObservableList(); + + @action + Future getNextAvailableAccounts(int limit) async { + try { + List accounts; + switch (type) { + case WalletType.bitcoin: + accounts = await bitcoin! + .getHardwareWalletAccounts(ledgerViewModel, index: _nextIndex, limit: limit); + break; + case WalletType.ethereum: + accounts = await ethereum! + .getHardwareWalletAccounts(ledgerViewModel, index: _nextIndex, limit: limit); + break; + case WalletType.polygon: + accounts = await polygon! + .getHardwareWalletAccounts(ledgerViewModel, index: _nextIndex, limit: limit); + break; + default: + return; + } + + availableAccounts.addAll(accounts); + _nextIndex += limit; + } on LedgerException catch (e) { + error = ledgerViewModel.interpretErrorCode(e.errorCode.toRadixString(16)); + } catch (e) { + error = S.current.ledger_connection_error; + } + + isLoadingMoreAccounts = false; + _nextIndex += limit; + } + + @override + WalletCredentials getCredentials(dynamic _options) { + WalletCredentials credentials; + switch (type) { + case WalletType.bitcoin: + credentials = + bitcoin!.createBitcoinHardwareWalletCredentials(name: name, accountData: selectedAccount!); + break; + case WalletType.ethereum: + credentials = + ethereum!.createEthereumHardwareWalletCredentials(name: name, hwAccountData: selectedAccount!); + break; + case WalletType.polygon: + credentials = polygon!.createPolygonHardwareWalletCredentials(name: name, hwAccountData: selectedAccount!); + break; + default: + throw Exception('Unexpected type: ${type.toString()}'); + } + + credentials.hardwareWalletType = HardwareWalletType.ledger; + + return credentials; + } + + @override + Future process(WalletCredentials credentials) async { + walletCreationService.changeWalletType(type: type); + return walletCreationService.restoreFromHardwareWallet(credentials); + } +} diff --git a/macos/Runner/InfoBase.plist b/macos/Runner/InfoBase.plist index c849a42c7b..dcd0de5a6c 100644 --- a/macos/Runner/InfoBase.plist +++ b/macos/Runner/InfoBase.plist @@ -32,5 +32,22 @@ NSApplication LSApplicationCategoryType public.app-category.finance + NSCameraUsageDescription + Used for scanning QR code and can be used to capture images for identification purposes by third-party providers. + NSDocumentsFolderUsageDescription + We need access to documents folder for getting access to open/save backup file + NSFaceIDUsageDescription + Enable Face ID for fast and secure access to wallets and private keys + NSPhotoLibraryUsageDescription + We need access to documents folder for getting access to open/save backup file + NSBluetoothPeripheralUsageDescription + We need access to Bluetooth in order to connect to your hardware wallet when needed + NSBluetoothAlwaysUsageDescription + We need access to Bluetooth in order to connect to your hardware wallet when needed + UIBackgroundModes + + fetch + processing + diff --git a/pubspec_base.yaml b/pubspec_base.yaml index bdfa70964f..cf04509ac6 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -111,6 +111,7 @@ dependencies: git: url: https://github.com/cake-tech/bitcoin_base.git ref: cake-update-v2 + ledger_flutter: ^1.0.1 dev_dependencies: flutter_test: @@ -133,6 +134,14 @@ dependency_overrides: bech32: git: url: https://github.com/cake-tech/bech32.git + ledger_flutter: + git: + url: https://github.com/cake-tech/ledger-flutter.git + ref: cake + web3dart: + git: + url: https://github.com/cake-tech/web3dart.git + ref: cake flutter_icons: image_path: "assets/images/app_logo.png" diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 16a87a8503..3659127436 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "موضوع البيتكوين الخفيفة", "bitcoin_payments_require_1_confirmation": "تتطلب مدفوعات Bitcoin تأكيدًا واحدًا ، والذي قد يستغرق 20 دقيقة أو أكثر. شكرا لصبرك! سيتم إرسال بريد إلكتروني إليك عند تأكيد الدفع.", "Blocks_remaining": "بلوك متبقي ${status}", + "bluetooth": "بلوتوث", "bright_theme": "مشرق", "bump_fee": "رسوم عثرة", "buy": "اشتري", @@ -144,6 +145,8 @@ "congratulations": "تهانينا!", "connect_an_existing_yat": "توصيل Yat الحالي", "connect_yats": "توصيل Yats", + "connect_your_hardware_wallet": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth أو USB", + "connect_your_hardware_wallet_ios": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth", "connection_sync": "الاتصال والمزامنة", "connectWalletPrompt": "ﺕﻼﻣﺎﻌﻤﻟﺍ ءﺍﺮﺟﻹ WalletConnect ﻊﻣ ﻚﺘﻈﻔﺤﻣ ﻞﻴﺻﻮﺘﺑ ﻢﻗ", "contact": "تواصل", @@ -328,7 +331,13 @@ "is_percentage": "يكون", "last_30_days": "آخر 30 يومًا", "learn_more": "اعرف المزيد", + "ledger_connection_error": "فشل في الاتصال بك دفتر الأستاذ. حاول مرة اخرى.", + "ledger_error_device_locked": "تم قفل دفتر الأستاذ", + "ledger_error_tx_rejected_by_user": "تم رفض المعاملة على الجهاز", + "ledger_error_wrong_app": "يرجى التأكد", + "ledger_please_enable_bluetooth": "يرجى تمكين البلوتوث للكشف عن دفتر الأستاذ الخاص بك", "light_theme": "فاتح", + "load_more": "تحميل المزيد", "loading_your_wallet": "يتم تحميل محفظتك", "login": "تسجيل الدخول", "logout": "تسجيل خروج", @@ -442,6 +451,8 @@ "privacy_settings": "إعدادات الخصوصية", "private_key": "مفتاح خاص", "proceed_after_one_minute": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من بريدك الإلكتروني.", + "proceed_on_device": "تابع جهازك", + "proceed_on_device_description": "يرجى اتباع الإرشادات المطلوبة على محفظة الأجهزة الخاصة بك", "profile": "حساب تعريفي", "provider_error": "خطأ ${provider}", "public_key": "مفتاح عمومي", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "قم باستعادة محفظتك من كود مكون من 24 كلمة", "restore_bitcoin_title_from_keys": "استعادة من WIF", "restore_description_from_backup": "يمكنك استعادة تطبيق Cake Wallet بالكامل من ملف النسخ الاحتياطي", + "restore_description_from_hardware_wallet": "استعادة من محفظة أجهزة دفتر الأستاذ", "restore_description_from_keys": "قم باستعادة محفظتك من ضغطات المفاتيح المولدة المحفوظة من مفاتيحك الخاصة", "restore_description_from_seed": "قم باستعادة محفظتك من الرمز المكون من 25 كلمة أو 13 كلمة", "restore_description_from_seed_keys": "استرجع محفظتك من السييد / المفاتيح التي قمت بحفظها في مكان آمن", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "استعادة السييد / المفاتيح", "restore_spend_key_private": "مفتاح الإنفاق (خاص)", "restore_title_from_backup": "استعادة من النسخة الاحتياطية", + "restore_title_from_hardware_wallet": "استعادة من محفظة الأجهزة", "restore_title_from_keys": "استعادة من المفاتيح", "restore_title_from_seed": "استعادة من السييد", "restore_title_from_seed_keys": "استعادة من السييد / المفاتيح", @@ -752,6 +765,7 @@ "unsupported_asset": ".ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ", "uptime": "مدة التشغيل", "upto": "حتى ${value}", + "usb": "USB", "use": "التبديل إلى", "use_card_info_three": "استخدم البطاقة الرقمية عبر الإنترنت أو مع طرق الدفع غير التلامسية.", "use_card_info_two": "يتم تحويل الأموال إلى الدولار الأمريكي عند الاحتفاظ بها في الحساب المدفوع مسبقًا ، وليس بالعملات الرقمية.", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 4e92cd7077..8a7682221b 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Лека биткойн тема", "bitcoin_payments_require_1_confirmation": "Плащанията с Bitcoin изискват потвърждение, което може да отнеме 20 минути или повече. Благодарим за търпението! Ще получите имейл, когато плащането е потвърдено.", "Blocks_remaining": "${status} оставащи блока", + "bluetooth": "Bluetooth", "bright_theme": "Ярко", "bump_fee": "Такса за бум", "buy": "Купуване", @@ -144,6 +145,8 @@ "congratulations": "Поздравления!", "connect_an_existing_yat": "Добавете съществуващ Yat", "connect_yats": "Добавете Yats", + "connect_your_hardware_wallet": "Свържете хардуерния си портфейл с помощта на Bluetooth или USB", + "connect_your_hardware_wallet_ios": "Свържете хардуерния си портфейл с помощта на Bluetooth", "connection_sync": "Свързване и синхронизиране", "connectWalletPrompt": "Свържете портфейла си с WalletConnect, за да извършвате транзакции", "contact": "Контакт", @@ -328,7 +331,13 @@ "is_percentage": "е", "last_30_days": "Последните 30 дни", "learn_more": "Научете още", + "ledger_connection_error": "Не успя да се свърже с вашата книга. Моля, опитайте отново.", + "ledger_error_device_locked": "Главната книга е заключена", + "ledger_error_tx_rejected_by_user": "Транзакция, отхвърлена на устройство", + "ledger_error_wrong_app": "Моля, уверете се, че сте отворили правилното приложение на вашата книга", + "ledger_please_enable_bluetooth": "Моля, активирайте Bluetooth да открие вашата книга", "light_theme": "Светло", + "load_more": "Зареди още", "loading_your_wallet": "Зареждане на портфейл", "login": "Влизане", "logout": "Logout", @@ -442,6 +451,8 @@ "privacy_settings": "Настройки за поверителност", "private_key": "Таен ключ", "proceed_after_one_minute": "Ако процесът продължи повече от 1 минута, проверете своя имейл.", + "proceed_on_device": "Продължете на вашето устройство", + "proceed_on_device_description": "Моля, следвайте инструкциите, подканени на вашия хардуер", "profile": "Профил", "provider_error": "Грешка на ${provider} ", "public_key": "Публичен ключ", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Възстановяване на портфейл чрез код от 24 думи", "restore_bitcoin_title_from_keys": "Възстановяване от WIF", "restore_description_from_backup": "Можете да възстановите цялото приложение Cake Wallet от своя резервен файл", + "restore_description_from_hardware_wallet": "Възстановяване от хардуерния портфейл на главната книга", "restore_description_from_keys": "Възстановяване на портфейл от генерираните от Вашите тайни ключове клавиши", "restore_description_from_seed": "Възстановяване на портфейл от кода от 13 или 25 думи", "restore_description_from_seed_keys": "Възстановете своя портфейл от seed/keys, които сте съхранили на сигурно място", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Възстановяне от Seed/Keys", "restore_spend_key_private": "Spend key (публичен)", "restore_title_from_backup": "Възстановяване от резервно копие", + "restore_title_from_hardware_wallet": "Възстановяване от хардуерния портфейл", "restore_title_from_keys": "Възстановяване от keys", "restore_title_from_seed": "Възстановяване от seed", "restore_title_from_seed_keys": "Възстановяване от seed/keys", @@ -752,6 +765,7 @@ "unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив.", "uptime": "Време за работа", "upto": "до ${value}", + "usb": "USB", "use": "Смяна на ", "use_card_info_three": "Използвайте дигиталната карта онлайн или чрез безконтактен метод на плащане.", "use_card_info_two": "Средствата се обръщат в USD, когато биват запазени в предплатената карта, а не в дигитална валута.", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 95fdc2a937..e3bbad5a3a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Světlé téma bitcoinů", "bitcoin_payments_require_1_confirmation": "U plateb Bitcoinem je vyžadováno alespoň 1 potvrzení, což může trvat 20 minut i déle. Děkujeme za vaši trpělivost! Až bude platba potvrzena, budete informováni e-mailem.", "Blocks_remaining": "Zbývá ${status} bloků", + "bluetooth": "Bluetooth", "bright_theme": "Jasný", "bump_fee": "Bump Fee", "buy": "Koupit", @@ -144,6 +145,8 @@ "congratulations": "Gratulujeme!", "connect_an_existing_yat": "Připojit existující Yat", "connect_yats": "Připojit Yaty", + "connect_your_hardware_wallet": "Připojte hardwarovou peněženku pomocí Bluetooth nebo USB", + "connect_your_hardware_wallet_ios": "Připojte hardwarovou peněženku pomocí Bluetooth", "connection_sync": "Připojení a synch.", "connectWalletPrompt": "Propojte svou peněženku s WalletConnect a provádějte transakce", "contact": "Kontakt", @@ -328,7 +331,13 @@ "is_percentage": "je", "last_30_days": "Posledních 30 dnů", "learn_more": "Zjistit více", + "ledger_connection_error": "Nepodařilo se připojit k vaší knize. Prosím zkuste to znovu.", + "ledger_error_device_locked": "Kniha je uzamčena", + "ledger_error_tx_rejected_by_user": "Transakce zamítnuta na zařízení", + "ledger_error_wrong_app": "Ujistěte se, že se na své knize otevřete správnou aplikaci", + "ledger_please_enable_bluetooth": "Umožněte prosím Bluetooth detekovat vaši knihu", "light_theme": "Světlý", + "load_more": "Načíst další", "loading_your_wallet": "Načítám peněženku", "login": "Login", "logout": "Odhlásit", @@ -442,6 +451,8 @@ "privacy_settings": "Nastavení soukromí", "private_key": "Soukromý klíč", "proceed_after_one_minute": "Pokud proces nepokročí během 1 minuty, zkontrolujte svůj e-mail.", + "proceed_on_device": "Pokračujte ve svém zařízení", + "proceed_on_device_description": "Postupujte podle pokynů na výzvu na vaší hardwarové peněžence", "profile": "Profil", "provider_error": "${provider} chyba", "public_key": "Veřejný klíč", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Obnovte svou peněženku pomocí kombinace 24 slov", "restore_bitcoin_title_from_keys": "Obnovit z WIF", "restore_description_from_backup": "Můžete obnovit celou Cake Wallet aplikaci ze souboru se zálohou", + "restore_description_from_hardware_wallet": "Obnovit z peněženky hardwaru knihy", "restore_description_from_keys": "Obnovte svou peněženku pomocí generovaných stisků kláves uložených z vašich soukromých klíčů", "restore_description_from_seed": "Obnovte svou peněženku pomocí kombinace 25, nebo 13 slov", "restore_description_from_seed_keys": "Obnovte svou peněženku ze seedu/klíčů, které jste si uložili na bezpečném místě", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Obnovit ze seedu/klíčů", "restore_spend_key_private": "Klíč pro platby (soukromý)", "restore_title_from_backup": "Obnovit ze zálohy", + "restore_title_from_hardware_wallet": "Obnovit z hardwarové peněženky", "restore_title_from_keys": "Obnovit z klíčů", "restore_title_from_seed": "Obnovit ze seedu", "restore_title_from_seed_keys": "Obnovit ze seedu/klíčů", @@ -752,6 +765,7 @@ "unsupported_asset": "Tuto akci u tohoto díla nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiv.", "uptime": "Uptime", "upto": "až ${value}", + "usb": "USB", "use": "Přepnout na ", "use_card_info_three": "Použijte tuto digitální kartu online nebo bezkontaktními platebními metodami.", "use_card_info_two": "Prostředky jsou převedeny na USD, když jsou drženy na předplaceném účtu, nikoliv na digitální měnu.", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index d2731d3e79..ff974f28c6 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light-Thema", "bitcoin_payments_require_1_confirmation": "Bitcoin-Zahlungen erfordern 1 Bestätigung, was 20 Minuten oder länger dauern kann. Danke für Ihre Geduld! Sie erhalten eine E-Mail, wenn die Zahlung bestätigt ist.", "Blocks_remaining": "${status} verbleibende Blöcke", + "bluetooth": "Bluetooth", "bright_theme": "Strahlend hell", "bump_fee": "Beulengebühr", "buy": "Kaufen", @@ -144,6 +145,8 @@ "congratulations": "Glückwunsch!", "connect_an_existing_yat": "Verbinden Sie ein vorhandenes Yat", "connect_yats": "Yats verbinden", + "connect_your_hardware_wallet": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth oder USB", + "connect_your_hardware_wallet_ios": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth", "connection_sync": "Verbindung und Synchronisierung", "connectWalletPrompt": "Verbinden Sie Ihr Wallet mit WalletConnect, um Transaktionen durchzuführen", "contact": "Kontakt", @@ -328,7 +331,13 @@ "is_percentage": "ist", "last_30_days": "Letzte 30 Tage", "learn_more": "Erfahren Sie mehr", + "ledger_connection_error": "Verbindung zum Ledger gescheitert. Bitte versuche es erneut.", + "ledger_error_device_locked": "Der Ledger ist gesperrt", + "ledger_error_tx_rejected_by_user": "Transaktion auf dem Gerät abgelehnt", + "ledger_error_wrong_app": "Bitte stellen Sie sicher, dass Sie die richtige App auf Ihrem Ledger geöffnet haben", + "ledger_please_enable_bluetooth": "Bitte aktivieren Sie Bluetooth um sich mit Ihren Ledger zu verbinden.", "light_theme": "Hell", + "load_more": "Mehr laden", "loading_your_wallet": "Wallet wird geladen", "login": "Einloggen", "logout": "Abmelden", @@ -443,6 +452,8 @@ "privacy_settings": "Datenschutzeinstellungen", "private_key": "Privater Schlüssel", "proceed_after_one_minute": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie bitte Ihre E-Mail.", + "proceed_on_device": "Fahren Sie auf Ihrem Gerät fort", + "proceed_on_device_description": "Bitte befolgen Sie die Anweisungen, die auf Ihrer Hardware-Wallet angezeigt werden", "profile": "Profil", "provider_error": "${provider}-Fehler", "public_key": "Öffentlicher Schlüssel", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "Stellen Sie Ihre Wallet aus dem 24-Wort-Kombinationscode wieder her", "restore_bitcoin_title_from_keys": "Aus WIF wiederherstellen", "restore_description_from_backup": "Sie können die gesamte Cake Wallet-App aus Ihrer Sicherungsdatei wiederherstellen", + "restore_description_from_hardware_wallet": "Stellen Sie eine Wallet von Ledger wieder her", "restore_description_from_keys": "Stellen Sie Ihr Wallet aus generierten Tastenanschlägen her, die von Ihren privaten Schlüsseln gespeichert wurden", "restore_description_from_seed": "Stellen Sie Ihre Wallet aus den 25 Wörtern oder dem 13-Wort-Kombinationscode wieder her", "restore_description_from_seed_keys": "Stellen Sie Ihr Wallet aus Seed/Schlüsseln wieder her, die Sie sicher aufbewahrt haben", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "Seed/Schlüssel wiederherstellen", "restore_spend_key_private": "Spend Key (geheim)", "restore_title_from_backup": "Aus einer Sicherungsdatei wiederherstellen", + "restore_title_from_hardware_wallet": "Von Hardware-Wallet wiederherstellen", "restore_title_from_keys": "Aus Schlüsseln wiederherstellen", "restore_title_from_seed": "Aus Seed wiederherstellen", "restore_title_from_seed_keys": "Aus Seed/Schlüssel wiederherstellen", @@ -754,6 +767,7 @@ "unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet eines unterstützten Asset-Typs oder wechseln Sie zu einer Wallet.", "uptime": "Betriebszeit", "upto": "bis zu ${value}", + "usb": "USB", "use": "Wechsel zu ", "use_card_info_three": "Verwenden Sie die digitale Karte online oder mit kontaktlosen Zahlungsmethoden.", "use_card_info_two": "Guthaben werden auf dem Prepaid-Konto in USD umgerechnet, nicht in digitale Währung.", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 8c302d0961..241d124155 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light Theme", "bitcoin_payments_require_1_confirmation": "Bitcoin payments require 1 confirmation, which can take 20 minutes or longer. Thanks for your patience! You will be emailed when the payment is confirmed.", "Blocks_remaining": "${status} Blocks Remaining", + "bluetooth": "Bluetooth", "bright_theme": "Bright", "bump_fee": "Bump fee", "buy": "Buy", @@ -144,6 +145,8 @@ "congratulations": "Congratulations!", "connect_an_existing_yat": "Connect an existing Yat", "connect_yats": "Connect Yats", + "connect_your_hardware_wallet": "Connect your hardware wallet using Bluetooth or USB", + "connect_your_hardware_wallet_ios": "Connect your hardware wallet using Bluetooth", "connection_sync": "Connection and sync", "connectWalletPrompt": "Connect your wallet with WalletConnect to make transactions", "contact": "Contact", @@ -328,7 +331,13 @@ "is_percentage": "is", "last_30_days": "Last 30 days", "learn_more": "Learn More", + "ledger_connection_error": "Failed to connect to you Ledger. Please try again.", + "ledger_error_device_locked": "The Ledger is locked", + "ledger_error_tx_rejected_by_user": "Transaction rejected on device", + "ledger_error_wrong_app": "Please make sure you opend the right app on your ledger", + "ledger_please_enable_bluetooth": "Please enable Bluetooth to detect your Ledger", "light_theme": "Light", + "load_more": "Load more", "loading_your_wallet": "Loading your wallet", "login": "Login", "logout": "Logout", @@ -442,6 +451,8 @@ "privacy_settings": "Privacy settings", "private_key": "Private key", "proceed_after_one_minute": "If the screen doesn’t proceed after 1 minute, check your email.", + "proceed_on_device": "Proceed on your device", + "proceed_on_device_description": "Please follow the instructions prompted on your hardware wallet", "profile": "Profile", "provider_error": "${provider} error", "public_key": "Public key", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Restore your wallet from 24 word combination code", "restore_bitcoin_title_from_keys": "Restore from WIF", "restore_description_from_backup": "You can restore the whole Cake Wallet app from your back-up file", + "restore_description_from_hardware_wallet": "Restore from a Ledger hardware wallet", "restore_description_from_keys": "Restore your wallet from generated keystrokes saved from your private keys", "restore_description_from_seed": "Restore your wallet from either the 25 word or 13 word combination code", "restore_description_from_seed_keys": "Get back your wallet from seed/keys that you've saved to secure place", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Seed/Keys Restore", "restore_spend_key_private": "Spend key (private)", "restore_title_from_backup": "Restore from backup", + "restore_title_from_hardware_wallet": "Restore from hardware wallet", "restore_title_from_keys": "Restore from keys", "restore_title_from_seed": "Restore from seed", "restore_title_from_seed_keys": "Restore from seed/keys", @@ -752,6 +765,7 @@ "unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type.", "uptime": "Uptime", "upto": "up to ${value}", + "usb": "USB", "use": "Switch to ", "use_card_info_three": "Use the digital card online or with contactless payment methods.", "use_card_info_two": "Funds are converted to USD when they're held in the prepaid account, not in digital currencies.", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 17c4ff681c..59c40f67b5 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Tema de la luz de Bitcoin", "bitcoin_payments_require_1_confirmation": "Los pagos de Bitcoin requieren 1 confirmación, que puede demorar 20 minutos o más. ¡Gracias por su paciencia! Se le enviará un correo electrónico cuando se confirme el pago.", "Blocks_remaining": "${status} Bloques restantes", + "bluetooth": "Bluetooth", "bright_theme": "Brillante", "bump_fee": "Tarifa", "buy": "Comprar", @@ -144,6 +145,8 @@ "congratulations": "Felicidades!", "connect_an_existing_yat": "Conectar un Yat existente", "connect_yats": "Conectar Yats", + "connect_your_hardware_wallet": "Conecte su billetera de hardware con Bluetooth o USB", + "connect_your_hardware_wallet_ios": "Conecte su billetera de hardware con Bluetooth", "connection_sync": "Conexión y sincronización", "connectWalletPrompt": "Conecte su billetera con WalletConnect para realizar transacciones", "contact": "Contacto", @@ -328,7 +331,13 @@ "is_percentage": "es", "last_30_days": "Últimos 30 días", "learn_more": "Aprende más", + "ledger_connection_error": "No se pudo conectar con su libro mayor. Inténtalo de nuevo.", + "ledger_error_device_locked": "El libro mayor está bloqueado", + "ledger_error_tx_rejected_by_user": "Transacción rechazada en el dispositivo", + "ledger_error_wrong_app": "Por favor, asegúrese de abrir la aplicación correcta en su libro mayor.", + "ledger_please_enable_bluetooth": "Habilite Bluetooth para detectar su libro mayor", "light_theme": "Ligera", + "load_more": "Carga más", "loading_your_wallet": "Cargando tu billetera", "login": "Iniciar sesión", "logout": "Cerrar sesión", @@ -443,6 +452,8 @@ "privacy_settings": "Configuración de privacidad", "private_key": "Clave privada", "proceed_after_one_minute": "Si la pantalla no continúa después de 1 minuto, revisa tu correo electrónico.", + "proceed_on_device": "Continúe con su dispositivo", + "proceed_on_device_description": "Siga las instrucciones solicitadas en su billetera de hardware", "profile": "Perfil", "provider_error": "${provider} error", "public_key": "Clave pública", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "Restaure su billetera a partir del código de combinación de 24 palabras", "restore_bitcoin_title_from_keys": "Restaurar desde WIF", "restore_description_from_backup": "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo", + "restore_description_from_hardware_wallet": "Restaurar desde una billetera de hardware Ledger", "restore_description_from_keys": "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas", "restore_description_from_seed": "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras", "restore_description_from_seed_keys": "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "Restauración de semillas / llaves", "restore_spend_key_private": "Spend clave (privado)", "restore_title_from_backup": "Restaurar desde un archivo de respaldo", + "restore_title_from_hardware_wallet": "Restaurar desde la billetera de hardware", "restore_title_from_keys": "De las claves", "restore_title_from_seed": "De la semilla", "restore_title_from_seed_keys": "Restaurar desde semilla/claves", @@ -753,6 +766,7 @@ "unsupported_asset": "No admitimos esta acción para este activo. Cree o cambie a una billetera de un tipo de activo admitido.", "uptime": "Tiempo de actividad", "upto": "hasta ${value}", + "usb": "USB", "use": "Utilizar a ", "use_card_info_three": "Utilice la tarjeta digital en línea o con métodos de pago sin contacto.", "use_card_info_two": "Los fondos se convierten a USD cuando se mantienen en la cuenta prepaga, no en monedas digitales.", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 12716ab337..08b6d54b07 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Thème léger Bitcoin", "bitcoin_payments_require_1_confirmation": "Les paiements Bitcoin nécessitent 1 confirmation, ce qui peut prendre 20 minutes ou plus. Merci pour votre patience ! Vous serez averti par e-mail lorsque le paiement sera confirmé.", "Blocks_remaining": "Blocs Restants : ${status}", + "bluetooth": "Bluetooth", "bright_theme": "Vif", "bump_fee": "Frais de bosse", "buy": "Acheter", @@ -144,6 +145,8 @@ "congratulations": "Félicitations !", "connect_an_existing_yat": "Connecter un Yat existant", "connect_yats": "Connecter Yats", + "connect_your_hardware_wallet": "Connectez votre portefeuille matériel à l'aide de Bluetooth ou USB", + "connect_your_hardware_wallet_ios": "Connectez votre portefeuille matériel à l'aide de Bluetooth", "connection_sync": "Connexion et synchronisation", "connectWalletPrompt": "Connectez votre portefeuille (wallet) avec WalletConnect pour effectuer des transactions", "contact": "Contact", @@ -328,7 +331,13 @@ "is_percentage": "est", "last_30_days": "30 derniers jours", "learn_more": "En savoir plus", + "ledger_connection_error": "Impossible de se connecter à votre grand livre. Veuillez réessayer.", + "ledger_error_device_locked": "Le grand livre est verrouillé", + "ledger_error_tx_rejected_by_user": "Transaction rejetée sur l'appareil", + "ledger_error_wrong_app": "Veuillez vous assurer d'ouvrir la bonne application sur votre grand livre", + "ledger_please_enable_bluetooth": "Veuillez activer Bluetooth pour détecter votre grand livre", "light_theme": "Clair", + "load_more": "Charger plus", "loading_your_wallet": "Chargement de votre portefeuille (wallet)", "login": "Utilisateur", "logout": "Déconnexion", @@ -442,6 +451,8 @@ "privacy_settings": "Paramètres de confidentialité", "private_key": "Clef privée", "proceed_after_one_minute": "Si l'écran ne s'affiche pas après 1 minute, vérifiez vos e-mails.", + "proceed_on_device": "Continuez sur votre appareil", + "proceed_on_device_description": "Veuillez suivre les instructions invitées sur votre portefeuille matériel", "profile": "Profil", "provider_error": "Erreur de ${provider}", "public_key": "Clef publique", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Restaurer votre portefeuille (wallet) à l'aide d'une phrase secrète (seed) de 24 mots", "restore_bitcoin_title_from_keys": "Restaurer depuis la chaîne WIF", "restore_description_from_backup": "Vous pouvez restaurer l'intégralité de l'application Cake Wallet depuis un fichier de sauvegarde", + "restore_description_from_hardware_wallet": "Restaurer à partir d'un portefeuille matériel de grand livre", "restore_description_from_keys": "Restaurer votre portefeuille (wallet) d'après les séquences de touches générées d'après vos clefs privées", "restore_description_from_seed": "Restaurer votre portefeuille (wallet) depuis une phrase secrète (seed) de 25 ou 13 mots", "restore_description_from_seed_keys": "Restaurez votre portefeuille (wallet) depuis une phrase secrète (seed) ou des clefs que vous avez stockées en lieu sûr", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Restaurer depuis Phrase secrète (seed)/Clefs", "restore_spend_key_private": "Clef de dépense (spend key) (privée)", "restore_title_from_backup": "Restaurer depuis une sauvegarde", + "restore_title_from_hardware_wallet": "Restaurer à partir du portefeuille matériel", "restore_title_from_keys": "Restaurer depuis des clefs", "restore_title_from_seed": "Restaurer depuis une phrase secrète (seed)", "restore_title_from_seed_keys": "Restaurer depuis une phrase secrète (seed) ou des clefs", @@ -752,6 +765,7 @@ "unsupported_asset": "Nous ne prenons pas en charge cette action pour cet élément. Veuillez créer ou passer à un portefeuille d'un type d'actif pris en charge.", "uptime": "Durée de la baisse", "upto": "jusqu'à ${value}", + "usb": "USB", "use": "Changer vers code PIN à ", "use_card_info_three": "Utilisez la carte numérique en ligne ou avec des méthodes de paiement sans contact.", "use_card_info_two": "Les fonds sont convertis en USD lorsqu'ils sont détenus sur le compte prépayé, et non en devises numériques.", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 29754cf729..94c030a219 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Jigon Hasken Bitcoin", "bitcoin_payments_require_1_confirmation": "Akwatin Bitcoin na buɗe 1 sambumbu, da yake za ta samu mintuna 20 ko yawa. Ina kira ga sabuwar lafiya! Zaka sanarwa ta email lokacin da aka samu akwatin samun lambar waya.", "Blocks_remaining": "${status} Katanga ya rage", + "bluetooth": "Bluetooth", "bright_theme": "Mai haske", "bump_fee": "Buin", "buy": "Sayi", @@ -144,6 +145,8 @@ "congratulations": "Taya murna!", "connect_an_existing_yat": "Haɗa Yat da ke akwai", "connect_yats": "Haɗa Yats", + "connect_your_hardware_wallet": "Haɗa Wallake Wallware ɗinku ta Bluetooth ko USB", + "connect_your_hardware_wallet_ios": "Haɗa kayan aikinku ta Bluetooth", "connection_sync": "Haɗi da daidaitawa", "connectWalletPrompt": "Haɗa walat ɗin ku tare da WalletConnect don yin ma'amala", "contact": "Tuntuɓar", @@ -328,7 +331,13 @@ "is_percentage": "shine", "last_30_days": "Kwanaki 30 na ƙarshe", "learn_more": "Ƙara Koyi", + "ledger_connection_error": "Ba a yi nasarar haɗawa da ku ba. Da fatan za a sake gwadawa.", + "ledger_error_device_locked": "An kulle Ledger", + "ledger_error_tx_rejected_by_user": "Ma'amala da aka ƙi akan na'urar", + "ledger_error_wrong_app": "Da fatan za a tabbata kun yi amfani da app ɗin dama akan dillalarku", + "ledger_please_enable_bluetooth": "Da fatan za a kunna Bluetooth don gano Ledger ɗinku", "light_theme": "Haske", + "load_more": "Like more", "loading_your_wallet": "Ana loda walat ɗin ku", "login": "Shiga", "logout": "Fita", @@ -444,6 +453,8 @@ "privacy_settings": "Saitunan sirri", "private_key": "Keɓaɓɓen maɓalli", "proceed_after_one_minute": "Idan allon bai ci gaba ba bayan minti 1, duba imel ɗin ku.", + "proceed_on_device": "Ci gaba akan na'urarka", + "proceed_on_device_description": "Da fatan za a bi umarnin akan walatware", "profile": "Rabin fuska", "provider_error": "${provider} kuskure", "public_key": "Maɓallin jama'a", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "Dawo da kwalinku daga 24 lambar haɗin kalma", "restore_bitcoin_title_from_keys": "Dawo daga WIF", "restore_description_from_backup": "Kuna iya dawo da duk aikace-aikacen Wallet ɗin Cake daga fayil ɗin ajiyar ku", + "restore_description_from_hardware_wallet": "Maidowa da walatware mai wanki", "restore_description_from_keys": "Maido da walat ɗin ku daga maɓallan maɓalli da aka ƙera da aka ajiye daga maɓallan ku na sirri", "restore_description_from_seed": "Dawo da kwalinku daga 25 ko 13 lambar haɗin kalma", "restore_description_from_seed_keys": "Maido da walat ɗin ku daga iri/maɓallan da kuka adana don amintaccen wuri", @@ -504,6 +516,7 @@ "restore_seed_keys_restore": "Mayar da iri/Maɓallai", "restore_spend_key_private": "Maɓallin kashewa (key kalmar sirri)", "restore_title_from_backup": "Dawo daga madadin", + "restore_title_from_hardware_wallet": "Dawowa daga walatware mai wuya", "restore_title_from_keys": "Dawo daga maɓallai", "restore_title_from_seed": "Maidowa daga iri", "restore_title_from_seed_keys": "Dawo da iri/maɓallai", @@ -754,6 +767,7 @@ "unsupported_asset": "Ba mu goyi bayan wannan aikin don wannan kadara. Da fatan za a ƙirƙira ko canza zuwa walat na nau'in kadara mai tallafi.", "uptime": "Sama", "upto": "har zuwa ${value}", + "usb": "Alib", "use": "Canja zuwa", "use_card_info_three": "Yi amfani da katin dijital akan layi ko tare da hanyoyin biyan kuɗi mara lamba.", "use_card_info_two": "Ana canza kuɗi zuwa dalar Amurka lokacin da ake riƙe su a cikin asusun da aka riga aka biya, ba cikin agogon dijital ba.", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 278adde0f3..4279e0beed 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "बिटकॉइन लाइट थीम", "bitcoin_payments_require_1_confirmation": "बिटकॉइन भुगतान के लिए 1 पुष्टिकरण की आवश्यकता होती है, जिसमें 20 मिनट या अधिक समय लग सकता है। आपके धैर्य के लिए धन्यवाद! भुगतान की पुष्टि होने पर आपको ईमेल किया जाएगा।", "Blocks_remaining": "${status} शेष रहते हैं", + "bluetooth": "ब्लूटूथ", "bright_theme": "उज्ज्वल", "bump_fee": "बम्प फीस", "buy": "खरीदें", @@ -144,6 +145,8 @@ "congratulations": "बधाई!", "connect_an_existing_yat": "मौजूदा Yat कनेक्ट करें", "connect_yats": "कनेक्ट Yats", + "connect_your_hardware_wallet": "ब्लूटूथ या यूएसबी का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें", + "connect_your_hardware_wallet_ios": "ब्लूटूथ का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें", "connection_sync": "कनेक्शन और सिंक", "connectWalletPrompt": "लेन-देन करने के लिए अपने वॉलेट को वॉलेटकनेक्ट से कनेक्ट करें", "contact": "संपर्क करें", @@ -328,7 +331,13 @@ "is_percentage": "है", "last_30_days": "पिछले 30 दिन", "learn_more": "और अधिक जानें", + "ledger_connection_error": "आप लेजर से जुड़ने में विफल रहे। कृपया पुन: प्रयास करें।", + "ledger_error_device_locked": "खाता बंद है", + "ledger_error_tx_rejected_by_user": "डिवाइस पर लेनदेन खारिज कर दिया गया", + "ledger_error_wrong_app": "कृपया सुनिश्चित करें कि आप अपने लेजर पर सही ऐप को खोलते हैं", + "ledger_please_enable_bluetooth": "कृपया अपने बहीखाने का पता लगाने के लिए ब्लूटूथ को सक्षम करें", "light_theme": "रोशनी", + "load_more": "और लोड करें", "loading_your_wallet": "अपना बटुआ लोड कर रहा है", "login": "लॉग इन करें", "logout": "लॉगआउट", @@ -443,6 +452,8 @@ "privacy_settings": "गोपनीयता सेटिंग्स", "private_key": "निजी चाबी", "proceed_after_one_minute": "यदि 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो अपना ईमेल देखें।", + "proceed_on_device": "अपने डिवाइस पर आगे बढ़ें", + "proceed_on_device_description": "कृपया अपने हार्डवेयर वॉलेट पर दिए गए निर्देशों का पालन करें", "profile": "प्रोफ़ाइल", "provider_error": "${provider} त्रुटि", "public_key": "सार्वजनिक कुंजी", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "24 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें", "restore_bitcoin_title_from_keys": "WIF से पुनर्स्थापित करें", "restore_description_from_backup": "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल", + "restore_description_from_hardware_wallet": "एक लेजर हार्डवेयर वॉलेट से पुनर्स्थापित करें", "restore_description_from_keys": "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए", "restore_description_from_seed": "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड", "restore_description_from_seed_keys": "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है", @@ -504,6 +516,7 @@ "restore_seed_keys_restore": "बीज / कुंजी पुनर्स्थापित करें", "restore_spend_key_private": "कुंजी खर्च करें (निजीe)", "restore_title_from_backup": "बैक-अप फ़ाइल से पुनर्स्थापित करें", + "restore_title_from_hardware_wallet": "हार्डवेयर वॉलेट से पुनर्स्थापित करें", "restore_title_from_keys": "कुंजी से पुनर्स्थापित करें", "restore_title_from_seed": "बीज से पुनर्स्थापित करें", "restore_title_from_seed_keys": "बीज / कुंजियों से पुनर्स्थापित करें", @@ -754,6 +767,7 @@ "unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।", "uptime": "अपटाइम", "upto": "${value} तक", + "usb": "USB", "use": "उपयोग ", "use_card_info_three": "डिजिटल कार्ड का ऑनलाइन या संपर्क रहित भुगतान विधियों के साथ उपयोग करें।", "use_card_info_two": "डिजिटल मुद्राओं में नहीं, प्रीपेड खाते में रखे जाने पर निधियों को यूएसडी में बदल दिया जाता है।", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 7940b1addd..106243e519 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light Theme", "bitcoin_payments_require_1_confirmation": "Bitcoin plaćanja zahtijevaju 1 potvrdu, što može potrajati 20 minuta ili dulje. Hvala na Vašem strpljenju! Dobit ćete e-poruku kada plaćanje bude potvrđeno.", "Blocks_remaining": "${status} preostalih blokova", + "bluetooth": "Bluetooth", "bright_theme": "Jarka", "bump_fee": "Naplata", "buy": "Kupi", @@ -144,6 +145,8 @@ "congratulations": "Čestitamo!", "connect_an_existing_yat": "Povežite postojeći Yat", "connect_yats": "Povežite Yats", + "connect_your_hardware_wallet": "Spojite svoj hardverski novčanik pomoću Bluetooth -a ili USB -a", + "connect_your_hardware_wallet_ios": "Spojite svoj hardverski novčanik pomoću Bluetooth -a", "connection_sync": "Povezivanje i sinkronizacija", "connectWalletPrompt": "Povežite svoj novčanik s WalletConnectom za obavljanje transakcija", "contact": "Kontakt", @@ -328,7 +331,13 @@ "is_percentage": "je", "last_30_days": "Zadnjih 30 dana", "learn_more": "Saznajte više", + "ledger_connection_error": "Nije uspio povezati se s knjigom. Molim te pokušaj ponovno.", + "ledger_error_device_locked": "Knjiga je zaključana", + "ledger_error_tx_rejected_by_user": "Transakcija odbijena na uređaju", + "ledger_error_wrong_app": "Obavezno obavezno otvorite pravu aplikaciju na knjizi", + "ledger_please_enable_bluetooth": "Omogućite Bluetooth da otkrije svoju knjigu", "light_theme": "Svijetla", + "load_more": "Učitaj više", "loading_your_wallet": "Novčanik se učitava", "login": "Prijava", "logout": "Odjava", @@ -442,6 +451,8 @@ "privacy_settings": "Postavke privatnosti", "private_key": "Privatni ključ", "proceed_after_one_minute": "Ako se zaslon ne nastavi nakon 1 minute, provjerite svoju e-poštu.", + "proceed_on_device": "Nastavite na svom uređaju", + "proceed_on_device_description": "Slijedite upute zatražene na vašem hardverskom novčaniku", "profile": "Profil", "provider_error": "${provider} greška", "public_key": "Javni ključ", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Oporavi novčanik pomoću koda od 12 riječi", "restore_bitcoin_title_from_keys": "Oporavi pomoću formata uvoza novčanika (WIF)", "restore_description_from_backup": "Možete oporaviti cijelu Cake Wallet aplikaciju pomoću vlastite datoteke sa sigurnosnom kopijom", + "restore_description_from_hardware_wallet": "Vratite se iz novčanice od knjige", "restore_description_from_keys": "Oporavi novčanik pomoću generiranih pritisaka na tipke spremljenih od vlastitih privatnih ključeva (keys)", "restore_description_from_seed": "Oporavi novčanik pomoću koda koji sadrži kombinaciju od 25 ili 13 riječi", "restore_description_from_seed_keys": "Oporavi novčanik pomoću pristupnog izraza/ključa spremljenog na sigurno mjesto", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Oporavak pomoću pristupnog izraza/ključa", "restore_spend_key_private": "Spend key (privatni)", "restore_title_from_backup": "Oporavak pomoću sigurnosne kopije", + "restore_title_from_hardware_wallet": "Vrati iz hardverskog novčanika", "restore_title_from_keys": "Oporavi pomoću ključa", "restore_title_from_seed": "Oporavi pomoću pristupnog izraza", "restore_title_from_seed_keys": "Oporavi pomoću pristupnog izraza/ključa", @@ -752,6 +765,7 @@ "unsupported_asset": "Ne podržavamo ovu radnju za ovaj materijal. Izradite ili prijeđite na novčanik podržane vrste sredstava.", "uptime": "Radno vrijeme", "upto": "do ${value}", + "usb": "USB", "use": "Prebaci na", "use_card_info_three": "Koristite digitalnu karticu online ili s beskontaktnim metodama plaćanja.", "use_card_info_two": "Sredstva se pretvaraju u USD kada se drže na prepaid računu, a ne u digitalnim valutama.", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 8177afdc25..01c36da933 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Tema Cahaya Bitcoin", "bitcoin_payments_require_1_confirmation": "Pembayaran Bitcoin memerlukan 1 konfirmasi, yang bisa memakan waktu 20 menit atau lebih. Terima kasih atas kesabaran Anda! Anda akan diemail saat pembayaran dikonfirmasi.", "Blocks_remaining": "${status} Blok Tersisa", + "bluetooth": "Bluetooth", "bright_theme": "Cerah", "bump_fee": "Biaya benjolan", "buy": "Beli", @@ -144,6 +145,8 @@ "congratulations": "Selamat!", "connect_an_existing_yat": "Hubungkan Yat yang ada", "connect_yats": "Hubungkan Yats", + "connect_your_hardware_wallet": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth atau USB", + "connect_your_hardware_wallet_ios": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth", "connection_sync": "Koneksi dan sinkronisasi", "connectWalletPrompt": "Hubungkan dompet Anda dengan WalletConnect untuk melakukan transaksi", "contact": "Kontak", @@ -328,7 +331,13 @@ "is_percentage": "adalah", "last_30_days": "30 hari terakhir", "learn_more": "Pelajari Lebih Lanjut", + "ledger_connection_error": "Gagal terhubung ke buku besar Anda. Tolong coba lagi.", + "ledger_error_device_locked": "Ledger terkunci", + "ledger_error_tx_rejected_by_user": "Transaksi ditolak pada perangkat", + "ledger_error_wrong_app": "Pastikan Anda membuka aplikasi yang tepat di buku besar Anda", + "ledger_please_enable_bluetooth": "Harap aktifkan Bluetooth untuk mendeteksi buku besar Anda", "light_theme": "Terang", + "load_more": "Muat lebih banyak", "loading_your_wallet": "Memuat dompet Anda", "login": "Masuk", "logout": "Keluar", @@ -444,6 +453,8 @@ "privacy_settings": "Pengaturan privasi", "private_key": "Kunci privat", "proceed_after_one_minute": "Jika layar tidak bergerak setelah 1 menit, periksa email Anda.", + "proceed_on_device": "Lanjutkan di perangkat Anda", + "proceed_on_device_description": "Harap ikuti instruksi yang diminta di dompet perangkat keras Anda", "profile": "Profil", "provider_error": "${provider} error", "public_key": "Kunci publik", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 24 kata", "restore_bitcoin_title_from_keys": "Pulihkan dari WIF", "restore_description_from_backup": "Anda dapat memulihkan seluruh aplikasi Cake Wallet dari file cadangan Anda", + "restore_description_from_hardware_wallet": "Kembalikan dari dompet perangkat keras Ledger", "restore_description_from_keys": "Pulihkan dompet Anda dari tombol yang dihasilkan yang disimpan dari kunci pribadi Anda", "restore_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 25 atau 13 kata", "restore_description_from_seed_keys": "Dapatkan kembali dompet Anda dari seed/kunci yang Anda simpan di tempat yang aman", @@ -505,6 +517,7 @@ "restore_seed_keys_restore": "Pulihkan Seed/Kunci", "restore_spend_key_private": "Habiskan kunci (pribadi)", "restore_title_from_backup": "Pulihkan dari cadangan", + "restore_title_from_hardware_wallet": "Kembalikan dari dompet perangkat keras", "restore_title_from_keys": "Pulihkan dari kunci", "restore_title_from_seed": "Pulihkan dari seed", "restore_title_from_seed_keys": "Pulihkan dari seed/kunci", @@ -755,6 +768,7 @@ "unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau alihkan ke dompet dari jenis aset yang didukung.", "uptime": "Uptime", "upto": "hingga ${value}", + "usb": "USB", "use": "Beralih ke ", "use_card_info_three": "Gunakan kartu digital secara online atau dengan metode pembayaran tanpa kontak.", "use_card_info_two": "Dana dikonversi ke USD ketika disimpan dalam akun pra-bayar, bukan dalam mata uang digital.", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 4cc08f9b16..61a3fa2cf1 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Tema luce Bitcoin", "bitcoin_payments_require_1_confirmation": "I pagamenti in bitcoin richiedono 1 conferma, che può richiedere 20 minuti o più. Grazie per la vostra pazienza! Riceverai un'e-mail quando il pagamento sarà confermato.", "Blocks_remaining": "${status} Blocchi Rimanenti", + "bluetooth": "Bluetooth", "bright_theme": "Colorato", "bump_fee": "Commissione per bump", "buy": "Comprare", @@ -145,6 +146,8 @@ "congratulations": "Congratulazioni!", "connect_an_existing_yat": "Collegare un Yat esistente", "connect_yats": "Connetti Yats", + "connect_your_hardware_wallet": "Collega il tuo portafoglio hardware con Bluetooth o USB", + "connect_your_hardware_wallet_ios": "Collega il tuo portafoglio hardware con Bluetooth", "connection_sync": "Connessione e sincronizzazione", "connectWalletPrompt": "Collega il tuo portafoglio con WalletConnect per effettuare transazioni", "contact": "Contatta", @@ -329,7 +332,13 @@ "is_percentage": "è", "last_30_days": "Ultimi 30 giorni", "learn_more": "Impara di più", + "ledger_connection_error": "Impossibile connettersi al libro mastro. Per favore riprova.", + "ledger_error_device_locked": "Il libro mastro è bloccato", + "ledger_error_tx_rejected_by_user": "Transazione rifiutata sul dispositivo", + "ledger_error_wrong_app": "Assicurati di aprire l'app giusta sul libro mastro", + "ledger_please_enable_bluetooth": "Si prega di consentire al Bluetooth di rilevare il libro mastro", "light_theme": "Bianco", + "load_more": "Carica di più", "loading_your_wallet": "Caricamento portafoglio", "login": "Accedi", "logout": "Logout", @@ -444,6 +453,8 @@ "privacy_settings": "Impostazioni privacy", "private_key": "Chiave privata", "proceed_after_one_minute": "Se lo schermo non procede dopo 1 minuto, controlla la tua email.", + "proceed_on_device": "Procedi sul tuo dispositivo", + "proceed_on_device_description": "Segui le istruzioni richieste sul portafoglio hardware", "profile": "Profilo", "provider_error": "${provider} errore", "public_key": "Chiave pubblica", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "Recupera il tuo portafoglio da una combinazione di 12 parole", "restore_bitcoin_title_from_keys": "Recupera da WIF", "restore_description_from_backup": "Puoi recuperare l'app Cake Wallet per intero dal tuo file di backup", + "restore_description_from_hardware_wallet": "Ripristina da un portafoglio hardware di libro mastro", "restore_description_from_keys": "Recupera il tuo portafoglio da una sequenza di caratteri generati dalle tue chiavi private", "restore_description_from_seed": "Recupera il tuo portafoglio da una combinazione di 25 o 13 parole", "restore_description_from_seed_keys": "Recupera il tuo portafoglio dal seme/chiavi che hai salvato in un posto sicuro", @@ -504,6 +516,7 @@ "restore_seed_keys_restore": "Recupera Seme/Chiavi", "restore_spend_key_private": "Chiave di Spesa (privata)", "restore_title_from_backup": "Recupera da backup", + "restore_title_from_hardware_wallet": "Ripristina dal portafoglio hardware", "restore_title_from_keys": "Recupera dalle chiavi", "restore_title_from_seed": "Recupera dal seme", "restore_title_from_seed_keys": "Recupera dal seme/chiavi", @@ -754,6 +767,7 @@ "unsupported_asset": "Non supportiamo questa azione per questa risorsa. Crea o passa a un portafoglio di un tipo di asset supportato.", "uptime": "Uptime", "upto": "fino a ${value}", + "usb": "USB", "use": "Passa a ", "use_card_info_three": "Utilizza la carta digitale online o con metodi di pagamento contactless.", "use_card_info_two": "I fondi vengono convertiti in USD quando sono detenuti nel conto prepagato, non in valute digitali.", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index a72bbb0e41..db92a2f922 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "ビットコインライトテーマ", "bitcoin_payments_require_1_confirmation": "ビットコインの支払いには 1 回の確認が必要で、これには 20 分以上かかる場合があります。お待ち頂きまして、ありがとうございます!支払いが確認されると、メールが送信されます。", "Blocks_remaining": "${status} 残りのブロック", + "bluetooth": "ブルートゥース", "bright_theme": "明るい", "bump_fee": "バンプ料金", "buy": "購入", @@ -144,6 +145,8 @@ "congratulations": "おめでとうございます!", "connect_an_existing_yat": "既存のYatを接続します", "connect_yats": "Yatsを接続します", + "connect_your_hardware_wallet": "BluetoothまたはUSBを使用して、ハードウェアウォレットを接続します", + "connect_your_hardware_wallet_ios": "Bluetoothを使用してハードウェアウォレットを接続します", "connection_sync": "接続と同期", "connectWalletPrompt": "ウォレットを WalletConnect に接続して取引を行う", "contact": "接触", @@ -329,7 +332,13 @@ "is_percentage": "is", "last_30_days": "過去30日", "learn_more": "もっと詳しく知る", + "ledger_connection_error": "元帳に接続できませんでした。もう一度やり直してください。", + "ledger_error_device_locked": "元帳がロックされています", + "ledger_error_tx_rejected_by_user": "トランザクションはデバイスで拒否されました", + "ledger_error_wrong_app": "元帳に適切なアプリを開始するようにしてください", + "ledger_please_enable_bluetooth": "Bluetoothが元帳を検出できるようにしてください", "light_theme": "光", + "load_more": "もっと読み込む", "loading_your_wallet": "ウォレットをロードしています", "login": "ログイン", "logout": "ログアウト", @@ -443,6 +452,8 @@ "privacy_settings": "プライバシー設定", "private_key": "秘密鍵", "proceed_after_one_minute": "1分経っても画面が進まない場合は、メールを確認してください。", + "proceed_on_device": "デバイスに進みます", + "proceed_on_device_description": "ハードウェアウォレットにプロンプ​​トされた指示に従ってください", "profile": "プロフィール", "provider_error": "${provider} エラー", "public_key": "公開鍵", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "24ワードの組み合わせコードからウォレットを復元する", "restore_bitcoin_title_from_keys": "WIFから復元", "restore_description_from_backup": "Cake Walletアプリ全体を復元できますバックアップファイル", + "restore_description_from_hardware_wallet": "元帳ハードウェアウォレットから復元します", "restore_description_from_keys": "生成されたウォレットを復元します秘密鍵から保存されたキーストローク", "restore_description_from_seed": "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード", "restore_description_from_seed_keys": "安全な場所に保存したシード/キーから財布を取り戻す", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "シード/キーの復元", "restore_spend_key_private": "キーを使う (プライベート)", "restore_title_from_backup": "バックアップファイルから復元する", + "restore_title_from_hardware_wallet": "ハードウェアウォレットから復元します", "restore_title_from_keys": "キーから復元する", "restore_title_from_seed": "シードから復元", "restore_title_from_seed_keys": "シード/キーから復元", @@ -753,6 +766,7 @@ "unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。", "uptime": "稼働時間", "upto": "up up ${value}", + "usb": "USB", "use": "使用する ", "use_card_info_three": "デジタルカードをオンラインまたは非接触型決済方法で使用してください。", "use_card_info_two": "デジタル通貨ではなく、プリペイドアカウントで保持されている場合、資金は米ドルに変換されます。", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index b80494e80c..fc84d7c35f 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "비트코인 라이트 테마", "bitcoin_payments_require_1_confirmation": "비트코인 결제는 1번의 확인이 필요하며 20분 이상이 소요될 수 있습니다. 기다려 주셔서 감사합니다! 결제가 확인되면 이메일이 전송됩니다.", "Blocks_remaining": "${status} 남은 블록", + "bluetooth": "블루투스", "bright_theme": "선명한", "bump_fee": "범프 요금", "buy": "구입", @@ -144,6 +145,8 @@ "congratulations": "축하합니다!", "connect_an_existing_yat": "기존 Yat 연결", "connect_yats": "야츠 연결", + "connect_your_hardware_wallet": "Bluetooth 또는 USB를 사용하여 하드웨어 지갑을 연결하십시오", + "connect_your_hardware_wallet_ios": "Bluetooth를 사용하여 하드웨어 지갑을 연결하십시오", "connection_sync": "연결 및 동기화", "connectWalletPrompt": "거래를 하려면 WalletConnect에 지갑을 연결하세요.", "contact": "접촉", @@ -328,7 +331,13 @@ "is_percentage": "이다", "last_30_days": "지난 30일", "learn_more": "더 알아보기", + "ledger_connection_error": "원장에 연결하지 못했습니다. 다시 시도하십시오.", + "ledger_error_device_locked": "원장이 잠겨 있습니다", + "ledger_error_tx_rejected_by_user": "장치에서 거래가 거부되었습니다", + "ledger_error_wrong_app": "원장에서 올바른 앱을 반대하는지 확인하십시오.", + "ledger_please_enable_bluetooth": "Bluetooth가 원장을 감지 할 수 있도록하십시오", "light_theme": "빛", + "load_more": "더로드하십시오", "loading_your_wallet": "지갑 넣기", "login": "로그인", "logout": "로그아웃", @@ -443,6 +452,8 @@ "privacy_settings": "개인정보 설정", "private_key": "개인 키", "proceed_after_one_minute": "1분 후에도 화면이 진행되지 않으면 이메일을 확인하세요.", + "proceed_on_device": "장치를 진행하십시오", + "proceed_on_device_description": "하드웨어 지갑에 표시된 지침을 따르십시오", "profile": "프로필", "provider_error": "${provider} 오류", "public_key": "공개 키", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "24 단어 조합 코드에서 지갑 복원", "restore_bitcoin_title_from_keys": "WIF에서 복원", "restore_description_from_backup": "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다.", + "restore_description_from_hardware_wallet": "원장 하드웨어 지갑에서 복원하십시오", "restore_description_from_keys": "개인 키에서 저장된 생성 된 키 스트로크에서 월렛 복원", "restore_description_from_seed": "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오.", "restore_description_from_seed_keys": "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오.", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "종자 / 키 복원", "restore_spend_key_private": "지출 키 (은밀한)", "restore_title_from_backup": "백업 파일에서 복원", + "restore_title_from_hardware_wallet": "하드웨어 지갑에서 복원하십시오", "restore_title_from_keys": "키에서 복원", "restore_title_from_seed": "종자에서 복원", "restore_title_from_seed_keys": "시드 / 키에서 복원", @@ -753,6 +766,7 @@ "unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오.", "uptime": "가동 시간", "upto": "최대 ${value}", + "usb": "USB", "use": "사용하다 ", "use_card_info_three": "디지털 카드를 온라인 또는 비접촉식 결제 수단으로 사용하십시오.", "use_card_info_two": "디지털 화폐가 아닌 선불 계정에 보유하면 자금이 USD로 변환됩니다.", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 97a22d8070..0e18179e1e 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light အပြင်အဆင်", "bitcoin_payments_require_1_confirmation": "Bitcoin ငွေပေးချေမှုများသည် မိနစ် 20 သို့မဟုတ် ထို့ထက်ပိုကြာနိုင်သည် 1 အတည်ပြုချက် လိုအပ်သည်။ မင်းရဲ့စိတ်ရှည်မှုအတွက် ကျေးဇူးတင်ပါတယ်။ ငွေပေးချေမှုကို အတည်ပြုပြီးသောအခါ သင့်ထံ အီးမေးလ်ပို့ပါမည်။", "Blocks_remaining": "${status} ဘလောက်များ ကျန်နေပါသည်။", + "bluetooth": "ဘလူးတုသ်", "bright_theme": "တောက်ပ", "bump_fee": "ဝင်ငွေ", "buy": "ဝယ်ပါ။", @@ -144,6 +145,8 @@ "congratulations": "ဂုဏ်ယူပါသည်။", "connect_an_existing_yat": "ရှိပြီးသား Yat ကို ချိတ်ဆက်ပါ။", "connect_yats": "Yats ကိုချိတ်ဆက်ပါ။", + "connect_your_hardware_wallet": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth သို့မဟုတ် USB ကို သုံး. ချိတ်ဆက်ပါ", + "connect_your_hardware_wallet_ios": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth ကို အသုံးပြု. ချိတ်ဆက်ပါ", "connection_sync": "ချိတ်ဆက်မှုနှင့် ထပ်တူပြုခြင်း။", "connectWalletPrompt": "အရောင်းအဝယ်ပြုလုပ်ရန် သင့်ပိုက်ဆံအိတ်ကို WalletConnect နှင့် ချိတ်ဆက်ပါ။", "contact": "ဆက်သွယ်ရန်", @@ -328,7 +331,13 @@ "is_percentage": "သည်", "last_30_days": "လွန်ခဲ့သော ရက် 30", "learn_more": "ပိုမိုသိရှိရန်", + "ledger_connection_error": "သငျသညျ Ledger နှင့်ချိတ်ဆက်ရန်မအောင်မြင်ပါ။ ကျေးဇူးပြုပြီးထပ်ကြိုးစားပါ", + "ledger_error_device_locked": "အဆိုပါလမ်းပြသော့ခတ်သည်", + "ledger_error_tx_rejected_by_user": "ငွေပေးငွေယူ device ကိုအပေါ်ငြင်းပယ်ခဲ့သည်", + "ledger_error_wrong_app": "ကျေးဇူးပြု. သင့်လက်ျာအက်ပ်ကိုသင်၏ Ledger တွင်ဖွင့်ရန်သေချာစေပါ", + "ledger_please_enable_bluetooth": "သင်၏ Ledger ကိုရှာဖွေရန် Bluetooth ကိုဖွင့်ပါ", "light_theme": "အလင်း", + "load_more": "ပိုပြီး load", "loading_your_wallet": "သင့်ပိုက်ဆံအိတ်ကို ဖွင့်နေသည်။", "login": "လော့ဂ်အင်", "logout": "ထွက်လိုက်ပါ။", @@ -442,6 +451,8 @@ "privacy_settings": "Privacy settings တွေကို", "private_key": "သီးသန့်သော့", "proceed_after_one_minute": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", + "proceed_on_device": "သင့်စက်ပေါ်တွင်ဆက်လက်ဆောင်ရွက်ပါ", + "proceed_on_device_description": "သင်၏ hardware ပိုက်ဆံအိတ်ပေါ်ရှိညွှန်ကြားချက်များကိုလိုက်နာပါ", "profile": "ကိုယ်ရေးအကျဉ်း", "provider_error": "${provider} အမှား", "public_key": "အများသူငှာသော့", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "24 စကားလုံးပေါင်းစပ်ကုဒ်မှ သင့်ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", "restore_bitcoin_title_from_keys": "WIF မှ ပြန်လည်ရယူပါ။", "restore_description_from_backup": "သင့်အရန်ဖိုင်မှ Cake Wallet အက်ပ်တစ်ခုလုံးကို သင်ပြန်လည်ရယူနိုင်သည်။", + "restore_description_from_hardware_wallet": "Ledger ဟာ့ဒ်ဝဲပိုက်ဆံအိတ်မှ Restore", "restore_description_from_keys": "သင့်ကိုယ်ပိုင်သော့များမှ သိမ်းဆည်းထားသော ထုတ်ပေးထားသော သော့ချက်များမှ သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူပါ။", "restore_description_from_seed": "25 စကားလုံး သို့မဟုတ် 13 စကားလုံးပေါင်းစပ်ကုဒ်မှ သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူပါ။", "restore_description_from_seed_keys": "သင့်ပိုက်ဆံအိတ်ကို လုံခြုံသောနေရာတွင် သိမ်းဆည်းထားသော မျိုးစေ့/သော့များမှ ပြန်လည်ရယူပါ။", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "မျိုးစေ့/သော့များ ပြန်လည်ရယူပါ။", "restore_spend_key_private": "သော့သုံးရန် (သီးသန့်)", "restore_title_from_backup": "အရန်သိမ်းခြင်းမှ ပြန်လည်ရယူပါ။", + "restore_title_from_hardware_wallet": "ဟာ့ဒ်ဝဲပိုက်ဆံအိတ်မှ restore", "restore_title_from_keys": "သော့များမှ ပြန်လည်ရယူပါ။", "restore_title_from_seed": "မျိုးစေ့မှပြန်လည်ရယူပါ။", "restore_title_from_seed_keys": "မျိုးစေ့/သော့များမှ ပြန်လည်ရယူပါ။", @@ -752,6 +765,7 @@ "unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", "uptime": "အထက်က", "upto": "${value} အထိ", + "usb": "ယူအက်စ်ဘီ", "use": "သို့ပြောင်းပါ။", "use_card_info_three": "ဒစ်ဂျစ်တယ်ကတ်ကို အွန်လိုင်း သို့မဟုတ် ထိတွေ့မှုမဲ့ ငွေပေးချေမှုနည်းလမ်းများဖြင့် အသုံးပြုပါ။", "use_card_info_two": "ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့်မဟုတ်ဘဲ ကြိုတင်ငွေပေးချေသည့်အကောင့်တွင် သိမ်းထားသည့်အခါ ရန်ပုံငွေများကို USD သို့ ပြောင်းလဲပါသည်။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a64e264c01..dff34c122e 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light-thema", "bitcoin_payments_require_1_confirmation": "Bitcoin-betalingen vereisen 1 bevestiging, wat 20 minuten of langer kan duren. Dank voor uw geduld! U ontvangt een e-mail wanneer de betaling is bevestigd.", "Blocks_remaining": "${status} Resterende blokken", + "bluetooth": "Bluetooth", "bright_theme": "Helder", "bump_fee": "Bult fee", "buy": "Kopen", @@ -144,6 +145,8 @@ "congratulations": "gefeliciteerd!", "connect_an_existing_yat": "Verbind een bestaande Yat", "connect_yats": "Verbind Yats", + "connect_your_hardware_wallet": "Sluit uw hardware -portemonnee aan met Bluetooth of USB", + "connect_your_hardware_wallet_ios": "Sluit uw hardware -portemonnee aan met Bluetooth", "connection_sync": "Verbinding en synchronisatie", "connectWalletPrompt": "Verbind uw portemonnee met WalletConnect om transacties uit te voeren", "contact": "Contact", @@ -328,7 +331,13 @@ "is_percentage": "is", "last_30_days": "Laatste 30 dagen", "learn_more": "Kom meer te weten", + "ledger_connection_error": "Kan geen verbinding maken met u grootboek. Probeer het opnieuw.", + "ledger_error_device_locked": "Het grootboek is vergrendeld", + "ledger_error_tx_rejected_by_user": "Transactie afgewezen op apparaat", + "ledger_error_wrong_app": "Zorg ervoor dat u de juiste app op uw grootboek opent", + "ledger_please_enable_bluetooth": "Schakel Bluetooth in staat om uw grootboek te detecteren", "light_theme": "Licht", + "load_more": "Meer laden", "loading_your_wallet": "Uw portemonnee laden", "login": "Log in", "logout": "Uitloggen", @@ -442,6 +451,8 @@ "privacy_settings": "Privacy-instellingen", "private_key": "Prive sleutel", "proceed_after_one_minute": "Als het scherm na 1 minuut niet verder gaat, controleer dan uw e-mail.", + "proceed_on_device": "Ga verder met uw apparaat", + "proceed_on_device_description": "Volg de instructies die zijn aangevraagd op uw hardware -portemonnee", "profile": "Profiel", "provider_error": "${provider} fout", "public_key": "Publieke sleutel", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Herstel uw portemonnee met een combinatiecode van 24 woorden", "restore_bitcoin_title_from_keys": "Herstel van WIF", "restore_description_from_backup": "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand", + "restore_description_from_hardware_wallet": "Herstel van een grootboekhardware -portemonnee", "restore_description_from_keys": "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels", "restore_description_from_seed": "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode", "restore_description_from_seed_keys": "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Zaad / sleutels herstellen", "restore_spend_key_private": "Sleutel uitgeven (privaat)", "restore_title_from_backup": "Herstellen vanuit een back-upbestand", + "restore_title_from_hardware_wallet": "Herstel van de hardware -portemonnee", "restore_title_from_keys": "Herstel van sleutels", "restore_title_from_seed": "Herstel van zaad", "restore_title_from_seed_keys": "Herstel van zaad / sleutels", @@ -752,6 +765,7 @@ "unsupported_asset": "We ondersteunen deze actie niet voor dit item. Maak of schakel over naar een portemonnee van een ondersteund activatype.", "uptime": "Uptime", "upto": "tot ${value}", + "usb": "USB", "use": "Gebruik ", "use_card_info_three": "Gebruik de digitale kaart online of met contactloze betaalmethoden.", "use_card_info_two": "Tegoeden worden omgezet naar USD wanneer ze op de prepaid-rekening staan, niet in digitale valuta.", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 109a800ad8..b8640f5fec 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Lekki motyw Bitcoin", "bitcoin_payments_require_1_confirmation": "Płatności Bitcoin wymagają 1 potwierdzenia, co może zająć 20 minut lub dłużej. Dziękuję za cierpliwość! Otrzymasz wiadomość e-mail, gdy płatność zostanie potwierdzona.", "Blocks_remaining": "Pozostało ${status} bloków", + "bluetooth": "Bluetooth", "bright_theme": "Biały", "bump_fee": "Opłata za nierówność", "buy": "Kup", @@ -144,6 +145,8 @@ "congratulations": "gratulacje!", "connect_an_existing_yat": "Podłącz istniejący Yat", "connect_yats": "Połącz Yats", + "connect_your_hardware_wallet": "Podłącz portfel sprzętowy za pomocą Bluetooth lub USB", + "connect_your_hardware_wallet_ios": "Podłącz portfel sprzętowy za pomocą Bluetooth", "connection_sync": "Połączenie i synchronizacja", "connectWalletPrompt": "Połącz swój portfel z WalletConnect, aby dokonywać transakcji", "contact": "Kontakt", @@ -328,7 +331,13 @@ "is_percentage": "jest", "last_30_days": "Ostatnie 30 dni", "learn_more": "Dowiedz się więcej", + "ledger_connection_error": "Nie udało się połączyć z twoją księgą. Proszę spróbuj ponownie.", + "ledger_error_device_locked": "Księga jest zamknięta", + "ledger_error_tx_rejected_by_user": "Transakcja odrzucona na urządzeniu", + "ledger_error_wrong_app": "Upewnij się, że opisz odpowiednią aplikację na swojej księdze", + "ledger_please_enable_bluetooth": "Włącz Bluetooth wykrywanie księgi", "light_theme": "Jasny", + "load_more": "Załaduj więcej", "loading_your_wallet": "Ładowanie portfela", "login": "Login", "logout": "Wyloguj", @@ -442,6 +451,8 @@ "privacy_settings": "Ustawienia prywatności", "private_key": "Klucz prywatny", "proceed_after_one_minute": "Jeśli ekran nie przejdzie dalej po 1 minucie, sprawdź pocztę.", + "proceed_on_device": "Kontynuuj swoje urządzenie", + "proceed_on_device_description": "Postępuj zgodnie z instrukcjami wyświetlonymi w portfelu sprzętowym", "profile": "Profil", "provider_error": "${provider} pomyłka", "public_key": "Klucz publiczny", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Przywróć swój portfel z frazy seed złożonej z 24 słów", "restore_bitcoin_title_from_keys": "Przywróć z klucza prywatnego", "restore_description_from_backup": "Możesz przywrócić całą aplikację Cake Wallet z pliku kopii zapasowej", + "restore_description_from_hardware_wallet": "Przywróć z portfela sprzętowego księgi", "restore_description_from_keys": "Przywróć swój portfel z kluczy prywatnych", "restore_description_from_seed": "Przywróć swój portfel z 25 lub 13-słownej frazy seed", "restore_description_from_seed_keys": "Odzyskaj swój portfel z seedów / kluczy, które zapisałeś w bezpiecznym miejscu", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Przywracanie seedów / kluczy", "restore_spend_key_private": "Podaj prywatny klucz wglądu (view key)", "restore_title_from_backup": "Przywróć z pliku kopii zapasowej", + "restore_title_from_hardware_wallet": "Przywróć z portfela sprzętowego", "restore_title_from_keys": "Przywróć z kluczy", "restore_title_from_seed": "Przywróć z seedów", "restore_title_from_seed_keys": "Przywróć z seedów / kluczy", @@ -752,6 +765,7 @@ "unsupported_asset": "Nie obsługujemy tego działania w przypadku tego zasobu. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów.", "uptime": "Czas aktu", "upto": "do ${value}", + "usb": "USB", "use": "Użyj ", "use_card_info_three": "Użyj cyfrowej karty online lub za pomocą zbliżeniowych metod płatności.", "use_card_info_two": "Środki są przeliczane na USD, gdy są przechowywane na koncie przedpłaconym, a nie w walutach cyfrowych.", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 2d877794a7..7d606e2c19 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Tema claro de bitcoin", "bitcoin_payments_require_1_confirmation": "Os pagamentos em Bitcoin exigem 1 confirmação, o que pode levar 20 minutos ou mais. Obrigado pela sua paciência! Você receberá um e-mail quando o pagamento for confirmado.", "Blocks_remaining": "${status} blocos restantes", + "bluetooth": "Bluetooth", "bright_theme": "Brilhante", "bump_fee": "Taxa de aumento", "buy": "Comprar", @@ -144,6 +145,8 @@ "congratulations": "Parabéns!", "connect_an_existing_yat": "Conecte um Yat existente", "connect_yats": "Connect Yats", + "connect_your_hardware_wallet": "Conecte sua carteira de hardware usando Bluetooth ou USB", + "connect_your_hardware_wallet_ios": "Conecte sua carteira de hardware usando o Bluetooth", "connection_sync": "Conexão e sincronização", "connectWalletPrompt": "Conecte sua carteira ao WalletConnect para fazer transações", "contact": "Contato", @@ -328,7 +331,13 @@ "is_percentage": "é", "last_30_days": "Últimos 30 dias", "learn_more": "Saber mais", + "ledger_connection_error": "Falha ao se conectar ao seu livro. Por favor, tente novamente.", + "ledger_error_device_locked": "O livro está trancado", + "ledger_error_tx_rejected_by_user": "Transação rejeitada no dispositivo", + "ledger_error_wrong_app": "Por favor, certifique -se de optar pelo aplicativo certo no seu livro", + "ledger_please_enable_bluetooth": "Ative o Bluetooth para detectar seu livro", "light_theme": "Luz", + "load_more": "Carregue mais", "loading_your_wallet": "Abrindo sua carteira", "login": "Login", "logout": "Logout", @@ -444,6 +453,8 @@ "privacy_settings": "Configurações de privacidade", "private_key": "Chave privada", "proceed_after_one_minute": "Se a tela não prosseguir após 1 minuto, verifique seu e-mail.", + "proceed_on_device": "Prossiga no seu dispositivo", + "proceed_on_device_description": "Siga as instruções solicitadas em sua carteira de hardware", "profile": "Perfil", "provider_error": "${provider} erro", "public_key": "Chave pública", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "Restaure sua carteira a partir de um código de combinação de 24 palavras", "restore_bitcoin_title_from_keys": "Restaurar de WIF", "restore_description_from_backup": "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup", + "restore_description_from_hardware_wallet": "Restaurar de uma carteira de hardware do Ledger", "restore_description_from_keys": "Restaure sua carteira a partir de suas chaves privadas", "restore_description_from_seed": "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras", "restore_description_from_seed_keys": "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro", @@ -504,6 +516,7 @@ "restore_seed_keys_restore": "Restauração com sementes/chaves", "restore_spend_key_private": "Chave de gastos (privada)", "restore_title_from_backup": "Restaurar a partir de um arquivo de backup", + "restore_title_from_hardware_wallet": "Restaurar da carteira de hardware", "restore_title_from_keys": "Restaurar a partir de chaves", "restore_title_from_seed": "Restaurar a partir de semente", "restore_title_from_seed_keys": "Restaurar a partir de sementes/chaves", @@ -754,6 +767,7 @@ "unsupported_asset": "Não oferecemos suporte a esta ação para este recurso. Crie ou mude para uma carteira de um tipo de ativo compatível.", "uptime": "Tempo de atividade", "upto": "até ${value}", + "usb": "USB", "use": "Use PIN de ", "use_card_info_three": "Use o cartão digital online ou com métodos de pagamento sem contato.", "use_card_info_two": "Os fundos são convertidos para USD quando mantidos na conta pré-paga, não em moedas digitais.", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index e6141c29ba..c6466a24e8 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Светлая биткойн-тема", "bitcoin_payments_require_1_confirmation": "Биткойн-платежи требуют 1 подтверждения, что может занять 20 минут или дольше. Спасибо тебе за твое терпение! Вы получите электронное письмо, когда платеж будет подтвержден.", "Blocks_remaining": "${status} Осталось блоков", + "bluetooth": "Bluetooth", "bright_theme": "Яркая", "bump_fee": "Повысить комиссию", "buy": "Купить", @@ -144,6 +145,8 @@ "congratulations": "Поздравляем!", "connect_an_existing_yat": "Подключить существующий Yat", "connect_yats": "Подключить Yats", + "connect_your_hardware_wallet": "Подключите свой аппаратный кошелек с помощью Bluetooth или USB", + "connect_your_hardware_wallet_ios": "Подключите свой аппаратный кошелек с помощью Bluetooth", "connection_sync": "Подключение и синхронизация", "connectWalletPrompt": "Подключите свой кошелек к WalletConnect для совершения транзакций.", "contact": "Контакт", @@ -328,7 +331,13 @@ "is_percentage": "есть", "last_30_days": "Последние 30 дней", "learn_more": "Узнать больше", + "ledger_connection_error": "Не удалось подключиться к вам, книги. Пожалуйста, попробуйте еще раз.", + "ledger_error_device_locked": "Ledger заблокирован", + "ledger_error_tx_rejected_by_user": "Транзакция отклоняется на устройстве", + "ledger_error_wrong_app": "Пожалуйста, убедитесь, что вы предлагаете правильное приложение в своей бухгалтерской книге", + "ledger_please_enable_bluetooth": "Пожалуйста, включите Bluetooth обнаружить вашу бухгалтерскую книгу", "light_theme": "Светлая", + "load_more": "Загрузи больше", "loading_your_wallet": "Загрузка кошелька", "login": "Логин", "logout": "Выйти", @@ -443,6 +452,8 @@ "privacy_settings": "Настройки конфиденциальности", "private_key": "Приватный ключ", "proceed_after_one_minute": "Если через 1 минуту экран не отображается, проверьте свою электронную почту.", + "proceed_on_device": "Пройдите на свое устройство", + "proceed_on_device_description": "Пожалуйста, следуйте инструкциям, представленным на вашем аппаратном кошельке", "profile": "Профиль", "provider_error": "${provider} ошибка", "public_key": "Публичный ключ", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "Вы можете восстановить кошелёк используя 24-ти значную мнемоническую фразу", "restore_bitcoin_title_from_keys": "Восстановить с помощью WIF", "restore_description_from_backup": "Вы можете восстановить Cake Wallet из вашего back-up файла", + "restore_description_from_hardware_wallet": "Восстановите из оборудования", "restore_description_from_keys": "Вы можете восстановить кошелёк с помощью приватных ключей", "restore_description_from_seed": "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу", "restore_description_from_seed_keys": "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "Восстановить из мнемонической фразы/ключей", "restore_spend_key_private": "Приватный ключ траты", "restore_title_from_backup": "Восстановить из back-up файла", + "restore_title_from_hardware_wallet": "Восстановить из аппаратного кошелька", "restore_title_from_keys": "Восстановить с помощью ключей", "restore_title_from_seed": "Восстановить из мнемонической фразы", "restore_title_from_seed_keys": "Восстановить из мнемонической фразы/ключей", @@ -753,6 +766,7 @@ "unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов.", "uptime": "Время безотказной работы", "upto": "до ${value}", + "usb": "USB", "use": "Использовать ", "use_card_info_three": "Используйте цифровую карту онлайн или с помощью бесконтактных способов оплаты.", "use_card_info_two": "Средства конвертируются в доллары США, когда они хранятся на предоплаченном счете, а не в цифровых валютах.", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index ef1a3ea4ef..6b68d1e501 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "ธีมแสง Bitcoin", "bitcoin_payments_require_1_confirmation": "การชำระเงินด้วย Bitcoin ต้องการการยืนยัน 1 ครั้ง ซึ่งอาจใช้เวลา 20 นาทีหรือนานกว่านั้น ขอบคุณสำหรับความอดทนของคุณ! คุณจะได้รับอีเมลเมื่อการชำระเงินได้รับการยืนยัน", "Blocks_remaining": "${status} บล็อกที่เหลืออยู่", + "bluetooth": "บลูทู ธ", "bright_theme": "สดใส", "bump_fee": "ค่าธรรมเนียมชน", "buy": "ซื้อ", @@ -144,6 +145,8 @@ "congratulations": "ขอแสดงความยินดี!", "connect_an_existing_yat": "เชื่อมต่อ Yat ที่มีอยู่", "connect_yats": "เชื่อมต่อ Yats", + "connect_your_hardware_wallet": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ หรือ USB", + "connect_your_hardware_wallet_ios": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ", "connection_sync": "การเชื่อมต่อและการซิงค์", "connectWalletPrompt": "เชื่อมต่อกระเป๋าเงินของคุณด้วย WalletConnect เพื่อทำธุรกรรม", "contact": "ผู้ติดต่อ", @@ -328,7 +331,13 @@ "is_percentage": "เป็น", "last_30_days": "30 วันล่าสุด", "learn_more": "ศึกษาเพิ่มเติม", + "ledger_connection_error": "ไม่สามารถเชื่อมต่อกับบัญชีแยกประเภทของคุณได้ กรุณาลองอีกครั้ง.", + "ledger_error_device_locked": "บัญชีแยกประเภทถูกล็อค", + "ledger_error_tx_rejected_by_user": "ธุรกรรมถูกปฏิเสธบนอุปกรณ์", + "ledger_error_wrong_app": "โปรดตรวจสอบให้แน่ใจว่าคุณเปิดแอพที่เหมาะสมในบัญชีแยกประเภทของคุณ", + "ledger_please_enable_bluetooth": "โปรดเปิดใช้งานบลูทู ธ ในการตรวจจับบัญชีแยกประเภทของคุณ", "light_theme": "สว่าง", + "load_more": "โหลดมากขึ้น", "loading_your_wallet": "กำลังโหลดกระเป๋าของคุณ", "login": "เข้าสู่ระบบ", "logout": "ออกจากระบบ", @@ -442,6 +451,8 @@ "privacy_settings": "การตั้งค่าความเป็นส่วนตัว", "private_key": "คีย์ส่วนตัว", "proceed_after_one_minute": "หากหน้าจอไม่ดำเนินการหลังจาก 1 นาทีโปรดตรวจสอบอีเมลของคุณ", + "proceed_on_device": "ดำเนินการบนอุปกรณ์ของคุณ", + "proceed_on_device_description": "โปรดทำตามคำแนะนำที่ได้รับแจ้งไว้ในกระเป๋าเงินฮาร์ดแวร์ของคุณ", "profile": "ประวัติโดยย่อ", "provider_error": "ข้อผิดพลาด ${provider}", "public_key": "คีย์สาธารณะ", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 24 คำ", "restore_bitcoin_title_from_keys": "กู้จาก WIF", "restore_description_from_backup": "คุณสามารถกู้แอพ Cake Wallet ทั้งหมดจากไฟล์สำรองข้อมูลของคุณ", + "restore_description_from_hardware_wallet": "กู้คืนจากกระเป๋าเงินฮาร์ดแวร์บัญชีแยกประเภท", "restore_description_from_keys": "กู้กระเป๋าของคุณจากการกดปุ่มที่สร้างขึ้นจาก private keys ของคุณที่บันทึกไว้", "restore_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 25 คำหรือ 13 คำ", "restore_description_from_seed_keys": "เรียกกระเป๋าของคุณกลับมาจาก seed/keys ที่คุณได้บันทึกไว้ในที่ปลอดภัย", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "กู้จาก Seed/Keys", "restore_spend_key_private": "คีย์สำหรับใช้ (ส่วนตัว)", "restore_title_from_backup": "กู้จากการสำรองข้อมูล", + "restore_title_from_hardware_wallet": "กู้คืนจากกระเป๋าเงินฮาร์ดแวร์", "restore_title_from_keys": "กู้จาก keys", "restore_title_from_seed": "กู้จาก seed", "restore_title_from_seed_keys": "กู้จาก seed/keys", @@ -752,6 +765,7 @@ "unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ", "uptime": "เวลาทำงาน", "upto": "สูงสุด ${value}", + "usb": "ยูเอสบี", "use": "สลับไปที่ ", "use_card_info_three": "ใช้บัตรดิจิตอลออนไลน์หรือผ่านวิธีการชำระเงินแบบไม่ต้องใช้บัตรกระดาษ", "use_card_info_two": "เงินจะถูกแปลงค่าเป็นดอลลาร์สหรัฐเมื่อถือไว้ในบัญชีสำรองเงิน ไม่ใช่สกุลเงินดิจิตอล", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index e0258e38a2..6d388973a2 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Tema ng ilaw ng bitcoin", "bitcoin_payments_require_1_confirmation": "Ang mga pagbabayad sa Bitcoin ay nangangailangan ng 1 kumpirmasyon, na maaaring tumagal ng 20 minuto o mas mahaba. Salamat sa iyong pasensya! Mag -email ka kapag nakumpirma ang pagbabayad.", "Blocks_remaining": "Ang natitirang ${status} ay natitira", + "bluetooth": "Bluetooth", "bright_theme": "Maliwanag", "bump_fee": "Bayad sa paga", "buy": "Bilhin", @@ -144,6 +145,8 @@ "congratulations": "Binabati kita!", "connect_an_existing_yat": "Ikonekta ang isang umiiral na yat", "connect_yats": "Ikonekta ang mga yats", + "connect_your_hardware_wallet": "Ikonekta ang iyong wallet ng hardware gamit ang Bluetooth o USB", + "connect_your_hardware_wallet_ios": "Ikonekta ang iyong wallet ng hardware gamit ang Bluetooth", "connection_sync": "Koneksyon at pag -sync", "connectWalletPrompt": "Ikonekta ang iyong wallet sa WalletConnect upang gumawa ng mga transaksyon", "contact": "Makipag -ugnay", @@ -328,7 +331,13 @@ "is_percentage": "ay", "last_30_days": "Huling 30 araw", "learn_more": "Matuto nang higit pa", + "ledger_connection_error": "Nabigong kumonekta sa iyo ledger. Pakisubukang muli.", + "ledger_error_device_locked": "Naka -lock ang ledger", + "ledger_error_tx_rejected_by_user": "Ang transaksyon ay tinanggihan sa aparato", + "ledger_error_wrong_app": "Mangyaring tiyaking pinipili mo ang tamang app sa iyong ledger", + "ledger_please_enable_bluetooth": "Mangyaring paganahin ang Bluetooth upang makita ang iyong ledger", "light_theme": "Ilaw", + "load_more": "Mag -load pa", "loading_your_wallet": "Naglo -load ng iyong pitaka", "login": "Mag log in", "logout": "Mag -logout", @@ -442,6 +451,8 @@ "privacy_settings": "Settings para sa pagsasa-pribado", "private_key": "Pribadong susi", "proceed_after_one_minute": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang iyong email.", + "proceed_on_device": "Magpatuloy sa iyong aparato", + "proceed_on_device_description": "Mangyaring sundin ang mga tagubilin na sinenyasan sa iyong wallet ng hardware", "profile": "Profile", "provider_error": "${provider} error", "public_key": "Pampublikong susi", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Ibalik ang iyong pitaka mula sa 24 na code ng kombinasyon ng salita", "restore_bitcoin_title_from_keys": "Ibalik mula sa WIF", "restore_description_from_backup": "Maaari mong ibalik ang buong cake wallet app mula sa iyong back-up file", + "restore_description_from_hardware_wallet": "Ibalik mula sa isang ledger hardware wallet", "restore_description_from_keys": "Ibalik ang iyong pitaka mula sa nabuong mga keystroke na na -save mula sa iyong mga pribadong susi", "restore_description_from_seed": "Ibalik ang iyong pitaka mula sa alinman sa 25 salita o 13 na code ng kombinasyon ng salita", "restore_description_from_seed_keys": "Ibalik ang iyong pitaka mula sa mga binhi/susi na na -save mo upang ma -secure ang lugar", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Ibinalik ang mga binhi/susi", "restore_spend_key_private": "Gumastos ng susi (pribado)", "restore_title_from_backup": "Ibalik mula sa backup", + "restore_title_from_hardware_wallet": "Ibalik mula sa pitaka ng hardware", "restore_title_from_keys": "Ibalik mula sa mga susi", "restore_title_from_seed": "Ibalik mula sa binhi", "restore_title_from_seed_keys": "Ibalik mula sa mga binhi/susi", @@ -752,6 +765,7 @@ "unsupported_asset": "Hindi namin sinusuportahan ang pagkilos na ito para sa asset na ito. Mangyaring lumikha o lumipat sa isang pitaka ng isang suportadong uri ng pag -aari.", "uptime": "Uptime", "upto": "Hanggang sa ${value}", + "usb": "USB", "use": "Lumipat sa", "use_card_info_three": "Gamitin ang digital card online o sa mga pamamaraan ng pagbabayad na walang contact.", "use_card_info_two": "Ang mga pondo ay na -convert sa USD kapag gaganapin sila sa prepaid account, hindi sa mga digital na pera.", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 6cacbfd424..ddf99696b5 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Hafif Tema", "bitcoin_payments_require_1_confirmation": "Bitcoin ödemeleri, 20 dakika veya daha uzun sürebilen 1 onay gerektirir. Sabrınız için teşekkürler! Ödeme onaylandığında e-posta ile bilgilendirileceksiniz.", "Blocks_remaining": "${status} Blok Kaldı", + "bluetooth": "Bluetooth", "bright_theme": "Parlak", "bump_fee": "Çarpma ücreti", "buy": "Alış", @@ -144,6 +145,8 @@ "congratulations": "Tebrikler!", "connect_an_existing_yat": "Mevcut bir Yat'ı bağla", "connect_yats": "Yat'lara bağlan", + "connect_your_hardware_wallet": "Bluetooth veya USB kullanarak donanım cüzdanınızı bağlayın", + "connect_your_hardware_wallet_ios": "Bluetooth kullanarak donanım cüzdanınızı bağlayın", "connection_sync": "Bağlantı ve senkronizasyon", "connectWalletPrompt": "İşlem yapmak için cüzdanınızı WalletConnect'e bağlayın", "contact": "Rehber", @@ -328,7 +331,13 @@ "is_percentage": "is", "last_30_days": "Son 30 gün", "learn_more": "Daha fazla öğren", + "ledger_connection_error": "Ledger'e bağlanamadı. Lütfen tekrar deneyin.", + "ledger_error_device_locked": "Defter kilitli", + "ledger_error_tx_rejected_by_user": "Cihazda reddedilen işlem", + "ledger_error_wrong_app": "Lütfen defterinizde doğru uygulamayı açtığınızdan emin olun", + "ledger_please_enable_bluetooth": "Defterinizi algılamak için lütfen Bluetooth'u etkinleştirin", "light_theme": "Aydınlık", + "load_more": "Daha fazla yükle", "loading_your_wallet": "Cüzdanın yükleniyor", "login": "Login", "logout": "Çıkış yap", @@ -442,6 +451,8 @@ "privacy_settings": "Gizlilik ayarları", "private_key": "Özel anahtar", "proceed_after_one_minute": "Ekran 1 dakika sonra ilerlemezse, e-postanızı kontrol edin.", + "proceed_on_device": "Cihazınıza devam edin", + "proceed_on_device_description": "Lütfen donanım cüzdanınızda istenen talimatları izleyin", "profile": "Profil", "provider_error": "${provider} hatası", "public_key": "Genel Anahtar", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "Cüzdanınızı 24 kelimelik kombinasyon kodundan geri yükle", "restore_bitcoin_title_from_keys": "WIF'den geri yükle", "restore_description_from_backup": "Yedek dosyandan tüm Cake Wallet uygulamasını geri döndürebilirsin", + "restore_description_from_hardware_wallet": "Bir defter donanım cüzdanından geri yükleyin", "restore_description_from_keys": "Cüzdanınızı özel anahtarlarınızdan kaydedilen oluşturulmuş tuş vuruşlarından geri yükleyin", "restore_description_from_seed": "Cüzdanınızı 25 veya 13 kelimelik kombinasyon kodundan geri döndürün", "restore_description_from_seed_keys": "Güvenli bir yere kaydettiğin tohumdan/anahtarlardan cüzdanını geri döndür", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "Tohumu/Anahtarları Geri Döndür", "restore_spend_key_private": "Harcama anahtarı (Özel)", "restore_title_from_backup": "Yedekten geri döndür", + "restore_title_from_hardware_wallet": "Donanım cüzdanından geri yükleme", "restore_title_from_keys": "Anahtarlardan geri döndür", "restore_title_from_seed": "Tohumdan geri döndür", "restore_title_from_seed_keys": "Tohumdan/anahtarlardan geri döndür", @@ -752,6 +765,7 @@ "unsupported_asset": "Bu öğe için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türünde bir cüzdan oluşturun veya cüzdana geçiş yapın.", "uptime": "Çalışma süresi", "upto": "Şu miktara kadar: ${value}", + "usb": "USB", "use": "Şuna geç: ", "use_card_info_three": "Dijital kartı çevrimiçi olarak veya temassız ödeme yöntemleriyle kullanın.", "use_card_info_two": "Paralar, dijital para birimlerinde değil, ön ödemeli hesapta tutulduğunda USD'ye dönüştürülür.", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index d3f1c5088c..2f294817e7 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Світла тема Bitcoin", "bitcoin_payments_require_1_confirmation": "Платежі Bitcoin потребують 1 підтвердження, яке може зайняти 20 хвилин або більше. Дякую за Ваше терпіння! Ви отримаєте електронний лист, коли платіж буде підтверджено.", "Blocks_remaining": "${status} Залишилось блоків", + "bluetooth": "Блюдот", "bright_theme": "Яскрава", "bump_fee": "Підвищити комісію", "buy": "Купити", @@ -144,6 +145,8 @@ "congratulations": "Вітаємо!", "connect_an_existing_yat": "Підключити існуючий Yat", "connect_yats": "Підключіть Yats", + "connect_your_hardware_wallet": "Підключіть апаратний гаманець за допомогою Bluetooth або USB", + "connect_your_hardware_wallet_ios": "Підключіть апаратний гаманець за допомогою Bluetooth", "connection_sync": "Підключення та синхронізація", "connectWalletPrompt": "Підключіть свій гаманець до WalletConnect, щоб здійснювати транзакції", "contact": "Контакт", @@ -328,7 +331,13 @@ "is_percentage": "є", "last_30_days": "Останні 30 днів", "learn_more": "Дізнатися більше", + "ledger_connection_error": "Не вдалося підключитися до вас. Будь ласка спробуйте ще раз.", + "ledger_error_device_locked": "Книга заблокована", + "ledger_error_tx_rejected_by_user": "Транзакція відхилена на пристрої", + "ledger_error_wrong_app": "Будь ласка, переконайтеся, що ви відкриваєте потрібну програму на своїй книзі", + "ledger_please_enable_bluetooth": "Будь ласка, ввімкніть Bluetooth виявити свою книгу", "light_theme": "Світла", + "load_more": "Завантажити ще", "loading_your_wallet": "Завантаження гаманця", "login": "Логін", "logout": "Вийти", @@ -442,6 +451,8 @@ "privacy_settings": "Налаштування конфіденційності", "private_key": "Приватний ключ", "proceed_after_one_minute": "Якщо екран не продовжується через 1 хвилину, перевірте свою електронну пошту.", + "proceed_on_device": "Продовжуйте свій пристрій", + "proceed_on_device_description": "Будь ласка, дотримуйтесь інструкцій, підказаних на вашому апаратному гаманці", "profile": "Профіль", "provider_error": "${provider} помилка", "public_key": "Публічний ключ", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "Ви можете відновити гаманець використовуючи 24-ти слівну мнемонічну фразу", "restore_bitcoin_title_from_keys": "Відновити за допомогою WIF", "restore_description_from_backup": "Ви можете відновити Cake Wallet з вашого резервного файлу", + "restore_description_from_hardware_wallet": "Відновлення з апаратного гаманця", "restore_description_from_keys": "Ви можете відновити гаманець за допомогою приватних ключів", "restore_description_from_seed": "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу", "restore_description_from_seed_keys": "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "Відновити за допомогою мнемонічної фрази/ключів", "restore_spend_key_private": "Приватний ключ витрати", "restore_title_from_backup": "Відновити із резервного файлу", + "restore_title_from_hardware_wallet": "Відновити з апаратного гаманця", "restore_title_from_keys": "Відновити за допомогою ключів", "restore_title_from_seed": "Відновити з мнемонічної фрази", "restore_title_from_seed_keys": "Відновити з мнемонічної фрази/ключів", @@ -753,6 +766,7 @@ "unsupported_asset": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів.", "uptime": "Час роботи", "upto": "до ${value}", + "usb": "USB", "use": "Використати ", "use_card_info_three": "Використовуйте цифрову картку онлайн або за допомогою безконтактних методів оплати.", "use_card_info_two": "Кошти конвертуються в долари США, якщо вони зберігаються на передплаченому рахунку, а не в цифрових валютах.", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 97851b210d..048cfb0709 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "بٹ کوائن لائٹ تھیم", "bitcoin_payments_require_1_confirmation": "بٹ کوائن کی ادائیگی میں 1 تصدیق کی ضرورت ہوتی ہے ، جس میں 20 منٹ یا اس سے زیادہ وقت لگ سکتا ہے۔ آپ کے صبر کا شکریہ! ادائیگی کی تصدیق ہونے پر آپ کو ای میل کیا جائے گا۔", "Blocks_remaining": "${status} بلاکس باقی ہیں۔", + "bluetooth": "بلوٹوتھ", "bright_theme": "روشن", "bump_fee": "بمپ فیس", "buy": "خریدنے", @@ -144,6 +145,8 @@ "congratulations": "مبارک ہو!", "connect_an_existing_yat": "ایک موجودہ Yat کو جوڑیں۔", "connect_yats": "Yats کو جوڑیں۔", + "connect_your_hardware_wallet": "بلوٹوتھ یا USB کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو مربوط کریں", + "connect_your_hardware_wallet_ios": "بلوٹوتھ کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو جوڑیں", "connection_sync": "کنکشن اور مطابقت پذیری", "connectWalletPrompt": "۔ﮟﯾﮌﻮﺟ ﮫﺗﺎﺳ ﮯﮐ WalletConnect ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻦﯾﺩ ﻦﯿﻟ", "contact": "رابطہ کریں۔", @@ -328,7 +331,13 @@ "is_percentage": "ہے", "last_30_days": "آخری 30 دن", "learn_more": "اورجانیے", + "ledger_connection_error": "آپ سے لیجر سے رابطہ قائم کرنے میں ناکام۔ دوبارہ کوشش کریں.", + "ledger_error_device_locked": "لیجر لاک ہے", + "ledger_error_tx_rejected_by_user": "آلہ پر لین دین کو مسترد کردیا گیا", + "ledger_error_wrong_app": "براہ کرم یقینی بنائیں کہ آپ اپنے لیجر پر صحیح ایپ کو کھولتے ہیں", + "ledger_please_enable_bluetooth": "براہ کرم بلوٹوتھ کو اپنے لیجر کا پتہ لگانے کے لئے اہل بنائیں", "light_theme": "روشنی", + "load_more": "مزید لوڈ کریں", "loading_your_wallet": "آپ کا بٹوہ لوڈ ہو رہا ہے۔", "login": "لاگ ان کریں", "logout": "لاگ آوٹ", @@ -444,6 +453,8 @@ "privacy_settings": "رازداری کی ترتیبات", "private_key": "نجی کلید", "proceed_after_one_minute": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے تو اپنا ای میل چیک کریں۔", + "proceed_on_device": "اپنے آلے پر آگے بڑھیں", + "proceed_on_device_description": "براہ کرم اپنے ہارڈ ویئر پرس پر آنے والی ہدایات پر عمل کریں", "profile": "پروفائل", "provider_error": "${provider} خرابی۔", "public_key": "عوامی کلید", @@ -492,6 +503,7 @@ "restore_bitcoin_description_from_seed": "24 الفاظ کے مجموعہ کوڈ سے اپنے بٹوے کو بحال کریں۔", "restore_bitcoin_title_from_keys": "WIF سے بحال کریں۔", "restore_description_from_backup": "آپ اپنی بیک اپ فائل سے پوری کیک والیٹ ایپ کو بحال کر سکتے ہیں۔", + "restore_description_from_hardware_wallet": "لیجر ہارڈ ویئر پرس سے بحال کریں", "restore_description_from_keys": "اپنے بٹوے کو اپنی نجی کلیدوں سے محفوظ کردہ کی اسٹروکس سے بحال کریں۔", "restore_description_from_seed": "اپنے بٹوے کو 25 لفظ یا 13 الفاظ کے مجموعہ کوڈ سے بحال کریں۔", "restore_description_from_seed_keys": "اپنے بٹوے کو بیج / چابیاں سے واپس حاصل کریں جنہیں آپ نے محفوظ جگہ پر محفوظ کیا ہے۔", @@ -504,6 +516,7 @@ "restore_seed_keys_restore": "بیج/کیز کی بحالی", "restore_spend_key_private": "خرچ کی کلید (نجی)", "restore_title_from_backup": "بیک اپ سے بحال کریں۔", + "restore_title_from_hardware_wallet": "ہارڈ ویئر پرس سے بحال کریں", "restore_title_from_keys": "چابیاں سے بحال کریں۔", "restore_title_from_seed": "بیج سے بحال کریں۔", "restore_title_from_seed_keys": "بیج / چابیاں سے بحال کریں۔", @@ -754,6 +767,7 @@ "unsupported_asset": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ", "uptime": "اپ ٹائم", "upto": "${value} تک", + "usb": "یو ایس بی", "use": "تبدیل کرنا", "use_card_info_three": "ڈیجیٹل کارڈ آن لائن یا کنٹیکٹ لیس ادائیگی کے طریقوں کے ساتھ استعمال کریں۔", "use_card_info_two": "رقوم کو امریکی ڈالر میں تبدیل کیا جاتا ہے جب پری پیڈ اکاؤنٹ میں رکھا جاتا ہے، ڈیجیٹل کرنسیوں میں نہیں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index acb5335366..8a379a2584 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "Bitcoin Light Akori", "bitcoin_payments_require_1_confirmation": "Àwọn àránṣẹ́ Bitcoin nílò ìjẹ́rìísí kan. Ó lè lo ìṣéjú ogun tàbí ìṣéjú jù. A dúpẹ́ fún sùúrù yín! Ẹ máa gba ímeèlì t'ó bá jẹ́rìísí àránṣẹ́ náà.", "Blocks_remaining": "Àkójọpọ̀ ${status} kikù", + "bluetooth": "Bluetooth", "bright_theme": "Funfun", "bump_fee": "Ọya ija", "buy": "Rà", @@ -144,6 +145,8 @@ "congratulations": "Ẹ kúuṣẹ́ ooo!", "connect_an_existing_yat": "So Yat wíwà", "connect_yats": "So àwọn Yat", + "connect_your_hardware_wallet": "So apamọwọ irinṣẹ rẹ nipa lilo Bluetooth tabi USB", + "connect_your_hardware_wallet_ios": "So apamọwọ ẹrọ rẹ ni lilo Bluetooth", "connection_sync": "Ìkànpọ̀ àti ìbádọ́gba", "connectWalletPrompt": "So apamọwọ rẹ pọ pẹlu WalletConnect lati ṣe awọn iṣowo", "contact": "Olùbásọ̀rọ̀", @@ -329,7 +332,13 @@ "is_percentage": "jẹ́", "last_30_days": "Ọ̀jọ̀ mọ́gbọ̀n tó kọjà", "learn_more": "Túbọ̀ kọ́", + "ledger_connection_error": "O kuna lati sopọ mọ ọ. Jọwọ gbiyanju lẹẹkansi.", + "ledger_error_device_locked": "Ledger wa ni titiipa", + "ledger_error_tx_rejected_by_user": "Idunadura kọ lori ẹrọ", + "ledger_error_wrong_app": "Jọwọ rii daju pe iwọ yoo sọ app ti o tọ loju omi rẹ", + "ledger_please_enable_bluetooth": "Jọwọ jẹ ki Bluetooth lati rii iṣupọ rẹ", "light_theme": "Funfun bí eérú", + "load_more": "Ẹru diẹ sii", "loading_your_wallet": "A ń ṣí àpamọ́wọ́ yín", "login": "Orúkọ", "logout": "Jáde", @@ -443,6 +452,8 @@ "privacy_settings": "Ààtò àdáni", "private_key": "Kọ́kọ́rọ́ àdáni", "proceed_after_one_minute": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ ímeèlì yín wò.", + "proceed_on_device": "Tẹsiwaju lori ẹrọ rẹ", + "proceed_on_device_description": "Jọwọ tẹle awọn ilana ti a ṣe lori apamọwọ ohun elo rẹ", "profile": "profaili", "provider_error": "Àṣìṣe ${provider}", "public_key": "Kọ́kọ́rọ́ tó kò àdáni", @@ -491,6 +502,7 @@ "restore_bitcoin_description_from_seed": "Mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀mẹrinlélógun", "restore_bitcoin_title_from_keys": "Mú padà láti WIF", "restore_description_from_backup": "Ẹ lè fi ẹ̀dà nípamọ́ yín mú odindi Cake Wallet áàpù padà.", + "restore_description_from_hardware_wallet": "Mu pada kuro ninu apamọwọ ohun elo ti o yanilenu", "restore_description_from_keys": "Mú àpamọ́wọ́ yín padà láti àwọn àtẹ̀ nípamọ́ láti àwọn kọ́kọ́rọ́ àdáni yín", "restore_description_from_seed": "Ẹ mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀marùndínlọgbọ̀n tàbí ti mẹ́talá.", "restore_description_from_seed_keys": "Mú àpamọ́wọ́ yín padà láti hóró/kọ́kọ́rọ́ t'ẹ́ ti pamọ́ sí ibi láìléwu", @@ -503,6 +515,7 @@ "restore_seed_keys_restore": "Mú hóró/kọ́kọ́rọ́ padà", "restore_spend_key_private": "kọ́kọ́rọ́ àdáni fún níná", "restore_title_from_backup": "Fi ẹ̀dà nípamọ́ mú padà", + "restore_title_from_hardware_wallet": "Mu pada kuro ninu apamọwọ ohun elo", "restore_title_from_keys": "Fi kọ́kọ́rọ́ ṣẹ̀dá", "restore_title_from_seed": "Fi hóró mú padà", "restore_title_from_seed_keys": "Fi hóró/kọ́kọ́rọ́ mú padà", @@ -753,6 +766,7 @@ "unsupported_asset": "A ko ṣe atilẹyin iṣẹ yii fun dukia yii. Jọwọ ṣẹda tabi yipada si apamọwọ iru dukia atilẹyin.", "uptime": "Iduro", "upto": "kò tóbi ju ${value}", + "usb": "USB", "use": "Lo", "use_card_info_three": "Ẹ lo káàdí ayélujára lórí wẹ́ẹ̀bù tàbí ẹ lò ó lórí àwọn ẹ̀rọ̀ ìrajà tíwọn kò kò.", "use_card_info_two": "A pààrọ̀ owó sí owó Amẹ́ríkà tó bá wà nínú àkanti t'á ti fikún tẹ́lẹ̀tẹ́lẹ̀. A kò kó owó náà nínú owó ayélujára.", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index e17c4a89b7..bf6684deeb 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -79,6 +79,7 @@ "bitcoin_light_theme": "比特币浅色主题", "bitcoin_payments_require_1_confirmation": "比特币支付需要 1 次确认,这可能需要 20 分钟或更长时间。谢谢你的耐心!确认付款后,您将收到电子邮件。", "Blocks_remaining": "${status} 剩余的块", + "bluetooth": "蓝牙", "bright_theme": "明亮", "bump_fee": "撞费", "buy": "购买", @@ -144,6 +145,8 @@ "congratulations": "恭喜!", "connect_an_existing_yat": "連接現有 Yat", "connect_yats": "连接 Yats", + "connect_your_hardware_wallet": "使用蓝牙或USB连接硬件钱包", + "connect_your_hardware_wallet_ios": "使用蓝牙连接硬件钱包", "connection_sync": "连接和同步", "connectWalletPrompt": "将您的钱包与 WalletConnect 连接以进行交易", "contact": "联系", @@ -328,7 +331,13 @@ "is_percentage": "是", "last_30_days": "过去 30 天", "learn_more": "了解更多", + "ledger_connection_error": "无法连接到您的分类帐。请再试一次。", + "ledger_error_device_locked": "分类帐已锁定", + "ledger_error_tx_rejected_by_user": "交易在设备上拒绝", + "ledger_error_wrong_app": "请确保您在分类帐中操作正确的应用程序", + "ledger_please_enable_bluetooth": "请启用蓝牙来检测您的分类帐", "light_theme": "艳丽", + "load_more": "装载更多", "loading_your_wallet": "加载您的钱包", "login": "登录", "logout": "注销", @@ -442,6 +451,8 @@ "privacy_settings": "隐私设置", "private_key": "私钥", "proceed_after_one_minute": "如果屏幕在 1 分钟后没有继续,请检查您的电子邮件。", + "proceed_on_device": "在设备上继续", + "proceed_on_device_description": "请按照您的硬件钱包上提示的说明进行操作", "profile": "轮廓", "provider_error": "${provider} 错误", "public_key": "公钥", @@ -490,6 +501,7 @@ "restore_bitcoin_description_from_seed": "从24个文字的组成码恢复您的钱包", "restore_bitcoin_title_from_keys": "从WIF还原", "restore_description_from_backup": "您可以从还原整个Cake Wallet应用您的备份文件", + "restore_description_from_hardware_wallet": "从分类帐硬件钱包还原", "restore_description_from_keys": "使用私钥恢复钱包", "restore_description_from_seed": "从25个字中恢复您的钱包或13个字的组合码", "restore_description_from_seed_keys": "从保存到安全地方的种子/钥匙取回钱包", @@ -502,6 +514,7 @@ "restore_seed_keys_restore": "种子/密钥还原", "restore_spend_key_private": "Spend私钥", "restore_title_from_backup": "从备份文件还原", + "restore_title_from_hardware_wallet": "从硬件钱包还原", "restore_title_from_keys": "从密钥还原", "restore_title_from_seed": "从种子还原", "restore_title_from_seed_keys": "从种子/密钥还原", @@ -752,6 +765,7 @@ "unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。", "uptime": "正常运行时间", "upto": "最高 ${value}", + "usb": "USB", "use": "切换使用", "use_card_info_three": "在线使用电子卡或使用非接触式支付方式。", "use_card_info_two": "预付账户中的资金转换为美元,不是数字货币。", diff --git a/tool/configure.dart b/tool/configure.dart index f136c9a2a9..f2391103d5 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -68,9 +68,13 @@ Future generateBitcoin(bool hasImplementation) async { const bitcoinCommonHeaders = """ import 'dart:typed_data'; import 'package:cw_core/node.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_core/hardware/hardware_account_data.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/receive_page_option.dart'; 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/transaction_priority.dart'; @@ -78,8 +82,8 @@ import 'package:cw_core/output_info.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/view_model/send/output.dart'; import 'package:hive/hive.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as btc; import 'package:bip32/bip32.dart' as bip32; @@ -93,6 +97,7 @@ import 'package:cw_bitcoin/electrum_derivations.dart'; import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; +import 'package:cw_bitcoin/bitcoin_wallet.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; import 'package:cw_bitcoin/bitcoin_unspent.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; @@ -105,6 +110,7 @@ import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet_service.dart'; import 'package:cw_bitcoin/script_hash.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; +import 'package:cw_bitcoin/bitcoin_hardware_wallet_service.dart'; import 'package:mobx/mobx.dart'; """; const bitcoinCwPart = "part 'cw_bitcoin.dart';"; @@ -139,6 +145,7 @@ abstract class Bitcoin { }); WalletCredentials createBitcoinRestoreWalletFromWIFCredentials({required String name, required String password, required String wif, WalletInfo? walletInfo}); WalletCredentials createBitcoinNewWalletCredentials({required String name, WalletInfo? walletInfo}); + WalletCredentials createBitcoinHardwareWalletCredentials({required String name, required HardwareAccountData accountData, WalletInfo? walletInfo}); List getWordList(); Map getWalletKeys(Object wallet); List getTransactionPriorities(); @@ -187,6 +194,9 @@ abstract class Bitcoin { int getFeeAmountForPriority(Object wallet, TransactionPriority priority, int inputsCount, int outputsCount, {int? size}); int getEstimatedFeeWithFeeRate(Object wallet, int feeRate, int? amount, {int? outputsCount, int? size}); int getMaxCustomFeeRate(Object wallet); + + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device); + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, {int index = 0, int limit = 5}); } """; @@ -568,9 +578,11 @@ abstract class HavenAccountList { Future generateEthereum(bool hasImplementation) async { final outputFile = File(ethereumOutputPath); const ethereumCommonHeaders = """ +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; +import 'package:cw_core/hardware/hardware_account_data.dart'; import 'package:cw_core/output_info.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/transaction_priority.dart'; @@ -579,6 +591,7 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:web3dart/web3dart.dart'; """; @@ -589,6 +602,9 @@ import 'package:cw_evm/evm_chain_transaction_credentials.dart'; import 'package:cw_evm/evm_chain_transaction_info.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; import 'package:cw_evm/evm_chain_wallet_creation_credentials.dart'; +import 'package:cw_evm/evm_chain_hardware_wallet_service.dart'; +import 'package:cw_evm/evm_ledger_credentials.dart'; +import 'package:cw_evm/evm_chain_wallet.dart'; import 'package:cw_ethereum/ethereum_client.dart'; import 'package:cw_ethereum/ethereum_wallet.dart'; @@ -605,6 +621,7 @@ abstract class Ethereum { WalletCredentials createEthereumNewWalletCredentials({required String name, WalletInfo? walletInfo}); WalletCredentials createEthereumRestoreWalletFromSeedCredentials({required String name, required String mnemonic, required String password}); WalletCredentials createEthereumRestoreWalletFromPrivateKey({required String name, required String privateKey, required String password}); + WalletCredentials createEthereumHardwareWalletCredentials({required String name, required HardwareAccountData hwAccountData, WalletInfo? walletInfo}); String getAddress(WalletBase wallet); String getPrivateKey(WalletBase wallet); String getPublicKey(WalletBase wallet); @@ -638,6 +655,9 @@ abstract class Ethereum { void updateEtherscanUsageState(WalletBase wallet, bool isEnabled); Web3Client? getWeb3Client(WalletBase wallet); String getTokenAddress(CryptoCurrency asset); + + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device); + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, {int index = 0, int limit = 5}); } """; @@ -661,9 +681,11 @@ abstract class Ethereum { Future generatePolygon(bool hasImplementation) async { final outputFile = File(polygonOutputPath); const polygonCommonHeaders = """ +import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; +import 'package:cw_core/hardware/hardware_account_data.dart'; import 'package:cw_core/output_info.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/transaction_priority.dart'; @@ -672,16 +694,20 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; +import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:web3dart/web3dart.dart'; """; const polygonCWHeaders = """ import 'package:cw_evm/evm_chain_formatter.dart'; import 'package:cw_evm/evm_chain_mnemonics.dart'; +import 'package:cw_evm/evm_chain_transaction_credentials.dart'; import 'package:cw_evm/evm_chain_transaction_info.dart'; import 'package:cw_evm/evm_chain_transaction_priority.dart'; -import 'package:cw_evm/evm_chain_transaction_credentials.dart'; import 'package:cw_evm/evm_chain_wallet_creation_credentials.dart'; +import 'package:cw_evm/evm_chain_hardware_wallet_service.dart'; +import 'package:cw_evm/evm_ledger_credentials.dart'; +import 'package:cw_evm/evm_chain_wallet.dart'; import 'package:cw_polygon/polygon_client.dart'; import 'package:cw_polygon/polygon_wallet.dart'; @@ -698,6 +724,7 @@ abstract class Polygon { WalletCredentials createPolygonNewWalletCredentials({required String name, WalletInfo? walletInfo}); WalletCredentials createPolygonRestoreWalletFromSeedCredentials({required String name, required String mnemonic, required String password}); WalletCredentials createPolygonRestoreWalletFromPrivateKey({required String name, required String privateKey, required String password}); + WalletCredentials createPolygonHardwareWalletCredentials({required String name, required HardwareAccountData hwAccountData, WalletInfo? walletInfo}); String getAddress(WalletBase wallet); String getPrivateKey(WalletBase wallet); String getPublicKey(WalletBase wallet); @@ -731,6 +758,9 @@ abstract class Polygon { void updatePolygonScanUsageState(WalletBase wallet, bool isEnabled); Web3Client? getWeb3Client(WalletBase wallet); String getTokenAddress(CryptoCurrency asset); + + void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device); + Future> getHardwareWalletAccounts(LedgerViewModel ledgerVM, {int index = 0, int limit = 5}); } """; From 55cdec810e472d3f487a99b9fb85edc299f6cd31 Mon Sep 17 00:00:00 2001 From: rottenwheel <92872541+rottenwheel@users.noreply.github.com> Date: Mon, 6 May 2024 11:32:31 +0000 Subject: [PATCH 082/157] fix: remove comma in OpenAlias title (#1430) --- lib/src/screens/settings/domain_lookups_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/screens/settings/domain_lookups_page.dart b/lib/src/screens/settings/domain_lookups_page.dart index 80849b8ead..aa7e68cd0c 100644 --- a/lib/src/screens/settings/domain_lookups_page.dart +++ b/lib/src/screens/settings/domain_lookups_page.dart @@ -38,7 +38,7 @@ class DomainLookupsPage extends BasePage { value: _privacySettingsViewModel.looksUpUnstoppableDomains, onValueChange: (_, bool value) => _privacySettingsViewModel.setLookupsUnstoppableDomains(value)), SettingsSwitcherCell( - title: 'OpenAlias,', + title: 'OpenAlias', value: _privacySettingsViewModel.looksUpOpenAlias, onValueChange: (_, bool value) => _privacySettingsViewModel.setLookupsOpenAlias(value)), SettingsSwitcherCell( From 2a88b32eee6a97c7528c25d5b822e904711d8783 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Mon, 6 May 2024 20:11:18 +0100 Subject: [PATCH 083/157] fix: Add another node, handle errors gracefully (#1433) --- assets/tron_node_list.yml | 4 ++++ cw_tron/lib/tron_client.dart | 11 ++++++++--- lib/view_model/send/send_view_model.dart | 20 +++++++++++++++++--- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/assets/tron_node_list.yml b/assets/tron_node_list.yml index e30f79d538..4c67b920e5 100644 --- a/assets/tron_node_list.yml +++ b/assets/tron_node_list.yml @@ -1,4 +1,8 @@ - uri: api.trongrid.io is_default: true + useSSL: true +- + uri: tron-rpc.publicnode.com:443 + is_default: false useSSL: true \ No newline at end of file diff --git a/cw_tron/lib/tron_client.dart b/cw_tron/lib/tron_client.dart index f03a8abce8..73812f14ca 100644 --- a/cw_tron/lib/tron_client.dart +++ b/cw_tron/lib/tron_client.dart @@ -367,7 +367,7 @@ class TronClient { ) async { // This is introduce to server as a limit in cases where feeLimit is 0 // The transaction signing will fail if the feeLimit is explicitly 0. - int defaultFeeLimit = 100000; + int defaultFeeLimit = 269000; final block = await _provider!.request(TronRequestGetNowBlock()); // Create the transfer contract @@ -401,8 +401,9 @@ class TronClient { final tronBalanceInt = tronBalance.toInt(); if (feeLimit > tronBalanceInt) { + final feeInTrx = TronHelper.fromSun(BigInt.parse(feeLimit.toString())); throw Exception( - 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up.', + 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up.\nTransaction fee: $feeInTrx TRX', ); } @@ -442,6 +443,9 @@ class TronClient { if (!request.isSuccess) { log("Tron TRC20 error: ${request.error} \n ${request.respose}"); + throw Exception( + 'An error occured while creating the transfer request. Please try again.', + ); } final feeLimit = await getFeeLimit( @@ -454,8 +458,9 @@ class TronClient { final tronBalanceInt = tronBalance.toInt(); if (feeLimit > tronBalanceInt) { + final feeInTrx = TronHelper.fromSun(BigInt.parse(feeLimit.toString())); throw Exception( - 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up.', + 'You don\'t have enough TRX to cover the transaction fee for this transaction. Kindly top up. Transaction fee: $feeInTrx TRX', ); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 2a6bf553b6..0d53c59cc7 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -247,7 +247,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor wallet.type != WalletType.banano && wallet.type != WalletType.solana && wallet.type != WalletType.tron; - + @observable CryptoCurrency selectedCryptoCurrency; @@ -363,7 +363,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } catch (e) { if (e is LedgerException) { final errorCode = e.errorCode.toRadixString(16); - final fallbackMsg = e.message.isNotEmpty ? e.message : "Unexpected Ledger Error Code: $errorCode"; + final fallbackMsg = + e.message.isNotEmpty ? e.message : "Unexpected Ledger Error Code: $errorCode"; final errorMsg = ledgerViewModel.interpretErrorCode(errorCode) ?? fallbackMsg; state = FailureState(errorMsg); @@ -444,7 +445,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor Object _credentials() { final priority = _settingsStore.priority[wallet.type]; - if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.banano && wallet.type != WalletType.solana && + if (priority == null && + wallet.type != WalletType.nano && + wallet.type != WalletType.banano && + wallet.type != WalletType.solana && wallet.type != WalletType.tron) { throw Exception('Priority is null for wallet type: ${wallet.type}'); } @@ -570,6 +574,16 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return errorMessage; } + if (walletType == WalletType.tron) { + if (errorMessage.contains('balance is not sufficient')) { + return S.current.do_not_have_enough_gas_asset(currency.toString()); + } + + if (errorMessage.contains('Transaction expired')) { + return 'An error occurred while processing the transaction. Kindly retry the transaction'; + } + } + if (walletType == WalletType.bitcoin || walletType == WalletType.litecoin || walletType == WalletType.bitcoinCash) { From cd41766e697a23f1d8c2945526825062daf573cd Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Mon, 6 May 2024 20:14:43 +0100 Subject: [PATCH 084/157] Desktop-Enhancements (#1434) * feat: Add minimum size for macos app * fix: Adjust font sizing and spaces in wallet list page and wallet selection dropdown --- cw_core/lib/window_size.dart | 22 +++++++++++++++++++ lib/main.dart | 3 +++ .../desktop_widgets/dropdown_item_widget.dart | 2 +- .../desktop_settings_page.dart | 2 +- .../screens/wallet_list/wallet_list_page.dart | 2 +- macos/Runner/AppDelegate.swift | 16 +++++++++++++- 6 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 cw_core/lib/window_size.dart diff --git a/cw_core/lib/window_size.dart b/cw_core/lib/window_size.dart new file mode 100644 index 0000000000..a0f192f660 --- /dev/null +++ b/cw_core/lib/window_size.dart @@ -0,0 +1,22 @@ +import 'dart:io'; + +import 'package:flutter/services.dart'; + +const MethodChannel _channel = MethodChannel('com.cake_wallet/native_utils'); + +Future setDefaultMinimumWindowSize() async { + if (!Platform.isMacOS) return; + + try { + final result = await _channel.invokeMethod( + 'setMinWindowSize', + {'width': 500, 'height': 700}, + ) as bool; + + if (!result) { + print("Failed to set minimum window size."); + } + } on PlatformException catch (e) { + print("Failed to set minimum window size: '${e.message}'."); + } +} diff --git a/lib/main.dart b/lib/main.dart index b274c7a84d..b2e32d7a9a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -41,6 +41,7 @@ import 'package:uni_links/uni_links.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cw_core/cake_hive.dart'; +import 'package:cw_core/window_size.dart'; final navigatorKey = GlobalKey(); final rootKey = GlobalKey(); @@ -60,6 +61,8 @@ Future main() async { return true; }; + await setDefaultMinimumWindowSize(); + await CakeHive.close(); await initializeAppConfigs(); diff --git a/lib/src/screens/dashboard/desktop_widgets/dropdown_item_widget.dart b/lib/src/screens/dashboard/desktop_widgets/dropdown_item_widget.dart index aa7012ae5f..f8f92dc08e 100644 --- a/lib/src/screens/dashboard/desktop_widgets/dropdown_item_widget.dart +++ b/lib/src/screens/dashboard/desktop_widgets/dropdown_item_widget.dart @@ -22,7 +22,7 @@ class DropDownItemWidget extends StatelessWidget { child: Text( title, style: TextStyle( - fontSize: 22, + fontSize: 18, fontWeight: FontWeight.w500, color: Theme.of(context).extension()!.titleColor, ), diff --git a/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart index 1d6168e4a2..6896177e4d 100644 --- a/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart +++ b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart @@ -38,7 +38,7 @@ class _DesktopSettingsPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.fromLTRB(24, 24, 24, 4), child: Text( S.current.settings, style: textXLarge(), diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index 601f5d878d..9a0c295647 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -171,7 +171,7 @@ class WalletListBodyState extends State { maxLines: null, softWrap: true, style: TextStyle( - fontSize: 20, + fontSize: DeviceInfo.instance.isDesktop ? 18 : 20, fontWeight: FontWeight.w500, color: Theme.of(context) .extension()! diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift index 0c8973175f..cd7f006e62 100644 --- a/macos/Runner/AppDelegate.swift +++ b/macos/Runner/AppDelegate.swift @@ -24,7 +24,21 @@ class AppDelegate: FlutterAppDelegate { } result(secRandom(count: count)) - + case "setMinWindowSize": + guard let self = self else { + result(false) + return + } + if let arguments = call.arguments as? [String: Any], + let width = arguments["width"] as? Double, + let height = arguments["height"] as? Double { + DispatchQueue.main.async { + self.mainFlutterWindow?.minSize = CGSize(width: width, height: height) + } + result(true) + } else { + result(false) + } default: result(FlutterMethodNotImplemented) } From 3f3cd10158245f550f84db129e226a95a13e4c78 Mon Sep 17 00:00:00 2001 From: Serhii Date: Mon, 6 May 2024 22:16:25 +0300 Subject: [PATCH 085/157] thor name to address lookup (#1390) * thor name to address lookup * minor fix [skip ci] * Addressing code review comments * minor fix --- lib/entities/parse_address_from_domain.dart | 24 ++++++++---- lib/entities/parsed_address.dart | 11 +++++- .../provider/thorchain_exchange.provider.dart | 35 +++++++++++++++-- lib/src/screens/exchange/exchange_page.dart | 38 ++++++++----------- .../widgets/extract_address_from_parsed.dart | 5 +++ lib/view_model/send/output.dart | 4 +- 6 files changed, 82 insertions(+), 35 deletions(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index f729e6392c..409724c6e4 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/entities/unstoppable_domain_address.dart'; import 'package:cake_wallet/entities/emoji_string_extension.dart'; +import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart'; import 'package:cake_wallet/mastodon/mastodon_api.dart'; import 'package:cake_wallet/nostr/nostr_api.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -71,8 +72,8 @@ class AddressResolver { return emailRegex.hasMatch(address); } - // TODO: refactor this to take Crypto currency instead of ticker, or at least pass in the tag as well - Future resolve(BuildContext context, String text, String ticker) async { + Future resolve(BuildContext context, String text, CryptoCurrency currency) async { + final ticker = currency.title; try { if (text.startsWith('@') && !text.substring(1).contains('@')) { if (settingsStore.lookupsTwitter) { @@ -116,8 +117,7 @@ class AddressResolver { await MastodonAPI.lookupUserByUserName(userName: userName, apiHost: hostName); if (mastodonUser != null) { - String? addressFromBio = extractAddressByType( - raw: mastodonUser.note, type: CryptoCurrency.fromString(ticker)); + String? addressFromBio = extractAddressByType(raw: mastodonUser.note, type: currency); if (addressFromBio != null) { return ParsedAddress.fetchMastodonAddress( @@ -131,8 +131,8 @@ class AddressResolver { if (pinnedPosts.isNotEmpty) { final userPinnedPostsText = pinnedPosts.map((item) => item.content).join('\n'); - String? addressFromPinnedPost = extractAddressByType( - raw: userPinnedPostsText, type: CryptoCurrency.fromString(ticker)); + String? addressFromPinnedPost = + extractAddressByType(raw: userPinnedPostsText, type: currency); if (addressFromPinnedPost != null) { return ParsedAddress.fetchMastodonAddress( @@ -162,6 +162,16 @@ class AddressResolver { } } } + + final thorChainAddress = await ThorChainExchangeProvider.lookupAddressByName(text); + if (thorChainAddress != null) { + String? address = + thorChainAddress[ticker] ?? (ticker == 'RUNE' ? thorChainAddress['THOR'] : null); + if (address != null) { + return ParsedAddress.thorChainAddress(address: address, name: text); + } + } + final formattedName = OpenaliasRecord.formatDomainName(text); final domainParts = formattedName.split('.'); final name = domainParts.last; @@ -204,7 +214,7 @@ class AddressResolver { if (nostrUserData != null) { String? addressFromBio = extractAddressByType( - raw: nostrUserData.about, type: CryptoCurrency.fromString(ticker)); + raw: nostrUserData.about, type: currency); if (addressFromBio != null) { return ParsedAddress.nostrAddress( address: addressFromBio, diff --git a/lib/entities/parsed_address.dart b/lib/entities/parsed_address.dart index fc8ab2440f..cfd69acbe3 100644 --- a/lib/entities/parsed_address.dart +++ b/lib/entities/parsed_address.dart @@ -11,7 +11,8 @@ enum ParseFrom { ens, contact, mastodon, - nostr + nostr, + thorChain } class ParsedAddress { @@ -133,6 +134,14 @@ class ParsedAddress { ); } + factory ParsedAddress.thorChainAddress({required String address, required String name}) { + return ParsedAddress( + addresses: [address], + name: name, + parseFrom: ParseFrom.thorChain, + ); + } + final List addresses; final String name; final String description; diff --git a/lib/exchange/provider/thorchain_exchange.provider.dart b/lib/exchange/provider/thorchain_exchange.provider.dart index 32dce7db86..826e203f3f 100644 --- a/lib/exchange/provider/thorchain_exchange.provider.dart +++ b/lib/exchange/provider/thorchain_exchange.provider.dart @@ -34,11 +34,13 @@ class ThorChainExchangeProvider extends ExchangeProvider { static final isRefundAddressSupported = [CryptoCurrency.eth]; - static const _baseURL = 'thornode.ninerealms.com'; + static const _baseNodeURL = 'thornode.ninerealms.com'; + static const _baseURL = 'midgard.ninerealms.com'; static const _quotePath = '/thorchain/quote/swap'; static const _txInfoPath = '/thorchain/tx/status/'; static const _affiliateName = 'cakewallet'; static const _affiliateBps = '175'; + static const _nameLookUpPath= 'v2/thorname/lookup/'; final Box tradesStore; @@ -154,7 +156,7 @@ class ThorChainExchangeProvider extends ExchangeProvider { Future findTradeById({required String id}) async { if (id.isEmpty) throw Exception('Trade id is empty'); final formattedId = id.startsWith('0x') ? id.substring(2) : id; - final uri = Uri.https(_baseURL, '$_txInfoPath$formattedId'); + final uri = Uri.https(_baseNodeURL, '$_txInfoPath$formattedId'); final response = await http.get(uri); if (response.statusCode == 404) { @@ -206,8 +208,35 @@ class ThorChainExchangeProvider extends ExchangeProvider { ); } + static Future?>? lookupAddressByName(String name) async { + final uri = Uri.https(_baseURL, '$_nameLookUpPath$name'); + final response = await http.get(uri); + + if (response.statusCode != 200) { + return null; + } + + final body = json.decode(response.body) as Map; + final entries = body['entries'] as List?; + + if (entries == null || entries.isEmpty) { + return null; + } + + Map chainToAddressMap = {}; + + for (final entry in entries) { + final chain = entry['chain'] as String; + final address = entry['address'] as String; + chainToAddressMap[chain] = address; + } + + return chainToAddressMap; + } + + Future> _getSwapQuote(Map params) async { - Uri uri = Uri.https(_baseURL, _quotePath, params); + Uri uri = Uri.https(_baseNodeURL, _quotePath, params); final response = await http.get(uri); diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index d9e1190386..c4e4aa1997 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -330,10 +330,12 @@ class ExchangePage extends BasePage { void applyTemplate( BuildContext context, ExchangeViewModel exchangeViewModel, ExchangeTemplate template) async { - exchangeViewModel.changeDepositCurrency( - currency: CryptoCurrency.fromString(template.depositCurrency)); - exchangeViewModel.changeReceiveCurrency( - currency: CryptoCurrency.fromString(template.receiveCurrency)); + + final depositCryptoCurrency = CryptoCurrency.fromString(template.depositCurrency); + final receiveCryptoCurrency = CryptoCurrency.fromString(template.receiveCurrency); + + exchangeViewModel.changeDepositCurrency(currency: depositCryptoCurrency); + exchangeViewModel.changeReceiveCurrency(currency: receiveCryptoCurrency); exchangeViewModel.changeDepositAmount(amount: template.amount); exchangeViewModel.depositAddress = template.depositAddress; @@ -342,12 +344,10 @@ class ExchangePage extends BasePage { exchangeViewModel.isFixedRateMode = false; var domain = template.depositAddress; - var ticker = template.depositCurrency.toLowerCase(); - exchangeViewModel.depositAddress = await fetchParsedAddress(context, domain, ticker); + exchangeViewModel.depositAddress = await fetchParsedAddress(context, domain, depositCryptoCurrency); domain = template.receiveAddress; - ticker = template.receiveCurrency.toLowerCase(); - exchangeViewModel.receiveAddress = await fetchParsedAddress(context, domain, ticker); + exchangeViewModel.receiveAddress = await fetchParsedAddress(context, domain, receiveCryptoCurrency); } void _setReactions(BuildContext context, ExchangeViewModel exchangeViewModel) { @@ -519,16 +519,14 @@ class ExchangePage extends BasePage { _depositAddressFocus.addListener(() async { if (!_depositAddressFocus.hasFocus && depositAddressController.text.isNotEmpty) { final domain = depositAddressController.text; - final ticker = exchangeViewModel.depositCurrency.title.toLowerCase(); - exchangeViewModel.depositAddress = await fetchParsedAddress(context, domain, ticker); + exchangeViewModel.depositAddress = await fetchParsedAddress(context, domain, exchangeViewModel.depositCurrency); } }); _receiveAddressFocus.addListener(() async { if (!_receiveAddressFocus.hasFocus && receiveAddressController.text.isNotEmpty) { final domain = receiveAddressController.text; - final ticker = exchangeViewModel.receiveCurrency.title.toLowerCase(); - exchangeViewModel.receiveAddress = await fetchParsedAddress(context, domain, ticker); + exchangeViewModel.receiveAddress = await fetchParsedAddress(context, domain, exchangeViewModel.receiveCurrency); } }); @@ -575,8 +573,8 @@ class ExchangePage extends BasePage { } } - Future fetchParsedAddress(BuildContext context, String domain, String ticker) async { - final parsedAddress = await getIt.get().resolve(context, domain, ticker); + Future fetchParsedAddress(BuildContext context, String domain, CryptoCurrency currency) async { + final parsedAddress = await getIt.get().resolve(context, domain, currency); final address = await extractAddressFromParsed(context, parsedAddress); return address; } @@ -663,15 +661,13 @@ class ExchangePage extends BasePage { addressTextFieldValidator: AddressValidator(type: exchangeViewModel.depositCurrency), onPushPasteButton: (context) async { final domain = exchangeViewModel.depositAddress; - final ticker = exchangeViewModel.depositCurrency.title.toLowerCase(); exchangeViewModel.depositAddress = - await fetchParsedAddress(context, domain, ticker); + await fetchParsedAddress(context, domain, exchangeViewModel.depositCurrency); }, onPushAddressBookButton: (context) async { final domain = exchangeViewModel.depositAddress; - final ticker = exchangeViewModel.depositCurrency.title.toLowerCase(); exchangeViewModel.depositAddress = - await fetchParsedAddress(context, domain, ticker); + await fetchParsedAddress(context, domain, exchangeViewModel.depositCurrency); }, )); @@ -712,15 +708,13 @@ class ExchangePage extends BasePage { addressTextFieldValidator: AddressValidator(type: exchangeViewModel.receiveCurrency), onPushPasteButton: (context) async { final domain = exchangeViewModel.receiveAddress; - final ticker = exchangeViewModel.receiveCurrency.title.toLowerCase(); exchangeViewModel.receiveAddress = - await fetchParsedAddress(context, domain, ticker); + await fetchParsedAddress(context, domain, exchangeViewModel.receiveCurrency); }, onPushAddressBookButton: (context) async { final domain = exchangeViewModel.receiveAddress; - final ticker = exchangeViewModel.receiveCurrency.title.toLowerCase(); exchangeViewModel.receiveAddress = - await fetchParsedAddress(context, domain, ticker); + await fetchParsedAddress(context, domain, exchangeViewModel.receiveCurrency); }, )); diff --git a/lib/src/screens/send/widgets/extract_address_from_parsed.dart b/lib/src/screens/send/widgets/extract_address_from_parsed.dart index eb997c11b7..9ce3ca2b11 100644 --- a/lib/src/screens/send/widgets/extract_address_from_parsed.dart +++ b/lib/src/screens/send/widgets/extract_address_from_parsed.dart @@ -56,6 +56,11 @@ Future extractAddressFromParsed( profileImageUrl = parsedAddress.profileImageUrl; profileName = parsedAddress.profileName; break; + case ParseFrom.thorChain: + title = S.of(context).address_detected; + content = S.of(context).extracted_address_content('${parsedAddress.name} (ThorChain)'); + address = parsedAddress.addresses.first; + break; case ParseFrom.yatRecord: if (parsedAddress.name.isEmpty) { title = S.of(context).yat_error; diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index a79baea487..d6f2589c15 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -296,8 +296,8 @@ abstract class OutputBase with Store { Future fetchParsedAddress(BuildContext context) async { final domain = address; - final ticker = cryptoCurrencyHandler().title.toLowerCase(); - parsedAddress = await getIt.get().resolve(context, domain, ticker); + final currency = cryptoCurrencyHandler(); + parsedAddress = await getIt.get().resolve(context, domain, currency); extractedAddress = await extractAddressFromParsed(context, parsedAddress); note = parsedAddress.description; } From e5be7372362d1ca443ab4434ae5401f2ff04f703 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Mon, 6 May 2024 12:55:05 -0700 Subject: [PATCH 086/157] bio auth on mac + package updates for 3.19.3/5 (#1398) * bio auth mac fix * remove comment and change duration from 2 to 0 * cherry pick previous changes * workaround for secure storage bug on mac * bump version to 3.19.5 (because breez will need this version anyways) * some code cleanup * some changess didn't get saved * just documenting the issue [skip ci] * undo accidental removal + minor code cleanup * merge conflicts * Minor UI change [skip ci] --------- Co-authored-by: Omar Hatem --- .github/workflows/pr_test_build.yml | 2 +- cw_bitcoin/pubspec.yaml | 5 +- cw_bitcoin_cash/pubspec.yaml | 5 +- cw_core/pubspec.yaml | 4 +- cw_ethereum/pubspec.yaml | 4 +- cw_evm/pubspec.yaml | 3 +- cw_haven/pubspec.yaml | 5 +- cw_monero/pubspec.yaml | 5 +- cw_nano/pubspec.yaml | 5 +- cw_polygon/pubspec.yaml | 4 +- cw_solana/pubspec.yaml | 5 +- lib/core/auth_service.dart | 13 +- lib/core/backup_service.dart | 17 +- lib/core/key_service.dart | 3 +- lib/core/secure_storage.dart | 11 + lib/entities/biometric_auth.dart | 27 +- lib/entities/fs_migration.dart | 5 +- lib/entities/get_encryption_key.dart | 4 +- lib/locales/hausa_intl.dart | 64 ++ lib/locales/yoruba_intl.dart | 789 ++++++++++-------- .../desktop_settings_page.dart | 60 +- .../settings/security_backup_page.dart | 4 +- lib/src/screens/settings/tor_page.dart | 4 +- .../support_chat/widgets/chatwoot_widget.dart | 4 +- .../validable_annotated_editable_text.dart | 14 +- lib/store/settings_store.dart | 37 +- lib/view_model/auth_view_model.dart | 12 +- .../edit_backup_password_view_model.dart | 4 +- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + macos/Podfile.lock | 6 + pubspec_base.yaml | 6 +- pubspec_description.yaml | 2 +- 32 files changed, 655 insertions(+), 480 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 46924cb35f..23902f110c 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -42,7 +42,7 @@ jobs: - name: Flutter action uses: subosito/flutter-action@v1 with: - flutter-version: "3.10.x" + flutter-version: "3.19.5" channel: stable - name: Install package dependencies diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 9adf77652d..84254b5b55 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -43,11 +43,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 37827f1bae..ceef539c39 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -39,10 +39,13 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 36fe9967e0..51d671dc7b 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -28,11 +28,13 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^2.0.1 +dependency_overrides: + watcher: ^1.1.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 5f78fba3d8..462e1d77ee 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -24,11 +24,13 @@ dependency_overrides: git: url: https://github.com/cake-tech/web3dart.git ref: cake + watcher: ^1.1.0 dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 + flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/cw_evm/pubspec.yaml b/cw_evm/pubspec.yaml index fb0384064f..e4b29b6763 100644 --- a/cw_evm/pubspec.yaml +++ b/cw_evm/pubspec.yaml @@ -36,11 +36,12 @@ dependency_overrides: git: url: https://github.com/cake-tech/ledger-flutter.git ref: cake + watcher: ^1.1.0 dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 flutter_lints: ^2.0.0 diff --git a/cw_haven/pubspec.yaml b/cw_haven/pubspec.yaml index c215ab779a..d868c986d8 100644 --- a/cw_haven/pubspec.yaml +++ b/cw_haven/pubspec.yaml @@ -24,11 +24,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 build_resolvers: ^2.0.9 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_monero/pubspec.yaml b/cw_monero/pubspec.yaml index a6fe7f9679..c49a541ab1 100644 --- a/cw_monero/pubspec.yaml +++ b/cw_monero/pubspec.yaml @@ -26,11 +26,14 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 build_resolvers: ^2.0.9 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_nano/pubspec.yaml b/cw_nano/pubspec.yaml index a4b8732fdd..768c1bb4e1 100644 --- a/cw_nano/pubspec.yaml +++ b/cw_nano/pubspec.yaml @@ -32,10 +32,13 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_polygon/pubspec.yaml b/cw_polygon/pubspec.yaml index dbef40b46d..8421562b4f 100644 --- a/cw_polygon/pubspec.yaml +++ b/cw_polygon/pubspec.yaml @@ -28,12 +28,14 @@ dependency_overrides: git: url: https://github.com/cake-tech/web3dart.git ref: cake + watcher: ^1.1.0 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.1.11 + build_runner: ^2.4.7 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index 7e24983bff..6b59282b42 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -26,10 +26,13 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - build_runner: ^2.1.11 + build_runner: ^2.4.7 mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + watcher: ^1.1.0 + flutter: # assets: # - images/a_dot_burr.jpeg diff --git a/lib/core/auth_service.dart b/lib/core/auth_service.dart index 48610784c4..66943bb7f9 100644 --- a/lib/core/auth_service.dart +++ b/lib/core/auth_service.dart @@ -42,12 +42,7 @@ class AuthService with Store { Future setPassword(String password) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); final encodedPassword = encodedPinCode(pin: password); - // secure storage has a weird bug on macOS, where overwriting a key doesn't work, unless - // we delete what's there first: - if (Platform.isMacOS) { - await secureStorage.delete(key: key); - } - await secureStorage.write(key: key, value: encodedPassword); + await writeSecureStorage(secureStorage, key: key, value: encodedPassword); } Future canAuthenticate() async { @@ -74,7 +69,11 @@ class AuthService with Store { void saveLastAuthTime() { int timestamp = DateTime.now().millisecondsSinceEpoch; - secureStorage.write(key: SecureKey.lastAuthTimeMilliseconds, value: timestamp.toString()); + writeSecureStorage( + secureStorage, + key: SecureKey.lastAuthTimeMilliseconds, + value: timestamp.toString(), + ); } Future requireAuth() async { diff --git a/lib/core/backup_service.dart b/lib/core/backup_service.dart index 2ec5f293d4..d1092b0242 100644 --- a/lib/core/backup_service.dart +++ b/lib/core/backup_service.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/themes/theme_list.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cw_core/wallet_type.dart'; @@ -275,7 +276,7 @@ class BackupService { if (currentTransactionPriorityKeyLegacy != null) await _sharedPreferences.setInt( PreferencesKey.currentTransactionPriorityKeyLegacy, currentTransactionPriorityKeyLegacy); - + if (currentBitcoinElectrumSererId != null) await _sharedPreferences.setInt( PreferencesKey.currentBitcoinElectrumSererIdKey, currentBitcoinElectrumSererId); @@ -373,16 +374,15 @@ class BackupService { final backupPasswordKey = generateStoreKeyFor(key: SecretStoreKey.backupPassword); final backupPassword = keychainJSON[backupPasswordKey] as String; - await _flutterSecureStorage.delete(key: backupPasswordKey); - await _flutterSecureStorage.write(key: backupPasswordKey, value: backupPassword); + await writeSecureStorage(_flutterSecureStorage, key: backupPasswordKey, value: backupPassword); keychainWalletsInfo.forEach((dynamic rawInfo) async { final info = rawInfo as Map; await importWalletKeychainInfo(info); }); - await _flutterSecureStorage.delete(key: pinCodeKey); - await _flutterSecureStorage.write(key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); + await writeSecureStorage(_flutterSecureStorage, + key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); keychainDumpFile.deleteSync(); } @@ -401,16 +401,15 @@ class BackupService { final backupPasswordKey = generateStoreKeyFor(key: SecretStoreKey.backupPassword); final backupPassword = keychainJSON[backupPasswordKey] as String; - await _flutterSecureStorage.delete(key: backupPasswordKey); - await _flutterSecureStorage.write(key: backupPasswordKey, value: backupPassword); + await writeSecureStorage(_flutterSecureStorage, key: backupPasswordKey, value: backupPassword); keychainWalletsInfo.forEach((dynamic rawInfo) async { final info = rawInfo as Map; await importWalletKeychainInfo(info); }); - await _flutterSecureStorage.delete(key: pinCodeKey); - await _flutterSecureStorage.write(key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); + await writeSecureStorage(_flutterSecureStorage, + key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); keychainDumpFile.deleteSync(); } diff --git a/lib/core/key_service.dart b/lib/core/key_service.dart index f829c22b52..ba2da4de63 100644 --- a/lib/core/key_service.dart +++ b/lib/core/key_service.dart @@ -20,8 +20,7 @@ class KeyService { key: SecretStoreKey.moneroWalletPassword, walletName: walletName); final encodedPassword = encodeWalletPassword(password: password); - await _secureStorage.delete(key: key); - await _secureStorage.write(key: key, value: encodedPassword); + await writeSecureStorage(_secureStorage, key: key, value: encodedPassword); } Future deleteWalletPassword({required String walletName}) async { diff --git a/lib/core/secure_storage.dart b/lib/core/secure_storage.dart index 4d9334a103..5afb36d296 100644 --- a/lib/core/secure_storage.dart +++ b/lib/core/secure_storage.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; // For now, we can create a utility function to handle this. // @@ -25,3 +26,13 @@ Future readSecureStorage(FlutterSecureStorage secureStorage, String key return result; } + +Future writeSecureStorage(FlutterSecureStorage secureStorage, + {required String key, required String value}) async { + // delete the value before writing on macOS because of a weird bug + // https://github.com/mogol/flutter_secure_storage/issues/581 + if (Platform.isMacOS) { + await secureStorage.delete(key: key); + } + await secureStorage.write(key: key, value: value); +} diff --git a/lib/entities/biometric_auth.dart b/lib/entities/biometric_auth.dart index 4b2bfd9068..353cd04926 100644 --- a/lib/entities/biometric_auth.dart +++ b/lib/entities/biometric_auth.dart @@ -1,32 +1,29 @@ -import 'package:local_auth/local_auth.dart'; import 'package:flutter/services.dart'; -import 'package:cake_wallet/generated/i18n.dart'; +import 'package:flutter_local_authentication/flutter_local_authentication.dart'; class BiometricAuth { - final _localAuth = LocalAuthentication(); + final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); Future isAuthenticated() async { try { - return await _localAuth.authenticate( - localizedReason: S.current.biometric_auth_reason, - options: AuthenticationOptions( - biometricOnly: true, - useErrorDialogs: true, - stickyAuth: false)); - } on PlatformException catch (e) { + final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); + return authenticated; + } catch (e) { print(e); } - return false; } Future canCheckBiometrics() async { + bool canAuthenticate; try { - return await _localAuth.canCheckBiometrics; - } on PlatformException catch (e) { - print(e); + canAuthenticate = await _flutterLocalAuthenticationPlugin.canAuthenticate(); + await _flutterLocalAuthenticationPlugin.setTouchIDAuthenticationAllowableReuseDuration(0); + } catch (error) { + print("Exception checking support. $error"); + canAuthenticate = false; } - return false; + return canAuthenticate; } } \ No newline at end of file diff --git a/lib/entities/fs_migration.dart b/lib/entities/fs_migration.dart index 4280949cdb..869ed66ffc 100644 --- a/lib/entities/fs_migration.dart +++ b/lib/entities/fs_migration.dart @@ -1,5 +1,6 @@ import 'dart:io'; import 'dart:convert'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:collection/collection.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -147,8 +148,8 @@ Future ios_migrate_pin() async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); final encodedPassword = encodedPinCode(pin: pinPassword); - await flutterSecureStorage.delete(key: key); - await flutterSecureStorage.write(key: key, value: encodedPassword); + await writeSecureStorage(flutterSecureStorage, key: key, value: encodedPassword); + await prefs.setBool('ios_migration_pin_completed', true); } diff --git a/lib/entities/get_encryption_key.dart b/lib/entities/get_encryption_key.dart index a32d4e311c..04c3a65f7b 100644 --- a/lib/entities/get_encryption_key.dart +++ b/lib/entities/get_encryption_key.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cw_core/cake_hive.dart'; @@ -10,8 +11,7 @@ Future> getEncryptionKey( key = CakeHive.generateSecureKey(); final keyStringified = key.join(','); String storageKey = 'transactionDescriptionsBoxKey'; - await secureStorage.delete(key: storageKey); - await secureStorage.write(key: storageKey, value: keyStringified); + await writeSecureStorage(secureStorage, key: storageKey, value: keyStringified); } else { key = stringifiedKey.split(',').map((i) => int.parse(i)).toList(); } diff --git a/lib/locales/hausa_intl.dart b/lib/locales/hausa_intl.dart index 749d39a4d5..6cf757b600 100644 --- a/lib/locales/hausa_intl.dart +++ b/lib/locales/hausa_intl.dart @@ -751,6 +751,50 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations { @override String get scrimOnTapHintRaw => "Scrip on Tap"; + + @override + // TODO: implement collapsedHint + String get collapsedHint => "collapsedHint"; + + @override + // TODO: implement expandedHint + String get expandedHint => "expandedHint"; + + @override + // TODO: implement expansionTileCollapsedHint + String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; + + @override + // TODO: implement expansionTileCollapsedTapHint + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; + + @override + // TODO: implement expansionTileExpandedHint + String get expansionTileExpandedHint => "expansionTileExpandedHint"; + + @override + // TODO: implement expansionTileExpandedTapHint + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; + + @override + // TODO: implement scanTextButtonLabel + String get scanTextButtonLabel => "scanTextButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -955,4 +999,24 @@ class HaCupertinoLocalizations extends GlobalCupertinoLocalizations { @override String get noSpellCheckReplacementsLabel => ""; + + @override + // TODO: implement clearButtonLabel + String get clearButtonLabel => "clearButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } diff --git a/lib/locales/yoruba_intl.dart b/lib/locales/yoruba_intl.dart index f161885297..3c720b80e0 100644 --- a/lib/locales/yoruba_intl.dart +++ b/lib/locales/yoruba_intl.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter/cupertino.dart'; @@ -164,62 +163,62 @@ const yoDateSymbols = { 'ọjọ́ Àbámẹ́ta', ], 'STANDALONEWEEKDAYS': [ -'Ọjọ́ Ajé', -'Ọjọ́ Ìsẹ́gun', -'Ọjọ́ Ìsẹ́gun-Ẹtì', -'Ọjọ́ Ìsẹ́gun-Ọ̀rú', -'Ọjọ́ Àìkú', -'Ọjọ́ Jímọ̀', -'Ọjọ́ Àbámẹ́ta', -], -'SHORTWEEKDAYS': [ -'Ajé', -'Ìsẹ́gun', -'Ìsẹ́gun-Ẹtì', -'Ìsẹ́gun-Ọ̀rú', -'Àìkú', -'Jímọ̀', -'Àbámẹ́ta', -], -'STANDALONESHORTWEEKDAYS': [ -'Ajé', -'Ìsẹ́gun', -'Ìsẹ́gun-Ẹtì', -'Ìsẹ́gun-Ọ̀rú', -'Àìkú', -'Jímọ̀', -'Àbámẹ́ta', -], -'NARROWWEEKDAYS': [ -'A', -'A', -'Ì', -'A', -'À', -'J', -'À', -], -'STANDALONENARROWWEEKDAYS': [ -'A', -'A', -'Ì', -'A', -'À', -'J', -'À', -], -'SHORTQUARTERS': [ -'K1', -'K2', -'K3', -'K4', -], -'QUARTERS': [ -'1. kwata', -'2. kwata', -'3. kwata', -'4. kwata', -], + 'Ọjọ́ Ajé', + 'Ọjọ́ Ìsẹ́gun', + 'Ọjọ́ Ìsẹ́gun-Ẹtì', + 'Ọjọ́ Ìsẹ́gun-Ọ̀rú', + 'Ọjọ́ Àìkú', + 'Ọjọ́ Jímọ̀', + 'Ọjọ́ Àbámẹ́ta', + ], + 'SHORTWEEKDAYS': [ + 'Ajé', + 'Ìsẹ́gun', + 'Ìsẹ́gun-Ẹtì', + 'Ìsẹ́gun-Ọ̀rú', + 'Àìkú', + 'Jímọ̀', + 'Àbámẹ́ta', + ], + 'STANDALONESHORTWEEKDAYS': [ + 'Ajé', + 'Ìsẹ́gun', + 'Ìsẹ́gun-Ẹtì', + 'Ìsẹ́gun-Ọ̀rú', + 'Àìkú', + 'Jímọ̀', + 'Àbámẹ́ta', + ], + 'NARROWWEEKDAYS': [ + 'A', + 'A', + 'Ì', + 'A', + 'À', + 'J', + 'À', + ], + 'STANDALONENARROWWEEKDAYS': [ + 'A', + 'A', + 'Ì', + 'A', + 'À', + 'J', + 'À', + ], + 'SHORTQUARTERS': [ + 'K1', + 'K2', + 'K3', + 'K4', + ], + 'QUARTERS': [ + '1. kwata', + '2. kwata', + '3. kwata', + '4. kwata', + ], 'AMPMS': [ 'a.m.', 'p.m.', @@ -316,339 +315,339 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations { }); // #docregion Getters -@override -String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; + @override + String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; -@override -String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; + @override + String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; -@override -String get alertDialogLabel => r'Ìròhùn Àlàyé'; + @override + String get alertDialogLabel => r'Ìròhùn Àlàyé'; // #enddocregion Getters -@override -String get anteMeridiemAbbreviation => r'AM'; + @override + String get anteMeridiemAbbreviation => r'AM'; -@override -String get backButtonTooltip => r'Fíran'; + @override + String get backButtonTooltip => r'Fíran'; -@override -String get cancelButtonLabel => r'FAGILE'; + @override + String get cancelButtonLabel => r'FAGILE'; -@override -String get closeButtonLabel => r'KÚ'; + @override + String get closeButtonLabel => r'KÚ'; -@override -String get closeButtonTooltip => r'Kú'; + @override + String get closeButtonTooltip => r'Kú'; -@override -String get collapsedIconTapHint => r'Tá'; + @override + String get collapsedIconTapHint => r'Tá'; -@override -String get continueButtonLabel => r'TÓ WÁ'; + @override + String get continueButtonLabel => r'TÓ WÁ'; -@override -String get copyButtonLabel => r'DÚPLÍKÉTÍ'; + @override + String get copyButtonLabel => r'DÚPLÍKÉTÍ'; -@override -String get cutButtonLabel => r'TÒ'; + @override + String get cutButtonLabel => r'TÒ'; -@override -String get deleteButtonTooltip => r'Máa kú'; + @override + String get deleteButtonTooltip => r'Máa kú'; -@override -String get dialogLabel => r'Ìròhùn'; + @override + String get dialogLabel => r'Ìròhùn'; -@override -String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; + @override + String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; -@override -String get expandedIconTapHint => r'Tá'; + @override + String get expandedIconTapHint => r'Tá'; -@override -String get firstPageTooltip => r'Ojú ewe'; + @override + String get firstPageTooltip => r'Ojú ewe'; -@override -String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; + @override + String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; -@override -String get lastPageTooltip => r'Ojú ayé'; + @override + String get lastPageTooltip => r'Ojú ayé'; -@override -String get licensesPageTitle => r'Ìròhùn Ọdún'; + @override + String get licensesPageTitle => r'Ìròhùn Ọdún'; -@override -String get modalBarrierDismissLabel => r'Sọ'; + @override + String get modalBarrierDismissLabel => r'Sọ'; -@override -String get nextMonthTooltip => r'Oṣù kọja'; + @override + String get nextMonthTooltip => r'Oṣù kọja'; -@override -String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; + @override + String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; -@override -String get okButtonLabel => r'Ò daájú'; -@override + @override + String get okButtonLabel => r'Ò daájú'; + @override // A custom drawer tooltip message. -String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; + String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; // #docregion Raw -@override -String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; + @override + String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount'; -@override -String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; + @override + String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount'; // #enddocregion Raw -@override -String get pasteButtonLabel => r'TÌ'; + @override + String get pasteButtonLabel => r'TÌ'; + + @override + String get popupMenuLabel => r'Meniu Pop-up'; -@override -String get popupMenuLabel => r'Meniu Pop-up'; + @override + String get menuBarMenuLabel => r'Meniu Akọkọ'; -@override -String get menuBarMenuLabel => r'Meniu Akọkọ'; + @override + String get postMeridiemAbbreviation => r'PM'; -@override -String get postMeridiemAbbreviation => r'PM'; + @override + String get previousMonthTooltip => r'Oṣu Kanakana'; -@override -String get previousMonthTooltip => r'Oṣu Kanakana'; + @override + String get previousPageTooltip => r'Ojú ewé akọkọ kan'; -@override -String get previousPageTooltip => r'Ojú ewé akọkọ kan'; + @override + String get refreshIndicatorSemanticLabel => r'Gbiyanju'; -@override -String get refreshIndicatorSemanticLabel => r'Gbiyanju'; + @override + String? get remainingTextFieldCharacterCountFew => null; -@override -String? get remainingTextFieldCharacterCountFew => null; + @override + String? get remainingTextFieldCharacterCountMany => null; -@override -String? get remainingTextFieldCharacterCountMany => null; + @override + String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; -@override -String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; + @override + String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; -@override -String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; + @override + String? get remainingTextFieldCharacterCountTwo => null; -@override -String? get remainingTextFieldCharacterCountTwo => null; + @override + String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; -@override -String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; + @override + String get reorderItemDown => r'Jù sí ilẹ'; -@override -String get reorderItemDown => r'Jù sí ilẹ'; + @override + String get reorderItemLeft => r'Jù sí àrà'; -@override -String get reorderItemLeft => r'Jù sí àrà'; + @override + String get reorderItemRight => r'Jù sí òtútù'; -@override -String get reorderItemRight => r'Jù sí òtútù'; + @override + String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; -@override -String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; + @override + String get reorderItemToStart => r'Jù sí àkọ́kọ́'; -@override -String get reorderItemToStart => r'Jù sí àkọ́kọ́'; + @override + String get reorderItemUp => r'Jù sí ọ̀rùn'; -@override -String get reorderItemUp => r'Jù sí ọ̀rùn'; + @override + String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; -@override -String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; + @override + ScriptCategory get scriptCategory => ScriptCategory.englishLike; -@override -ScriptCategory get scriptCategory => ScriptCategory.englishLike; + @override + String get searchFieldLabel => 'Ṣẹda'; -@override -String get searchFieldLabel => 'Ṣẹda'; + @override + String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; -@override -String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; + @override + String? get selectedRowCountTitleFew => null; -@override -String? get selectedRowCountTitleFew => null; + @override + String? get selectedRowCountTitleMany => null; -@override -String? get selectedRowCountTitleMany => null; + @override + String get selectedRowCountTitleOne => '1 káyé'; -@override -String get selectedRowCountTitleOne => '1 káyé'; + @override + String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; -@override -String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; + @override + String? get selectedRowCountTitleTwo => null; -@override -String? get selectedRowCountTitleTwo => null; + @override + String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; -@override -String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; + @override + String get showAccountsLabel => 'Fi iyipada mu kọ'; -@override -String get showAccountsLabel => 'Fi iyipada mu kọ'; + @override + String get showMenuTooltip => 'Fi Meniu mu kọ'; -@override -String get showMenuTooltip => 'Fi Meniu mu kọ'; + @override + String get signedInLabel => 'Ọ̀nà'; -@override -String get signedInLabel => 'Ọ̀nà'; + @override + String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; -@override -String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; - @override -TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; + TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; -@override -String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; + @override + String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; -@override -String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; + @override + String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; -@override -String get viewLicensesButtonLabel => 'WO NIKI'; + @override + String get viewLicensesButtonLabel => 'WO NIKI'; -@override -List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; + @override + List get narrowWeekdays => const ['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ']; -@override -int get firstDayOfWeekIndex => 0; + @override + int get firstDayOfWeekIndex => 0; -static const LocalizationsDelegate delegate = -_YoMaterialLocalizationsDelegate(); + static const LocalizationsDelegate delegate = + _YoMaterialLocalizationsDelegate(); -@override -String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; + @override + String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; -@override -String get dateHelpText => 'mm/dd/yyyy'; + @override + String get dateHelpText => 'mm/dd/yyyy'; -@override -String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; + @override + String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; -@override -String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; + @override + String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; -@override -String get datePickerHelpText => 'WÁSÍ'; + @override + String get datePickerHelpText => 'WÁSÍ'; -@override -String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; + @override + String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; -@override -String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; + @override + String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; -@override -String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; + @override + String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; -@override -String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; + @override + String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; -@override -String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; + @override + String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; -@override -String get dateSeparator => '/'; + @override + String get dateSeparator => '/'; -@override -String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; + @override + String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; -@override -String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; + @override + String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; -@override -String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; + @override + String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; -@override -String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; + @override + String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; -@override -String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; + @override + String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; -@override -String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; + @override + String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; -@override -String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; + @override + String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; -@override -String get saveButtonLabel => 'TÙN DÁRA'; + @override + String get saveButtonLabel => 'TÙN DÁRA'; -@override -String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; + @override + String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; -@override -String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; + @override + String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; -@override -String get timePickerHourLabel => 'Wákàtì àṣà'; + @override + String get timePickerHourLabel => 'Wákàtì àṣà'; -@override -String get timePickerInputHelpText => 'Shìgárà wákàtì'; + @override + String get timePickerInputHelpText => 'Shìgárà wákàtì'; -@override -String get timePickerMinuteLabel => 'Mìntì'; + @override + String get timePickerMinuteLabel => 'Mìntì'; -@override -String get unspecifiedDate => 'Ọjọ̀kúnrin'; + @override + String get unspecifiedDate => 'Ọjọ̀kúnrin'; -@override -String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; + @override + String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; -@override -String get keyboardKeyAlt => 'Alt'; + @override + String get keyboardKeyAlt => 'Alt'; -@override -String get keyboardKeyAltGraph => 'AltGraph'; + @override + String get keyboardKeyAltGraph => 'AltGraph'; -@override -String get keyboardKeyBackspace => 'Báckspàcè'; + @override + String get keyboardKeyBackspace => 'Báckspàcè'; -@override -String get keyboardKeyCapsLock => 'Caps Lock'; + @override + String get keyboardKeyCapsLock => 'Caps Lock'; -@override -String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; + @override + String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; -@override -String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; + @override + String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; -@override -String get keyboardKeyControl => 'Kọ́ntírọ̀l'; + @override + String get keyboardKeyControl => 'Kọ́ntírọ̀l'; -@override -String get keyboardKeyDelete => 'Shápè'; + @override + String get keyboardKeyDelete => 'Shápè'; -@override -String get keyboardKeyEject => 'Èjẹ̀tì'; + @override + String get keyboardKeyEject => 'Èjẹ̀tì'; -@override -String get keyboardKeyEnd => 'Tàbí'; + @override + String get keyboardKeyEnd => 'Tàbí'; -@override -String get keyboardKeyEscape => 'Tòkè'; + @override + String get keyboardKeyEscape => 'Tòkè'; @override -String get keyboardKeyFn => 'Fn'; + String get keyboardKeyFn => 'Fn'; -@override -String get keyboardKeyHome => 'Ile'; + @override + String get keyboardKeyHome => 'Ile'; -@override -String get keyboardKeyInsert => 'Fi sori'; + @override + String get keyboardKeyInsert => 'Fi sori'; -@override -String get keyboardKeyMeta => 'Meta'; + @override + String get keyboardKeyMeta => 'Meta'; -@override -String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; + @override + String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; -@override -String get keyboardKeyMetaWindows => 'Windows'; + @override + String get keyboardKeyMetaWindows => 'Windows'; @override String get keyboardKeyNumLock => 'Num Lock'; @@ -751,6 +750,50 @@ String get keyboardKeyMetaWindows => 'Windows'; @override String get scrimOnTapHintRaw => "Scrip on Tap"; + + @override + // TODO: implement collapsedHint + String get collapsedHint => "collapsedHint"; + + @override + // TODO: implement expandedHint + String get expandedHint => "expandedHint"; + + @override + // TODO: implement expansionTileCollapsedHint + String get expansionTileCollapsedHint => "expansionTileCollapsedHint"; + + @override + // TODO: implement expansionTileCollapsedTapHint + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint"; + + @override + // TODO: implement expansionTileExpandedHint + String get expansionTileExpandedHint => "expansionTileExpandedHint"; + + @override + // TODO: implement expansionTileExpandedTapHint + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint"; + + @override + // TODO: implement scanTextButtonLabel + String get scanTextButtonLabel => "scanTextButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; } /// Cupertino Support @@ -821,138 +864,158 @@ class YoCupertinoLocalizations extends GlobalCupertinoLocalizations { required super.singleDigitSecondFormat, }); -@override -String get alertDialogLabel => 'Àdàkárò'; + @override + String get alertDialogLabel => 'Àdàkárò'; -@override -String get anteMeridiemAbbreviation => 'AM'; + @override + String get anteMeridiemAbbreviation => 'AM'; -@override -String get copyButtonLabel => 'Kòpy'; + @override + String get copyButtonLabel => 'Kòpy'; -@override -String get cutButtonLabel => 'Kọ́t'; + @override + String get cutButtonLabel => 'Kọ́t'; -@override -String get datePickerDateOrderString => 'mdy'; + @override + String get datePickerDateOrderString => 'mdy'; -@override -String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; + @override + String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; -@override -String? get datePickerHourSemanticsLabelFew => null; + @override + String? get datePickerHourSemanticsLabelFew => null; -@override -String? get datePickerHourSemanticsLabelMany => null; + @override + String? get datePickerHourSemanticsLabelMany => null; -@override -String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; + @override + String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; -@override -String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; + @override + String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; -@override -String? get datePickerHourSemanticsLabelTwo => null; + @override + String? get datePickerHourSemanticsLabelTwo => null; -@override -String? get datePickerHourSemanticsLabelZero => null; + @override + String? get datePickerHourSemanticsLabelZero => null; -@override -String? get datePickerMinuteSemanticsLabelFew => null; + @override + String? get datePickerMinuteSemanticsLabelFew => null; -@override -String? get datePickerMinuteSemanticsLabelMany => null; + @override + String? get datePickerMinuteSemanticsLabelMany => null; -@override -String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; + @override + String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; -@override -String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; + @override + String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; -@override -String? get datePickerMinuteSemanticsLabelTwo => null; + @override + String? get datePickerMinuteSemanticsLabelTwo => null; -@override -String? get datePickerMinuteSemanticsLabelZero => null; + @override + String? get datePickerMinuteSemanticsLabelZero => null; -@override -String get modalBarrierDismissLabel => 'Búta'; + @override + String get modalBarrierDismissLabel => 'Búta'; -@override -String get pasteButtonLabel => 'Tẹ́ẹ́'; + @override + String get pasteButtonLabel => 'Tẹ́ẹ́'; -@override -String get postMeridiemAbbreviation => 'PM'; + @override + String get postMeridiemAbbreviation => 'PM'; -@override -String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; + @override + String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; -@override -String get selectAllButtonLabel => 'Fírànsé gbógbo'; + @override + String get selectAllButtonLabel => 'Fírànsé gbógbo'; -@override -String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; + @override + String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; -@override -String? get timerPickerHourLabelFew => null; + @override + String? get timerPickerHourLabelFew => null; -@override -String? get timerPickerHourLabelMany => null; + @override + String? get timerPickerHourLabelMany => null; -@override -String? get timerPickerHourLabelOne => 'òǹdì'; + @override + String? get timerPickerHourLabelOne => 'òǹdì'; -@override -String get timerPickerHourLabelOther => 'òǹdì'; + @override + String get timerPickerHourLabelOther => 'òǹdì'; -@override -String? get timerPickerHourLabelTwo => null; + @override + String? get timerPickerHourLabelTwo => null; -@override -String? get timerPickerHourLabelZero => null; + @override + String? get timerPickerHourLabelZero => null; -@override -String? get timerPickerMinuteLabelFew => null; + @override + String? get timerPickerMinuteLabelFew => null; -@override -String? get timerPickerMinuteLabelMany => null; + @override + String? get timerPickerMinuteLabelMany => null; -@override -String? get timerPickerMinuteLabelOne => 'wakati.'; + @override + String? get timerPickerMinuteLabelOne => 'wakati.'; -@override -String get timerPickerMinuteLabelOther => 'wakati.'; + @override + String get timerPickerMinuteLabelOther => 'wakati.'; -@override -String? get timerPickerMinuteLabelTwo => null; + @override + String? get timerPickerMinuteLabelTwo => null; -@override -String? get timerPickerMinuteLabelZero => null; + @override + String? get timerPickerMinuteLabelZero => null; -@override -String? get timerPickerSecondLabelFew => null; + @override + String? get timerPickerSecondLabelFew => null; -@override -String? get timerPickerSecondLabelMany => null; + @override + String? get timerPickerSecondLabelMany => null; -@override -String? get timerPickerSecondLabelOne => 'dákìkà.'; + @override + String? get timerPickerSecondLabelOne => 'dákìkà.'; -@override -String get timerPickerSecondLabelOther => 'dákìkà.'; + @override + String get timerPickerSecondLabelOther => 'dákìkà.'; -@override -String? get timerPickerSecondLabelTwo => null; + @override + String? get timerPickerSecondLabelTwo => null; -@override -String? get timerPickerSecondLabelZero => null; + @override + String? get timerPickerSecondLabelZero => null; -@override -String get todayLabel => 'Oyọ'; + @override + String get todayLabel => 'Oyọ'; static const LocalizationsDelegate delegate = _YoCupertinoLocalizationsDelegate(); @override String get noSpellCheckReplacementsLabel => ""; -} \ No newline at end of file + + @override + // TODO: implement clearButtonLabel + String get clearButtonLabel => "clearButtonLabel"; + + @override + // TODO: implement lookUpButtonLabel + String get lookUpButtonLabel => "lookUpButtonLabel"; + + @override + // TODO: implement menuDismissLabel + String get menuDismissLabel => "menuDismissLabel"; + + @override + // TODO: implement searchWebButtonLabel + String get searchWebButtonLabel => "searchWebButtonLabel"; + + @override + // TODO: implement shareButtonLabel + String get shareButtonLabel => "shareButtonLabel"; +} diff --git a/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart index 6896177e4d..5355b7bb8d 100644 --- a/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart +++ b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart @@ -12,7 +12,6 @@ final _settingsNavigatorKey = GlobalKey(); class DesktopSettingsPage extends StatefulWidget { const DesktopSettingsPage({super.key}); - @override State createState() => _DesktopSettingsPageState(); } @@ -33,22 +32,21 @@ class _DesktopSettingsPageState extends State { return Scaffold( body: Container( height: MediaQuery.of(context).size.height, - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, + child: Row( children: [ - Padding( - padding: const EdgeInsets.fromLTRB(24, 24, 24, 4), - child: Text( - S.current.settings, - style: textXLarge(), - ), - ), Expanded( - child: Row( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ + Padding( + padding: const EdgeInsets.fromLTRB(24, 24, 24, 4), + child: Text( + S.current.settings, + style: textXLarge(), + ), + ), Expanded( - flex: 1, child: ListView.separated( padding: EdgeInsets.only(top: 0), itemBuilder: (_, index) { @@ -78,27 +76,27 @@ class _DesktopSettingsPageState extends State { itemCount: itemCount, ), ), - Flexible( - flex: 2, - child: ConstrainedBox( - constraints: BoxConstraints(maxWidth: 500), - child: Navigator( - key: _settingsNavigatorKey, - initialRoute: Routes.empty_no_route, - onGenerateRoute: (settings) => Router.createRoute(settings), - onGenerateInitialRoutes: - (NavigatorState navigator, String initialRouteName) { - return [ - navigator - .widget.onGenerateRoute!(RouteSettings(name: initialRouteName))! - ]; - }, - ), - ), - ) ], ), ), + Flexible( + flex: 2, + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 500), + child: Navigator( + key: _settingsNavigatorKey, + initialRoute: Routes.empty_no_route, + onGenerateRoute: (settings) => Router.createRoute(settings), + onGenerateInitialRoutes: + (NavigatorState navigator, String initialRouteName) { + return [ + navigator + .widget.onGenerateRoute!(RouteSettings(name: initialRouteName))! + ]; + }, + ), + ), + ) ], ), ), diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index e559e9b157..1f0f58ad46 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/entities/pin_code_required_duration.dart'; import 'package:cake_wallet/routes.dart'; @@ -58,7 +60,7 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - if (DeviceInfo.instance.isMobile) + if (DeviceInfo.instance.isMobile || Platform.isMacOS || Platform.isLinux) Observer(builder: (_) { return SettingsSwitcherCell( title: S.current.settings_allow_biometrical_authentication, diff --git a/lib/src/screens/settings/tor_page.dart b/lib/src/screens/settings/tor_page.dart index ae1ef16772..2f544be356 100644 --- a/lib/src/screens/settings/tor_page.dart +++ b/lib/src/screens/settings/tor_page.dart @@ -146,7 +146,7 @@ class ConnectScreen extends StatelessWidget { ElevatedButton( onPressed: connect, style: ElevatedButton.styleFrom( - primary: Colors.blue, + // primary: Colors.blue, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), @@ -211,7 +211,7 @@ class DisconnectScreen extends StatelessWidget { ElevatedButton( onPressed: disconnect, style: ElevatedButton.styleFrom( - primary: Colors.red, + // primary: Colors.red, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), diff --git a/lib/src/screens/support_chat/widgets/chatwoot_widget.dart b/lib/src/screens/support_chat/widgets/chatwoot_widget.dart index 2557761a74..60c9ea97f1 100644 --- a/lib/src/screens/support_chat/widgets/chatwoot_widget.dart +++ b/lib/src/screens/support_chat/widgets/chatwoot_widget.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:flutter/material.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -58,7 +59,6 @@ class ChatwootWidgetState extends State { } Future storeCookie(String value) async { - await widget.secureStorage.delete(key: COOKIE_KEY); - await widget.secureStorage.write(key: COOKIE_KEY, value: value); + await writeSecureStorage(widget.secureStorage, key: COOKIE_KEY, value: value); } } diff --git a/lib/src/widgets/validable_annotated_editable_text.dart b/lib/src/widgets/validable_annotated_editable_text.dart index 16ccc76f62..134eb16a88 100644 --- a/lib/src/widgets/validable_annotated_editable_text.dart +++ b/lib/src/widgets/validable_annotated_editable_text.dart @@ -1,8 +1,14 @@ -import 'package:cake_wallet/core/seed_validator.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; -class Annotation extends Comparable { + +extension Compare on Comparable { + bool operator <=(T other) => compareTo(other) <= 0; + bool operator >=(T other) => compareTo(other) >= 0; + bool operator <(T other) => compareTo(other) < 0; + bool operator >(T other) => compareTo(other) > 0; +} + +class Annotation implements Comparable { Annotation({required this.range, required this.style}); final TextRange range; @@ -12,7 +18,7 @@ class Annotation extends Comparable { int compareTo(Annotation other) => range.start.compareTo(other.range.start); } -class TextAnnotation extends Comparable { +class TextAnnotation implements Comparable { TextAnnotation({required this.text, required this.style}); final TextStyle style; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 607551827d..cd9b44391e 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/provider_types.dart'; import 'package:cake_wallet/entities/cake_2fa_preset_options.dart'; @@ -434,79 +435,83 @@ abstract class SettingsStoreBase with Store { // secure storage keys: reaction( (_) => allowBiometricalAuthentication, - (bool biometricalAuthentication) => secureStorage.write( + (bool biometricalAuthentication) => writeSecureStorage(secureStorage, key: SecureKey.allowBiometricalAuthenticationKey, value: biometricalAuthentication.toString())); reaction( (_) => selectedCake2FAPreset, - (Cake2FAPresetsOptions selectedCake2FAPreset) => secureStorage.write( + (Cake2FAPresetsOptions selectedCake2FAPreset) => writeSecureStorage(secureStorage, key: SecureKey.selectedCake2FAPreset, value: selectedCake2FAPreset.serialize().toString())); reaction( (_) => shouldRequireTOTP2FAForAccessingWallet, - (bool requireTOTP2FAForAccessingWallet) => secureStorage.write( + (bool requireTOTP2FAForAccessingWallet) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForAccessingWallet, value: requireTOTP2FAForAccessingWallet.toString())); reaction( (_) => shouldRequireTOTP2FAForSendsToContact, - (bool requireTOTP2FAForSendsToContact) => secureStorage.write( + (bool requireTOTP2FAForSendsToContact) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForSendsToContact, value: requireTOTP2FAForSendsToContact.toString())); reaction( (_) => shouldRequireTOTP2FAForSendsToNonContact, - (bool requireTOTP2FAForSendsToNonContact) => secureStorage.write( + (bool requireTOTP2FAForSendsToNonContact) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForSendsToNonContact, value: requireTOTP2FAForSendsToNonContact.toString())); reaction( (_) => shouldRequireTOTP2FAForSendsToInternalWallets, - (bool requireTOTP2FAForSendsToInternalWallets) => secureStorage.write( + (bool requireTOTP2FAForSendsToInternalWallets) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForSendsToInternalWallets, value: requireTOTP2FAForSendsToInternalWallets.toString())); reaction( (_) => shouldRequireTOTP2FAForExchangesToInternalWallets, - (bool requireTOTP2FAForExchangesToInternalWallets) => secureStorage.write( + (bool requireTOTP2FAForExchangesToInternalWallets) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForExchangesToInternalWallets, value: requireTOTP2FAForExchangesToInternalWallets.toString())); reaction( (_) => shouldRequireTOTP2FAForExchangesToExternalWallets, - (bool requireTOTP2FAForExchangesToExternalWallets) => secureStorage.write( + (bool requireTOTP2FAForExchangesToExternalWallets) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForExchangesToExternalWallets, value: requireTOTP2FAForExchangesToExternalWallets.toString())); reaction( (_) => shouldRequireTOTP2FAForAddingContacts, - (bool requireTOTP2FAForAddingContacts) => secureStorage.write( + (bool requireTOTP2FAForAddingContacts) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForAddingContacts, value: requireTOTP2FAForAddingContacts.toString())); reaction( (_) => shouldRequireTOTP2FAForCreatingNewWallets, - (bool requireTOTP2FAForCreatingNewWallets) => secureStorage.write( + (bool requireTOTP2FAForCreatingNewWallets) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForCreatingNewWallets, value: requireTOTP2FAForCreatingNewWallets.toString())); reaction( (_) => shouldRequireTOTP2FAForAllSecurityAndBackupSettings, - (bool requireTOTP2FAForAllSecurityAndBackupSettings) => secureStorage.write( + (bool requireTOTP2FAForAllSecurityAndBackupSettings) => writeSecureStorage(secureStorage, key: SecureKey.shouldRequireTOTP2FAForAllSecurityAndBackupSettings, value: requireTOTP2FAForAllSecurityAndBackupSettings.toString())); - reaction((_) => useTOTP2FA, - (bool use) => secureStorage.write(key: SecureKey.useTOTP2FA, value: use.toString())); + reaction( + (_) => useTOTP2FA, + (bool use) => + writeSecureStorage(secureStorage, key: SecureKey.useTOTP2FA, value: use.toString())); - reaction((_) => totpSecretKey, - (String totpKey) => secureStorage.write(key: SecureKey.totpSecretKey, value: totpKey)); + reaction( + (_) => totpSecretKey, + (String totpKey) => + writeSecureStorage(secureStorage, key: SecureKey.totpSecretKey, value: totpKey)); reaction( (_) => pinTimeOutDuration, - (PinCodeRequiredDuration pinCodeInterval) => secureStorage.write( + (PinCodeRequiredDuration pinCodeInterval) => writeSecureStorage(secureStorage, key: SecureKey.pinTimeOutDuration, value: pinCodeInterval.value.toString())); reaction( diff --git a/lib/view_model/auth_view_model.dart b/lib/view_model/auth_view_model.dart index 4fb93cfea9..6f6e29662c 100644 --- a/lib/view_model/auth_view_model.dart +++ b/lib/view_model/auth_view_model.dart @@ -106,14 +106,10 @@ abstract class AuthViewModelBase with Store { @action Future biometricAuth() async { try { - final canBiometricAuth = await _biometricAuth.canCheckBiometrics(); - - if (canBiometricAuth) { - final isAuthenticated = await _biometricAuth.isAuthenticated(); - - if (isAuthenticated) { - state = ExecutedSuccessfullyState(); - } + if (await _biometricAuth.canCheckBiometrics() && await _biometricAuth.isAuthenticated()) { + state = ExecutedSuccessfullyState(); + } else { + throw Exception('Biometric authentication failed'); } } catch (e) { state = FailureState(e.toString()); diff --git a/lib/view_model/edit_backup_password_view_model.dart b/lib/view_model/edit_backup_password_view_model.dart index aca76502a9..729551e741 100644 --- a/lib/view_model/edit_backup_password_view_model.dart +++ b/lib/view_model/edit_backup_password_view_model.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; @@ -37,8 +38,7 @@ abstract class EditBackupPasswordViewModelBase with Store { @action Future save() async { final key = generateStoreKeyFor(key: SecretStoreKey.backupPassword); - await secureStorage.delete(key: key); - await secureStorage.write(key: key, value: backupPassword); + await writeSecureStorage(secureStorage, key: key, value: backupPassword); secretStore.write(key: key, value: backupPassword); } } diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 75a78404fd..51f61d9e38 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -10,6 +10,7 @@ import cw_monero import device_info_plus import devicelocale import flutter_inappwebview_macos +import flutter_local_authentication import flutter_secure_storage_macos import in_app_review import package_info @@ -26,6 +27,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin")) InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) + FlutterLocalAuthenticationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalAuthenticationPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin")) FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index b82513de23..f1f72a8188 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -26,6 +26,8 @@ PODS: - flutter_inappwebview_macos (0.0.1): - FlutterMacOS - OrderedSet (~> 5.0) + - flutter_local_authentication (1.2.0): + - FlutterMacOS - flutter_secure_storage_macos (6.1.1): - FlutterMacOS - FlutterMacOS (1.0.0) @@ -56,6 +58,7 @@ DEPENDENCIES: - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`) - flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`) + - flutter_local_authentication (from `Flutter/ephemeral/.symlinks/plugins/flutter_local_authentication/macos`) - flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - in_app_review (from `Flutter/ephemeral/.symlinks/plugins/in_app_review/macos`) @@ -83,6 +86,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/devicelocale/macos flutter_inappwebview_macos: :path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos + flutter_local_authentication: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_local_authentication/macos flutter_secure_storage_macos: :path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos FlutterMacOS: @@ -110,6 +115,7 @@ SPEC CHECKSUMS: device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225 flutter_inappwebview_macos: 9600c9df9fdb346aaa8933812009f8d94304203d + flutter_local_authentication: 85674893931e1c9cfa7c9e4f5973cb8c56b018b0 flutter_secure_storage_macos: d56e2d218c1130b262bef8b4a7d64f88d7f9c9ea FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 in_app_review: a850789fad746e89bce03d4aeee8078b45a53fd0 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index cf04509ac6..ddf0bd2e07 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -26,15 +26,17 @@ dependencies: path_provider: ^2.0.11 mobx: ^2.1.4 flutter_mobx: ^2.0.6+5 - flutter_slidable: ^2.0.0 + flutter_slidable: ^3.0.1 share_plus: ^4.0.10 # date_range_picker: ^1.0.6 #https://api.flutter.dev/flutter/material/showDateRangePicker.html dio: ^4.0.6 hive: ^2.2.3 hive_flutter: ^1.1.0 - local_auth: ^2.1.0 local_auth_android: 1.0.21 + flutter_local_authentication: + git: + url: https://github.com/cake-tech/flutter_local_authentication package_info: ^2.0.0 #package_info_plus: ^1.4.2 devicelocale: diff --git a/pubspec_description.yaml b/pubspec_description.yaml index ebb6bf001e..b51fe96d6f 100644 --- a/pubspec_description.yaml +++ b/pubspec_description.yaml @@ -4,4 +4,4 @@ version: 0.0.0 publish_to: none environment: - sdk: ">=2.17.5 <3.0.0" \ No newline at end of file + sdk: ">=3.1.0 <4.0.0" \ No newline at end of file From baad7f74696ed463d243d31b2236fc11f427e86b Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Tue, 7 May 2024 17:00:01 -0700 Subject: [PATCH 087/157] Nano-GPT (#1336) * init * updates * nano updates * updates * updates * [skipci] wip deep link changes * fix deep links * minor fix * add reminder message on buy and exchange routes * [skip ci] font fixes * review updates * [skip ci] minor fix * save * fixes * minor code cleanup * minor potential fix --- .github/workflows/pr_test_build.yml | 1 + .gitignore | 1 + android/app/src/main/AndroidManifestBase.xml | 7 + assets/banano_node_list.yml | 5 + cw_core/lib/crypto_currency.dart | 6 + cw_nano/lib/banano_balance.dart | 16 +++ cw_nano/lib/nano_balance.dart | 6 +- cw_nano/lib/nano_client.dart | 26 ++-- ios/Runner/InfoBase.plist | 10 ++ lib/di.dart | 133 +++++++++++------- lib/main.dart | 29 ++-- lib/router.dart | 21 +-- .../dashboard/pages/market_place_page.dart | 22 ++- lib/src/screens/exchange/exchange_page.dart | 10 +- lib/src/screens/root/root.dart | 115 ++++++--------- lib/src/screens/send/send_page.dart | 34 ++++- lib/utils/payment_request.dart | 25 +++- lib/view_model/link_view_model.dart | 118 ++++++++++++++++ res/values/strings_ar.arb | 2 + res/values/strings_bg.arb | 2 + res/values/strings_cs.arb | 2 + res/values/strings_de.arb | 2 + res/values/strings_en.arb | 2 + res/values/strings_es.arb | 2 + res/values/strings_fr.arb | 2 + res/values/strings_ha.arb | 2 + res/values/strings_hi.arb | 2 + res/values/strings_hr.arb | 2 + res/values/strings_id.arb | 2 + res/values/strings_it.arb | 2 + res/values/strings_ja.arb | 2 + res/values/strings_ko.arb | 2 + res/values/strings_my.arb | 2 + res/values/strings_nl.arb | 2 + res/values/strings_pl.arb | 2 + res/values/strings_pt.arb | 2 + res/values/strings_ru.arb | 2 + res/values/strings_th.arb | 2 + res/values/strings_tl.arb | 2 + res/values/strings_tr.arb | 2 + res/values/strings_uk.arb | 2 + res/values/strings_ur.arb | 2 + res/values/strings_yo.arb | 2 + res/values/strings_zh.arb | 2 + tool/generate_secrets_config.dart | 28 ++-- tool/utils/secret_key.dart | 4 + 46 files changed, 480 insertions(+), 189 deletions(-) create mode 100644 assets/banano_node_list.yml create mode 100644 lib/view_model/link_view_model.dart diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 23902f110c..69c632967b 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -151,6 +151,7 @@ jobs: echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart + echo "const nano2ApiKey = '${{ secrets.NANO2_API_KEY }}';" >> cw_nano/lib/.secrets.g.dart echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart - name: Rename app diff --git a/.gitignore b/.gitignore index f1e5b6da3f..24b7291f84 100644 --- a/.gitignore +++ b/.gitignore @@ -94,6 +94,7 @@ android/app/key.jks **/tool/.evm-secrets-config.json **/tool/.ethereum-secrets-config.json **/tool/.solana-secrets-config.json +**/tool/.nano-secrets-config.json **/tool/.tron-secrets-config.json **/lib/.secrets.g.dart **/cw_evm/lib/.secrets.g.dart diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 23207d629e..57462099cd 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -91,6 +91,13 @@ + + + + + + + with Serializable implemen element.tag == walletCurrency?.tag)); } catch (_) {} + // search by fullName if not found by title: + try { + return CryptoCurrency.all.firstWhere((element) => element.fullName?.toLowerCase() == name); + } catch (_) {} + if (CryptoCurrency._nameCurrencyMap[name.toLowerCase()] == null) { final s = 'Unexpected token: $name for CryptoCurrency fromString'; throw ArgumentError.value(name, 'name', s); } + return CryptoCurrency._nameCurrencyMap[name.toLowerCase()]!; } diff --git a/cw_nano/lib/banano_balance.dart b/cw_nano/lib/banano_balance.dart index b904a35cbc..d766077fc3 100644 --- a/cw_nano/lib/banano_balance.dart +++ b/cw_nano/lib/banano_balance.dart @@ -1,12 +1,28 @@ import 'package:cw_core/balance.dart'; import 'package:nanoutil/nanoutil.dart'; +BigInt stringAmountToBigIntBanano(String amount) { + return BigInt.parse(NanoAmounts.getAmountAsRaw(amount, NanoAmounts.rawPerBanano)); +} + class BananoBalance extends Balance { final BigInt currentBalance; final BigInt receivableBalance; BananoBalance({required this.currentBalance, required this.receivableBalance}) : super(0, 0); + BananoBalance.fromFormattedString( + {required String formattedCurrentBalance, required String formattedReceivableBalance}) + : currentBalance = stringAmountToBigIntBanano(formattedCurrentBalance), + receivableBalance = stringAmountToBigIntBanano(formattedReceivableBalance), + super(0, 0); + + BananoBalance.fromRawString( + {required String currentBalance, required String receivableBalance}) + : currentBalance = BigInt.parse(currentBalance), + receivableBalance = BigInt.parse(receivableBalance), + super(0, 0); + @override String get formattedAvailableBalance { return NanoAmounts.getRawAsUsableString(currentBalance.toString(), NanoAmounts.rawPerBanano); diff --git a/cw_nano/lib/nano_balance.dart b/cw_nano/lib/nano_balance.dart index 8b8c93b33b..691b3a32d1 100644 --- a/cw_nano/lib/nano_balance.dart +++ b/cw_nano/lib/nano_balance.dart @@ -1,7 +1,7 @@ import 'package:cw_core/balance.dart'; import 'package:nanoutil/nanoutil.dart'; -BigInt stringAmountToBigInt(String amount) { +BigInt stringAmountToBigIntNano(String amount) { return BigInt.parse(NanoAmounts.getAmountAsRaw(amount, NanoAmounts.rawPerNano)); } @@ -13,8 +13,8 @@ class NanoBalance extends Balance { NanoBalance.fromFormattedString( {required String formattedCurrentBalance, required String formattedReceivableBalance}) - : currentBalance = stringAmountToBigInt(formattedCurrentBalance), - receivableBalance = stringAmountToBigInt(formattedReceivableBalance), + : currentBalance = stringAmountToBigIntNano(formattedCurrentBalance), + receivableBalance = stringAmountToBigIntNano(formattedReceivableBalance), super(0, 0); NanoBalance.fromRawString( diff --git a/cw_nano/lib/nano_client.dart b/cw_nano/lib/nano_client.dart index 064a0bdeef..3b388e5e8a 100644 --- a/cw_nano/lib/nano_client.dart +++ b/cw_nano/lib/nano_client.dart @@ -10,6 +10,7 @@ import 'package:nanodart/nanodart.dart'; import 'package:cw_core/node.dart'; import 'package:nanoutil/nanoutil.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:cw_nano/.secrets.g.dart' as secrets; class NanoClient { static const Map CAKE_HEADERS = { @@ -52,10 +53,19 @@ class NanoClient { } } + Map getHeaders() { + if (_node!.uri == "https://rpc.nano.to") { + return CAKE_HEADERS..addAll({ + "key": secrets.nano2ApiKey, + }); + } + return CAKE_HEADERS; + } + Future getBalance(String address) async { final response = await http.post( _node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: jsonEncode( { "action": "account_balance", @@ -82,7 +92,7 @@ class NanoClient { try { final response = await http.post( _node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: jsonEncode( { "action": "account_info", @@ -94,7 +104,7 @@ class NanoClient { final data = await jsonDecode(response.body); return AccountInfoResponse.fromJson(data as Map); } catch (e) { - print("error while getting account info"); + print("error while getting account info $e"); return null; } } @@ -149,7 +159,7 @@ class NanoClient { Future requestWork(String hash) async { final response = await http.post( _powNode!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: json.encode( { "action": "work_generate", @@ -192,7 +202,7 @@ class NanoClient { final processResponse = await http.post( _node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: processBody, ); @@ -351,7 +361,7 @@ class NanoClient { }); final processResponse = await http.post( _node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: processBody, ); @@ -367,7 +377,7 @@ class NanoClient { required String privateKey, }) async { final receivableResponse = await http.post(_node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: jsonEncode({ "action": "receivable", "account": destinationAddress, @@ -417,7 +427,7 @@ class NanoClient { Future> fetchTransactions(String address) async { try { final response = await http.post(_node!.uri, - headers: CAKE_HEADERS, + headers: getHeaders(), body: jsonEncode({ "action": "account_history", "account": address, diff --git a/ios/Runner/InfoBase.plist b/ios/Runner/InfoBase.plist index 02365bda7d..83e60b5425 100644 --- a/ios/Runner/InfoBase.plist +++ b/ios/Runner/InfoBase.plist @@ -140,6 +140,16 @@ nano-wallet + + CFBundleTypeRole + Viewer + CFBundleURLName + nano-gpt + CFBundleURLSchemes + + nano-gpt + + CFBundleTypeRole Editor diff --git a/lib/di.dart b/lib/di.dart index d280362b49..20157b0e00 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -26,6 +26,7 @@ import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; +import 'package:cake_wallet/view_model/link_view_model.dart'; import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart'; import 'package:cw_core/receive_page_option.dart'; @@ -268,6 +269,7 @@ Future setup({ required Box unspentCoinsInfoSource, required Box anonpayInvoiceInfoSource, required FlutterSecureStorage secureStorage, + required GlobalKey navigatorKey, }) async { _walletInfoSource = walletInfoSource; _nodeSource = nodeSource; @@ -429,68 +431,89 @@ Future setup({ ), ); - getIt.registerFactory(() { - return AuthPage(getIt.get(), + getIt.registerLazySingleton(() { + return LinkViewModel( + appStore: getIt.get(), + settingsStore: getIt.get(), + authenticationStore: getIt.get(), + navigatorKey: navigatorKey, + ); + }); + + getIt.registerFactory(instanceName: 'login', () { + return AuthPage(getIt.get(), closable: false, onAuthenticationFinished: (isAuthenticated, AuthPageState authPageState) { if (!isAuthenticated) { return; + } + final authStore = getIt.get(); + final appStore = getIt.get(); + final useTotp = appStore.settingsStore.useTOTP2FA; + final shouldUseTotp2FAToAccessWallets = + appStore.settingsStore.shouldRequireTOTP2FAForAccessingWallet; + if (useTotp && shouldUseTotp2FAToAccessWallets) { + authPageState.close( + route: Routes.totpAuthCodePage, + arguments: TotpAuthArgumentsModel( + isForSetup: false, + isClosable: false, + onTotpAuthenticationFinished: + (bool isAuthenticatedSuccessfully, TotpAuthCodePageState totpAuthPageState) async { + if (!isAuthenticatedSuccessfully) { + return; + } + if (appStore.wallet != null) { + authStore.allowed(); + return; + } + + totpAuthPageState.changeProcessText('Loading the wallet'); + + if (loginError != null) { + totpAuthPageState.changeProcessText('ERROR: ${loginError.toString()}'); + } + + ReactionDisposer? _reaction; + _reaction = reaction((_) => appStore.wallet, (Object? _) { + _reaction?.reaction.dispose(); + authStore.allowed(); + }); + }, + ), + ); } else { - final authStore = getIt.get(); - final appStore = getIt.get(); - final useTotp = appStore.settingsStore.useTOTP2FA; - final shouldUseTotp2FAToAccessWallets = - appStore.settingsStore.shouldRequireTOTP2FAForAccessingWallet; - if (useTotp && shouldUseTotp2FAToAccessWallets) { - authPageState.close( - route: Routes.totpAuthCodePage, - arguments: TotpAuthArgumentsModel( - isForSetup: false, - isClosable: false, - onTotpAuthenticationFinished: (bool isAuthenticatedSuccessfully, - TotpAuthCodePageState totpAuthPageState) async { - if (!isAuthenticatedSuccessfully) { - return; - } - if (appStore.wallet != null) { - authStore.allowed(); - return; - } - - totpAuthPageState.changeProcessText('Loading the wallet'); - - if (loginError != null) { - totpAuthPageState.changeProcessText('ERROR: ${loginError.toString()}'); - } - - ReactionDisposer? _reaction; - _reaction = reaction((_) => appStore.wallet, (Object? _) { - _reaction?.reaction.dispose(); - authStore.allowed(); - }); - }, - ), - ); - } else { - if (appStore.wallet != null) { - authStore.allowed(); - return; + // wallet is already loaded: + if (appStore.wallet != null) { + // goes to the dashboard: + authStore.allowed(); + // trigger any deep links: + final linkViewModel = getIt.get(); + if (linkViewModel.currentLink != null) { + linkViewModel.handleLink(); } + return; + } - authPageState.changeProcessText('Loading the wallet'); + // load the wallet: - if (loginError != null) { - authPageState.changeProcessText('ERROR: ${loginError.toString()}'); - } + authPageState.changeProcessText('Loading the wallet'); - ReactionDisposer? _reaction; - _reaction = reaction((_) => appStore.wallet, (Object? _) { - _reaction?.reaction.dispose(); - authStore.allowed(); - }); + if (loginError != null) { + authPageState.changeProcessText('ERROR: ${loginError.toString()}'); } + + ReactionDisposer? _reaction; + _reaction = reaction((_) => appStore.wallet, (Object? _) { + _reaction?.reaction.dispose(); + authStore.allowed(); + final linkViewModel = getIt.get(); + if (linkViewModel.currentLink != null) { + linkViewModel.handleLink(); + } + }); } - }, closable: false); - }, instanceName: 'login'); + }); + }); getIt.registerSingleton(BottomSheetServiceImpl()); @@ -849,8 +872,10 @@ Future setup({ tradesStore: getIt.get(), sendViewModel: getIt.get())); - getIt.registerFactory( - () => ExchangePage(getIt.get(), getIt.get())); + getIt.registerFactoryParam( + (PaymentRequest? paymentRequest, __) { + return ExchangePage(getIt.get(), getIt.get(), paymentRequest); + }); getIt.registerFactory(() => ExchangeConfirmPage(tradesStore: getIt.get())); diff --git a/lib/main.dart b/lib/main.dart index b2e32d7a9a..2a4e122361 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/locales/locale.dart'; import 'package:cake_wallet/store/yat/yat_store.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/exception_handler.dart'; +import 'package:cake_wallet/view_model/link_view_model.dart'; import 'package:cw_core/address_info.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cw_core/hive_type_ids.dart'; @@ -205,18 +206,20 @@ Future initialSetup( nodes: nodes, powNodes: powNodes); await setup( - walletInfoSource: walletInfoSource, - nodeSource: nodes, - powNodeSource: powNodes, - contactSource: contactSource, - tradesSource: tradesSource, - templates: templates, - exchangeTemplates: exchangeTemplates, - transactionDescriptionBox: transactionDescriptions, - ordersSource: ordersSource, - anonpayInvoiceInfoSource: anonpayInvoiceInfo, - unspentCoinsInfoSource: unspentCoinsInfoSource, - secureStorage: secureStorage); + walletInfoSource: walletInfoSource, + nodeSource: nodes, + powNodeSource: powNodes, + contactSource: contactSource, + tradesSource: tradesSource, + templates: templates, + exchangeTemplates: exchangeTemplates, + transactionDescriptionBox: transactionDescriptions, + ordersSource: ordersSource, + anonpayInvoiceInfoSource: anonpayInvoiceInfo, + unspentCoinsInfoSource: unspentCoinsInfoSource, + secureStorage: secureStorage, + navigatorKey: navigatorKey, + ); await bootstrap(navigatorKey); monero?.onStartup(); } @@ -287,6 +290,7 @@ class AppState extends State with SingleTickerProviderStateMixin { return Observer(builder: (BuildContext context) { final appStore = getIt.get(); final authService = getIt.get(); + final linkViewModel = getIt.get(); final settingsStore = appStore.settingsStore; final statusBarColor = Colors.transparent; final authenticationStore = getIt.get(); @@ -309,6 +313,7 @@ class AppState extends State with SingleTickerProviderStateMixin { authenticationStore: authenticationStore, navigatorKey: navigatorKey, authService: authService, + linkViewModel: linkViewModel, child: MaterialApp( navigatorObservers: [routeObserver], navigatorKey: navigatorKey, diff --git a/lib/router.dart b/lib/router.dart index 3032ceb6a8..741597731a 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -221,7 +221,8 @@ Route createRoute(RouteSettings settings) { return CupertinoPageRoute( builder: (_) => getIt.get( param1: (PinCodeState context, dynamic _) => - Navigator.of(context.context).pushNamed(Routes.restoreWalletFromHardwareWallet, arguments: false), + Navigator.of(context.context) + .pushNamed(Routes.restoreWalletFromHardwareWallet, arguments: false), ), fullscreenDialog: true, ); @@ -231,9 +232,9 @@ Route createRoute(RouteSettings settings) { builder: (_) => ConnectDevicePage( ConnectDevicePageParams( walletType: availableWalletTypes.first, - onConnectDevice: (BuildContext context, _) => - Navigator.of(context).pushNamed(Routes.chooseHardwareWalletAccount, - arguments: [availableWalletTypes.first]), + onConnectDevice: (BuildContext context, _) => Navigator.of(context).pushNamed( + Routes.chooseHardwareWalletAccount, + arguments: [availableWalletTypes.first]), ), getIt.get(), )); @@ -243,9 +244,8 @@ Route createRoute(RouteSettings settings) { param1: (BuildContext context, WalletType type) { final arguments = ConnectDevicePageParams( walletType: type, - onConnectDevice: (BuildContext context, _) => - Navigator.of(context).pushNamed(Routes.chooseHardwareWalletAccount, - arguments: [type]), + onConnectDevice: (BuildContext context, _) => Navigator.of(context) + .pushNamed(Routes.chooseHardwareWalletAccount, arguments: [type]), ); Navigator.of(context).pushNamed(Routes.connectDevices, arguments: arguments); @@ -308,8 +308,7 @@ Route createRoute(RouteSettings settings) { case Routes.bumpFeePage: return CupertinoPageRoute( fullscreenDialog: true, - builder: (_) => - getIt.get(param1: settings.arguments as TransactionInfo)); + builder: (_) => getIt.get(param1: settings.arguments as TransactionInfo)); case Routes.newSubaddress: return CupertinoPageRoute( @@ -461,7 +460,9 @@ Route createRoute(RouteSettings settings) { case Routes.exchange: return CupertinoPageRoute( - fullscreenDialog: true, builder: (_) => getIt.get()); + fullscreenDialog: true, + builder: (_) => getIt.get(param1: settings.arguments as PaymentRequest?), + ); case Routes.exchangeTemplate: return CupertinoPageRoute(builder: (_) => getIt.get()); diff --git a/lib/src/screens/dashboard/pages/market_place_page.dart b/lib/src/screens/dashboard/pages/market_place_page.dart index 1bdcb61b4f..d280488446 100644 --- a/lib/src/screens/dashboard/pages/market_place_page.dart +++ b/lib/src/screens/dashboard/pages/market_place_page.dart @@ -59,12 +59,15 @@ class MarketPlacePage extends StatelessWidget { // ), SizedBox(height: 20), DashBoardRoundedCardWidget( - onTap: () => launchUrl( - Uri.https("buy.cakepay.com"), - mode: LaunchMode.externalApplication, - ), title: S.of(context).cake_pay_web_cards_title, subTitle: S.of(context).cake_pay_web_cards_subtitle, + onTap: () => _launchMarketPlaceUrl("buy.cakepay.com"), + ), + const SizedBox(height: 20), + DashBoardRoundedCardWidget( + title: "NanoGPT", + subTitle: S.of(context).nanogpt_subtitle, + onTap: () => _launchMarketPlaceUrl("cake.nano-gpt.com"), ), ], ), @@ -76,6 +79,17 @@ class MarketPlacePage extends StatelessWidget { ); } + void _launchMarketPlaceUrl(String url) async { + try { + launchUrl( + Uri.https(url), + mode: LaunchMode.externalApplication, + ); + } catch (e) { + print(e); + } + } + // TODO: Remove ionia flow/files if we will discard it void _navigatorToGiftCardsPage(BuildContext context) { final walletType = dashboardViewModel.type; diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index c4e4aa1997..e2d424fa0c 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -10,6 +10,7 @@ import 'package:cake_wallet/src/widgets/add_template_button.dart'; import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/debounce.dart'; +import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cw_core/sync_status.dart'; import 'package:cw_core/wallet_type.dart'; @@ -43,7 +44,7 @@ import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.dart'; class ExchangePage extends BasePage { - ExchangePage(this.exchangeViewModel, this.authService) { + ExchangePage(this.exchangeViewModel, this.authService, this.initialPaymentRequest) { depositWalletName = exchangeViewModel.depositCurrency == CryptoCurrency.xmr ? exchangeViewModel.wallet.name : null; @@ -54,6 +55,7 @@ class ExchangePage extends BasePage { final ExchangeViewModel exchangeViewModel; final AuthService authService; + final PaymentRequest? initialPaymentRequest; final depositKey = GlobalKey(); final receiveKey = GlobalKey(); final _formKey = GlobalKey(); @@ -543,6 +545,12 @@ class ExchangePage extends BasePage { // amount: depositAmountController.text); }); + if (initialPaymentRequest != null) { + exchangeViewModel.receiveCurrency = CryptoCurrency.fromString(initialPaymentRequest!.scheme); + exchangeViewModel.depositAmount = initialPaymentRequest!.amount; + exchangeViewModel.receiveAddress = initialPaymentRequest!.address; + } + _isReactionsSet = true; } diff --git a/lib/src/screens/root/root.dart b/lib/src/screens/root/root.dart index e3472f510b..afdd148652 100644 --- a/lib/src/screens/root/root.dart +++ b/lib/src/screens/root/root.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/payment_request.dart'; +import 'package:cake_wallet/view_model/link_view_model.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; @@ -25,6 +26,7 @@ class Root extends StatefulWidget { required this.child, required this.navigatorKey, required this.authService, + required this.linkViewModel, }) : super(key: key); final AuthenticationStore authenticationStore; @@ -32,6 +34,7 @@ class Root extends StatefulWidget { final GlobalKey navigatorKey; final AuthService authService; final Widget child; + final LinkViewModel linkViewModel; @override RootState createState() => RootState(); @@ -53,7 +56,6 @@ class RootState extends State with WidgetsBindingObserver { StreamSubscription? stream; ReactionDisposer? _walletReactionDisposer; ReactionDisposer? _deepLinksReactionDisposer; - Uri? launchUri; @override void initState() { @@ -98,7 +100,7 @@ class RootState extends State with WidgetsBindingObserver { void handleDeepLinking(Uri? uri) async { if (uri == null || !mounted) return; - launchUri = uri; + widget.linkViewModel.currentLink = uri; bool requireAuth = await widget.authService.requireAuth(); @@ -112,7 +114,7 @@ class RootState extends State with WidgetsBindingObserver { (AuthenticationState state) { if (state == AuthenticationState.allowed) { if (widget.appStore.wallet == null) { - waitForWalletInstance(context, launchUri!); + waitForWalletInstance(context); } else { _navigateToDeepLinkScreen(); } @@ -150,6 +152,8 @@ class RootState extends State with WidgetsBindingObserver { @override Widget build(BuildContext context) { + // this only happens when the app has been in the background for some time + // this does NOT trigger when the app is started from the "closed" state! if (_isInactive && !_postFrameCallback && _requestAuth) { _postFrameCallback = true; WidgetsBinding.instance.addPostFrameCallback((_) { @@ -158,40 +162,38 @@ class RootState extends State with WidgetsBindingObserver { arguments: (bool isAuthenticatedSuccessfully, AuthPageState auth) { if (!isAuthenticatedSuccessfully) { return; + } + final useTotp = widget.appStore.settingsStore.useTOTP2FA; + final shouldUseTotp2FAToAccessWallets = + widget.appStore.settingsStore.shouldRequireTOTP2FAForAccessingWallet; + if (useTotp && shouldUseTotp2FAToAccessWallets) { + _reset(); + auth.close( + route: Routes.totpAuthCodePage, + arguments: TotpAuthArgumentsModel( + onTotpAuthenticationFinished: + (bool isAuthenticatedSuccessfully, TotpAuthCodePageState totpAuth) { + if (!isAuthenticatedSuccessfully) { + return; + } + _reset(); + totpAuth.close( + route: widget.linkViewModel.getRouteToGo(), + arguments: widget.linkViewModel.getRouteArgs(), + ); + widget.linkViewModel.currentLink = null; + }, + isForSetup: false, + isClosable: false, + ), + ); } else { - final useTotp = widget.appStore.settingsStore.useTOTP2FA; - final shouldUseTotp2FAToAccessWallets = - widget.appStore.settingsStore.shouldRequireTOTP2FAForAccessingWallet; - if (useTotp && shouldUseTotp2FAToAccessWallets) { - _reset(); - auth.close( - route: Routes.totpAuthCodePage, - arguments: TotpAuthArgumentsModel( - onTotpAuthenticationFinished: - (bool isAuthenticatedSuccessfully, TotpAuthCodePageState totpAuth) { - if (!isAuthenticatedSuccessfully) { - return; - } - _reset(); - totpAuth.close( - route: _getRouteToGo(), - arguments: - isWalletConnectLink ? launchUri : PaymentRequest.fromUri(launchUri), - ); - launchUri = null; - }, - isForSetup: false, - isClosable: false, - ), - ); - } else { - _reset(); - auth.close( - route: _getRouteToGo(), - arguments: isWalletConnectLink ? launchUri : PaymentRequest.fromUri(launchUri), - ); - launchUri = null; - } + _reset(); + auth.close( + route: widget.linkViewModel.getRouteToGo(), + arguments: widget.linkViewModel.getRouteArgs(), + ); + widget.linkViewModel.currentLink = null; } }, ); @@ -216,36 +218,7 @@ class RootState extends State with WidgetsBindingObserver { _isInactiveController.add(value); } - bool _isValidPaymentUri() => launchUri?.path.isNotEmpty ?? false; - - bool get isWalletConnectLink => launchUri?.authority == 'wc'; - - String? _getRouteToGo() { - if (isWalletConnectLink) { - if (isEVMCompatibleChain(widget.appStore.wallet!.type)) { - _nonETHWalletErrorToast(S.current.switchToEVMCompatibleWallet); - return null; - } - return Routes.walletConnectConnectionsListing; - } else if (_isValidPaymentUri()) { - return Routes.send; - } else { - return null; - } - } - - Future _nonETHWalletErrorToast(String message) async { - Fluttertoast.showToast( - msg: message, - toastLength: Toast.LENGTH_LONG, - gravity: ToastGravity.SNACKBAR, - backgroundColor: Colors.black, - textColor: Colors.white, - fontSize: 16.0, - ); - } - - void waitForWalletInstance(BuildContext context, Uri tempLaunchUri) { + void waitForWalletInstance(BuildContext context) { WidgetsBinding.instance.addPostFrameCallback((_) { if (context.mounted) { _walletReactionDisposer = reaction( @@ -263,14 +236,6 @@ class RootState extends State with WidgetsBindingObserver { } void _navigateToDeepLinkScreen() { - if (_getRouteToGo() != null) { - WidgetsBinding.instance.addPostFrameCallback((_) { - widget.navigatorKey.currentState?.pushNamed( - _getRouteToGo()!, - arguments: isWalletConnectLink ? launchUri : PaymentRequest.fromUri(launchUri), - ); - launchUri = null; - }); - } + widget.linkViewModel.handleLink(); } } diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 6481333911..d9b74869fa 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -35,6 +35,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:mobx/mobx.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:url_launcher/url_launcher.dart'; class SendPage extends BasePage { SendPage({ @@ -420,12 +422,10 @@ class SendPage extends BasePage { } reaction((_) => sendViewModel.state, (ExecutionState state) { - if (dialogContext != null && dialogContext?.mounted == true) { Navigator.of(dialogContext!).pop(); } - if (state is FailureState) { WidgetsBinding.instance.addPostFrameCallback((_) { showPopUp( @@ -460,10 +460,10 @@ class SendPage extends BasePage { outputs: sendViewModel.outputs, rightButtonText: S.of(_dialogContext).send, leftButtonText: S.of(_dialogContext).cancel, - actionRightButton: () { + actionRightButton: () async { Navigator.of(_dialogContext).pop(); sendViewModel.commitTransaction(); - showPopUp( + await showPopUp( context: context, builder: (BuildContext _dialogContext) { return Observer(builder: (_) { @@ -481,12 +481,14 @@ class SendPage extends BasePage { sendViewModel.selectedCryptoCurrency.toString()); final waitMessage = sendViewModel.walletType == WalletType.solana - ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}' : ''; + ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}' + : ''; final newContactMessage = newContactAddress != null - ? '\n${S.of(_dialogContext).add_contact_to_address_book}' : ''; + ? '\n${S.of(_dialogContext).add_contact_to_address_book}' + : ''; - final alertContent = + String alertContent = "$successMessage$waitMessage$newContactMessage"; if (newContactAddress != null) { @@ -509,6 +511,10 @@ class SendPage extends BasePage { newContactAddress = null; }); } else { + if (initialPaymentRequest?.callbackMessage?.isNotEmpty ?? + false) { + alertContent = initialPaymentRequest!.callbackMessage!; + } return AlertWithOneAction( alertTitle: '', alertContent: alertContent, @@ -523,6 +529,20 @@ class SendPage extends BasePage { return Offstage(); }); }); + if (state is TransactionCommitted) { + if (initialPaymentRequest?.callbackUrl?.isNotEmpty ?? false) { + // wait a second so it's not as jarring: + await Future.delayed(Duration(seconds: 1)); + try { + launchUrl( + Uri.parse(initialPaymentRequest!.callbackUrl!), + mode: LaunchMode.externalApplication, + ); + } catch (e) { + print(e); + } + } + } }, actionLeftButton: () => Navigator.of(_dialogContext).pop()); }); diff --git a/lib/utils/payment_request.dart b/lib/utils/payment_request.dart index 00093b4138..fe0ecf6050 100644 --- a/lib/utils/payment_request.dart +++ b/lib/utils/payment_request.dart @@ -1,19 +1,29 @@ +import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/nano/nano.dart'; class PaymentRequest { - PaymentRequest(this.address, this.amount, this.note, this.scheme); + PaymentRequest(this.address, this.amount, this.note, this.scheme, {this.callbackUrl, this.callbackMessage}); factory PaymentRequest.fromUri(Uri? uri) { var address = ""; var amount = ""; var note = ""; var scheme = ""; + String? callbackUrl; + String? callbackMessage; if (uri != null) { - address = uri.path; + address = uri.queryParameters['address'] ?? uri.path; amount = uri.queryParameters['tx_amount'] ?? uri.queryParameters['amount'] ?? ""; note = uri.queryParameters['tx_description'] ?? uri.queryParameters['message'] ?? ""; scheme = uri.scheme; + callbackUrl = uri.queryParameters['callback']; + callbackMessage = uri.queryParameters['callbackMessage']; + } + + if (scheme == "nano-gpt") { + // treat as nano so filling out the address works: + scheme = "nano"; } if (nano != null) { @@ -26,11 +36,20 @@ class PaymentRequest { } } - return PaymentRequest(address, amount, note, scheme); + return PaymentRequest( + address, + amount, + note, + scheme, + callbackUrl: callbackUrl, + callbackMessage: callbackMessage, + ); } final String address; final String amount; final String note; final String scheme; + final String? callbackUrl; + final String? callbackMessage; } diff --git a/lib/view_model/link_view_model.dart b/lib/view_model/link_view_model.dart new file mode 100644 index 0000000000..714b57e53f --- /dev/null +++ b/lib/view_model/link_view_model.dart @@ -0,0 +1,118 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/store/authentication_store.dart'; +import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/utils/payment_request.dart'; +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import 'package:mobx/mobx.dart'; + +part 'link_view_model.g.dart'; + +class LinkViewModel = LinkViewModelBase with _$LinkViewModel; + +abstract class LinkViewModelBase with Store { + LinkViewModelBase({ + required this.settingsStore, + required this.appStore, + required this.authenticationStore, + required this.navigatorKey, + }) {} + + final SettingsStore settingsStore; + final AppStore appStore; + final AuthenticationStore authenticationStore; + final GlobalKey navigatorKey; + Uri? currentLink; + + bool get _isValidPaymentUri => currentLink?.path.isNotEmpty ?? false; + bool get isWalletConnectLink => currentLink?.authority == 'wc'; + bool get isNanoGptLink => currentLink?.scheme == 'nano-gpt'; + + String? getRouteToGo() { + if (isWalletConnectLink) { + if (!isEVMCompatibleChain(appStore.wallet!.type)) { + _errorToast(S.current.switchToEVMCompatibleWallet); + return null; + } + return Routes.walletConnectConnectionsListing; + } + + if (authenticationStore.state == AuthenticationState.uninitialized) { + return null; + } + + if (isNanoGptLink) { + switch (currentLink?.authority ?? '') { + case "exchange": + return Routes.exchange; + case "send": + return Routes.send; + case "buy": + return Routes.buySellPage; + } + } + + if (_isValidPaymentUri) { + return Routes.send; + } + + return null; + } + + dynamic getRouteArgs() { + if (isWalletConnectLink) { + return currentLink; + } + + if (isNanoGptLink) { + switch (currentLink?.authority ?? '') { + case "exchange": + case "send": + return PaymentRequest.fromUri(currentLink); + case "buy": + return true; + } + } + + if (_isValidPaymentUri) { + return PaymentRequest.fromUri(currentLink); + } + + return null; + } + + Future _errorToast(String message, {double fontSize = 16}) async { + Fluttertoast.showToast( + msg: message, + toastLength: Toast.LENGTH_LONG, + gravity: ToastGravity.SNACKBAR, + backgroundColor: Colors.black, + textColor: Colors.white, + fontSize: fontSize, + ); + } + + Future handleLink() async { + String? route = getRouteToGo(); + dynamic args = getRouteArgs(); + if (route != null) { + if (appStore.wallet == null) { + return; + } + + if (isNanoGptLink) { + if (route == Routes.buySellPage || route == Routes.exchange) { + await _errorToast(S.current.nano_gpt_thanks_message, fontSize: 14); + } + } + currentLink = null; + navigatorKey.currentState?.pushNamed( + route, + arguments: args, + ); + } + } +} diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 3659127436..ab6579eef8 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "يجب أن تكون قيمة المبلغ أكبر من أو تساوي ${minAmount} ${fiatCurrency}", "more_options": "المزيد من الخيارات", "name": "ﻢﺳﺍ", + "nano_gpt_thanks_message": "شكرا لاستخدام nanogpt! تذكر أن تعود إلى المتصفح بعد اكتمال معاملتك!", + "nanogpt_subtitle": "جميع النماذج الأحدث (GPT-4 ، Claude). \\ nno اشتراك ، ادفع مع Crypto.", "nano_current_rep": "الممثل الحالي", "nano_pick_new_rep": "اختر ممثلًا جديدًا", "narrow": "ضيق", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 8a7682221b..6b6a8be1a1 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}", "more_options": "Още настройки", "name": "Име", + "nano_gpt_thanks_message": "Благодаря, че използвахте Nanogpt! Не забравяйте да се върнете обратно към браузъра, след като транзакцията ви приключи!", + "nanogpt_subtitle": "Всички най-нови модели (GPT-4, Claude). \\ Nno абонамент, платете с Crypto.", "nano_current_rep": "Настоящ представител", "nano_pick_new_rep": "Изберете нов представител", "narrow": "Тесен", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index e3bbad5a3a..86a61a5af1 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}", "more_options": "Více možností", "name": "název", + "nano_gpt_thanks_message": "Děkujeme za používání Nanogpt! Nezapomeňte se po dokončení transakce vydat zpět do prohlížeče!", + "nanogpt_subtitle": "Všechny nejnovější modely (GPT-4, Claude). \\ Nno předplatné, plaťte krypto.", "nano_current_rep": "Současný zástupce", "nano_pick_new_rep": "Vyberte nového zástupce", "narrow": "Úzký", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index ff974f28c6..c0639d88de 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Der Wert des Betrags muss größer oder gleich ${minAmount} ${fiatCurrency} sein", "more_options": "Weitere Optionen", "name": "Name", + "nano_gpt_thanks_message": "Danke, dass du Nanogpt benutzt hast! Denken Sie daran, nach Abschluss Ihrer Transaktion zurück zum Browser zu gehen!", + "nanogpt_subtitle": "Alle neuesten Modelle (GPT-4, Claude).", "nano_current_rep": "Aktueller Vertreter", "nano_pick_new_rep": "Wählen Sie einen neuen Vertreter aus", "narrow": "Eng", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 241d124155..2ee31b4912 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Value of the amount must be more or equal to ${minAmount} ${fiatCurrency}", "more_options": "More Options", "name": "Name", + "nano_gpt_thanks_message": "Thanks for using NanoGPT! Remember to head back to the browser after your transaction completes!", + "nanogpt_subtitle": "All the newest models (GPT-4, Claude).\\nNo subscription, pay with crypto.", "nano_current_rep": "Current Representative", "nano_pick_new_rep": "Pick a new representative", "narrow": "Narrow", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 59c40f67b5..8e41772987 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "El valor de la cantidad debe ser mayor o igual a ${minAmount} ${fiatCurrency}", "more_options": "Más Opciones", "name": "Nombre", + "nano_gpt_thanks_message": "¡Gracias por usar nanogpt! ¡Recuerde regresar al navegador después de que se complete su transacción!", + "nanogpt_subtitle": "Todos los modelos más nuevos (GPT-4, Claude). \\ Nno suscripción, pague con cripto.", "nano_current_rep": "Representante actual", "nano_pick_new_rep": "Elija un nuevo representante", "narrow": "Angosto", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 08b6d54b07..4c589b27fe 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Le montant doit être au moins égal à ${minAmount} ${fiatCurrency}", "more_options": "Plus d'options", "name": "Nom", + "nano_gpt_thanks_message": "Merci d'avoir utilisé Nanogpt! N'oubliez pas de retourner au navigateur une fois votre transaction terminée!", + "nanogpt_subtitle": "Tous les modèles les plus récents (GPT-4, Claude). \\ NNO abonnement, payez avec crypto.", "nano_current_rep": "Représentant actuel", "nano_pick_new_rep": "Choisissez un nouveau représentant", "narrow": "Étroit", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 94c030a219..3fe21b3f14 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Darajar adadin dole ne ya zama fiye ko daidai da ${minAmount} ${fiatCurrency}", "more_options": "Ƙarin Zaɓuɓɓuka", "name": "Suna", + "nano_gpt_thanks_message": "Na gode da amfani da Nanogpt! Ka tuna da komawa zuwa mai bincike bayan ma'amalar ka ta cika!", + "nanogpt_subtitle": "Duk sabbin samfuran (GPT-4, CLODE). \\ NNO biyan kuɗi, biya tare da crypto.", "nano_current_rep": "Wakilin Yanzu", "nano_pick_new_rep": "Dauki sabon wakili", "narrow": "kunkuntar", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 4279e0beed..e2eb28aa28 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "राशि का मूल्य अधिक है या करने के लिए बराबर होना चाहिए ${minAmount} ${fiatCurrency}", "more_options": "और विकल्प", "name": "नाम", + "nano_gpt_thanks_message": "Nanogpt का उपयोग करने के लिए धन्यवाद! अपने लेन -देन के पूरा होने के बाद ब्राउज़र पर वापस जाना याद रखें!", + "nanogpt_subtitle": "सभी नवीनतम मॉडल (GPT-4, क्लाउड)। \\ nno सदस्यता, क्रिप्टो के साथ भुगतान करें।", "nano_current_rep": "वर्तमान प्रतिनिधि", "nano_pick_new_rep": "एक नया प्रतिनिधि चुनें", "narrow": "सँकरा", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 106243e519..079de0c4fa 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Vrijednost iznosa mora biti veća ili jednaka ${minAmount} ${fiatCurrency}", "more_options": "Više opcija", "name": "Ime", + "nano_gpt_thanks_message": "Hvala što ste koristili nanogpt! Ne zaboravite da se vratite u preglednik nakon što vam se transakcija završi!", + "nanogpt_subtitle": "Svi najnoviji modeli (GPT-4, Claude). \\ NNO pretplata, plaćajte kripto.", "nano_current_rep": "Trenutni predstavnik", "nano_pick_new_rep": "Odaberite novog predstavnika", "narrow": "Usko", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 01c36da933..ae9e4e38fb 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Nilai jumlah harus lebih atau sama dengan ${minAmount} ${fiatCurrency}", "more_options": "Opsi Lainnya", "name": "Nama", + "nano_gpt_thanks_message": "Terima kasih telah menggunakan Nanogpt! Ingatlah untuk kembali ke browser setelah transaksi Anda selesai!", + "nanogpt_subtitle": "Semua model terbaru (GPT-4, Claude). \\ Nno langganan, bayar dengan crypto.", "nano_current_rep": "Perwakilan saat ini", "nano_pick_new_rep": "Pilih perwakilan baru", "narrow": "Sempit", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 61a3fa2cf1..5fa1b52eff 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -367,6 +367,8 @@ "moonpay_alert_text": "Il valore dell'importo deve essere maggiore o uguale a ${minAmount} ${fiatCurrency}", "more_options": "Altre opzioni", "name": "Nome", + "nano_gpt_thanks_message": "Grazie per aver usato il nanogpt! Ricorda di tornare al browser dopo il completamento della transazione!", + "nanogpt_subtitle": "Tutti i modelli più recenti (GPT-4, Claude). Abbonamento nno, paga con cripto.", "nano_current_rep": "Rappresentante attuale", "nano_pick_new_rep": "Scegli un nuovo rappresentante", "narrow": "Stretto", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index db92a2f922..a01df3c071 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -367,6 +367,8 @@ "moonpay_alert_text": "金額の値は以上でなければなりません ${minAmount} ${fiatCurrency}", "more_options": "その他のオプション", "name": "名前", + "nano_gpt_thanks_message": "NanoGptを使用してくれてありがとう!トランザクションが完了したら、ブラウザに戻ることを忘れないでください!", + "nanogpt_subtitle": "すべての最新モデル(GPT-4、Claude)。\\ nnoサブスクリプション、暗号で支払います。", "nano_current_rep": "現在の代表", "nano_pick_new_rep": "新しい代表者を選びます", "narrow": "狭い", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index fc84d7c35f..53cbeb01f8 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "금액은 다음보다 크거나 같아야합니다 ${minAmount} ${fiatCurrency}", "more_options": "추가 옵션", "name": "이름", + "nano_gpt_thanks_message": "Nanogpt를 사용해 주셔서 감사합니다! 거래가 완료된 후 브라우저로 돌아가는 것을 잊지 마십시오!", + "nanogpt_subtitle": "모든 최신 모델 (GPT-4, Claude). \\ nno 구독, Crypto로 지불하십시오.", "nano_current_rep": "현재 대표", "nano_pick_new_rep": "새로운 담당자를 선택하십시오", "narrow": "좁은", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 0e18179e1e..bb2099b15f 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "ပမာဏ၏တန်ဖိုးသည် ${minAmount} ${fiatCurrency} နှင့် ပိုနေရမည်", "more_options": "နောက်ထပ် ရွေးချယ်စရာများ", "name": "နာမည်", + "nano_gpt_thanks_message": "nanogpt ကိုသုံးပြီးကျေးဇူးတင်ပါတယ် သင်၏ငွေပေးငွေယူပြီးနောက် browser သို့ပြန်သွားရန်သတိရပါ။", + "nanogpt_subtitle": "အားလုံးနောက်ဆုံးပေါ်မော်ဒယ်များ (GPT-4, Claude) ။ \\ nno subscription, crypto နှင့်အတူပေးဆောင်။", "nano_current_rep": "လက်ရှိကိုယ်စားလှယ်", "nano_pick_new_rep": "အသစ်တစ်ခုကိုရွေးပါ", "narrow": "ကျဉ်းသော", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index dff34c122e..ca9b5a79ff 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Waarde van het bedrag moet meer of gelijk zijn aan ${minAmount} ${fiatCurrency}", "more_options": "Meer opties", "name": "Naam", + "nano_gpt_thanks_message": "Bedankt voor het gebruik van Nanogpt! Vergeet niet om terug te gaan naar de browser nadat uw transactie is voltooid!", + "nanogpt_subtitle": "Alle nieuwste modellen (GPT-4, Claude). \\ Nno-abonnement, betalen met crypto.", "nano_current_rep": "Huidige vertegenwoordiger", "nano_pick_new_rep": "Kies een nieuwe vertegenwoordiger", "narrow": "Smal", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index b8640f5fec..44e8c0b957 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Wartość kwoty musi być większa lub równa ${minAmount} ${fiatCurrency}", "more_options": "Więcej opcji", "name": "Nazwa", + "nano_gpt_thanks_message": "Dzięki za użycie Nanogpt! Pamiętaj, aby wrócić do przeglądarki po zakończeniu transakcji!", + "nanogpt_subtitle": "Wszystkie najnowsze modele (GPT-4, Claude). \\ Nno subskrypcja, płacą za pomocą kryptografii.", "nano_current_rep": "Obecny przedstawiciel", "nano_pick_new_rep": "Wybierz nowego przedstawiciela", "narrow": "Wąski", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 7d606e2c19..b8805e789d 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -367,6 +367,8 @@ "moonpay_alert_text": "O valor do montante deve ser maior ou igual a ${minAmount} ${fiatCurrency}", "more_options": "Mais opções", "name": "Nome", + "nano_gpt_thanks_message": "Obrigado por usar o Nanogpt! Lembre -se de voltar para o navegador após a conclusão da transação!", + "nanogpt_subtitle": "Todos os modelos mais recentes (GPT-4, Claude). \\ Nno assinatura, pagam com criptografia.", "nano_current_rep": "Representante atual", "nano_pick_new_rep": "Escolha um novo representante", "narrow": "Estreito", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index c6466a24e8..32f513fe5f 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Сумма должна быть больше или равна ${minAmount} ${fiatCurrency}", "more_options": "Дополнительные параметры", "name": "Имя", + "nano_gpt_thanks_message": "Спасибо за использование Nanogpt! Не забудьте вернуться в браузер после завершения транзакции!", + "nanogpt_subtitle": "Все новейшие модели (GPT-4, Claude). \\ Nno Подписка, платите с крипто.", "nano_current_rep": "Нынешний представитель", "nano_pick_new_rep": "Выберите нового представителя", "narrow": "Узкий", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 6b68d1e501..18b9adce91 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "มูลค่าของจำนวนต้องมากกว่าหรือเท่ากับ ${minAmount} ${fiatCurrency}", "more_options": "ตัวเลือกเพิ่มเติม", "name": "ชื่อ", + "nano_gpt_thanks_message": "ขอบคุณที่ใช้ Nanogpt! อย่าลืมกลับไปที่เบราว์เซอร์หลังจากการทำธุรกรรมของคุณเสร็จสิ้น!", + "nanogpt_subtitle": "รุ่นใหม่ล่าสุดทั้งหมด (GPT-4, Claude). การสมัครสมาชิก \\ nno, จ่ายด้วย crypto", "nano_current_rep": "ตัวแทนปัจจุบัน", "nano_pick_new_rep": "เลือกตัวแทนใหม่", "narrow": "แคบ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 6d388973a2..76a94bbe22 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Ang halaga ng halaga ay dapat na higit pa o katumbas ng ${minAmount} ${fiatCurrency}", "more_options": "Higit pang mga pagpipilian", "name": "Pangalan", + "nano_gpt_thanks_message": "Salamat sa paggamit ng nanogpt! Tandaan na bumalik sa browser matapos makumpleto ang iyong transaksyon!", + "nanogpt_subtitle": "Ang lahat ng mga pinakabagong modelo (GPT-4, Claude). \\ Nno subscription, magbayad gamit ang crypto.", "nano_current_rep": "Kasalukuyang kinatawan", "nano_pick_new_rep": "Pumili ng isang bagong kinatawan", "narrow": "Makitid", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index ddf99696b5..62e541deda 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Tutar ${minAmount} ${fiatCurrency} miktarına eşit veya daha fazla olmalıdır", "more_options": "Daha Fazla Seçenek", "name": "İsim", + "nano_gpt_thanks_message": "Nanogpt kullandığınız için teşekkürler! İşleminiz tamamlandıktan sonra tarayıcıya geri dönmeyi unutmayın!", + "nanogpt_subtitle": "En yeni modeller (GPT-4, Claude). \\ Nno aboneliği, kripto ile ödeme yapın.", "nano_current_rep": "Mevcut temsilci", "nano_pick_new_rep": "Yeni bir temsilci seçin", "narrow": "Dar", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 2f294817e7..6184fed116 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "Значення суми має бути більшим або дорівнювати ${minAmount} ${fiatCurrency}", "more_options": "Більше параметрів", "name": "Ім'я", + "nano_gpt_thanks_message": "Дякуємо за використання наногпта! Не забудьте повернутися до браузера після завершення транзакції!", + "nanogpt_subtitle": "Усі найновіші моделі (GPT-4, Claude). \\ Nno підписка, оплата криптовалютою.", "nano_current_rep": "Поточний представник", "nano_pick_new_rep": "Виберіть нового представника", "narrow": "вузькі", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 048cfb0709..dadd3505bb 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔", "more_options": "مزید زرائے", "name": "ﻡﺎﻧ", + "nano_gpt_thanks_message": "نانوگپٹ استعمال کرنے کا شکریہ! اپنے لین دین کی تکمیل کے بعد براؤزر کی طرف واپس جانا یاد رکھیں!", + "nanogpt_subtitle": "تمام تازہ ترین ماڈل (GPT-4 ، کلاڈ)۔ n n no سبسکرپشن ، کریپٹو کے ساتھ ادائیگی کریں۔", "nano_current_rep": "موجودہ نمائندہ", "nano_pick_new_rep": "ایک نیا نمائندہ منتخب کریں", "narrow": "تنگ", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 8a379a2584..d9fa48a451 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -367,6 +367,8 @@ "moonpay_alert_text": "Iye owó kò gbọ́dọ̀ kéré ju ${minAmount} ${fiatCurrency}", "more_options": "Ìyàn àfikún", "name": "Oruko", + "nano_gpt_thanks_message": "O ṣeun fun lilo Nonnogt! Ranti lati tẹle pada si ẹrọ lilọ kiri ayelujara lẹhin iṣowo rẹ pari!", + "nanogpt_subtitle": "Gbogbo awọn awoṣe tuntun (GPT-4, Claude). \\ Nno alabapin kan, sanwo pẹlu Crypto.", "nano_current_rep": "Aṣoju lọwọlọwọ", "nano_pick_new_rep": "Mu aṣoju tuntun kan", "narrow": "Taara", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index bf6684deeb..089d5fa74a 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -366,6 +366,8 @@ "moonpay_alert_text": "金额的价值必须大于或等于 ${minAmount} ${fiatCurrency}", "more_options": "更多选项", "name": "姓名", + "nano_gpt_thanks_message": "感谢您使用Nanogpt!事务完成后,请记住回到浏览器!", + "nanogpt_subtitle": "所有最新型号(GPT-4,Claude)。\\ nno订阅,用加密货币付款。", "nano_current_rep": "当前代表", "nano_pick_new_rep": "选择新代表", "narrow": "狭窄的", diff --git a/tool/generate_secrets_config.dart b/tool/generate_secrets_config.dart index 6aaa39b7c9..cab41ca69e 100644 --- a/tool/generate_secrets_config.dart +++ b/tool/generate_secrets_config.dart @@ -6,6 +6,7 @@ import 'utils/utils.dart'; const configPath = 'tool/.secrets-config.json'; const evmChainsConfigPath = 'tool/.evm-secrets-config.json'; const solanaConfigPath = 'tool/.solana-secrets-config.json'; +const nanoConfigPath = 'tool/.nano-secrets-config.json'; const tronConfigPath = 'tool/.tron-secrets-config.json'; Future main(List args) async => generateSecretsConfig(args); @@ -21,6 +22,7 @@ Future generateSecretsConfig(List args) async { final configFile = File(configPath); final evmChainsConfigFile = File(evmChainsConfigPath); final solanaConfigFile = File(solanaConfigPath); + final nanoConfigFile = File(nanoConfigPath); final tronConfigFile = File(tronConfigPath); final secrets = {}; @@ -42,45 +44,48 @@ Future generateSecretsConfig(List args) async { } } + // base: SecretKey.base.forEach((sec) { if (secrets[sec.name] != null) { return; } - secrets[sec.name] = sec.generate(); }); - var secretsJson = JsonEncoder.withIndent(' ').convert(secrets); await configFile.writeAsString(secretsJson); - secrets.clear(); + // evm chains: SecretKey.evmChainsSecrets.forEach((sec) { if (secrets[sec.name] != null) { return; } - secrets[sec.name] = sec.generate(); }); - secretsJson = JsonEncoder.withIndent(' ').convert(secrets); - await evmChainsConfigFile.writeAsString(secretsJson); - secrets.clear(); + // solana: SecretKey.solanaSecrets.forEach((sec) { if (secrets[sec.name] != null) { return; } - secrets[sec.name] = sec.generate(); }); - secretsJson = JsonEncoder.withIndent(' ').convert(secrets); - await solanaConfigFile.writeAsString(secretsJson); + secrets.clear(); + // nano: + SecretKey.nanoSecrets.forEach((sec) { + if (secrets[sec.name] != null) { + return; + } + secrets[sec.name] = sec.generate(); + }); + secretsJson = JsonEncoder.withIndent(' ').convert(secrets); + await nanoConfigFile.writeAsString(secretsJson); secrets.clear(); SecretKey.tronSecrets.forEach((sec) { @@ -90,8 +95,7 @@ Future generateSecretsConfig(List args) async { secrets[sec.name] = sec.generate(); }); - secretsJson = JsonEncoder.withIndent(' ').convert(secrets); - await tronConfigFile.writeAsString(secretsJson); + secrets.clear(); } diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 542e91b381..89e4de12d7 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -50,6 +50,10 @@ class SecretKey { SecretKey('ankrApiKey', () => ''), ]; + static final nanoSecrets = [ + SecretKey('nano2ApiKey', () => ''), + ]; + static final tronSecrets = [ SecretKey('tronGridApiKey', () => ''), ]; From 12e3001b3aad7381c51ef348dc86cdf5cc193e05 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Wed, 8 May 2024 17:26:57 +0300 Subject: [PATCH 088/157] Generic enhancements (#1435) * Disable Ledger for MacOS * increase update duration for Solana [skip ci] * change tron default Node Update build number * Add disabling tron grid to privacy settings * update monero.com versions [skip ci] --- assets/text/Release_Notes.txt | 5 ++- assets/tron_node_list.yml | 4 +-- cw_solana/lib/solana_wallet.dart | 2 +- cw_tron/lib/default_tron_tokens.dart | 4 +-- cw_tron/lib/tron_http_provider.dart | 4 +-- cw_tron/lib/tron_wallet.dart | 20 +++++++---- ios/Flutter/AppFrameworkInfo.plist | 2 +- ios/Podfile.lock | 20 +++++------ lib/entities/default_settings_migration.dart | 2 +- lib/entities/preferences_key.dart | 1 + .../provider/thorchain_exchange.provider.dart | 14 ++++---- .../screens/restore/restore_options_page.dart | 22 ++++++------ lib/src/screens/settings/privacy_page.dart | 8 +++++ lib/store/settings_store.dart | 12 +++++++ lib/tron/cw_tron.dart | 5 +++ .../hardware_wallet/ledger_view_model.dart | 35 +++++++++++-------- lib/view_model/link_view_model.dart | 11 ++---- .../settings/privacy_settings_view_model.dart | 12 +++++++ macos/Podfile.lock | 4 +-- macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 10 +++--- res/values/strings_ar.arb | 5 +-- res/values/strings_bg.arb | 5 +-- res/values/strings_cs.arb | 5 +-- res/values/strings_de.arb | 5 +-- res/values/strings_en.arb | 5 +-- res/values/strings_es.arb | 5 +-- res/values/strings_fr.arb | 5 +-- res/values/strings_ha.arb | 5 +-- res/values/strings_hi.arb | 5 +-- res/values/strings_hr.arb | 5 +-- res/values/strings_id.arb | 5 +-- res/values/strings_it.arb | 5 +-- res/values/strings_ja.arb | 5 +-- res/values/strings_ko.arb | 5 +-- res/values/strings_my.arb | 5 +-- res/values/strings_nl.arb | 5 +-- res/values/strings_pl.arb | 5 +-- res/values/strings_pt.arb | 5 +-- res/values/strings_ru.arb | 5 +-- res/values/strings_th.arb | 5 +-- res/values/strings_tl.arb | 5 +-- res/values/strings_tr.arb | 5 +-- res/values/strings_uk.arb | 5 +-- res/values/strings_ur.arb | 5 +-- res/values/strings_yo.arb | 5 +-- res/values/strings_zh.arb | 5 +-- scripts/android/app_env.sh | 8 ++--- scripts/ios/app_env.sh | 8 ++--- scripts/macos/app_env.sh | 8 ++--- tool/configure.dart | 2 ++ 51 files changed, 217 insertions(+), 138 deletions(-) diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index ae63062096..3ff7aa3b48 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1 +1,4 @@ -Bitcoin Bug fixes and enhancements \ No newline at end of file +Hardware wallets support for Bitcoin, Ethereum and Polygon +Add Tron wallet +Security enhancements +Bug fixes and generic enhancements \ No newline at end of file diff --git a/assets/tron_node_list.yml b/assets/tron_node_list.yml index 4c67b920e5..d28e38f2ef 100644 --- a/assets/tron_node_list.yml +++ b/assets/tron_node_list.yml @@ -1,8 +1,8 @@ - - uri: api.trongrid.io + uri: tron-rpc.publicnode.com:443 is_default: true useSSL: true - - uri: tron-rpc.publicnode.com:443 + uri: api.trongrid.io is_default: false useSSL: true \ No newline at end of file diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index 6692b65a6e..4019686985 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -524,7 +524,7 @@ abstract class SolanaWalletBase _transactionsUpdateTimer!.cancel(); } - _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 20), (_) { + _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 30), (_) { _updateBalance(); _updateNativeSOLTransactions(); _updateSPLTokenTransactions(); diff --git a/cw_tron/lib/default_tron_tokens.dart b/cw_tron/lib/default_tron_tokens.dart index ad70f28cd7..6aa6357e64 100644 --- a/cw_tron/lib/default_tron_tokens.dart +++ b/cw_tron/lib/default_tron_tokens.dart @@ -22,14 +22,14 @@ class DefaultTronTokens { symbol: "BTC", contractAddress: "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9", decimal: 8, - enabled: true, + enabled: false, ), TronToken( name: "Ethereum", symbol: "ETH", contractAddress: "TRFe3hT5oYhjSZ6f3ji5FJ7YCfrkWnHRvh", decimal: 18, - enabled: true, + enabled: false, ), TronToken( name: "Wrapped BTC", diff --git a/cw_tron/lib/tron_http_provider.dart b/cw_tron/lib/tron_http_provider.dart index 193a3dbdde..58d313378b 100644 --- a/cw_tron/lib/tron_http_provider.dart +++ b/cw_tron/lib/tron_http_provider.dart @@ -19,7 +19,7 @@ class TronHTTPProvider implements TronServiceProvider { Future> get(TronRequestDetails params, [Duration? timeout]) async { final response = await client.get(Uri.parse(params.url(url)), headers: { 'Content-Type': 'application/json', - 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + if (url.contains("trongrid")) 'TRON-PRO-API-KEY': secrets.tronGridApiKey, }).timeout(timeout ?? defaultRequestTimeout); final data = json.decode(response.body) as Map; return data; @@ -31,7 +31,7 @@ class TronHTTPProvider implements TronServiceProvider { .post(Uri.parse(params.url(url)), headers: { 'Content-Type': 'application/json', - 'TRON-PRO-API-KEY': secrets.tronGridApiKey, + if (url.contains("trongrid")) 'TRON-PRO-API-KEY': secrets.tronGridApiKey, }, body: params.toRequestBody()) .timeout(timeout ?? defaultRequestTimeout); diff --git a/cw_tron/lib/tron_wallet.dart b/cw_tron/lib/tron_wallet.dart index 6cef05348f..96f92e4503 100644 --- a/cw_tron/lib/tron_wallet.dart +++ b/cw_tron/lib/tron_wallet.dart @@ -31,7 +31,6 @@ import 'package:cw_tron/tron_wallet_addresses.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:on_chain/on_chain.dart'; -import 'package:shared_preferences/shared_preferences.dart'; part 'tron_wallet.g.dart'; @@ -61,8 +60,6 @@ abstract class TronWalletBase if (!CakeHive.isAdapterRegistered(TronToken.typeId)) { CakeHive.registerAdapter(TronTokenAdapter()); } - - sharedPrefs.complete(SharedPreferences.getInstance()); } final String? _mnemonic; @@ -81,7 +78,7 @@ abstract class TronWalletBase late String _tronAddress; - late TronClient _client; + late final TronClient _client; Timer? _transactionsUpdateTimer; @@ -102,8 +99,6 @@ abstract class TronWalletBase @observable late ObservableMap balance; - Completer sharedPrefs = Completer(); - Future init() async { await initTronTokensBox(); @@ -464,6 +459,7 @@ abstract class TronWalletBase } } + @override Future? updateBalance() async => await _updateBalance(); List get tronTokenCurrencies => tronTokensBox.values.toList(); @@ -543,7 +539,7 @@ abstract class TronWalletBase _transactionsUpdateTimer!.cancel(); } - _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 20), (_) async { + _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 30), (_) async { _updateBalance(); await fetchTransactions(); fetchTrc20ExcludedTransactions(); @@ -557,4 +553,14 @@ abstract class TronWalletBase String getTronBase58AddressFromHex(String hexAddress) { return TronAddress(hexAddress).toAddress(); } + + void updateScanProviderUsageState(bool isEnabled) { + if (isEnabled) { + fetchTransactions(); + fetchTrc20ExcludedTransactions(); + _setTransactionUpdateTimer(); + } else { + _transactionsUpdateTimer?.cancel(); + } + } } diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index cb6be30981..cae6543771 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index cd03e10a99..0cc57e0751 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -109,6 +109,8 @@ PODS: - flutter_inappwebview_ios/Core (0.0.1): - Flutter - OrderedSet (~> 5.0) + - flutter_local_authentication (1.2.0): + - Flutter - flutter_mailer (0.0.1): - Flutter - flutter_secure_storage (6.0.0): @@ -118,8 +120,6 @@ PODS: - Toast - in_app_review (0.2.0): - Flutter - - local_auth_ios (0.0.1): - - Flutter - MTBBarcodeScanner (5.0.11) - OrderedSet (5.0.0) - package_info (0.0.1): @@ -175,11 +175,11 @@ DEPENDENCIES: - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) + - flutter_local_authentication (from `.symlinks/plugins/flutter_local_authentication/ios`) - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - in_app_review (from `.symlinks/plugins/in_app_review/ios`) - - local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) @@ -233,6 +233,8 @@ EXTERNAL SOURCES: :path: Flutter flutter_inappwebview_ios: :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" + flutter_local_authentication: + :path: ".symlinks/plugins/flutter_local_authentication/ios" flutter_mailer: :path: ".symlinks/plugins/flutter_mailer/ios" flutter_secure_storage: @@ -241,8 +243,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/fluttertoast/ios" in_app_review: :path: ".symlinks/plugins/in_app_review/ios" - local_auth_ios: - :path: ".symlinks/plugins/local_auth_ios/ios" package_info: :path: ".symlinks/plugins/package_info/ios" package_info_plus: @@ -282,18 +282,18 @@ SPEC CHECKSUMS: DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 + flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d - local_auth_ios: 1ba1475238daa33a6ffa2a29242558437be435ac MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 Protobuf: 8e9074797a13c484a79959fdb819ef4ae6da7dbe ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 @@ -301,13 +301,13 @@ SPEC CHECKSUMS: SDWebImage: a3ba0b8faac7228c3c8eadd1a55c9c9fe5e16457 sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 SwiftProtobuf: 407a385e97fd206c4fbe880cc84123989167e0d1 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f Toast: ec33c32b8688982cecc6348adeae667c1b9938da uni_links: d97da20c7701486ba192624d99bffaaffcfc298a UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841 - url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 + url_launcher_ios: 6116280ddcfe98ab8820085d8d76ae7449447586 wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 94b23d3c9c..77db474a99 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -36,7 +36,7 @@ const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002'; const nanoDefaultNodeUri = 'rpc.nano.to'; const nanoDefaultPowNodeUri = 'rpc.nano.to'; const solanaDefaultNodeUri = 'rpc.ankr.com'; -const tronDefaultNodeUri = 'api.trongrid.io'; +const tronDefaultNodeUri = 'tron-rpc.publicnode.com:443'; const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002'; Future defaultSettingsMigration( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 55b5d55a13..cf9ae30190 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -56,6 +56,7 @@ class PreferencesKey { static const pinNativeTokenAtTop = 'pin_native_token_at_top'; static const useEtherscan = 'use_etherscan'; static const usePolygonScan = 'use_polygonscan'; + static const useTronGrid = 'use_trongrid'; static const defaultNanoRep = 'default_nano_representative'; static const defaultBananoRep = 'default_banano_representative'; static const lookupsTwitter = 'looks_up_twitter'; diff --git a/lib/exchange/provider/thorchain_exchange.provider.dart b/lib/exchange/provider/thorchain_exchange.provider.dart index 826e203f3f..22937e6033 100644 --- a/lib/exchange/provider/thorchain_exchange.provider.dart +++ b/lib/exchange/provider/thorchain_exchange.provider.dart @@ -19,15 +19,15 @@ class ThorChainExchangeProvider extends ExchangeProvider { ...(CryptoCurrency.all .where((element) => ![ CryptoCurrency.btc, - CryptoCurrency.eth, + // CryptoCurrency.eth, CryptoCurrency.ltc, CryptoCurrency.bch, - CryptoCurrency.aave, - CryptoCurrency.dai, - CryptoCurrency.gusd, - CryptoCurrency.usdc, - CryptoCurrency.usdterc20, - CryptoCurrency.wbtc, + // CryptoCurrency.aave, + // CryptoCurrency.dai, + // CryptoCurrency.gusd, + // CryptoCurrency.usdc, + // CryptoCurrency.usdterc20, + // CryptoCurrency.wbtc, // TODO: temporarily commented until https://github.com/cake-tech/cake_wallet/pull/1436 is merged ].contains(element)) .toList()) ]; diff --git a/lib/src/screens/restore/restore_options_page.dart b/lib/src/screens/restore/restore_options_page.dart index a0f3a597e5..454d124da3 100644 --- a/lib/src/screens/restore/restore_options_page.dart +++ b/lib/src/screens/restore/restore_options_page.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/option_tile.dart'; import 'package:cake_wallet/themes/extensions/option_tile_theme.dart'; +import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/permission_handler.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; @@ -56,17 +57,18 @@ class RestoreOptionsPage extends BasePage { description: S.of(context).restore_description_from_backup, ), ), - Padding( - padding: EdgeInsets.only(top: 24), - child: OptionTile( - onPressed: () => Navigator.pushNamed( - context, Routes.restoreWalletFromHardwareWallet, - arguments: isNewInstall), - image: imageLedger, - title: S.of(context).restore_title_from_hardware_wallet, - description: S.of(context).restore_description_from_hardware_wallet, + if (DeviceInfo.instance.isMobile) + Padding( + padding: EdgeInsets.only(top: 24), + child: OptionTile( + onPressed: () => Navigator.pushNamed( + context, Routes.restoreWalletFromHardwareWallet, + arguments: isNewInstall), + image: imageLedger, + title: S.of(context).restore_title_from_hardware_wallet, + description: S.of(context).restore_description_from_hardware_wallet, + ), ), - ), Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( diff --git a/lib/src/screens/settings/privacy_page.dart b/lib/src/screens/settings/privacy_page.dart index 7e7f3589bc..0eaf3ffbd2 100644 --- a/lib/src/screens/settings/privacy_page.dart +++ b/lib/src/screens/settings/privacy_page.dart @@ -103,6 +103,14 @@ class PrivacyPage extends BasePage { _privacySettingsViewModel.setUsePolygonScan(value); }, ), + if (_privacySettingsViewModel.canUseTronGrid) + SettingsSwitcherCell( + title: S.current.trongrid_history, + value: _privacySettingsViewModel.useTronGrid, + onValueChange: (BuildContext _, bool value) { + _privacySettingsViewModel.setUseTronGrid(value); + }, + ), SettingsCellWithArrow( title: S.current.domain_looks_up, handler: (context) => Navigator.of(context).pushNamed(Routes.domainLookupsPage), diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index cd9b44391e..ada08c1b6e 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -99,6 +99,7 @@ abstract class SettingsStoreBase with Store { required this.pinNativeTokenAtTop, required this.useEtherscan, required this.usePolygonScan, + required this.useTronGrid, required this.defaultNanoRep, required this.defaultBananoRep, required this.lookupsTwitter, @@ -397,6 +398,11 @@ abstract class SettingsStoreBase with Store { (bool usePolygonScan) => _sharedPreferences.setBool(PreferencesKey.usePolygonScan, usePolygonScan)); + reaction( + (_) => useTronGrid, + (bool useTronGrid) => + _sharedPreferences.setBool(PreferencesKey.useTronGrid, useTronGrid)); + reaction((_) => defaultNanoRep, (String nanoRep) => _sharedPreferences.setString(PreferencesKey.defaultNanoRep, nanoRep)); @@ -674,6 +680,9 @@ abstract class SettingsStoreBase with Store { @observable bool usePolygonScan; + @observable + bool useTronGrid; + @observable String defaultNanoRep; @@ -846,6 +855,7 @@ abstract class SettingsStoreBase with Store { : defaultSeedPhraseLength; final useEtherscan = sharedPreferences.getBool(PreferencesKey.useEtherscan) ?? true; final usePolygonScan = sharedPreferences.getBool(PreferencesKey.usePolygonScan) ?? true; + final useTronGrid = sharedPreferences.getBool(PreferencesKey.useTronGrid) ?? true; final defaultNanoRep = sharedPreferences.getString(PreferencesKey.defaultNanoRep) ?? ""; final defaultBananoRep = sharedPreferences.getString(PreferencesKey.defaultBananoRep) ?? ""; final lookupsTwitter = sharedPreferences.getBool(PreferencesKey.lookupsTwitter) ?? true; @@ -1090,6 +1100,7 @@ abstract class SettingsStoreBase with Store { pinNativeTokenAtTop: pinNativeTokenAtTop, useEtherscan: useEtherscan, usePolygonScan: usePolygonScan, + useTronGrid: useTronGrid, defaultNanoRep: defaultNanoRep, defaultBananoRep: defaultBananoRep, lookupsTwitter: lookupsTwitter, @@ -1227,6 +1238,7 @@ abstract class SettingsStoreBase with Store { pinNativeTokenAtTop = sharedPreferences.getBool(PreferencesKey.pinNativeTokenAtTop) ?? true; useEtherscan = sharedPreferences.getBool(PreferencesKey.useEtherscan) ?? true; usePolygonScan = sharedPreferences.getBool(PreferencesKey.usePolygonScan) ?? true; + useTronGrid = sharedPreferences.getBool(PreferencesKey.useTronGrid) ?? true; defaultNanoRep = sharedPreferences.getString(PreferencesKey.defaultNanoRep) ?? ""; defaultBananoRep = sharedPreferences.getString(PreferencesKey.defaultBananoRep) ?? ""; lookupsTwitter = sharedPreferences.getBool(PreferencesKey.lookupsTwitter) ?? true; diff --git a/lib/tron/cw_tron.dart b/lib/tron/cw_tron.dart index 6e4b0a7b0e..52b4f59f77 100644 --- a/lib/tron/cw_tron.dart +++ b/lib/tron/cw_tron.dart @@ -111,4 +111,9 @@ class CWTron extends Tron { @override String? getTronTRC20EstimatedFee(WalletBase wallet) => (wallet as TronWallet).trc20EstimatedFee; + + @override + void updateTronGridUsageState(WalletBase wallet, bool isEnabled) { + (wallet as TronWallet).updateScanProviderUsageState(isEnabled); + } } diff --git a/lib/view_model/hardware_wallet/ledger_view_model.dart b/lib/view_model/hardware_wallet/ledger_view_model.dart index 453df44db0..06ddaf2751 100644 --- a/lib/view_model/hardware_wallet/ledger_view_model.dart +++ b/lib/view_model/hardware_wallet/ledger_view_model.dart @@ -2,27 +2,34 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/utils/device_info.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:ledger_flutter/ledger_flutter.dart'; import 'package:permission_handler/permission_handler.dart'; class LedgerViewModel { - final Ledger ledger = Ledger( - options: LedgerOptions( - scanMode: ScanMode.balanced, - maxScanDuration: const Duration(minutes: 5), - ), - onPermissionRequest: (_) async { - Map statuses = await [ - Permission.bluetoothScan, - Permission.bluetoothConnect, - Permission.bluetoothAdvertise, - ].request(); + late final Ledger ledger; - return statuses.values.where((status) => status.isDenied).isEmpty; - }, - ); + LedgerViewModel() { + if (DeviceInfo.instance.isMobile) { + ledger = Ledger( + options: LedgerOptions( + scanMode: ScanMode.balanced, + maxScanDuration: const Duration(minutes: 5), + ), + onPermissionRequest: (_) async { + Map statuses = await [ + Permission.bluetoothScan, + Permission.bluetoothConnect, + Permission.bluetoothAdvertise, + ].request(); + + return statuses.values.where((status) => status.isDenied).isEmpty; + }, + ); + } + } Future connectLedger(LedgerDevice device) async { await ledger.connect(device); diff --git a/lib/view_model/link_view_model.dart b/lib/view_model/link_view_model.dart index 714b57e53f..99aed486e9 100644 --- a/lib/view_model/link_view_model.dart +++ b/lib/view_model/link_view_model.dart @@ -7,19 +7,14 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/utils/payment_request.dart'; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; -import 'package:mobx/mobx.dart'; -part 'link_view_model.g.dart'; - -class LinkViewModel = LinkViewModelBase with _$LinkViewModel; - -abstract class LinkViewModelBase with Store { - LinkViewModelBase({ +class LinkViewModel { + LinkViewModel({ required this.settingsStore, required this.appStore, required this.authenticationStore, required this.navigatorKey, - }) {} + }); final SettingsStore settingsStore; final AppStore appStore; diff --git a/lib/view_model/settings/privacy_settings_view_model.dart b/lib/view_model/settings/privacy_settings_view_model.dart index 9ebbd92bb5..9f0ffa14cb 100644 --- a/lib/view_model/settings/privacy_settings_view_model.dart +++ b/lib/view_model/settings/privacy_settings_view_model.dart @@ -3,6 +3,7 @@ import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cake_wallet/tron/tron.dart'; import 'package:cw_core/balance.dart'; import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/transaction_info.dart'; @@ -70,6 +71,9 @@ abstract class PrivacySettingsViewModelBase with Store { @computed bool get usePolygonScan => _settingsStore.usePolygonScan; + @computed + bool get useTronGrid => _settingsStore.useTronGrid; + @computed bool get lookupTwitter => _settingsStore.lookupsTwitter; @@ -92,6 +96,8 @@ abstract class PrivacySettingsViewModelBase with Store { bool get canUsePolygonScan => _wallet.type == WalletType.polygon; + bool get canUseTronGrid => _wallet.type == WalletType.tron; + @action void setShouldSaveRecipientAddress(bool value) => _settingsStore.shouldSaveRecipientAddress = value; @@ -143,4 +149,10 @@ abstract class PrivacySettingsViewModelBase with Store { _settingsStore.usePolygonScan = value; polygon!.updatePolygonScanUsageState(_wallet, value); } + + @action + void setUseTronGrid(bool value) { + _settingsStore.useTronGrid = value; + tron!.updateTronGridUsageState(_wallet, value); + } } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index f1f72a8188..3299cd5bd3 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -122,10 +122,10 @@ SPEC CHECKSUMS: OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c package_info: 6eba2fd8d3371dda2d85c8db6fe97488f24b74b2 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 share_plus_macos: 853ee48e7dce06b633998ca0735d482dd671ade4 - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 911fa9fcc0..d14d203c64 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -207,7 +207,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8536e9a814..fd9942aa89 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ @@ -31,7 +31,7 @@ @@ -54,7 +54,7 @@ @@ -71,7 +71,7 @@ diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index ab6579eef8..137e34ef84 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "يجب أن تكون قيمة المبلغ أكبر من أو تساوي ${minAmount} ${fiatCurrency}", "more_options": "المزيد من الخيارات", "name": "ﻢﺳﺍ", - "nano_gpt_thanks_message": "شكرا لاستخدام nanogpt! تذكر أن تعود إلى المتصفح بعد اكتمال معاملتك!", - "nanogpt_subtitle": "جميع النماذج الأحدث (GPT-4 ، Claude). \\ nno اشتراك ، ادفع مع Crypto.", "nano_current_rep": "الممثل الحالي", + "nano_gpt_thanks_message": "شكرا لاستخدام nanogpt! تذكر أن تعود إلى المتصفح بعد اكتمال معاملتك!", "nano_pick_new_rep": "اختر ممثلًا جديدًا", + "nanogpt_subtitle": "جميع النماذج الأحدث (GPT-4 ، Claude). \\ nno اشتراك ، ادفع مع Crypto.", "narrow": "ضيق", "new_first_wallet_text": "حافظ بسهولة على أمان العملة المشفرة", "new_node_testing": "تجربة العقدة الجديدة", @@ -745,6 +745,7 @@ "transaction_sent_notice": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من مستكشف البلوك والبريد الإلكتروني.", "transactions": "المعاملات", "transactions_by_date": "المعاملات حسب التاريخ", + "trongrid_history": "تاريخ ترونغريد", "trusted": "موثوق به", "tx_commit_exception_no_dust_on_change": "يتم رفض المعاملة مع هذا المبلغ. باستخدام هذه العملات المعدنية ، يمكنك إرسال ${min} دون تغيير أو ${max} الذي يعيد التغيير.", "tx_commit_failed": "فشل ارتكاب المعاملة. يرجى الاتصال بالدعم.", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 6b6a8be1a1..ae2877ab13 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}", "more_options": "Още настройки", "name": "Име", - "nano_gpt_thanks_message": "Благодаря, че използвахте Nanogpt! Не забравяйте да се върнете обратно към браузъра, след като транзакцията ви приключи!", - "nanogpt_subtitle": "Всички най-нови модели (GPT-4, Claude). \\ Nno абонамент, платете с Crypto.", "nano_current_rep": "Настоящ представител", + "nano_gpt_thanks_message": "Благодаря, че използвахте Nanogpt! Не забравяйте да се върнете обратно към браузъра, след като транзакцията ви приключи!", "nano_pick_new_rep": "Изберете нов представител", + "nanogpt_subtitle": "Всички най-нови модели (GPT-4, Claude). \\ Nno абонамент, платете с Crypto.", "narrow": "Тесен", "new_first_wallet_text": "Лесно пазете криптовалутата си в безопасност", "new_node_testing": "Тестване на нов node", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Ако процесът продължи повече от 1 минута, проверете някой block explorer и своя имейл.", "transactions": "Транзакции", "transactions_by_date": "Транзакции по дата", + "trongrid_history": "Trongrid History", "trusted": "Надежден", "tx_commit_exception_no_dust_on_change": "Сделката се отхвърля с тази сума. С тези монети можете да изпратите ${min} без промяна или ${max}, която връща промяна.", "tx_commit_failed": "Компетацията на транзакцията не успя. Моля, свържете се с поддръжката.", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 86a61a5af1..2f61782c85 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}", "more_options": "Více možností", "name": "název", - "nano_gpt_thanks_message": "Děkujeme za používání Nanogpt! Nezapomeňte se po dokončení transakce vydat zpět do prohlížeče!", - "nanogpt_subtitle": "Všechny nejnovější modely (GPT-4, Claude). \\ Nno předplatné, plaťte krypto.", "nano_current_rep": "Současný zástupce", + "nano_gpt_thanks_message": "Děkujeme za používání Nanogpt! Nezapomeňte se po dokončení transakce vydat zpět do prohlížeče!", "nano_pick_new_rep": "Vyberte nového zástupce", + "nanogpt_subtitle": "Všechny nejnovější modely (GPT-4, Claude). \\ Nno předplatné, plaťte krypto.", "narrow": "Úzký", "new_first_wallet_text": "Snadno udržujte svou kryptoměnu v bezpečí", "new_node_testing": "Testování nového uzlu", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Pokud proces nepokročí během 1 minuty, zkontrolujte block explorer a svůj e-mail.", "transactions": "Transakce", "transactions_by_date": "Transakce podle data", + "trongrid_history": "Trongridní historie", "trusted": "Důvěřovat", "tx_commit_exception_no_dust_on_change": "Transakce je zamítnuta s touto částkou. S těmito mincemi můžete odeslat ${min} bez změny nebo ${max}, které se vrátí změna.", "tx_commit_failed": "Transakce COMPORT selhala. Kontaktujte prosím podporu.", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index c0639d88de..edfc152e14 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Der Wert des Betrags muss größer oder gleich ${minAmount} ${fiatCurrency} sein", "more_options": "Weitere Optionen", "name": "Name", - "nano_gpt_thanks_message": "Danke, dass du Nanogpt benutzt hast! Denken Sie daran, nach Abschluss Ihrer Transaktion zurück zum Browser zu gehen!", - "nanogpt_subtitle": "Alle neuesten Modelle (GPT-4, Claude).", "nano_current_rep": "Aktueller Vertreter", + "nano_gpt_thanks_message": "Danke, dass du Nanogpt benutzt hast! Denken Sie daran, nach Abschluss Ihrer Transaktion zurück zum Browser zu gehen!", "nano_pick_new_rep": "Wählen Sie einen neuen Vertreter aus", + "nanogpt_subtitle": "Alle neuesten Modelle (GPT-4, Claude).", "narrow": "Eng", "new_first_wallet_text": "Bewahren Sie Ihre Kryptowährung einfach sicher auf", "new_node_testing": "Neuen Knoten testen", @@ -746,6 +746,7 @@ "transaction_sent_notice": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie einen Block-Explorer und Ihre E-Mail.", "transactions": "Transaktionen", "transactions_by_date": "Transaktionen nach Datum", + "trongrid_history": "Tronglidgeschichte", "trusted": "Vertrauenswürdige", "tx_commit_exception_no_dust_on_change": "Die Transaktion wird diesen Betrag abgelehnt. Mit diesen Münzen können Sie ${min} ohne Veränderung oder ${max} senden, die Änderungen zurückgeben.", "tx_commit_failed": "Transaktionsausschüsse ist fehlgeschlagen. Bitte wenden Sie sich an Support.", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 2ee31b4912..636689380e 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Value of the amount must be more or equal to ${minAmount} ${fiatCurrency}", "more_options": "More Options", "name": "Name", - "nano_gpt_thanks_message": "Thanks for using NanoGPT! Remember to head back to the browser after your transaction completes!", - "nanogpt_subtitle": "All the newest models (GPT-4, Claude).\\nNo subscription, pay with crypto.", "nano_current_rep": "Current Representative", + "nano_gpt_thanks_message": "Thanks for using NanoGPT! Remember to head back to the browser after your transaction completes!", "nano_pick_new_rep": "Pick a new representative", + "nanogpt_subtitle": "All the newest models (GPT-4, Claude).\\nNo subscription, pay with crypto.", "narrow": "Narrow", "new_first_wallet_text": "Keep your crypto safe, piece of cake", "new_node_testing": "New node testing", @@ -745,6 +745,7 @@ "transaction_sent_notice": "If the screen doesn’t proceed after 1 minute, check a block explorer and your email.", "transactions": "Transactions", "transactions_by_date": "Transactions by date", + "trongrid_history": "TronGrid history", "trusted": "Trusted", "tx_commit_exception_no_dust_on_change": "The transaction is rejected with this amount. With these coins you can send ${min} without change or ${max} that returns change.", "tx_commit_failed": "Transaction commit failed. Please contact support.", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 8e41772987..b3f89fc2ef 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "El valor de la cantidad debe ser mayor o igual a ${minAmount} ${fiatCurrency}", "more_options": "Más Opciones", "name": "Nombre", - "nano_gpt_thanks_message": "¡Gracias por usar nanogpt! ¡Recuerde regresar al navegador después de que se complete su transacción!", - "nanogpt_subtitle": "Todos los modelos más nuevos (GPT-4, Claude). \\ Nno suscripción, pague con cripto.", "nano_current_rep": "Representante actual", + "nano_gpt_thanks_message": "¡Gracias por usar nanogpt! ¡Recuerde regresar al navegador después de que se complete su transacción!", "nano_pick_new_rep": "Elija un nuevo representante", + "nanogpt_subtitle": "Todos los modelos más nuevos (GPT-4, Claude). \\ Nno suscripción, pague con cripto.", "narrow": "Angosto", "new_first_wallet_text": "Mantenga fácilmente su criptomoneda segura", "new_node_testing": "Prueba de nuevos nodos", @@ -746,6 +746,7 @@ "transaction_sent_notice": "Si la pantalla no continúa después de 1 minuto, revisa un explorador de bloques y tu correo electrónico.", "transactions": "Actas", "transactions_by_date": "Transacciones por fecha", + "trongrid_history": "Historia trongrid", "trusted": "de confianza", "tx_commit_exception_no_dust_on_change": "La transacción se rechaza con esta cantidad. Con estas monedas puede enviar ${min} sin cambios o ${max} que devuelve el cambio.", "tx_commit_failed": "La confirmación de transacción falló. Póngase en contacto con el soporte.", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 4c589b27fe..a624e487cc 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Le montant doit être au moins égal à ${minAmount} ${fiatCurrency}", "more_options": "Plus d'options", "name": "Nom", - "nano_gpt_thanks_message": "Merci d'avoir utilisé Nanogpt! N'oubliez pas de retourner au navigateur une fois votre transaction terminée!", - "nanogpt_subtitle": "Tous les modèles les plus récents (GPT-4, Claude). \\ NNO abonnement, payez avec crypto.", "nano_current_rep": "Représentant actuel", + "nano_gpt_thanks_message": "Merci d'avoir utilisé Nanogpt! N'oubliez pas de retourner au navigateur une fois votre transaction terminée!", "nano_pick_new_rep": "Choisissez un nouveau représentant", + "nanogpt_subtitle": "Tous les modèles les plus récents (GPT-4, Claude). \\ NNO abonnement, payez avec crypto.", "narrow": "Étroit", "new_first_wallet_text": "Gardez facilement votre crypto-monnaie en sécurité", "new_node_testing": "Test du nouveau nœud", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Si l'écran ne continue pas après 1 minute, vérifiez un explorateur de blocs et votre e-mail.", "transactions": "Transactions", "transactions_by_date": "Transactions par date", + "trongrid_history": "Histoire de la trongride", "trusted": "de confiance", "tx_commit_exception_no_dust_on_change": "La transaction est rejetée avec ce montant. Avec ces pièces, vous pouvez envoyer ${min} sans changement ou ${max} qui renvoie le changement.", "tx_commit_failed": "La validation de la transaction a échoué. Veuillez contacter l'assistance.", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 3fe21b3f14..68635aa5c9 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Darajar adadin dole ne ya zama fiye ko daidai da ${minAmount} ${fiatCurrency}", "more_options": "Ƙarin Zaɓuɓɓuka", "name": "Suna", - "nano_gpt_thanks_message": "Na gode da amfani da Nanogpt! Ka tuna da komawa zuwa mai bincike bayan ma'amalar ka ta cika!", - "nanogpt_subtitle": "Duk sabbin samfuran (GPT-4, CLODE). \\ NNO biyan kuɗi, biya tare da crypto.", "nano_current_rep": "Wakilin Yanzu", + "nano_gpt_thanks_message": "Na gode da amfani da Nanogpt! Ka tuna da komawa zuwa mai bincike bayan ma'amalar ka ta cika!", "nano_pick_new_rep": "Dauki sabon wakili", + "nanogpt_subtitle": "Duk sabbin samfuran (GPT-4, CLODE). \\ NNO biyan kuɗi, biya tare da crypto.", "narrow": "kunkuntar", "new_first_wallet_text": "A sauƙaƙe kiyaye kuzarin ku", "new_node_testing": "Sabbin gwajin kumburi", @@ -747,6 +747,7 @@ "transaction_sent_notice": "Idan allon bai ci gaba ba bayan minti 1, duba mai binciken toshewa da imel ɗin ku.", "transactions": "Ma'amaloli", "transactions_by_date": "Ma'amaloli ta kwanan wata", + "trongrid_history": "Tarihin Trongrid", "trusted": "Amintacce", "tx_commit_exception_no_dust_on_change": "An ƙi ma'amala da wannan adadin. Tare da waɗannan tsabar kudi Zaka iya aika ${min}, ba tare da canji ba ko ${max} wanda ya dawo canzawa.", "tx_commit_failed": "Ma'amala ya kasa. Da fatan za a tuntuɓi goyan baya.", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index e2eb28aa28..027b5448d9 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "राशि का मूल्य अधिक है या करने के लिए बराबर होना चाहिए ${minAmount} ${fiatCurrency}", "more_options": "और विकल्प", "name": "नाम", - "nano_gpt_thanks_message": "Nanogpt का उपयोग करने के लिए धन्यवाद! अपने लेन -देन के पूरा होने के बाद ब्राउज़र पर वापस जाना याद रखें!", - "nanogpt_subtitle": "सभी नवीनतम मॉडल (GPT-4, क्लाउड)। \\ nno सदस्यता, क्रिप्टो के साथ भुगतान करें।", "nano_current_rep": "वर्तमान प्रतिनिधि", + "nano_gpt_thanks_message": "Nanogpt का उपयोग करने के लिए धन्यवाद! अपने लेन -देन के पूरा होने के बाद ब्राउज़र पर वापस जाना याद रखें!", "nano_pick_new_rep": "एक नया प्रतिनिधि चुनें", + "nanogpt_subtitle": "सभी नवीनतम मॉडल (GPT-4, क्लाउड)। \\ nno सदस्यता, क्रिप्टो के साथ भुगतान करें।", "narrow": "सँकरा", "new_first_wallet_text": "आसानी से अपनी क्रिप्टोक्यूरेंसी को सुरक्षित रखें", "new_node_testing": "नई नोड परीक्षण", @@ -747,6 +747,7 @@ "transaction_sent_notice": "अगर 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो ब्लॉक एक्सप्लोरर और अपना ईमेल देखें।", "transactions": "लेन-देन", "transactions_by_date": "तारीख से लेन-देन", + "trongrid_history": "ट्रॉन्ग्रिड का इतिहास", "trusted": "भरोसा", "tx_commit_exception_no_dust_on_change": "लेनदेन को इस राशि से खारिज कर दिया जाता है। इन सिक्कों के साथ आप चेंज या ${min} के बिना ${max} को भेज सकते हैं जो परिवर्तन लौटाता है।", "tx_commit_failed": "लेन -देन प्रतिबद्ध विफल। कृपया संपर्क समर्थन करें।", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 079de0c4fa..5edbc36331 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Vrijednost iznosa mora biti veća ili jednaka ${minAmount} ${fiatCurrency}", "more_options": "Više opcija", "name": "Ime", - "nano_gpt_thanks_message": "Hvala što ste koristili nanogpt! Ne zaboravite da se vratite u preglednik nakon što vam se transakcija završi!", - "nanogpt_subtitle": "Svi najnoviji modeli (GPT-4, Claude). \\ NNO pretplata, plaćajte kripto.", "nano_current_rep": "Trenutni predstavnik", + "nano_gpt_thanks_message": "Hvala što ste koristili nanogpt! Ne zaboravite da se vratite u preglednik nakon što vam se transakcija završi!", "nano_pick_new_rep": "Odaberite novog predstavnika", + "nanogpt_subtitle": "Svi najnoviji modeli (GPT-4, Claude). \\ NNO pretplata, plaćajte kripto.", "narrow": "Usko", "new_first_wallet_text": "Jednostavno čuvajte svoju kripto valutu", "new_node_testing": "Provjera novog nodea", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Ako se zaslon ne nastavi nakon 1 minute, provjerite block explorer i svoju e-poštu.", "transactions": "Transakcije", "transactions_by_date": "Transakcije prema datumu", + "trongrid_history": "Povijest Trongrida", "trusted": "vjerovao", "tx_commit_exception_no_dust_on_change": "Transakcija se odbija s tim iznosom. Pomoću ovih kovanica možete poslati ${min} bez promjene ili ${max} koja vraća promjenu.", "tx_commit_failed": "Obveza transakcije nije uspjela. Molimo kontaktirajte podršku.", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index ae9e4e38fb..2551506c0d 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Nilai jumlah harus lebih atau sama dengan ${minAmount} ${fiatCurrency}", "more_options": "Opsi Lainnya", "name": "Nama", - "nano_gpt_thanks_message": "Terima kasih telah menggunakan Nanogpt! Ingatlah untuk kembali ke browser setelah transaksi Anda selesai!", - "nanogpt_subtitle": "Semua model terbaru (GPT-4, Claude). \\ Nno langganan, bayar dengan crypto.", "nano_current_rep": "Perwakilan saat ini", + "nano_gpt_thanks_message": "Terima kasih telah menggunakan Nanogpt! Ingatlah untuk kembali ke browser setelah transaksi Anda selesai!", "nano_pick_new_rep": "Pilih perwakilan baru", + "nanogpt_subtitle": "Semua model terbaru (GPT-4, Claude). \\ Nno langganan, bayar dengan crypto.", "narrow": "Sempit", "new_first_wallet_text": "Dengan mudah menjaga cryptocurrency Anda aman", "new_node_testing": "Pengujian node baru", @@ -748,6 +748,7 @@ "transaction_sent_notice": "Jika layar tidak bergerak setelah 1 menit, periksa block explorer dan email Anda.", "transactions": "Transaksi", "transactions_by_date": "Transaksi berdasarkan tanggal", + "trongrid_history": "Sejarah Trongrid", "trusted": "Dipercayai", "tx_commit_exception_no_dust_on_change": "Transaksi ditolak dengan jumlah ini. Dengan koin ini Anda dapat mengirim ${min} tanpa perubahan atau ${max} yang mengembalikan perubahan.", "tx_commit_failed": "Transaksi Gagal. Silakan hubungi Dukungan.", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 5fa1b52eff..9bb2ca1eb6 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -367,10 +367,10 @@ "moonpay_alert_text": "Il valore dell'importo deve essere maggiore o uguale a ${minAmount} ${fiatCurrency}", "more_options": "Altre opzioni", "name": "Nome", - "nano_gpt_thanks_message": "Grazie per aver usato il nanogpt! Ricorda di tornare al browser dopo il completamento della transazione!", - "nanogpt_subtitle": "Tutti i modelli più recenti (GPT-4, Claude). Abbonamento nno, paga con cripto.", "nano_current_rep": "Rappresentante attuale", + "nano_gpt_thanks_message": "Grazie per aver usato il nanogpt! Ricorda di tornare al browser dopo il completamento della transazione!", "nano_pick_new_rep": "Scegli un nuovo rappresentante", + "nanogpt_subtitle": "Tutti i modelli più recenti (GPT-4, Claude). Abbonamento nno, paga con cripto.", "narrow": "Stretto", "new_first_wallet_text": "Mantieni facilmente la tua criptovaluta al sicuro", "new_node_testing": "Test novo nodo", @@ -747,6 +747,7 @@ "transaction_sent_notice": "Se lo schermo non procede dopo 1 minuto, controlla un block explorer e la tua email.", "transactions": "Transazioni", "transactions_by_date": "Transazioni per data", + "trongrid_history": "Storia del trongride", "trusted": "di fiducia", "tx_commit_exception_no_dust_on_change": "La transazione viene respinta con questo importo. Con queste monete è possibile inviare ${min} senza modifiche o ${max} che restituisce il cambiamento.", "tx_commit_failed": "Commit di transazione non riuscita. Si prega di contattare il supporto.", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index a01df3c071..55af8cbd1c 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -367,10 +367,10 @@ "moonpay_alert_text": "金額の値は以上でなければなりません ${minAmount} ${fiatCurrency}", "more_options": "その他のオプション", "name": "名前", - "nano_gpt_thanks_message": "NanoGptを使用してくれてありがとう!トランザクションが完了したら、ブラウザに戻ることを忘れないでください!", - "nanogpt_subtitle": "すべての最新モデル(GPT-4、Claude)。\\ nnoサブスクリプション、暗号で支払います。", "nano_current_rep": "現在の代表", + "nano_gpt_thanks_message": "NanoGptを使用してくれてありがとう!トランザクションが完了したら、ブラウザに戻ることを忘れないでください!", "nano_pick_new_rep": "新しい代表者を選びます", + "nanogpt_subtitle": "すべての最新モデル(GPT-4、Claude)。\\ nnoサブスクリプション、暗号で支払います。", "narrow": "狭い", "new_first_wallet_text": "暗号通貨を簡単に安全に保ちます", "new_node_testing": "新しいノードのテスト", @@ -746,6 +746,7 @@ "transaction_sent_notice": "1分経っても画面が進まない場合は、ブロックエクスプローラーとメールアドレスを確認してください。", "transactions": "取引", "transactions_by_date": "日付ごとの取引", + "trongrid_history": "トロンリッドの歴史", "trusted": "信頼できる", "tx_commit_exception_no_dust_on_change": "この金額ではトランザクションは拒否されます。 これらのコインを使用すると、おつりなしの ${min} またはおつりを返す ${max} を送信できます。", "tx_commit_failed": "トランザクションコミットは失敗しました。サポートに連絡してください。", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 53cbeb01f8..3f710becb1 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "금액은 다음보다 크거나 같아야합니다 ${minAmount} ${fiatCurrency}", "more_options": "추가 옵션", "name": "이름", - "nano_gpt_thanks_message": "Nanogpt를 사용해 주셔서 감사합니다! 거래가 완료된 후 브라우저로 돌아가는 것을 잊지 마십시오!", - "nanogpt_subtitle": "모든 최신 모델 (GPT-4, Claude). \\ nno 구독, Crypto로 지불하십시오.", "nano_current_rep": "현재 대표", + "nano_gpt_thanks_message": "Nanogpt를 사용해 주셔서 감사합니다! 거래가 완료된 후 브라우저로 돌아가는 것을 잊지 마십시오!", "nano_pick_new_rep": "새로운 담당자를 선택하십시오", + "nanogpt_subtitle": "모든 최신 모델 (GPT-4, Claude). \\ nno 구독, Crypto로 지불하십시오.", "narrow": "좁은", "new_first_wallet_text": "cryptocurrency를 쉽게 안전하게 유지하십시오", "new_node_testing": "새로운 노드 테스트", @@ -746,6 +746,7 @@ "transaction_sent_notice": "1분 후에도 화면이 진행되지 않으면 블록 익스플로러와 이메일을 확인하세요.", "transactions": "업무", "transactions_by_date": "날짜 별 거래", + "trongrid_history": "트롱 트리드 역사", "trusted": "신뢰할 수 있는", "tx_commit_exception_no_dust_on_change": "이 금액으로 거래가 거부되었습니다. 이 코인을 사용하면 거스름돈 없이 ${min}를 보내거나 거스름돈을 반환하는 ${max}를 보낼 수 있습니다.", "tx_commit_failed": "거래 커밋이 실패했습니다. 지원에 연락하십시오.", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index bb2099b15f..63c7f49039 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "ပမာဏ၏တန်ဖိုးသည် ${minAmount} ${fiatCurrency} နှင့် ပိုနေရမည်", "more_options": "နောက်ထပ် ရွေးချယ်စရာများ", "name": "နာမည်", - "nano_gpt_thanks_message": "nanogpt ကိုသုံးပြီးကျေးဇူးတင်ပါတယ် သင်၏ငွေပေးငွေယူပြီးနောက် browser သို့ပြန်သွားရန်သတိရပါ။", - "nanogpt_subtitle": "အားလုံးနောက်ဆုံးပေါ်မော်ဒယ်များ (GPT-4, Claude) ။ \\ nno subscription, crypto နှင့်အတူပေးဆောင်။", "nano_current_rep": "လက်ရှိကိုယ်စားလှယ်", + "nano_gpt_thanks_message": "nanogpt ကိုသုံးပြီးကျေးဇူးတင်ပါတယ် သင်၏ငွေပေးငွေယူပြီးနောက် browser သို့ပြန်သွားရန်သတိရပါ။", "nano_pick_new_rep": "အသစ်တစ်ခုကိုရွေးပါ", + "nanogpt_subtitle": "အားလုံးနောက်ဆုံးပေါ်မော်ဒယ်များ (GPT-4, Claude) ။ \\ nno subscription, crypto နှင့်အတူပေးဆောင်။", "narrow": "ကျဉ်းသော", "new_first_wallet_text": "သင့်ရဲ့ cryptocurrencrencres ကိုအလွယ်တကူလုံခြုံစွာထားရှိပါ", "new_node_testing": "နှာခေါင်း အသစ်စမ်းသပ်ခြင်း။", @@ -745,6 +745,7 @@ "transaction_sent_notice": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက၊ ပိတ်ဆို့ရှာဖွေသူနှင့် သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", "transactions": "ငွေပေးငွေယူ", "transactions_by_date": "ရက်စွဲအလိုက် ငွေလွှဲမှုများ", + "trongrid_history": "Trongrid သမိုင်း", "trusted": "ယုံတယ်။", "tx_commit_exception_no_dust_on_change": "အဆိုပါငွေပေးငွေယူကဒီပမာဏနှင့်အတူပယ်ချခံရသည်။ ဤဒင်္ဂါးပြားများနှင့်အတူပြောင်းလဲမှုကိုပြန်လည်ပြောင်းလဲခြင်းသို့မဟုတ် ${min} မပါဘဲ ${max} ပေးပို့နိုင်သည်။", "tx_commit_failed": "ငွေပေးငွေယူကျူးလွန်မှုပျက်ကွက်။ ကျေးဇူးပြုပြီးပံ့ပိုးမှုဆက်သွယ်ပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index ca9b5a79ff..c75309aa68 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Waarde van het bedrag moet meer of gelijk zijn aan ${minAmount} ${fiatCurrency}", "more_options": "Meer opties", "name": "Naam", - "nano_gpt_thanks_message": "Bedankt voor het gebruik van Nanogpt! Vergeet niet om terug te gaan naar de browser nadat uw transactie is voltooid!", - "nanogpt_subtitle": "Alle nieuwste modellen (GPT-4, Claude). \\ Nno-abonnement, betalen met crypto.", "nano_current_rep": "Huidige vertegenwoordiger", + "nano_gpt_thanks_message": "Bedankt voor het gebruik van Nanogpt! Vergeet niet om terug te gaan naar de browser nadat uw transactie is voltooid!", "nano_pick_new_rep": "Kies een nieuwe vertegenwoordiger", + "nanogpt_subtitle": "Alle nieuwste modellen (GPT-4, Claude). \\ Nno-abonnement, betalen met crypto.", "narrow": "Smal", "new_first_wallet_text": "Houd uw cryptocurrency gemakkelijk veilig", "new_node_testing": "Nieuwe knooppunttest", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Als het scherm na 1 minuut niet verder gaat, controleer dan een blokverkenner en je e-mail.", "transactions": "Transacties", "transactions_by_date": "Transacties op datum", + "trongrid_history": "Trongrid geschiedenis", "trusted": "vertrouwd", "tx_commit_exception_no_dust_on_change": "De transactie wordt afgewezen met dit bedrag. Met deze munten kunt u ${min} verzenden zonder verandering of ${max} die wijziging retourneert.", "tx_commit_failed": "Transactiebewissing is mislukt. Neem contact op met de ondersteuning.", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 44e8c0b957..c78daa8360 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Wartość kwoty musi być większa lub równa ${minAmount} ${fiatCurrency}", "more_options": "Więcej opcji", "name": "Nazwa", - "nano_gpt_thanks_message": "Dzięki za użycie Nanogpt! Pamiętaj, aby wrócić do przeglądarki po zakończeniu transakcji!", - "nanogpt_subtitle": "Wszystkie najnowsze modele (GPT-4, Claude). \\ Nno subskrypcja, płacą za pomocą kryptografii.", "nano_current_rep": "Obecny przedstawiciel", + "nano_gpt_thanks_message": "Dzięki za użycie Nanogpt! Pamiętaj, aby wrócić do przeglądarki po zakończeniu transakcji!", "nano_pick_new_rep": "Wybierz nowego przedstawiciela", + "nanogpt_subtitle": "Wszystkie najnowsze modele (GPT-4, Claude). \\ Nno subskrypcja, płacą za pomocą kryptografii.", "narrow": "Wąski", "new_first_wallet_text": "Łatwo zapewnić bezpieczeństwo kryptowalut", "new_node_testing": "Testowanie nowych węzłów", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Jeśli ekran nie zmieni się po 1 minucie, sprawdź eksplorator bloków i swój e-mail.", "transactions": "Transakcje", "transactions_by_date": "Transakcje według daty", + "trongrid_history": "Historia Trongrida", "trusted": "Zaufany", "tx_commit_exception_no_dust_on_change": "Transakcja jest odrzucana z tą kwotą. Za pomocą tych monet możesz wysłać ${min} bez zmiany lub ${max}, które zwraca zmianę.", "tx_commit_failed": "Zatwierdzenie transakcji nie powiodło się. Skontaktuj się z obsługą.", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index b8805e789d..710fd5eeaf 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -367,10 +367,10 @@ "moonpay_alert_text": "O valor do montante deve ser maior ou igual a ${minAmount} ${fiatCurrency}", "more_options": "Mais opções", "name": "Nome", - "nano_gpt_thanks_message": "Obrigado por usar o Nanogpt! Lembre -se de voltar para o navegador após a conclusão da transação!", - "nanogpt_subtitle": "Todos os modelos mais recentes (GPT-4, Claude). \\ Nno assinatura, pagam com criptografia.", "nano_current_rep": "Representante atual", + "nano_gpt_thanks_message": "Obrigado por usar o Nanogpt! Lembre -se de voltar para o navegador após a conclusão da transação!", "nano_pick_new_rep": "Escolha um novo representante", + "nanogpt_subtitle": "Todos os modelos mais recentes (GPT-4, Claude). \\ Nno assinatura, pagam com criptografia.", "narrow": "Estreito", "new_first_wallet_text": "Mantenha sua criptomoeda facilmente segura", "new_node_testing": "Teste de novo nó", @@ -747,6 +747,7 @@ "transaction_sent_notice": "Se a tela não prosseguir após 1 minuto, verifique um explorador de blocos e seu e-mail.", "transactions": "Transações", "transactions_by_date": "Transações por data", + "trongrid_history": "História de Trongrid", "trusted": "confiável", "tx_commit_exception_no_dust_on_change": "A transação é rejeitada com esse valor. Com essas moedas, você pode enviar ${min} sem alteração ou ${max} que retorna alterações.", "tx_commit_failed": "A confirmação da transação falhou. Entre em contato com o suporte.", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 32f513fe5f..4780dde5d3 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Сумма должна быть больше или равна ${minAmount} ${fiatCurrency}", "more_options": "Дополнительные параметры", "name": "Имя", - "nano_gpt_thanks_message": "Спасибо за использование Nanogpt! Не забудьте вернуться в браузер после завершения транзакции!", - "nanogpt_subtitle": "Все новейшие модели (GPT-4, Claude). \\ Nno Подписка, платите с крипто.", "nano_current_rep": "Нынешний представитель", + "nano_gpt_thanks_message": "Спасибо за использование Nanogpt! Не забудьте вернуться в браузер после завершения транзакции!", "nano_pick_new_rep": "Выберите нового представителя", + "nanogpt_subtitle": "Все новейшие модели (GPT-4, Claude). \\ Nno Подписка, платите с крипто.", "narrow": "Узкий", "new_first_wallet_text": "Легко сохранить свою криптовалюту в безопасности", "new_node_testing": "Тестирование новой ноды", @@ -746,6 +746,7 @@ "transaction_sent_notice": "Если экран не отображается через 1 минуту, проверьте обозреватель блоков и свою электронную почту.", "transactions": "Транзакции", "transactions_by_date": "Сортировать по дате", + "trongrid_history": "История Тронгрида", "trusted": "доверенный", "tx_commit_exception_no_dust_on_change": "Транзакция отклоняется с этой суммой. С этими монетами вы можете отправлять ${min} без изменения или ${max}, которые возвращают изменение.", "tx_commit_failed": "Комплект транзакции не удался. Пожалуйста, свяжитесь с поддержкой.", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 18b9adce91..945cf88de8 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "มูลค่าของจำนวนต้องมากกว่าหรือเท่ากับ ${minAmount} ${fiatCurrency}", "more_options": "ตัวเลือกเพิ่มเติม", "name": "ชื่อ", - "nano_gpt_thanks_message": "ขอบคุณที่ใช้ Nanogpt! อย่าลืมกลับไปที่เบราว์เซอร์หลังจากการทำธุรกรรมของคุณเสร็จสิ้น!", - "nanogpt_subtitle": "รุ่นใหม่ล่าสุดทั้งหมด (GPT-4, Claude). การสมัครสมาชิก \\ nno, จ่ายด้วย crypto", "nano_current_rep": "ตัวแทนปัจจุบัน", + "nano_gpt_thanks_message": "ขอบคุณที่ใช้ Nanogpt! อย่าลืมกลับไปที่เบราว์เซอร์หลังจากการทำธุรกรรมของคุณเสร็จสิ้น!", "nano_pick_new_rep": "เลือกตัวแทนใหม่", + "nanogpt_subtitle": "รุ่นใหม่ล่าสุดทั้งหมด (GPT-4, Claude). การสมัครสมาชิก \\ nno, จ่ายด้วย crypto", "narrow": "แคบ", "new_first_wallet_text": "ทำให้สกุลเงินดิจิตอลของคุณปลอดภัยได้อย่างง่ายดาย", "new_node_testing": "การทดสอบโหนดใหม่", @@ -745,6 +745,7 @@ "transaction_sent_notice": "ถ้าหน้าจอไม่ขึ้นหลังจาก 1 นาทีแล้ว ให้ตรวจสอบ block explorer และอีเมลของคุณ", "transactions": "ธุรกรรม", "transactions_by_date": "ธุรกรรมตามวันที่", + "trongrid_history": "ประวัติศาสตร์ Trongrid", "trusted": "มั่นคง", "tx_commit_exception_no_dust_on_change": "ธุรกรรมถูกปฏิเสธด้วยจำนวนเงินนี้ ด้วยเหรียญเหล่านี้คุณสามารถส่ง ${min} โดยไม่ต้องเปลี่ยนแปลงหรือ ${max} ที่ส่งคืนการเปลี่ยนแปลง", "tx_commit_failed": "การทำธุรกรรมล้มเหลว กรุณาติดต่อฝ่ายสนับสนุน", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 76a94bbe22..6f20a274f0 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Ang halaga ng halaga ay dapat na higit pa o katumbas ng ${minAmount} ${fiatCurrency}", "more_options": "Higit pang mga pagpipilian", "name": "Pangalan", - "nano_gpt_thanks_message": "Salamat sa paggamit ng nanogpt! Tandaan na bumalik sa browser matapos makumpleto ang iyong transaksyon!", - "nanogpt_subtitle": "Ang lahat ng mga pinakabagong modelo (GPT-4, Claude). \\ Nno subscription, magbayad gamit ang crypto.", "nano_current_rep": "Kasalukuyang kinatawan", + "nano_gpt_thanks_message": "Salamat sa paggamit ng nanogpt! Tandaan na bumalik sa browser matapos makumpleto ang iyong transaksyon!", "nano_pick_new_rep": "Pumili ng isang bagong kinatawan", + "nanogpt_subtitle": "Ang lahat ng mga pinakabagong modelo (GPT-4, Claude). \\ Nno subscription, magbayad gamit ang crypto.", "narrow": "Makitid", "new_first_wallet_text": "Panatilihing ligtas ang iyong crypto, piraso ng cake", "new_node_testing": "Bagong pagsubok sa node", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang isang block explorer at ang iyong email.", "transactions": "Mga Transaksyon", "transactions_by_date": "Mga Transaksyon ayon sa Petsa", + "trongrid_history": "Kasaysayan ng Trongrid", "trusted": "Pinagkakatiwalaan", "tx_commit_exception_no_dust_on_change": "Ang transaksyon ay tinanggihan sa halagang ito. Sa mga barya na ito maaari kang magpadala ng ${min} nang walang pagbabago o ${max} na nagbabalik ng pagbabago.", "tx_commit_failed": "Nabigo ang transaksyon sa transaksyon. Mangyaring makipag -ugnay sa suporta.", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 62e541deda..e53f0a2bf9 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Tutar ${minAmount} ${fiatCurrency} miktarına eşit veya daha fazla olmalıdır", "more_options": "Daha Fazla Seçenek", "name": "İsim", - "nano_gpt_thanks_message": "Nanogpt kullandığınız için teşekkürler! İşleminiz tamamlandıktan sonra tarayıcıya geri dönmeyi unutmayın!", - "nanogpt_subtitle": "En yeni modeller (GPT-4, Claude). \\ Nno aboneliği, kripto ile ödeme yapın.", "nano_current_rep": "Mevcut temsilci", + "nano_gpt_thanks_message": "Nanogpt kullandığınız için teşekkürler! İşleminiz tamamlandıktan sonra tarayıcıya geri dönmeyi unutmayın!", "nano_pick_new_rep": "Yeni bir temsilci seçin", + "nanogpt_subtitle": "En yeni modeller (GPT-4, Claude). \\ Nno aboneliği, kripto ile ödeme yapın.", "narrow": "Dar", "new_first_wallet_text": "Kripto para biriminizi kolayca güvende tutun", "new_node_testing": "Yeni düğüm test ediliyor", @@ -745,6 +745,7 @@ "transaction_sent_notice": "Ekran 1 dakika sonra ilerlemezse, blok gezgininden ve e-postanızdan kontrol edin.", "transactions": "İşlemler", "transactions_by_date": "Tarihe göre transferler", + "trongrid_history": "Trongrid tarihi", "trusted": "Güvenilir", "tx_commit_exception_no_dust_on_change": "İşlem bu miktarla reddedilir. Bu madeni paralarla değişiklik yapmadan ${min} veya değişikliği döndüren ${max} gönderebilirsiniz.", "tx_commit_failed": "İşlem taahhüdü başarısız oldu. Lütfen Destek ile iletişime geçin.", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 6184fed116..c2f95e5605 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "Значення суми має бути більшим або дорівнювати ${minAmount} ${fiatCurrency}", "more_options": "Більше параметрів", "name": "Ім'я", - "nano_gpt_thanks_message": "Дякуємо за використання наногпта! Не забудьте повернутися до браузера після завершення транзакції!", - "nanogpt_subtitle": "Усі найновіші моделі (GPT-4, Claude). \\ Nno підписка, оплата криптовалютою.", "nano_current_rep": "Поточний представник", + "nano_gpt_thanks_message": "Дякуємо за використання наногпта! Не забудьте повернутися до браузера після завершення транзакції!", "nano_pick_new_rep": "Виберіть нового представника", + "nanogpt_subtitle": "Усі найновіші моделі (GPT-4, Claude). \\ Nno підписка, оплата криптовалютою.", "narrow": "вузькі", "new_first_wallet_text": "Легко зберігайте свою криптовалюту в безпеці", "new_node_testing": "Тестування нового вузла", @@ -746,6 +746,7 @@ "transaction_sent_notice": "Якщо екран не відображається через 1 хвилину, перевірте провідник блоків і свою електронну пошту.", "transactions": "Транзакції", "transactions_by_date": "Сортувати по даті", + "trongrid_history": "Тронгрідська історія", "trusted": "довіряють", "tx_commit_exception_no_dust_on_change": "Транзакція відхилена цією сумою. За допомогою цих монет ви можете надіслати ${min} без змін або ${max}, що повертає зміни.", "tx_commit_failed": "Транзакційна комісія не вдалося. Будь ласка, зв'яжіться з підтримкою.", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index dadd3505bb..17d8e691ea 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔", "more_options": "مزید زرائے", "name": "ﻡﺎﻧ", - "nano_gpt_thanks_message": "نانوگپٹ استعمال کرنے کا شکریہ! اپنے لین دین کی تکمیل کے بعد براؤزر کی طرف واپس جانا یاد رکھیں!", - "nanogpt_subtitle": "تمام تازہ ترین ماڈل (GPT-4 ، کلاڈ)۔ n n no سبسکرپشن ، کریپٹو کے ساتھ ادائیگی کریں۔", "nano_current_rep": "موجودہ نمائندہ", + "nano_gpt_thanks_message": "نانوگپٹ استعمال کرنے کا شکریہ! اپنے لین دین کی تکمیل کے بعد براؤزر کی طرف واپس جانا یاد رکھیں!", "nano_pick_new_rep": "ایک نیا نمائندہ منتخب کریں", + "nanogpt_subtitle": "تمام تازہ ترین ماڈل (GPT-4 ، کلاڈ)۔ n n no سبسکرپشن ، کریپٹو کے ساتھ ادائیگی کریں۔", "narrow": "تنگ", "new_first_wallet_text": "آسانی سے اپنے cryptocurrency محفوظ رکھیں", "new_node_testing": "نیا نوڈ ٹیسٹنگ", @@ -747,6 +747,7 @@ "transaction_sent_notice": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے، تو بلاک ایکسپلورر اور اپنا ای میل چیک کریں۔", "transactions": "لین دین", "transactions_by_date": "تاریخ کے لحاظ سے لین دین", + "trongrid_history": "ٹرانگریڈ ہسٹری", "trusted": "قابل اعتماد", "tx_commit_exception_no_dust_on_change": "اس رقم سے لین دین کو مسترد کردیا گیا ہے۔ ان سککوں کے ذریعہ آپ بغیر کسی تبدیلی کے ${min} یا ${max} بھیج سکتے ہیں جو لوٹتے ہیں۔", "tx_commit_failed": "ٹرانزیکشن کمٹ ناکام ہوگیا۔ براہ کرم سپورٹ سے رابطہ کریں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index d9fa48a451..5838b1dbad 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -367,10 +367,10 @@ "moonpay_alert_text": "Iye owó kò gbọ́dọ̀ kéré ju ${minAmount} ${fiatCurrency}", "more_options": "Ìyàn àfikún", "name": "Oruko", - "nano_gpt_thanks_message": "O ṣeun fun lilo Nonnogt! Ranti lati tẹle pada si ẹrọ lilọ kiri ayelujara lẹhin iṣowo rẹ pari!", - "nanogpt_subtitle": "Gbogbo awọn awoṣe tuntun (GPT-4, Claude). \\ Nno alabapin kan, sanwo pẹlu Crypto.", "nano_current_rep": "Aṣoju lọwọlọwọ", + "nano_gpt_thanks_message": "O ṣeun fun lilo Nonnogt! Ranti lati tẹle pada si ẹrọ lilọ kiri ayelujara lẹhin iṣowo rẹ pari!", "nano_pick_new_rep": "Mu aṣoju tuntun kan", + "nanogpt_subtitle": "Gbogbo awọn awoṣe tuntun (GPT-4, Claude). \\ Nno alabapin kan, sanwo pẹlu Crypto.", "narrow": "Taara", "new_first_wallet_text": "Ni rọọrun jẹ ki o jẹ ki o jẹ ki o jẹ ki a mu", "new_node_testing": "A ń dán apẹka títun wò", @@ -746,6 +746,7 @@ "transaction_sent_notice": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ olùṣèwádìí àkójọpọ̀ àti ímeèlì yín wò.", "transactions": "Àwọn àránṣẹ́", "transactions_by_date": "Àwọn àránṣẹ́ t'á ti fi aago ṣa", + "trongrid_history": "Itan Trongrid", "trusted": "A ti fọkàn ẹ̀ tán", "tx_commit_exception_no_dust_on_change": "Iṣowo naa ti kọ pẹlu iye yii. Pẹlu awọn owó wọnyi o le firanṣẹ ${min} laisi ayipada tabi ${max} ni iyipada iyipada.", "tx_commit_failed": "Idunadura iṣowo kuna. Jọwọ kan si atilẹyin.", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 089d5fa74a..4c7a108835 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -366,10 +366,10 @@ "moonpay_alert_text": "金额的价值必须大于或等于 ${minAmount} ${fiatCurrency}", "more_options": "更多选项", "name": "姓名", - "nano_gpt_thanks_message": "感谢您使用Nanogpt!事务完成后,请记住回到浏览器!", - "nanogpt_subtitle": "所有最新型号(GPT-4,Claude)。\\ nno订阅,用加密货币付款。", "nano_current_rep": "当前代表", + "nano_gpt_thanks_message": "感谢您使用Nanogpt!事务完成后,请记住回到浏览器!", "nano_pick_new_rep": "选择新代表", + "nanogpt_subtitle": "所有最新型号(GPT-4,Claude)。\\ nno订阅,用加密货币付款。", "narrow": "狭窄的", "new_first_wallet_text": "轻松确保您的加密货币安全", "new_node_testing": "新节点测试", @@ -745,6 +745,7 @@ "transaction_sent_notice": "如果屏幕在 1 分钟后没有继续,请检查区块浏览器和您的电子邮件。", "transactions": "交易情况", "transactions_by_date": "按日期交易", + "trongrid_history": "Trongrid历史", "trusted": "值得信赖", "tx_commit_exception_no_dust_on_change": "交易被此金额拒绝。使用这些硬币,您可以发送${min}无需更改或返回${max}的变化。", "tx_commit_failed": "交易承诺失败。请联系支持。", diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 52f32b2979..77ee02b9c2 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.3" -MONERO_COM_BUILD_NUMBER=84 +MONERO_COM_VERSION="1.13.0" +MONERO_COM_BUILD_NUMBER=85 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.15.6" -CAKEWALLET_BUILD_NUMBER=207 +CAKEWALLET_VERSION="4.16.0" +CAKEWALLET_BUILD_NUMBER=208 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 90f7d807c1..e772ea1285 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.12.3" -MONERO_COM_BUILD_NUMBER=82 +MONERO_COM_VERSION="1.13.0" +MONERO_COM_BUILD_NUMBER=83 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.6" -CAKEWALLET_BUILD_NUMBER=232 +CAKEWALLET_VERSION="4.16.0" +CAKEWALLET_BUILD_NUMBER=234 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 758bfe900c..95201dc025 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.2.3" -MONERO_COM_BUILD_NUMBER=16 +MONERO_COM_VERSION="1.3.0" +MONERO_COM_BUILD_NUMBER=17 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.6" -CAKEWALLET_BUILD_NUMBER=67 +CAKEWALLET_VERSION="1.9.0" +CAKEWALLET_BUILD_NUMBER=69 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index f2391103d5..64f43d3499 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -1112,6 +1112,8 @@ abstract class Tron { String? getTronNativeEstimatedFee(WalletBase wallet); String? getTronTRC20EstimatedFee(WalletBase wallet); + + void updateTronGridUsageState(WalletBase wallet, bool isEnabled); } """; From c35929f28e563e26b64184e4ea724dedd01544cc Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Wed, 8 May 2024 21:04:25 +0300 Subject: [PATCH 089/157] update flutter secure storage (#1437) * update flutter secure storage * fix flutter secure storage version --- pubspec_base.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pubspec_base.yaml b/pubspec_base.yaml index ddf0bd2e07..02e61e0b47 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -15,8 +15,8 @@ dependencies: git: url: https://github.com/cake-tech/flutter_secure_storage.git path: flutter_secure_storage - ref: cake-8.0.0 - version: 8.0.0 + ref: cake-9.0.0 + version: 9.0.0 # provider: ^6.0.3 rxdart: ^0.27.4 yaml: ^3.1.1 From bfb78eded98085b8f0a65f233b332490d8e4e5a7 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 8 May 2024 21:23:27 +0100 Subject: [PATCH 090/157] CW-599-Extract-Secure-Storage (#1353) * feat: Modify app to depend on secure storage abstraction instead of the direct package * chore: Revert command * Update configure.dart [skip ci] * Update configure.dart * Fix conflicts * clean up and fixes * minor fix --------- Co-authored-by: Omar Hatem --- .gitignore | 1 + lib/core/auth_service.dart | 14 +-- lib/core/backup_service.dart | 19 ++- lib/core/key_service.dart | 19 ++- lib/core/secure_storage.dart | 38 ------ lib/core/wallet_creation_service.dart | 4 +- lib/di.dart | 50 ++++++-- lib/entities/default_settings_migration.dart | 15 +-- lib/entities/fs_migration.dart | 66 ++++------ lib/entities/get_encryption_key.dart | 5 +- lib/entities/preferences_key.dart | 6 +- lib/entities/secret_store_key.dart | 8 +- lib/ionia/ionia_service.dart | 4 +- lib/main.dart | 9 +- .../support_chat/support_chat_page.dart | 4 +- .../support_chat/widgets/chatwoot_widget.dart | 5 +- lib/store/secret_store.dart | 5 +- lib/store/settings_store.dart | 49 ++++---- lib/store/yat/yat_store.dart | 4 +- lib/view_model/backup_view_model.dart | 5 +- .../edit_backup_password_view_model.dart | 5 +- pubspec_base.yaml | 6 - tool/configure.dart | 117 ++++++++++++++++++ 23 files changed, 259 insertions(+), 199 deletions(-) delete mode 100644 lib/core/secure_storage.dart diff --git a/.gitignore b/.gitignore index 24b7291f84..d0952ca98e 100644 --- a/.gitignore +++ b/.gitignore @@ -156,6 +156,7 @@ assets/images/app_logo.png macos/Runner/Info.plist macos/Runner/DebugProfile.entitlements macos/Runner/Release.entitlements +lib/core/secure_storage.dart macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png diff --git a/lib/core/auth_service.dart b/lib/core/auth_service.dart index 66943bb7f9..7917013957 100644 --- a/lib/core/auth_service.dart +++ b/lib/core/auth_service.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:io'; import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/core/totp_request_details.dart'; @@ -7,7 +6,6 @@ import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; @@ -35,14 +33,14 @@ class AuthService with Store { Routes.restoreOptions, ]; - final FlutterSecureStorage secureStorage; + final SecureStorage secureStorage; final SharedPreferences sharedPreferences; final SettingsStore settingsStore; Future setPassword(String password) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); final encodedPassword = encodedPinCode(pin: password); - await writeSecureStorage(secureStorage, key: key, value: encodedPassword); + await secureStorage.write(key: key, value: encodedPassword); } Future canAuthenticate() async { @@ -61,7 +59,7 @@ class AuthService with Store { Future authenticate(String pin) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); - final encodedPin = await readSecureStorage(secureStorage, key); + final encodedPin = await secureStorage.read(key: key); final decodedPin = decodedPinCode(pin: encodedPin!); return decodedPin == pin; @@ -69,11 +67,7 @@ class AuthService with Store { void saveLastAuthTime() { int timestamp = DateTime.now().millisecondsSinceEpoch; - writeSecureStorage( - secureStorage, - key: SecureKey.lastAuthTimeMilliseconds, - value: timestamp.toString(), - ); + secureStorage.write(key: SecureKey.lastAuthTimeMilliseconds, value: timestamp.toString()); } Future requireAuth() async { diff --git a/lib/core/backup_service.dart b/lib/core/backup_service.dart index d1092b0242..d0d9a8a26b 100644 --- a/lib/core/backup_service.dart +++ b/lib/core/backup_service.dart @@ -7,7 +7,6 @@ import 'package:cake_wallet/utils/device_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:path_provider/path_provider.dart'; import 'package:cryptography/cryptography.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -25,7 +24,7 @@ import 'package:cake_backup/backup.dart' as cake_backup; class BackupService { BackupService( - this._flutterSecureStorage, this._walletInfoSource, this._keyService, this._sharedPreferences) + this._secureStorage, this._walletInfoSource, this._keyService, this._sharedPreferences) : _cipher = Cryptography.instance.chacha20Poly1305Aead(), _correctWallets = []; @@ -35,7 +34,7 @@ class BackupService { static const _v2 = 2; final Cipher _cipher; - final FlutterSecureStorage _flutterSecureStorage; + final SecureStorage _secureStorage; final SharedPreferences _sharedPreferences; final Box _walletInfoSource; final KeyService _keyService; @@ -374,15 +373,14 @@ class BackupService { final backupPasswordKey = generateStoreKeyFor(key: SecretStoreKey.backupPassword); final backupPassword = keychainJSON[backupPasswordKey] as String; - await writeSecureStorage(_flutterSecureStorage, key: backupPasswordKey, value: backupPassword); + await _secureStorage.write(key: backupPasswordKey, value: backupPassword); keychainWalletsInfo.forEach((dynamic rawInfo) async { final info = rawInfo as Map; await importWalletKeychainInfo(info); }); - await writeSecureStorage(_flutterSecureStorage, - key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); + await _secureStorage.write(key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); keychainDumpFile.deleteSync(); } @@ -401,15 +399,14 @@ class BackupService { final backupPasswordKey = generateStoreKeyFor(key: SecretStoreKey.backupPassword); final backupPassword = keychainJSON[backupPasswordKey] as String; - await writeSecureStorage(_flutterSecureStorage, key: backupPasswordKey, value: backupPassword); + await _secureStorage.write(key: backupPasswordKey, value: backupPassword); keychainWalletsInfo.forEach((dynamic rawInfo) async { final info = rawInfo as Map; await importWalletKeychainInfo(info); }); - await writeSecureStorage(_flutterSecureStorage, - key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); + await _secureStorage.write(key: pinCodeKey, value: encodedPinCode(pin: decodedPin)); keychainDumpFile.deleteSync(); } @@ -429,7 +426,7 @@ class BackupService { Future _exportKeychainDumpV2(String password, {String keychainSalt = secrets.backupKeychainSalt}) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); - final encodedPin = await _flutterSecureStorage.read(key: key); + final encodedPin = await _secureStorage.read(key: key); final decodedPin = decodedPinCode(pin: encodedPin!); final wallets = await Future.wait(_walletInfoSource.values.map((walletInfo) async { return { @@ -439,7 +436,7 @@ class BackupService { }; })); final backupPasswordKey = generateStoreKeyFor(key: SecretStoreKey.backupPassword); - final backupPassword = await _flutterSecureStorage.read(key: backupPasswordKey); + final backupPassword = await _secureStorage.read(key: backupPasswordKey); final data = utf8.encode( json.encode({'pin': decodedPin, 'wallets': wallets, backupPasswordKey: backupPassword})); final encrypted = await _encryptV2(Uint8List.fromList(data), '$keychainSalt$password'); diff --git a/lib/core/key_service.dart b/lib/core/key_service.dart index ba2da4de63..71fb5a4fcc 100644 --- a/lib/core/key_service.dart +++ b/lib/core/key_service.dart @@ -1,31 +1,30 @@ import 'package:cake_wallet/core/secure_storage.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cake_wallet/entities/encrypt.dart'; class KeyService { KeyService(this._secureStorage); - final FlutterSecureStorage _secureStorage; + final SecureStorage _secureStorage; Future getWalletPassword({required String walletName}) async { - final key = generateStoreKeyFor( - key: SecretStoreKey.moneroWalletPassword, walletName: walletName); - final encodedPassword = await readSecureStorage(_secureStorage, key); + final key = + generateStoreKeyFor(key: SecretStoreKey.moneroWalletPassword, walletName: walletName); + final encodedPassword = await _secureStorage.read(key: key); return decodeWalletPassword(password: encodedPassword!); } Future saveWalletPassword({required String walletName, required String password}) async { - final key = generateStoreKeyFor( - key: SecretStoreKey.moneroWalletPassword, walletName: walletName); + final key = + generateStoreKeyFor(key: SecretStoreKey.moneroWalletPassword, walletName: walletName); final encodedPassword = encodeWalletPassword(password: password); - await writeSecureStorage(_secureStorage, key: key, value: encodedPassword); + await _secureStorage.write(key: key, value: encodedPassword); } Future deleteWalletPassword({required String walletName}) async { - final key = generateStoreKeyFor( - key: SecretStoreKey.moneroWalletPassword, walletName: walletName); + final key = + generateStoreKeyFor(key: SecretStoreKey.moneroWalletPassword, walletName: walletName); await _secureStorage.delete(key: key); } diff --git a/lib/core/secure_storage.dart b/lib/core/secure_storage.dart deleted file mode 100644 index 5afb36d296..0000000000 --- a/lib/core/secure_storage.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -// For now, we can create a utility function to handle this. -// -// However, we could look into abstracting the entire FlutterSecureStorage package -// so the app doesn't depend on the package directly but an absraction. -// It'll make these kind of modifications to read/write come from a single point. - -Future readSecureStorage(FlutterSecureStorage secureStorage, String key) async { - String? result; - const maxWait = Duration(seconds: 3); - const checkInterval = Duration(milliseconds: 200); - - DateTime start = DateTime.now(); - - while (result == null && DateTime.now().difference(start) < maxWait) { - result = await secureStorage.read(key: key); - - if (result != null) { - break; - } - - await Future.delayed(checkInterval); - } - - return result; -} - -Future writeSecureStorage(FlutterSecureStorage secureStorage, - {required String key, required String value}) async { - // delete the value before writing on macOS because of a weird bug - // https://github.com/mogol/flutter_secure_storage/issues/581 - if (Platform.isMacOS) { - await secureStorage.delete(key: key); - } - await secureStorage.write(key: key, value: value); -} diff --git a/lib/core/wallet_creation_service.dart b/lib/core/wallet_creation_service.dart index 646e47537a..a55e9ee3fa 100644 --- a/lib/core/wallet_creation_service.dart +++ b/lib/core/wallet_creation_service.dart @@ -1,8 +1,8 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive/hive.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cake_wallet/core/key_service.dart'; @@ -25,7 +25,7 @@ class WalletCreationService { } WalletType type; - final FlutterSecureStorage secureStorage; + final SecureStorage secureStorage; final SharedPreferences sharedPreferences; final SettingsStore settingsStore; final KeyService keyService; diff --git a/lib/di.dart b/lib/di.dart index 20157b0e00..3ee57cb534 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -236,6 +236,32 @@ import 'package:get_it/get_it.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; +import 'package:cake_wallet/core/wallet_creation_service.dart'; +import 'package:cake_wallet/store/app_store.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cake_wallet/view_model/wallet_new_vm.dart'; +import 'package:cake_wallet/store/authentication_store.dart'; +import 'package:cake_wallet/store/dashboard/trades_store.dart'; +import 'package:cake_wallet/store/dashboard/trade_filter_store.dart'; +import 'package:cake_wallet/store/dashboard/transaction_filter_store.dart'; +import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; +import 'package:cake_wallet/store/templates/send_template_store.dart'; +import 'package:cake_wallet/store/templates/exchange_template_store.dart'; +import 'package:cake_wallet/entities/template.dart'; +import 'package:cake_wallet/exchange/exchange_template.dart'; +import 'package:cake_wallet/.secrets.g.dart' as secrets; +import 'package:cake_wallet/src/screens/dashboard/pages/address_page.dart'; +import 'package:cake_wallet/anypay/anypay_api.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_gift_card_details_view_model.dart'; +import 'package:cake_wallet/src/screens/ionia/cards/ionia_payment_status_page.dart'; +import 'package:cake_wallet/view_model/ionia/ionia_payment_status_view_model.dart'; +import 'package:cake_wallet/anypay/any_pay_payment_committed_info.dart'; +import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart'; +import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart'; +import 'package:cake_wallet/core/wallet_loading_service.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cake_wallet/entities/qr_view_data.dart'; import 'buy/dfx/dfx_buy_provider.dart'; import 'core/totp_request_details.dart'; @@ -268,7 +294,7 @@ Future setup({ required Box ordersSource, required Box unspentCoinsInfoSource, required Box anonpayInvoiceInfoSource, - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, required GlobalKey navigatorKey, }) async { _walletInfoSource = walletInfoSource; @@ -285,7 +311,7 @@ Future setup({ if (!_isSetupFinished) { getIt.registerSingletonAsync(() => SharedPreferences.getInstance()); - getIt.registerSingleton(secureStorage); + getIt.registerSingleton(secureStorage); } if (!_isSetupFinished) { getIt.registerFactory(() => BackgroundTasks()); @@ -333,22 +359,22 @@ Future setup({ getIt.registerSingleton( ExchangeTemplateStore(templateSource: _exchangeTemplates)); getIt.registerSingleton( - YatStore(appStore: getIt.get(), secureStorage: getIt.get()) + YatStore(appStore: getIt.get(), secureStorage: getIt.get()) ..init()); getIt.registerSingleton( AnonpayTransactionsStore(anonpayInvoiceInfoSource: _anonpayInvoiceInfoSource)); - final secretStore = await SecretStoreBase.load(getIt.get()); + final secretStore = await SecretStoreBase.load(getIt.get()); getIt.registerSingleton(secretStore); - getIt.registerFactory(() => KeyService(getIt.get())); + getIt.registerFactory(() => KeyService(getIt.get())); getIt.registerFactoryParam((type, _) => WalletCreationService( initialType: type, keyService: getIt.get(), - secureStorage: getIt.get(), + secureStorage: getIt.get(), sharedPreferences: getIt.get(), settingsStore: getIt.get(), walletInfoSource: _walletInfoSource)); @@ -403,7 +429,7 @@ Future setup({ getIt.registerFactory( () => AuthService( - secureStorage: getIt.get(), + secureStorage: getIt.get(), sharedPreferences: getIt.get(), settingsStore: getIt.get(), ), @@ -980,16 +1006,16 @@ Future setup({ trades: _tradesSource, settingsStore: getIt.get())); - getIt.registerFactory(() => BackupService(getIt.get(), _walletInfoSource, + getIt.registerFactory(() => BackupService(getIt.get(), _walletInfoSource, getIt.get(), getIt.get())); getIt.registerFactory(() => BackupViewModel( - getIt.get(), getIt.get(), getIt.get())); + getIt.get(), getIt.get(), getIt.get())); getIt.registerFactory(() => BackupPage(getIt.get())); getIt.registerFactory(() => - EditBackupPasswordViewModel(getIt.get(), getIt.get())); + EditBackupPasswordViewModel(getIt.get(), getIt.get())); getIt.registerFactory(() => EditBackupPasswordPage(getIt.get())); @@ -1038,7 +1064,7 @@ Future setup({ getIt.registerFactory(() => SupportPage(getIt.get())); getIt.registerFactory(() => SupportChatPage(getIt.get(), - secureStorage: getIt.get())); + secureStorage: getIt.get())); getIt.registerFactory(() => SupportOtherLinksPage(getIt.get())); @@ -1080,7 +1106,7 @@ Future setup({ getIt.registerFactory(() => AnyPayApi()); getIt.registerFactory( - () => IoniaService(getIt.get(), getIt.get())); + () => IoniaService(getIt.get(), getIt.get())); getIt.registerFactory(() => IoniaAnyPay( getIt.get(), getIt.get(), getIt.get().wallet!)); diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 77db474a99..e67bd2fc60 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -1,10 +1,10 @@ import 'dart:io' show Directory, File, Platform; import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive/hive.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -42,7 +42,7 @@ const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002'; Future defaultSettingsMigration( {required int version, required SharedPreferences sharedPreferences, - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, required Box nodes, required Box powNodes, required Box walletInfoSource, @@ -485,7 +485,7 @@ Node? getTronDefaultNode({required Box nodes}) { Future insecureStorageMigration({ required SharedPreferences sharedPreferences, - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, }) async { bool? allowBiometricalAuthentication = sharedPreferences.getBool(SecureKey.allowBiometricalAuthenticationKey); @@ -559,7 +559,7 @@ Future insecureStorageMigration({ } } -Future rewriteSecureStoragePin({required FlutterSecureStorage secureStorage}) async { +Future rewriteSecureStoragePin({required SecureStorage secureStorage}) async { // the bug only affects ios/mac: if (!Platform.isIOS && !Platform.isMacOS) { return; @@ -585,8 +585,9 @@ Future rewriteSecureStoragePin({required FlutterSecureStorage secureStorag await secureStorage.write( key: keyForPinCode, value: encodedPin, - iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock), - mOptions: MacOsOptions(accessibility: KeychainAccessibility.first_unlock), + // TODO: find a way to add those with the generated secure storage + // iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock), + // mOptions: MacOsOptions(accessibility: KeychainAccessibility.first_unlock), ); } @@ -720,7 +721,7 @@ Future updateDisplayModes(SharedPreferences sharedPreferences) async { await sharedPreferences.setInt(PreferencesKey.currentBalanceDisplayModeKey, balanceDisplayMode); } -Future generateBackupPassword(FlutterSecureStorage secureStorage) async { +Future generateBackupPassword(SecureStorage secureStorage) async { final key = generateStoreKeyFor(key: SecretStoreKey.backupPassword); if ((await secureStorage.read(key: key))?.isNotEmpty ?? false) { diff --git a/lib/entities/fs_migration.dart b/lib/entities/fs_migration.dart index 869ed66ffc..14237f0807 100644 --- a/lib/entities/fs_migration.dart +++ b/lib/entities/fs_migration.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'dart:convert'; import 'package:cake_wallet/core/secure_storage.dart'; import 'package:collection/collection.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:hive/hive.dart'; import 'package:path_provider/path_provider.dart'; @@ -11,8 +10,7 @@ import 'package:cake_wallet/entities/contact.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cake_wallet/entities/encrypt.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; -import 'package:cake_wallet/entities/ios_legacy_helper.dart' - as ios_legacy_helper; +import 'package:cake_wallet/entities/ios_legacy_helper.dart' as ios_legacy_helper; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cw_core/wallet_info.dart'; @@ -30,8 +28,8 @@ Future migrate_android_v1() async { await android_migrate_wallets(appDocDir: appDocDir); } -Future ios_migrate_v1(Box walletInfoSource, - Box tradeSource, Box contactSource) async { +Future ios_migrate_v1( + Box walletInfoSource, Box tradeSource, Box contactSource) async { final prefs = await SharedPreferences.getInstance(); if (prefs.getBool('ios_migration_v1_completed') ?? false) { @@ -67,10 +65,7 @@ Future ios_migrate_user_defaults() async { if (activeCurrency != null) { final convertedCurrency = convertFiatLegacy(activeCurrency); - if (convertedCurrency != null) { - await prefs.setString( - 'current_fiat_currency', convertedCurrency.serialize()); - } + await prefs.setString('current_fiat_currency', convertedCurrency.serialize()); } //translate fee priority @@ -81,24 +76,21 @@ Future ios_migrate_user_defaults() async { } //translate current balance mode - final currentBalanceMode = - await ios_legacy_helper.getInt('display_balance_mode'); + final currentBalanceMode = await ios_legacy_helper.getInt('display_balance_mode'); if (currentBalanceMode != null) { await prefs.setInt('current_balance_display_mode', currentBalanceMode); } //translate should save recipient address - final shouldSave = - await ios_legacy_helper.getBool('should_save_recipient_address'); - + final shouldSave = await ios_legacy_helper.getBool('should_save_recipient_address'); + if (shouldSave != null) { await prefs.setBool('save_recipient_address', shouldSave); } //translate biometric - final biometricOn = - await ios_legacy_helper.getBool('biometric_authentication_on'); - + final biometricOn = await ios_legacy_helper.getBool('biometric_authentication_on'); + if (biometricOn != null) { await prefs.setBool('allow_biometrical_authentication', biometricOn); } @@ -137,9 +129,8 @@ Future ios_migrate_pin() async { return; } - final flutterSecureStorage = FlutterSecureStorage(); - final pinPassword = await flutterSecureStorage.read( - key: 'pin_password', iOptions: IOSOptions()); + final flutterSecureStorage = secureStorageShared; + final pinPassword = await flutterSecureStorage.readNoIOptions(key: 'pin_password'); // No pin if (pinPassword == null) { await prefs.setBool('ios_migration_pin_completed', true); @@ -148,7 +139,7 @@ Future ios_migrate_pin() async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); final encodedPassword = encodedPinCode(pin: pinPassword); - await writeSecureStorage(flutterSecureStorage, key: key, value: encodedPassword); + await flutterSecureStorage.write(key: key, value: encodedPassword); await prefs.setBool('ios_migration_pin_completed', true); } @@ -161,7 +152,7 @@ Future ios_migrate_wallet_passwords() async { } final appDocDir = await getApplicationDocumentsDirectory(); - final flutterSecureStorage = FlutterSecureStorage(); + final flutterSecureStorage = secureStorageShared; final keyService = KeyService(flutterSecureStorage); final walletsDir = Directory('${appDocDir.path}/wallets'); final moneroWalletsDir = Directory('${walletsDir.path}/monero'); @@ -176,10 +167,8 @@ Future ios_migrate_wallet_passwords() async { if (item is Directory) { final name = item.path.split('/').last; final oldKey = 'wallet_monero_' + name + '_password'; - final password = await flutterSecureStorage.read( - key: oldKey, iOptions: IOSOptions()); - await keyService.saveWalletPassword( - walletName: name, password: password!); + final password = await flutterSecureStorage.readNoIOptions(key: oldKey); + await keyService.saveWalletPassword(walletName: name, password: password!); } } catch (e) { print(e.toString()); @@ -311,18 +300,14 @@ Future ios_migrate_wallet_info(Box walletsInfoSource) async { return null; } - final config = json.decode(configFile.readAsStringSync()) - as Map; - final isRecovery = config['isRecovery'] as bool ?? false; + final config = json.decode(configFile.readAsStringSync()) as Map; + final isRecovery = config['isRecovery'] as bool? ?? false; final dateAsDouble = config['date'] as double; final timestamp = dateAsDouble.toInt() * 1000; final date = DateTime.fromMillisecondsSinceEpoch(timestamp); - final id = walletTypeToString(WalletType.monero).toLowerCase() + - '_' + - name; - final exist = walletsInfoSource.values - .firstWhereOrNull((el) => el.id == id) != null; - + final id = walletTypeToString(WalletType.monero).toLowerCase() + '_' + name; + final exist = walletsInfoSource.values.firstWhereOrNull((el) => el.id == id) != null; + if (exist) { return null; } @@ -373,12 +358,10 @@ Future ios_migrate_trades_list(Box tradeSource) async { } final content = file.readAsBytesSync(); - final flutterSecureStorage = FlutterSecureStorage(); - final masterPassword = await flutterSecureStorage.read( - key: 'master_password', iOptions: IOSOptions()); + final flutterSecureStorage = secureStorageShared; + final masterPassword = await flutterSecureStorage.readNoIOptions(key: 'master_password'); final key = masterPassword!.replaceAll('-', ''); - final decoded = - await ios_legacy_helper.decrypt(content, key: key, salt: secrets.salt); + final decoded = await ios_legacy_helper.decrypt(content, key: key, salt: secrets.salt); final decodedJson = json.decode(decoded) as List; final trades = decodedJson.map((dynamic el) { final elAsMap = el as Map; @@ -441,8 +424,7 @@ Future ios_migrate_address_book(Box contactSource) async { final address = _item["address"] as String; final name = _item["name"] as String; - return Contact( - address: address, name: name, type: CryptoCurrency.fromString(type)); + return Contact(address: address, name: name, type: CryptoCurrency.fromString(type)); }); await contactSource.addAll(contacts); diff --git a/lib/entities/get_encryption_key.dart b/lib/entities/get_encryption_key.dart index 04c3a65f7b..618066cb88 100644 --- a/lib/entities/get_encryption_key.dart +++ b/lib/entities/get_encryption_key.dart @@ -1,9 +1,8 @@ import 'package:cake_wallet/core/secure_storage.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cw_core/cake_hive.dart'; Future> getEncryptionKey( - {required String forKey, required FlutterSecureStorage secureStorage}) async { + {required String forKey, required SecureStorage secureStorage}) async { final stringifiedKey = await secureStorage.read(key: 'transactionDescriptionsBoxKey'); List key; @@ -11,7 +10,7 @@ Future> getEncryptionKey( key = CakeHive.generateSecureKey(); final keyStringified = key.join(','); String storageKey = 'transactionDescriptionsBoxKey'; - await writeSecureStorage(secureStorage, key: storageKey, value: keyStringified); + await secureStorage.write(key: storageKey, value: keyStringified); } else { key = stringifiedKey.split(',').map((i) => int.parse(i)).toList(); } diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index cf9ae30190..79177178c8 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -61,9 +61,9 @@ class PreferencesKey { static const defaultBananoRep = 'default_banano_representative'; static const lookupsTwitter = 'looks_up_twitter'; static const lookupsMastodon = 'looks_up_mastodon'; - static const lookupsYatService = 'looks_up_mastodon'; - static const lookupsUnstoppableDomains = 'looks_up_mastodon'; - static const lookupsOpenAlias = 'looks_up_mastodon'; + static const lookupsYatService = 'looks_up_yat'; + static const lookupsUnstoppableDomains = 'looks_up_unstoppable_domain'; + static const lookupsOpenAlias = 'looks_up_open_alias'; static const lookupsENS = 'looks_up_ens'; static String moneroWalletUpdateV1Key(String name) => diff --git a/lib/entities/secret_store_key.dart b/lib/entities/secret_store_key.dart index 2ee490c74c..df6347ccab 100644 --- a/lib/entities/secret_store_key.dart +++ b/lib/entities/secret_store_key.dart @@ -1,4 +1,4 @@ -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; enum SecretStoreKey { moneroWalletPassword, pinCodePassword, backupPassword } @@ -66,7 +66,7 @@ class SecureKey { static const lastAuthTimeMilliseconds = 'last_auth_time_milliseconds'; static Future getInt({ - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, required SharedPreferences sharedPreferences, required String key, }) async { @@ -76,7 +76,7 @@ class SecureKey { } static Future getBool({ - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, required SharedPreferences sharedPreferences, required String key, }) async { @@ -91,7 +91,7 @@ class SecureKey { } static Future getString({ - required FlutterSecureStorage secureStorage, + required SecureStorage secureStorage, required SharedPreferences sharedPreferences, required String key, }) async { diff --git a/lib/ionia/ionia_service.dart b/lib/ionia/ionia_service.dart index 0396ed7c1a..821824a87f 100644 --- a/lib/ionia/ionia_service.dart +++ b/lib/ionia/ionia_service.dart @@ -1,7 +1,7 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/ionia/ionia_merchant.dart'; import 'package:cake_wallet/ionia/ionia_order.dart'; import 'package:cake_wallet/ionia/ionia_virtual_card.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cake_wallet/.secrets.g.dart' as secrets; import 'package:cake_wallet/ionia/ionia_api.dart'; import 'package:cake_wallet/ionia/ionia_gift_card.dart'; @@ -16,7 +16,7 @@ class IoniaService { static String get clientId => secrets.ioniaClientId; - final FlutterSecureStorage secureStorage; + final SecureStorage secureStorage; final IoniaApi ioniaApi; // Create user diff --git a/lib/main.dart b/lib/main.dart index 2a4e122361..fa71da31d9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; import 'package:cake_wallet/core/auth_service.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/entities/language_service.dart'; import 'package:cake_wallet/buy/order.dart'; import 'package:cake_wallet/locales/locale.dart'; @@ -18,7 +19,6 @@ import 'package:hive/hive.dart'; import 'package:cake_wallet/di.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/router.dart' as Router; @@ -138,9 +138,8 @@ Future initializeAppConfigs() async { CakeHive.registerAdapter(AnonpayInvoiceInfoAdapter()); } - final secureStorage = FlutterSecureStorage( - iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock), - ); + final secureStorage = secureStorageShared; + final transactionDescriptionsBoxKey = await getEncryptionKey(secureStorage: secureStorage, forKey: TransactionDescription.boxKey); final tradesBoxKey = await getEncryptionKey(secureStorage: secureStorage, forKey: Trade.boxKey); @@ -191,7 +190,7 @@ Future initialSetup( required Box

      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 bSRV`zDcs=i85DSqJOgbFUG?l!S8o45ReU`& diff --git a/.github/assets/desktop.png b/.github/assets/desktop.png deleted file mode 100644 index 369015e608cec345f80cc2033c3804c64bb256a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62736 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 HgZ}nU1!RK* diff --git a/.github/assets/devices.png b/.github/assets/devices.png deleted file mode 100644 index 7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73544 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 BIO+fZ From 651b162e935f5bbc188471215ff1a9445a7d39d0 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:47:53 -0400 Subject: [PATCH 043/157] Oops --- .github/assets/devices.png | Bin 0 -> 73544 bytes .github/assets/mobile.png | Bin 154871 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/devices.png delete mode 100644 .github/assets/mobile.png diff --git a/.github/assets/devices.png b/.github/assets/devices.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdccc5b5a8798709ca7bf34fd7d5561eb2b8115 GIT binary patch literal 73544 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 BIO+fZ literal 0 HcmV?d00001 diff --git a/.github/assets/mobile.png b/.github/assets/mobile.png deleted file mode 100644 index 6c0abf3cf1c8ddd7435f4ca9270dd74c3fb8cdc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154871 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 literal 0 HcmV?d00001 From 4e286bd01621e8cb3975442b682eabd7c5642304 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 19:25:00 -0400 Subject: [PATCH 034/157] Update logo --- .../assets/Logo_CakeWallet_Transparent.png | Bin 140295 -> 159969 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/assets/Logo_CakeWallet_Transparent.png b/.github/assets/Logo_CakeWallet_Transparent.png index 21f985eaa582e57730dc42acd43851d2dd227ab1..459a6b37cf2a93b7da5d11bfe23a0fd0fc31de46 100644 GIT binary patch literal 159969 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%0AxcKM)XJNBVRNB^88&$)x{4-`k1P5Rgwn zJ^=DePiJ!)*!^{W8QDz6XeNC2WP|CTSzbTkIKtTZD{zP00W5*PyCEYHdpI6P&J*q3 ztXn}zaN}XxdobR*e>k3GgfB{aDe|OOQmDDf;O&nOH-pbUTZ$8}UXDlkEzkKI4h%_1 zCbNB+nZW#8!-Yd}b#4sWMo{rci|L4%Ae^31l}Nf~zyvn6M0r`jT>zyrFLxK?gmu-} zK5Y0cMFl#4e{=l^+%5hWDM4mJn~_M%4eynNmG8{JDJLwzJEe8ZoCpUkl#9==!FK)Y4Sx@3I%&IV>?y3uIWil`wSm@+CBOvtqF?vtFoGmXLt zOe3{Zc9IX}%C%8PdY5#UQ$`wVZNS*&bgEK!U8x{8JBDFG;#|GijRO7F0P5EZYcQ3B z5$!rWa?`t{VE#TS=%}%^D06WAX@3P(L7%$>g?laM=rRa$CWL$IWvJK()ic*?-G03-`qB8qMw zhu^WMNJoM&*MnkUoIe7Ua*AIHn+&G^ti*o5T8byoi~(MXlpDCHA8RmaK$*aKxMCbj z9bGmAcL?_y;mBA0*mXdU7*#0<2np^cTmqV)A3iL@UQrv8J}k!BMvw1s=+Q_-UOpbT z{cbq!uB0;G-%D$m@`VgQT`N5pnZQX{bnhfwcm9UZn*c*KV0ogx?69>lq+c!(_zUo21gFt`~(0LtA zC$NGhJqPfXz!Og^Zo#UKSX80~nE`^<`Nzp`PwkQ9iIs$O#ps`+@UUpbDW#)QOqI9@8`uxVvljh? zjOoDY`1L5Z!Xt+3g6dwM~aNJVe zLm&D6MDIokRno2cnI`a0v#h)RR3`A=X?Xw2ak%j>D{yyMlu+TiKPbiF>zTbhH36IK zG$i_icY_`JaVPpSm-mdjA)rhb^_^8e%M~nLss3-?br?FFH51qqS!z-WhCczop<9{v zB@Y4~1bTyjiL9UpViMfjlakT4z!v)T%#-5K(Ktgs5 z8g&oaF*Hpo3BlHmP+aQ+McA*Z73rSMXDcib;2&4wfIkn%<96V$>l_abw{b?|P_(i0 zeC%uEtoBUBg-uPuy5Vv7{@<0Mk^dy?Wbu$3oEn<%*#jtVmOvmNdY3*imc6u>u}X%a zTiC>B16hantOo(RARxJ>l6JKd8PcWzc~57v3$hVDj~V?f!Ld7sgorOHj2dE*8U%D$*#`b3{z1KCEM^zmXxqp@H|J_JD z^hphN`z9YJyWWvcylt$;)MYi;VNeV<$%!4R<0$yas6AA`^F~BKKs-S_zkp5*@rW=| zF~S-@;>)SzO)4YSANg`vBgb332LV4IpmQtvV>yFos%RMWoWMT)qnntx;kLnr4NJtbW7AMn9|Dht&V_zbY&;`w1F5&3P6!CkSv*LR zbEU_6_oGJ{;S2#)_!vfAc_xE)yZX1nc~9QjT>=5q2`mFlclWSeLZ#DN?nlmFfyz!< z&@a$`QM>KOl46lkQ;l71(=Pm4O_)3sgZ5iT<2IJ%s+1wKw;>vh@k1ifBh1u@x_TAv zUSEz~JSnC($h!RZCZlae`nAjP*X+qrN9>i1HH-w0_+u4MV*jwZGovBW%i4)QGj#>NBr}()bvggo0-$bKI{=;njQH#_eI>=?D-|yDp{Du~G zNb-Z9^ck#Vc#J{Q|Bb`dhooS+q7)^Zb~S1x%E7}Q;Z#alLuW*KSZDibpUPD2&`&RW z(eHOm!s>I!;pRUt!ZUq_D}O&sdi$sZN4JefI@hk2WFZ-bvpnR|PDr-qeWV8nw2;6i zF{-&xJ*Q3K$Ag$-5D(FCAS1aQyWBYvUz9O$+3HZ>LOB(vi#AHBusU1k`w9~Ip$@y&vuCkAGuk)H zfEcv>JQW|mRPKCcW1x+Nn~~p;i6_4M3wb=yBhmFxCS>FUksOn=pcXUS5q@O@zX*a zbzK^+e`Yjp5x=!7iZ~qMr2P*epOFLD%|1`3VXL09-?m`%su~>P^tUX}Po(WL0?(bA zgIDAf)iAR7w&GR#m4sMD~h)Mgor zKbfGt8G~M`z`n<3;LT74rkMOM9J82YWK#tL8J_jCxsSPzNX$DuiS*C1kMX?P<6}Ay zLt2V5t9L4KhX%lQzTd&~(Ml&>D+BKgx9H~5$X({sH)JqWz?oSwAsqRpc!Ol8ku+Sd zr4vH}ZzSJ?_Mhf0XVf_xN?40lJUBZI?eLplyhJ}nk6He7Ez7RJ0rIBk#2Cc0v}ml< zAMKEQs)bo*t^85^SBu&OnL~dy_>^znxNu}rE=Qy8g4N`mEJf?7=RUqRHXdtcC1Ww2 zm?K@MP>=~vX~vEpjIvh_7XH;I(2kKzfn;qhwr^@gwkwE=FgsufUi-Qn2h_BHO;=nn z2}HvP%x z+P1ihHJ|Uk*L`B>GMYQg1M&s45roPb=@wyXcd&~Wc=LoG1avH$$g>V(;EG{43%@NG zYt}h5cnNaACQYW0fvGoSk2K0(N&sUi+?*R$;2|{oobLUMusu@h6u6&Vi{I^*gwIaP#%z^b z)rdq?t5=cA^`r*jTmmv=EbTDic^rc{ufauAydqARX8p{J-V^(<~_bcHBG)e>$!#>VUR(8qQrTt#W-) zZ6&ZrEe#HsL@l-Go0Dj)+3n~+=9j3G2o=C-$C zFx?@8`AX)RdSp-g0x6{T7#d~t!>WN0%iBx^zQ3?4q~Y-G{F8PuDokx_8W?&PiyB(V zD)>{*{(+^n(I_vEMoCcoiwjEW`F=$|BMLqiF@rXdQMg< z^*7qU0Ifh$zu-e-tu8(rPQf4)^P2RlzRTY5AfU6RpcDo8l4r#5+$C>lLV9HjhL<#B zB>C7#^0Cq6Im7tdfmbX?`VFg)z+kUvz8ht>)|36-$Fsz9+UN|aC%>xXdu1(c*jUwq zb;Zrtm=}YB`VMT2ibhR*4C+{7R>mD~ScHJi^&yl?lua7x?NdxpQipDSCJD<)(}!CG zuOqKhP8jiG1%{TlqQH(1=q%^(91H(e^+#R5GPZt02e2J$vtuOdOw;eT@pRKd)4uHBm} zvLPUvRdD%UZ113h9S-H6jeE>zCn3K;Tnv&*TadD@0Yhl77)3rdf_j1UijmYSa^5dP z=Csd|NWEeU+lbh;saw!aNV5mMA&hb3dzIu>1+~;GN}G|lDH{1}W3Z7fm}q7y(I^naRs(vahC=2Jq=)GY4)BML0-8L?hsByrUL=Pv4OPhlVll3u9%CNM z$EY9bF=}lC#zi$@!tP&1jVD2LYqpctvZN;gp|>@fnxAiuB0m4`ZM_qZl7wWe{;mRR z8XK^FT{ZIN*I|8X9M+L;H_#YZyE!|#w{M2<_h!E?WdW~h>@0T`%=rr8lEd;-s?wk` zh=Ol8=yhQUWEU^mum<}K%;agYDRG$kDO-_LH(=rq)tJ`MfayDb88wL)bo@``55Bxn zjLe^dsSk-~kzeIk15XMj=6j6fk4?sk<&{|W&vq>Rz7{K(3AU0(n-%O!U7?sae?H-2 zF!#yQ6i8P@3)#|!&JypDKE&e^2H@McIJ7a~&|RUFTpOKoxo_8C#`FYx9Kho3$IeMd*Hc_D5iFmg5debB?a zr|UTbf0PzH*Y~rm}aHMbz!LxhOm{FKV5<+@|pJ8<7&vPX>{^N}}!*xP?P$cZV)FT9_1W<{b z`m6Q0^^HlmP^By)RX`OFUq_>1Kjr1U9s~(c>l-m?Sq1iR_1UMwzSAIld}%KJA?3O$ z5O0DHxe{vg$u~=-e7bySdlDe&?Dmzj3GO0f08l%#7#{nm2*)$hI=Q#|Amm^XZhSus z`kHp`I_yJU^oEn`=pb+>)A4)2n7-wE+O}yNkdu`EFVddOf8PI+W!Sy06(j1JFt)e> zLoY7$UDW1lV9 z&89efM(5o}Jpao`R~< zQs0Qg$&>T(F0TQ-M#~mAC-=|pLO6W zyI^K{o>s&$t7-C*27JptyOxG%R=oOl)s3-fJXeJA&)3oL?ye9BgGi6a#Jv4k+SIl_ z*xP`a%BLE(H;E^X-10pm%H+$k59(YgsFZ)?@E+cS4wC)f--t;|8ZoM&31hAB1o_Lql!|o4E+K|BdLz5O(^T*UH_}u|XsQPC!)_+}uf`x5ZIWrxf@SndR&nVDc z#FDPAXf>h$Q&qj$ME=-d>K6X&+om(iie8@#ZfE;%$`y>dBUB{e$kEVe1m~ z?p>+#?e9I`= zwMO4hKGGLx(9u!_h%EjTxIifj0ODcuC^Iz-qnzDk#CSf=;-ps^q(i4&m($XDYC8X= zQ}opnoqulmJN@gAzca<;AH`+!cR!jCwwyOmEVLt)8U3>-B;ZPx^REo_b$_0(Cmox{ zXMdiz>luMo2AUl5)b%YG*j$h8SjzeM-z>usDoxMQ&IwCI1TwnlC)E7RG)VZ2KJE3$ z{JIvqeGTkJ{&ecOg{Y1nfVIcu;HCKk@F8V|Wh@t6ZNv3z7l>Us&miLQ7zWm@9)*pPt(|lLk5*kCpFPD6mYLry=x4KD?&45crw$IQj;m`NGpu!1UFveQOX*TiA<>ACFJU4xI9bh~^| zJgTHeTPcEMWqUeTDdZulIF|2k6%#8T^xpL#U;_liwkHn&hLeZct+NHYJgrIRh{q^l zK`o|yS&c(}vl6E^HewtT;Zk3hVb3Lc1sP8K8YVKVDQ6|sSRDOWDXw{LElMV5;Dg@` z#;Yu}@xzov6lBomz?PeRGNdC)W|Qs3i9vkr#w3deY2#A@XRsk^v3!#?`dl`esV~Oj z2d>H?=oz*Pc33lP8}IhT?nAAb|8$QmZCF^v^3P6zxG$h;^_x7f=MBNrBjQmY$3Rc^ zN~7c&Vb@!KL-EXZK6mXp+)`i1o-IaNj@5;F?}rTp+7R`t)wpw)RD3y>r98FnNJ78Z zi_XznmH>^UeRri#I#d(CEXC2Av#H!jyhPH>9LzpF8~?Eyq#$RL1fMa?Qj{Z*<*!{c zv^N>Trcvxs6uBJT`ms7R#nmHl|LLW40Qbev0`y~8o6tHb1q%;g5Bm=ruyTAVzI|{w zz8IB&+EdnbmJ@VRE|%asjb^-k)K}RC*aiwt1zfQ7X!4zfIGj}&4t%NvKWnSU&@E&g zw;N{s*>unpMiJjh%K+~gR`jfHHivu z0g0~DALtD`AYk&c(d4r__Etpst?hu1l;N;@R^eV+1Trm6Y{y3ZokNb7F@J0=GvYZlbeK}jspp5P`%x7=-f>*7SFz#htqT`EmI)kA?H57ayy;jb5mPp>= zl|mdkw+4qUD#L!J@MWOajrVY%K-wyhi&d>+DR*S?kY+tugI%6nL;WrbbIa@S9|jc9 zJ|G2Ot)b`0I3rdLN}%iH^U^KGQMXVQus1vixE%t9{!5xYC989#A!K1&fX1}(sUnx` zVJulcn5MCdh zhW{L&j{lN3bvSA7+M4EMVwpmor2Ae~d#ncTZHuO<52Us=V|(gTaeYQaP8~M3W#hhP zI5oX7uaMLMO4cF2vW(A%{5ZX*Lg~Jt^TX<3lbV}hV^JDM(dGQ)%J@x0>EQ$MVidWf zA~?Dmrr}M$?u%Wi}R8PO!~s&9KSdByTZ?0nr)JVk?F zXNgI-BTJj-+GCQj?zI^>md@Wrb_Dfoi{ObsRw(!~G(T%ub zaV7RIsYCAOss({e*w@c?H7Ic{Uld^$_c3c&3Vy{vo&Q}ioDuC&_?$fyJKRvht*^ng z_4jp!mGgW$l~v%j{dTt=$y#S+;=`}M2M19`Q(XW4hp zC;@Jz+OJqRomW{M%uaR-%(CNAcv1$wD5i`yA`T6Er(nU?g>(SBVGxf|Eg1Z59mcU* z&Jrt266{r>G*cPL3ny*3SOdKQLo<1P7mErdocmx zP1c{1?b8WopJ76YGOSyyap#R7ArJy;*!Ietpotz~z!H_4hYtU_`IuGFj8wNM13@Ct z*4K6)h!1v2#{6}?M3WiHlMyGp^G|kk{Ru!)r>}XQ42h_R%)C`B`P{6jtNFW;dUIGPK+@EI2a@??`y*t*U{) z@Rbu-y-r5b@$(Rcp}wYjh4KF~yHiR0&Ve4q6fkSA%)u*nmK&wB>>Ijp1U&soMRzdE z9}bR29vR6J_N)K+-ocpnNF_FYQ-|gwSrqXT-d_v3Kb9agQWrvX=47;=PUo-se}%F< z8x0TmUp=Ph*W#RuSK};}d(Jkz+(s(8eP{@~nS^-X{+Co@I-`51zgdV&E*p-A_Q=HF z>8M{93fd6a3Ki#t*RID^OGpG`utwHCC5wH;oz8%^f`u{cA zFP7Bfd!B<<${Fsu;f0t+q%#|36icQqw-U&pspL!fs;;w&j+Kl@1r0FxYBvTDkb+z= zNW)po79~wLiLNz9rQthbQ(JZgP8(Ss@s1)KJTnPPtdujB=&sW3**<<}#WyP2FKuEa zxhCS#WlSJ89&L>YSh$dmIJ{BD=>-IR}QwW2?IYb#!=sv;|OL2&pv+${xT&6{|y0( zHm_W?As&*)HAVW}7$`cu=R*ep+16wa+>WisbRYLc`DgLvRIcIMMvT30BQAI~9~ZDs zd8bUEGu;JNGDq^O?Vw;M8wR8R_017^@S2kAyjO0WcfuPwVm91E=9sWtiKoAh{Wgk}I^| z2L4ASMvBY>hN@cXxX?l?XRm$&RI)T@DS-_ULpo|CV*<|zt zwaCkad&#u?|IGhei|3XryC_`F5BEMG9u-ed$H|AJVO}lyka(fpBUH{`qoMJZ@qr)Y3K`{EIy0oSs9EiOl7=(-YU$Z z!zRHkyq#q*-&^Ht4J5sA*JR8cnS?y{P#)uk?AA8AqT`yd$Ndv=zbfbiJ9Jj%m|DTT zYFN3Rv=`Y{2{N3{;n8@URH`jj~|Mccz@r&b28>R5s0_-5_Be1 zDP;(8#@?WY{A5)o4i)&k??es+WP?&>=$Jm}{VTaqGC+15vR*8}CD*UO`Asz#-LLfu z@h0*G`E1H-F!k0Yc#uIV=dH`eqZbarv(z^ltpwHeM7a_dhS1ir8=G<|*+gy0yx~E> zgh0q0!1EYIYK{SnYFqF2lBA)e6$ucj_M*&>|q72<~68DsKAz_uhP_ph` zi<>M-{Go({_bq22U|4RL%~6Px-x!L&9iNGhB(z#l1f5x^GqdV4R5Y!6!baLy#B#vj zR594btpb1y=E>MNGo9__R3_Mhp`$0<9z;P%#xP}>$r#GFNLIJL! z!EmJUl4qRhodkSJQBf_%-?jvI4NAkwSB=3fJdf{4NeMQSwD%8p1}Kc>9ZSUU8PsW|JPbbO>NIR*LH zJ&YscFtN&Dsq@GCG5fh9Tsyl6=a<#9@1FJ}ZP7`lYB#{F%qJesy}px=W9F3M;O{E& zMqDgz4?K=EM^q|qcnf8GP8Kgz&OOQ4b9A;7h^XzSt^!#@c&dDNIFLw7dei4NbZ2BwT1)O zC8MGV6W*#qdT9%)g5^Itrzzy)C;9q5THV^mtO{Y^G1vuJT|hVQGbkhPmpL75I%EGZ zDjD%7o{<7hIrntcDm#vP@OD365_RjR%xrCI;Su)q3jYx5V|K4@z)7=9aOmt2c#KZq zzhuOq#J>rGe@gnq2=Yql7Scx@5Cel>ocCtLLqK=A0(OsLB19qg_2@kw}x0mHUmDP~a0o^<%j0qnx- zI)aezzO9Db0sM2L-Err5kH$Zii=6D;l0Ja&bpCoMo@nUkWCYzQY=-hJLk<5D-Gf%A zUuBc&UcV6+ma-I-+XQv@9ft^6Q5&Le+koF5oQ`=(QD6X4WDG@~sn3&2nHk3B2pOpq zuohM``?r~ed)+E*Q5rpC5MCb}hYfkX1ix58TPa^w`K}2x_=tb1r{^^tNUS+l|9gqrRcaJFDAgbwQY3+a%PpU);(mNm%ho8y23Og?ZNv#+S2J zp*D-K+JR10HTh`ZJ}PDTb=ikS>LOM_DBZ_;I%({efd7*mA z1-V!0T%R)F|BG5|?+X4--kqI^1xs5{SkAw9ww;MW9%TY%buoyNIJY>?lXyb)Vpi>bk^!_jw0V*`@$C4&_@>{jhm(TF+{+X*>f zsV7i6?|37yCUIURE`Mwtu46T!%zjf6)ltNEnY_#0UEPfI7gplhIcfM=+W4p&n4SBY zlV@6UD;QF(#x{~)dc%W&n;;v$?Rly5Y>1R1JRCSAEyR();0WHTEb|>lnLCO+t zf@x4|@#%=mE3wl#3-Q(=L-71|X}FVkS!g$Z(!I4e9l#9O!Xmasa3VN4C>VGz^*IDW z?f_Q#0Syr$BS9y$Hez7JGJ&q>*QrlN{{9*GU?(~X=mhR|h;ORIoSX`ZNbGLN!SO>g zhQ3k6vXpu*QkiX^A2XLNfON356#MIQ) zuVCO;%wJi~(6#5EyeTRkO}k~{{c$R*-w}7`Taua=zOT~vQt$TSxtKqxdGW;*vC=R{s1O|Z|oq^BquEE;lQnCE^gHgCI zW9L;SUF($a-paqr@f(VD2YPf2_;P(yX_!&wuk9g}TP;XNZ)W`n9%tOJ40jgS`+Agm zcWa=i+wytAkH~ysJudjL3VZx^ByLEL#hWr3J3)66L&q_&!E^vS@eOMLasS)8Ta@h( z?3okFjbr0GJLjy!_5aDk1z{0Lp*53;So*&8#)-Imw=}#Y=daJuVJq@X=dTkiMszPc zD(iPs3x?jd9)EZ(A7}A)hz<)p*b3=xCNmJAiw0TGt-&9bR^!O%k+_~^|37hxKZRmj zR=**zsO^J-KO$AV6b!PHu-s_3(PE+9hE-&2>wPYc<%0*lSdJO|^*6zOLc!(=m^_1- zqb9C{nTzKIFPC8IBefXn3f@BgeOe~wsEgK0I%{MvG0U1?G7xWnxB)j?>A4#WjJEj> z*Hzzu)V*Rc?N>uEM-@zh8K&Ln>9Szn-trwffG4w(QI6|$O2X=JI`2QKj0W!o@hPthKKl43CG=2f`=^Ab8q#9Sh&>V|C)?J|)Mh6T(vyx<4?>*yhP z^j20HqLbFK04@cRj3&R#_Z+}ZVAPv4NC+4z3u%+~9%DG6Pi(z321*Xkk^xVLTb z-b9W;Amk3<_o_Pgl0hMAZ38A5Qknx1^NvBxsfh`PGY8>S8kh6GXOu>F21$WS#u}CK z>Fp555w5Rq!dZEhgtNaeHZ#I{o4h+Xm=+};V{-~z-Oj6Z(-0Sw)mUq`QY*{qW(B)o z>vEU`qdoKnd%~!t74eVed}85g9!sh){dY_8@|mM?d&NN9 zLAbY=frEB^O-@Ule>s7dllCL!KClaZnn$8aunteXD_*GJm>A;W&P}-FmDTvYu|8ig zfSqf#buORtm)SaPmyN}*w@bw{6+Y*$u`i$aX#~(%{IHYGUoFjWco6;tEjaYX6}WGc z%Chyf9BdJ0j=XMqIEfIJC*R}JD!g;*NZeVOg}cZ{n7kf7cc$I&SwWd?1$9=H_>07m z8;ix;Ct>vhW@!4YXNL$->=_&XW*zo^cxdnrVDU3mdQjUE1-U3oF_@t{_LCayYMChp z^YLxH!}Uy0!#78!{d7fj?O56xk9-Dw472NVmgXUY`KA^-JywdSs@C8jC>|vl_GDiP z=wRc zwhcqVipc~+Z(f22cF4hj2d3g$+9p@n#WtjC??Ah^5?>Vb9&8&AzX`y5Ff1StatAOY z<_(##ybZChRbxlj36On(HXhE{cr+Z6)$#5O8YDY<$bb{8>kuqMy=-($d z;e5Yg%y&knc1Cq8iY=JI3QC4CK*j$1WN_U(4Fsl<+4;K%!Bo}tzG6SC<^1s*UUqMg zYo1E{`@8P0pEqo#{7)f`*;RsnZ;Bal{9PILom+*yj>*J_z4?so-fCaWr#kPJm>J!Ibf<;BpqI`yPA3hHidV97Xvbjk+8myRO*CxTt)!X# zfYg7(4rf3hkTG}~P;ts|{Qj+4)ZR55b575~s{2?2yMl*c1o=z~AE;HZ42RJRHINUu z;92!lR?lB$R|~*FURi$cWJM!J-M9*mvxLzhhCv|`n5N&*vGGB|wS|W3Cs*TkmOh;R z+yq?Cptlk`gOtqks8VhDGy*A$+{p^NHbTc0Q|T^I?_Yyw@IL|Z4g$ZC8fisa6eCht znyL!N+_M6Ird6U-sCD`vTZLffMcRJt1l)A;AUqi33nowonW_WmPgP(roU0bU6-A=7 zI!8}SU{+r2b?b30%T3Sko((}e{r{qBbKlIOfxiM_Makd+yYvS7*^%dQ|6r5=!0 zu2|h~)YPVRv=Cf2(3KUM+TvYqDl--H->62Jbemvcw5_$64!x6nnR8ZPxApv*iy2>d zp_siOSK_`c?qJ&h<4v@=Lt0GO#;)Qw2I6D+Dh7zVFukIM;m`of*N}k*W#&GnW7h7^&?S?As7?^F~}6DGp%K zgCg1GG)f`oiv$O-BEGL!kHd}3Q0RyT>Y=#*-^)5Pdo`p8m}?1^&sbfT)%OKcDb>?LRQ6eh!S5O{;q*m# zerXvqSd?AhNzYc%*z@~7UiEoCPCmW`InPhVDdgQHc7k2!Kt`G@$|)O3PazkEorR#I zvx|4IpPFGz2o@(Yjuq5m&wE$l$(m-Q^=b7Lf1qU=Fu38f$KkHuGXvBxhIbuZfYD*~ z!gcVzR#r-03kF`b3iqBb@?Zpe z9^ACOK-Z!a=u2o=a;`fbmNj5ntA7#J>hS zq&uXMH%NC1R%X;a!B!+A>T595Dq9SA1KWCmd)he}%TG+hlEST^A{u5;XvbCAc>g^0 z{&oXjB>ZY?FyWGP44smUvS2C+iDfBy;Pr}5fCO{B2sYXAh%2BxYzrRjoP>KjE(7ye zjiV`#fvv&pZ(GZee{e4b@oGZ5&$lWezEgr<|KBRyLFO6j3R<%hCvKdJ=b0tdhyQXh zUii}_oIg1kFWbFL=@zOkrp)dQ^_qis5e##MnUra-o9rB%0!dy z=U3y>ht}fH^=gaZhWoR(#k=YEgjZcXM*MmS{<-f^{Dn!Ax3Ka=o7KBV0rU#gR6pP^ z=p&Fk=Z(mQK*;ZwA>W6lyR))9t13AaXR zz8J(m%o4u=frXOp*UXMQ#aALIpm)1GtTGdK@uF#$;@D%#k=vpi}Y;!cC5-V8>!+{w}QK+x|M<`K`reIPBdT?05ttXQLv-ay5ut zPbJhXfI3(dh5S86;ziZeVs|%N<~kCv>EH~^m%^E{C|?y#DWl*@W*5w*{-_p3kv8@jfVtOfLQ7qn5gz8AK|aD32jibD$E1PL zSQv~0*T@GY~qvAI9b(U6fhOEu+s(DU9WXk--vo?6K;HL4Q?|YvFRJZ;x=O5(}g7`OAFF|P5JYW zlaY8tCjK6*EZZI2#8XrTx`=kraB8a*F?0|i8#UV<$*!-v+zHh}XGc0+Q9BZ^S&cvb zV?BOl=tiFNH*hNR!Hv$K0q^JG#zWdM`pt>Bj3u?J)oLi%A>7OE&A>M-V68>r$E$i4 zEHwMadm(oK&!&Q?Xwa$_qyMiHyeRB26B~=>i*xX5IS+SF3Yvf=p|WR>J&c1Y&o!T#GUSBg}s5FNj?6oU*l*!EZW$wI~Z$ zRnL3k#0!||aMD7&w62nwEAB8|x&jX&U4$Zv>8Ltu8UFd+beza?mQ`}x+QBQ#sO1ri zj9tgOGf2@Pq~Pewj|pCCFCqu9nGhT3dZctNZNl&q7vo<=wHOmNMgr2@_QUYcXD8sA zaCH6(Ps&Jns~S5WzX<2 zq%ZN%NaCa7XAI2#{2%uKF<7=7hceJ~ZyL=l z*xrq$NM4d|SW7Cl^hwqTLvDM7&EAU{>RFof|jkoRIx@_I* zySbLSg=2cE-HZ0->o*V(&BvX;-8nmd1234oH zQ8?j~Fi1?nvfWa!NIFJ$a;wg%1o&b`lTD|R(%re$zcaEB_ie;+jm?Zk4n%R`%h7a< z$vGw_5$sTt`CWM77!Kf24ZkRBgRK9i_i* z;(vmOB4t_A!69xw@F*pq$GQ3MO zF?V7-+AFPU*cR6+B|naQPlB>d_5+J6@?JL~ApRyrW<1aBuEbL{8I@z%cl?%uVG3A! z_|j!~+H?N8fDXybzA3`NN5`FnlbU?Xt-;NmyB?3VFe7aI5L%q-7;Nj3!SL z+^pXDT9W3Gy!p^3T==JzxFyiD~5v<(A)wiM4TFUDbp z4cc@5+6QF9^M@iFbX*HwesLO3AiOuK3SO{7ub##rus;+8JA?OLe}O>AMYtE4U8-^_ zGk(Ah1~+n36k%Url^pbpfp~+0VT%rRck+SBXou4P-jfg^h2}Gscl)#)hX%vxTPXe9 zP6z1h@z#K`BORIvTx(OP%0Lr#yE1$C2$co3Fn-BQ+<&YAN+_@e1HXVj&2?wc=`@xX zw3Q*JeQ_}5YkB@wS7XX2mDqpSKs>K3NIL}tD|>R{U9+E6wn~&c@c|djDZwwg5i?tx zS;)+d#$GYC1T=l!hK2DgNm3t#amsFROF^H^02>2bp0Z{)c!Qo#XLTa+qTcRu1Uson z%g9M%Y2wYR@YuH{EL#|IDJf_$_3syXD8I_b*%u^W$t}Zi*900?>^P#j@08i1lE%u; zu)}!RpAj*E=g^-a+~}N&rz-MT*)$Xf2VAil53MW2&s=#YZEIs(_oPAi=!2;^Q_f$z zjVPNx>5$+hJSZsijdC1y4xPVjy^|R>u=j`1-0)1N7s(h;ti^9w3OMzKQTP>&{n8{N zVwg_g3#o_6VHioO{Q%w_>!UH}?h-nH9XiKB6A{<*-)ih$xCt>et!N8$d2$@f2{xEP zQo-D}lBNGshwa&Oe3)BclbnjLK5IaQ35yPT@Dkc=8F+LH?F3m=@GNh~y?Nvc6q6uZU zNrtgHG==7Rqy)#^#H>^P&*)$R_N}hNd%p_=gcP3a+Gb>&upCd!+YSeejYE;D!`Xmx zBhy~czi);Ub!OtgVDgbhI00imGG-f-eAY^ zbj0392D4I8@PTTa!F-h87{+gASXi?@JC2HOGUq8#ne9-ln{Ymm29w?VG^%z7nx~8D z7*XhAFl*)-o+!bw`(@z8v?#RLq3i^M!ce>;=Z-GDGBKfGU=@l*+VBmrl584mHYr-$ z4o${}HT`4?Ia^b)q%9h&-XhO&13Gks)MI@dZ^jG?Np=_$oB&-U%_;I#;PH@0@&EuJ z07*naRK^V6CtWi%oPdFxe^UN`vl@55Ux;Hp=dTk`wlF8@;6Hh|{-i8?IWYmB+R+2r zP-H1LsZ`ry-uqq_aQFBL=qm9!f0eDT$~7fCyw7gJ^>1vzdG0W$`$30X`?PF)@%mJp zJ}3s|3er>wY}45zpRQ%`m@fA_8^uPfM2 zY$xg*cG*J|WcWfg_PBg09;YWh-pi8n7aI;gr-RP3-%y3Azg~gA{9_8vPKrXC9dx9X ztDT-IW2kkXT9CQc9^){Wz3D>>0r9P2v;pqIyW4KD#Jn#zwqWSVi}C8RGWS%;2rZOD z_%+%nmR4Yw^OoSvzfZ$4!{V_f7`#du89<(N1pN-`1)S!J(6$i5(fib92!z}L`~|ZV zX<*H*Z-s?oz5N7(6fzT2u_`_uD||A@HaDiIn^Uv zP{Gy8I}!{t=R4n(;o#Wu9Ya~-X??Q|5wszJT@W8p^?~{IQTReVfL*4<2Cs^<1R0nFFxmPq`?n3b>$|GYb>kOvUft6r7(`U+rL|EN7M%akGjQ z$zVB)K{*4-gbeYn!s2t{i(?oRBiSy{GpJysmp9>xf2_xihT+q=pj^Cdt&exo*i3x) zujx1;Hx`A;V3w1>_Tiu$qV>L9iG9yqjDI#O^Vf;>+YXR^Fd^am;(A<|O#XE57+e!+ zU}uJc5o9UnVI)*kXry4$8i!SEA(Gcpj}fkNkdePM)?v(1NfHAUf5 z+64j)niXqHh(YwyYL@$V1HacASnv6?fta(Ke^s|u{5c+ZXmEi8SZtAWR#S}~D*0!b zs;dPs%qv$iv~hniobloyd~iuFo|E1g=o#78 z2SiV@AsDN zI(b%BV)~g&@#4$VaSRhxf-2;!;DG52Zc;_PuV@QT@$RF*anTRn2)P6JjcOwbY7Dai z(rn{M;fe?<$H!-2?%){Yf5%9S?uKLrAxdRLdKwZin%gk0x`L$`f|Y_fM;n`iFE8hp zEI5F*&T9t&b2fwqISFKB2U_S`+;x=)(IE>(J3HOOONt8(s%Ntvzm@S3&(wVW1dVfj zycwwvltmrJ5=xKR75QjoPfoonp?=Sl4jdB!;U`o$huu;YHPaGZIE4t!OJ0+fgjG3Y zZu)WCn8F2(q9OC|bOL)L^bpX!XF7i+tg7_0={vG}HJVpJR-2kJ^Xoj^>b0k^8^Sit zC!(MnR8xVS@7#zh?j4Ok8Z~)s7%FkOiAGh!h-jC#Y{RHEw(>p5uR&T23xQ? zf$f`)kO|4Bo?45m+oRC*^f=rQDYoBE9~&z*P$x0^sz(Cdanorm9ePk2=D$}<2e8`= zY8{Avw+h?OZNSo&0Po92I>7d$vs8TqgBc5(Fzi27*wq#MhkMUS$I=z8^l8(fZB|1z zgY36P8-o`*MrGl>HPtTZU#v{?I&Ak|4Tj}LBR^1{qNAuPeDj!y5lkhE*bdC3V}X*A zyGC*x3eU{Mia@j5yW52vc2Nv`=nRGr6v{u&YS`|`4CMg6J1^>wYs#>*S5?Sew6l3N z3W^{@_|qEve(zL#NV#>BUA8ds70J)4DCVHZ=Tg9W%jydVDDY0zSTyXUIni=nE7E?x z3{S5p#Vps!I(-4`P<_*9|6n=joljqkm*1X=<3`1!D9|buro6KkeI`pOqwBu&Y#yOP zqI`gcvpS7gz?F2IH%f5gL&NY`L-6{Jm2HINU7ep=cEKv7q2Ec= zhGa86d_-kztC}!Gj(xXoG$9_XwbA(D|JZZfjU*=)T24nmL>Mspnqas3zM1*E4>Nzo z9~*tnU#FI-yQ8!nNtdm`Jw*)|YVcAw5~WiB2)B8OufOHt^0RXB!uE++6JRpTHg_wO zdllNYO$a)V=>(915Cb_Dx`&=G$3a&w!()6gCSdPzU(h9ufTL5f`rb)6ndOsLt2e!R z_t`$I$ml&R#+>%^28=hHzjZEjNZAfdmrh7zJhK+przT?U14HqIRvF0oap|u7T9$$= zW$<<+aKf(@g!Uow#-oD3a4&cMm@Xf$zlx&b)!eo}*qsp^xZ9|ar?z{|q`f&$-=L+F~>seoq@x;gI1JaNm z427!)u+C(l4q!R3ezhJ4w%grIGMG(teTTSJB~}mB9p!|I8^ChBNBaN*R$N9wEq5i;s(!lxqn~IZy+ty`@$j+q zbKTe^%$GB&H@Q`y%I?KurR18Q$5G6Fp1mObSP9Emxk|ZY*MnE*vb&{ zFd06?e~qYcCqClMxdjAF`_jI2{!XLwS8#VyP?2)3a!J2ihig`p;6UT9>Zkm#-;f${ zR#%7ICkt@it)p;*N+JeooZcE1Lc15C|5FMvvRL>tmce|1919uK->tz8XD-1r9nGxx z<92yp%$; zLk}*;-8&CJ{z;j5&vof@4gsBdgduCMq@yj2j!@9hkh8NX0pGC5zg>Ie_BNB)X&e#%as~FI6*}4#M8HLjO~L%b)BU%L7qwu) z|Fd@;aCTJH``g}YcC+c7kPajeFq9xjN2I7Aph74XKok%VP!v&7s?z*ZqzH%t(raj; zB?JhB6w>Q%cC*R$-v8e>`z9{SzW3(Mym@c-W$*8|BxGmqoO|xM=bnBTQeVr!dP<~G z9ztphQp@Twxi}T?8?AG!DkY==-N~x9^mS%)hjIXvKx@C3Yt;(oYHPv_$M&UgqfkzI zW@$f5Lw2Z{P`yEsuAz!0bgo-QYoO(%5Vmb?7{^KwH<04GtDg)E?_xlQf_wB%3C^n= zj@$DYC=%*9>1%O1cj~pNmIxsqJnv#_05T6^K-Yov*fC6GQUFRgS|n*s_J3#D4B(DZ zT>0)6oNw^5fnbK{QGjf`r8wpEB>dqQ!*Kb58R*JV6@w5VQo@@Yzyo9V!+@K1)jqK) zr7)$P88*5IcV}UUr*v!@N)ArPM{AY68DNOVvf($;sUIxSbdhA zo+Z*xSqlcgT8qQ48G?tyicAkqb}60v>nO}fL5szaNP4Ji!IZFQu`VGfH32n8=CH6q zxIz?Nf>Q#OK$K8z1V+Rt&A5cVkf)UqNB5oS{M7_*qFi&o+K3sCZ^h4D{ZPo57||7JTOIges~bjvMEMx>&2b3I0QN|ulzxD_Lo zG+;3KT6rk!NB7|bRwz5gS57jNeWYD6?&P&N(y@LT%18Y@E9YK1D$`T3@O=ii_YQJa zAYflr#MlXH=j;N^UtEGyJmJLVS$eP%hfmDL14&&*e59qJ=X8fFs7WoyE`B=dJiFT3Fs-hX0Uq-G{#5zHriuODi6jHjEgExC8i; zM#ODz#b8eQDj_g&nhumw}J zBVlbV4yY+)+tV102+{>7!_?WN895%EW{m~gpJ@EvRAi4_iG94xXIqo7t-ha z5;&GIpot~HL@$}v*l{Glin(t{IabE?ek@HRMaFG`RM$o$`;y+a30G3-&l@n(^dpiY zooueb{Y8+k&MXpldj-sCJ=d-?Aty&TO-Xe49q>#s&K|gntx}msp5qz$q!LFh8ic#rJE@9> z!Y~6YVL-L;$o|GK7}D4FWOIQTE?aGmGMbh^2R z{b6oHkpq_Qz!B$dz!iTRgFg&YhDMAt8MPuwQAtg@sp@!$oH%Iu!#2~=-H9}ON?muB z*WhhzW!u+I?03&Nyr8|XI@Cw-bJ{6r01m02vocIsmF%!)mZP`&Emxl-Je5gU@p=PV zj8d#UhK^x6e{Yny?sX>9sZ4F@!e@!eXr--&wJ@SQ1Y;w{EpNc+^hB%(C8JR0hKaP9 zjJ46ufkFKHwlyQuQ+GP=>hI;@z15AV`oy7kO+jDZAf+nX-6>m^4&K~_q;odnkL?{u z8E}|H`OJj+d2Zla)i_{N8)lrAgOA!m;Fo=U$`msfl7~8sQw?<`1JCb97|>lXiZ|3Z z>Cm%W8X^FGe6g{pYDdQDt8jNMGvfz%nTH6*EZgnZF^1egHFQ zRn8%h)1iuL=Vy(W6i&RhF-rD%IvAZefYtA+Kn~h67j}iXnMmB6;*taS5;|z_;{vES zhu3f?rpsH!N+-L!U@S3GfH^fO!x~&~K*RI7)XhrUT zk;W40qVmw2CAe(aV7xgj2MePDKm+fw=~~IGxZ{3=T~G6%6Q} zYDP|J9cHgi#Yc@!XsgHM{mIrbKo$KH1EMiA;K1n$6tE|q=bFvsunhKA8tQ%Yvl-aT7*=Sc84Tt(>f6f7uOW3ghI-wK>kEBlW)< zd`A5+@B3&*I?3qh#u!a)uz>S#+0NO+2{*OPNsKgQ|5HcfwVjkv*~c~{O)k(EwZ;}? zmo;E~LmHOUhe_ylv`80TmQb^bj&o)D#9~H*&)7VKifr_w)dTF`>`bhgK%l9!6@N<})%Txol+9KI-1MeLGHBR~`O)GhztWLQF}& z_n#&ZJ?}34-TeP>-f0nA@K-;Sz?LHat;GJ6rRG~ThV})np+^xXEUO3wBZT$Nk0O5T zep)DyBUJr=gE=#FT;=Gwcrz}0U=uD0n@nOC_+an#u#lWJ0axEY61Q1lIhK{`9^cnH zlJV`l8*CZo@3mLwZo;*zDlxm?JAX}{))Qg+dr!XAlaE%^sE+t3tLspm+bAw%RwI{5+#3=&+ouq04tOPKM>c~>#Z^c^Y-hk=pbyvRRQ8LPl z5>dsnwY4;0HBx|YCm!30*9675=uc%jbG_N@&zf1zl8jA~6X++q z=(FQ7-?6cobg`4hM7ApNF!PMe2^DWs?_ZtCKu#*d=EwhBxDDstxekAf40H~^;xlHR zJ|4e&U<_{1Y;HJcg&PI8R5D=5EuN}LRLADg;RoRW^!O?7mBdTC?12g~ZQXDV$4<5N)XFYvtgSry6V zQa&4}^jND*lIwoH1~WfpMJZ35O~Rd@jukJ}V|$vP`;7gHjk~U|A;(~RDi$Ur;AF4F zMK{s8{sl`iSF~H}11y8EjJtc$9&^)h>szVw%c@7iuV00|JS8Xd&X}Hobt4k7^l69n z%47?e%<4l5bg*hT?~6`M|L5a7aPsOZmVxh2dWFumc@HO}GbI%}*u#D2AnFy_@u*{f zUn}XysLjMX%g`%iW2o&wRyFks-piRgTMfM;XIH5J6CqyWgF%H6-vd1JpVeSLidUIA z2?(3D%_uQ~ zD4&ps9Sr`jV}M!{t30((4oak6ky_h{to5xJQrXNt_bptnMt`!47zBXaKX1Tq=gx>b zIWrDTRx1uj_NnuVU^8%>BZh&9JAj+pk!AF$b;_M0h9Va}M5Z({4eM{%j>csE-JkzM z|1JlyN@51`k*HMN`UaMN?inQ?4zR^gDDEww;{JU)fSqjFaqOFUpF<)2OH1Nf6B&_w zfWtD%!O%2QS-QFk!dV8Ir*1AI;+>4o*;9F?L{cZ4;s<~yYjMD1MM%t`(JdCU6Xg84 zsKgL%V%GA;<1v~_t#{3$iKu6PxM~>&T_9m6N6YfNCc7Pon6r$suRJIm%0V)b#upjc z6bujvqE%Imf0p5!tE;h(=LyiKbV(tj5>qig2aDL2VZr1Kth}Qdm2@sud@CEZ>}y`n zD9&cCt=+^WjnVN`ZsJSZkRoH@=PgL55j696gOEEd2|3$aF!YT&?DJ9`_G+%jn`Ja!PkbUiDT+`f!4A1j2 z6A3+eS`uo9W@GVB^YPl`EPVc-22^cmLB$VpP$hmgA_>h5a_wYbMiMJ;q%3Mgc6lud zZz;r}s%A{QzXC@tt;T_r(Fb>#0WDrXz=ZGSO}O%ee7w9borP*g601Y^mfYaQ+-vvr0)UyuF1 znTfZo?2DdJNhleG*D9&NB9D}Psk8|b$X_!(v6np#z>rj|K0OZ=p=74}J3o?hgc~ck z^f!k@p9(rcZ!cjmmWFWbWJ24A-QtVB`;y5N?a3MV;*>nR&HkZ_SG1wz&sC^An0N4g z)GH=3&@?|0ZLE&d=?ijE8TkY{4HDP1AcML^`l}7dn3aN@^RtmdStNG_ThcvWhnWmI znI6}SF}$03i~De5k@hUE!oA1n5Mo=jahZu&;-tNd383bPxY6A`>x^5dTTvbIINq=(wnmmpCiZ}Jjv-2_k=v*u;i9`8~m8kf37Ap53KcjBj zQpjh>!{Vh^@J>wsYb6TL&O*VQBn*Fy<@=wj!q+><$2xlksCsD6zXA&P{)2KHeODRI zxMV2qYp|$S$Zo=lw4mN)^eFEy?Agm((H~%o_+7N4js1Uj_rb%)9;+*dB%n1=-x3Lv zDpR|ej;cVmSoOAfrMU3G2wO5M>x-%Q^3sk#aB|WEidKkPuwv4v>ghd6tMy%pbLIr}Ec33Yt7miUt)tCjD|kxA!o zC;#kZ@9K6w)6mN2n)!1Kh5h}~yRfq(4(kZ-53<<{xe%GRmSfI+k+lSd{Ye`#6nStL(epXN9)yjcLJl3?+Si>LozrGV^tgFF+jcjFNAl|FN2wGDkif%5(FaEIye#+%p zG}X94MefciW27<+e#HGEe>Q>^VtL2_``ivJdCH>#;o?S2YpUScvUtJCDK?It!yzHm z6QUD5Ze=|)M!kXq@_~bM@zDu+{wYs%+T{meAIW}kL1J7P9ig;_M0pS(wtvc~YQjE~ z3-DGb(0oRj@oq{<=@x?%q}wnnYI@l1OQ8VW$Fp&SKQ0}guciDeS=Y%B^HsTKhtn7t z*7NId#HK2I&9irp5T&zEy=QU`R_>99=dKxsedw&LHfj^G{JhQ0q-g0m{?@QsbN7-R4( zF+-=9gi~;+gnwC@>nzdN+#ZML&K!p4PR+pZ|5W0X$6405 zxSGa4i^f9x)ZpMvE{H*LLl!X`aCWLQ2e2aaMIZf~Ejd7D_p5TajbWgg3;}(eOPyV1 z5K(>|d&_$KV@Ct;8!rY@^u`1?_Sg}4?6z^ZSP}CASxRrXhj12-jFCWa$=JM}8T>bI z#T6klfp9O_%6#H!|8L)MrR{&z9n}HwNRulk%`AVi#bj zaE9x7ZfbUSVZE3igEO$2L5_{2zx1HQ97$}D<{qoW!B=G?g$}?LD?Cb$j|tqj8NMJr zE8vz;hkUjYhkHV9AfL$3MDdDNZ0Mx@p|6%R;wMH4Xl_nf#@erXfp8CYRSWYK-c79e1Weard^`~TtrW%3kkSs6A!rgxxgMW^QLtTx|2yr0i2!lqu z^@CuSa4(qTG%y3|beGE^%>VC5O+Y<+XfK|#JiRY%s8p)D5o=o2AQ^&40g`Pz-Rs)Z$m zJ#mKz+Bz|9{>&JJkEhdCa?vn6HZ>XbMn7BrO7;yo#9697=nxMxvS#_bcp-UWLsdK8 zzh)%fXCLs9|1QV82e#p?ntD2dy=oKT8Y&3i%_X?#hSB)#P7;F^RxVjkvXRhfHQ0sa zAmaF}3mSCLt%{ikXiKrOJ+7=b;x_A&RxlQ0Hy=DMg()aeM6H~={)P@D`@5i?jLaW} z7!KerV9=)?hBL}vM2I&5!O=BiV6LB_l%=bFO4!jTw9@mqIO`Q6FL zS;w#wmlrX@(#c?tUc^y|lw#(_AVW%8P>+cjiCAg%B5(r^x8{^^bSU?MeO+QQ%S%oo z3Ox}z9X57}xSyGfvi&pBET>k#9z26m>R#uWWSOk6mEP&sII#e{giJY?_9m4Yx_UcKH#8=vcTs4c4*azExgmYCMFb=B4=ciDb93=>HShm2pGIfJU>hn( zrt+xw3J@oo*92d@fiJ`JiO;< zF1{=!`Yjq2le|P5P8Suz`%;z*DVwTHy1!$oDD#$f6#QZh9$!;~$^F9l%Y8j|82(Em z{Qr8A!rq@l)!ip6Y*w0gjLhiv%It|au zLl!fYS@6%=P$jZ8+&3#%qV{%66UJ6ihm4+StH-)1&m5MGg@u8@JT>dP|%7Pvoe` z(wE|!y8}KHFz94R?^LS?m&|rfKpS|spJPBey8^WKr9DLfluqmf((RtE#G#AIaiXOQ zKbp8BV@XRx^}JE|^Qd&(KQtCu%UqNBbc1_I&B|TD`N4v4hB6nbcwtLOS@XELmN(YO~P?f@?9U_{C8Jj9ULZzC}Y zjD6?k``LBRpXAW=R`VDFex7)Qi?LQ#-Ga9EVI?t z+_52)q;f)X2QqtkIQtD74qzuk>tV+L)YtBbCZZ2=V$hKH~6|(J3hXS_WFJmZ5X_IoDrT#+-z3 z@#9zwng}NXC6r4bRq&I}pNs;L8e(U3Y!$5Afp14e;tI4-pVw&0P(1V0BwWCf#@kqa zC@S&nsEdw91%44S2(Mi+7Uz&pH!0i8t@AJb zuPhojMJJV+eVe5epWlY>+udu|-!rYhRB*pD0=NEU9R5TnQq^+lG(?UY3a{og`ss51 zDQR7AT`@N98;b|y@_%f^m2IswGI*(UTemKVHRU+rU+iIgXgc1DMR~O6F;vjyZ0b@T zwV8$GNN8KhKX<;%o|-Fm(i!Bn(ShtY7_>vj&%0JiMT#a>Vpp~bD`!^Ey-~td^+tK(e3Cn21Xr$rS;Y^Oe=zf{&s;Y zw&0h|?2GHkz+N*@gzKDIfVZz3hfBYnjU{XWgF3FCm4L!Nd@R(kRgF)^reg|m{*eWE z`HD5TrPhntz~ryB4H*9NPW*7+k+@3NQ7|8{^j4O-#{rbjtzET!sTh7Mz}{iU~@7~SJD~p=8$u_nx!2t8R9IG%uN`b z%q>1E1MOPIzq@IqbpoT4cQZPutaLI1*y=6rOdv%?MxlbcSKhb zz+Ynj!k8qiFd$dwO}$0GM?Rn(1RyznNkU>mF z@rVn?b{8Gy_ssLjlDfNCSnu;mku?7JwYYUr8IJdqq0=8O==`0LkB@&e5@(T~tJ7R$ zI8w5WeuVsnTSr&(D$1Wd%;(iMvZ9h#iB(pq6ja?X5tq^F_YYP3FoLAQOtXDWr!7#_ zJ`EF1e__=Asy3`zUxr(Y8(1kR3W|2XC3hgOX-Qb} zEcIr;S&n>8nNNxQ@rM%`$E&)qb#g8ieNpafA7T|DZaqidv9uo3Sf2Vr^=h>;B;!n_ z?xpnv8+zoPD$FGB7D;<&aKC<#kNL}(YVV|ql!6=7cRqtQnHC2n)f7;+s0ju0t628j zOT!GpN<-FzbPghP5Bo!fNL7w1_Qc)s@?^|Ap#v!&ZO5^myPLZmV)>6$ zVh@&tUE*YGrB|q>-=TD{X#GKXual1ryt~_BK>h;By;id~`$CZHBQICtun%|ONKXYz z_5{}F$vkQ_?!SH%F5T8jGa~;jn1eH11R>k8DzmbZ=hKt-!RlYF#+?hxaj55b7xkP+ zN^tIlLvSa{SC@!Bf(?@=8FEmthxvOx*2rhq$Y&60Fp;h%1u{Qa40dLAr2vJ675I6C zz*V%MVSY8%AEQ>S7G4VN?>49}^$ccyrz!Ef3c!(Q5 zEE(18eO3LA`r!r`>cg>xj3$_%Ufz!J6lC2qYmhQKXjEMy$D;!W@IKP)A$F^hCB@TK%M{;lM zeCswwi*2IwDHco7rN$$Nyu-UCpt)fg>tDM2wB zm%0tGBl3#RFJcH&x(nnek-`zFq3;*5BV=(6zSY)7xhvw*Pk@z@Rz?lMvrkRIIR$ZO zmh-|3#3P)k>W6xJ9hHaYFPVVf+^`Bac>%UBVUq`qrA5auvn8#r9Zh!6os^{EG}5q) zY`2jnQpD+@@0iXRqZ~MYlu^w-NGN7$tz!Q9d=;))v=!$Xnu{5Y?IHNT1d4b~9zH*D zIL@E}uGG!y42G@MM=)-(H90CiZ^Q)lxIN27so&X-67NYFDE|A@uCwRm#l8MC@57<) zg{TIEmBEZMH2nM8J+c0Vb$D!jE%xwKW&;UlO(l+C*5sTMbMS#%#s+5_8lJbM%a%~? zevZ1Y6GLTqpmA>&@q!^KcsDl%^=#pg>8bmYXOrcb=l*9hZZhPIAY%~aBvtBJ#o(%7 zd*+iD@)}rX+7oM*(eNpBS2QXp%zX}}n z=3v}!rMQ~5TiKVP1Qy=D6$f_+ckWr3f|1}?f6sLvk&6!xV>LA=6<;*5Dn>MN^D}Mb zFm(%wxrtr)pf>IxR?3^{DLiq*<4Lo3Q?EED4{s=gEmT8&=$jM#4bv~JN>Ec1P<{WN z%&2R?g0cpT_gc`*4pvNfr~#vLKU_jMkvM-&8rquw{8XgQOx8;_7V=q zSqSGG#8=#})>Efv1Ayb$22?hXZ~|%I&i4~exI>vM;wI3tHbmHU7YaHe^X$+>R83Aq zO`rp*$N<%2m%}jFIA$HjFO`7qrqzjazrp^!E2+FsVMMUqF{1!@QzeY;PQdr3@-V90 zMI^@vMu@8K@M^+t3(s6|GVwOSVfp8E+=C8vZgTnLHnyRF*$D9zRAbCV$4GB-@rBH2 zUr&R!Q3^7~1|zbvS!T&wMyH-QCeG=2Z&LJ^980k_jv?Q^k3xeoU7{hJdJ&%z5~cHI z=pJDJ&{p+gi}2ag_g-VR#EJ&Yvc<#QLM#z8IuA=poCLOD-?Kt99h zFGk?b=PU7z729#N*PJNK{v9?m9+@LkV7pm^9Ka)e{cmM34yFLPMH11PSH^@rd=*N% zmAfw1&Fm&hC02h@i}Rn_gx~Cf&xs)C<|1`|lwp#EwKEEFCS~n4GW3d`&3>`F6tF-> z{}5m_=XF~&)zbc4f(zPPeWfP7vGzsN~ z1K49DyA|WcB_g$ftUVBD+Ao7!EklW0g2^CEJlWnZp$XnaOjrUM`K<}0vi6km3@I7-bZ0uk53qQtqeb`7>U2;CxA6vtq%alLo;Z7)4&X>!Fci#Fx3(d@p&e8e zV{0%&7E9=Wk^?vkh+wJF*p9h>i&itmj{#4_FaS^UwTYN?{iAF`Kd ze~mV=_)Te;HobRL@LcuiOKKC4`c)!%RAx9BC=D9XXU>Y_fJ5{66-4ICT60Sz2VbKWoZ7Wvqzi1nK1yDN%&#%Fx zBxNWD5g4_;H4GqUAf%<>=i~&8-_VMYo}yp!4YnltxUCZPwe&Qh9qhu4wKE|+%FxwdV>WjMHMl&Ho6=ozO zC>!jo!FcY8LcH+KcD5FgW!eL98j!2JtS_L&sl!Q*I+;FW`Q8g7nG8&20RyHZ@&od8 z{oU@dVO74kC(H1IwpL0lk@pM*Ua8Lsa_R(JcN?9*TBBqWFPtNR#`X(M*NnjhH+ymtK+Z!?bUpsN~Rl{(vRe!mziUv8iEmWYjK%%>@9o?0rGu&o6e@!~GOSD!$ zZudFgfx3p7z;WY&W9bA|MX6XBkw4~L-gZp5zOfQ^;!!s-70pU14>VK?ESL_(2u-v{ zu&?s{<-oV;2(_#CjH1w2#H{AcGSP<0y@|V27Pg%or7qIy- z6h7bgCw)em!$;%xZ|7ry3{vKCP-TK^XmqV2?(TKkd)~%^wQuTIr7T#L{_W`yq!9eZ zlpK7tWQRw}AZmTxhS2<&0npgM{Ez`OceYq-khEQ6%KR zV7U9z?*(82+HakN3)pMW;Ac@Egh5V^sWkErCT)wxX?R|9{Un@s-f|`@wz49XWb$ak zsL9tbciNA2)S;F!$R-wBu$XugtsRn!S2tF8NapY{EM|cY zVleUaAxZc+kQqW{OU2thK0AXrd^ z9K^cXf~h34ldzc;!8R7x(E;p%(bSIQ$7*oogQJ4?DAn57j~yq{kQr>9a){qkj!FM& zpaa-}-6HHL;y%sF#3$@y+-9}!abGYba;d*+)^Y(W8r!>C*6juWUdLNj1pvQ7Kh!|>2MJ8%s7 zM=;Z;TOfXQUdeXt$Q2G%vf9beT8+S`V297iM+V;AtuUZ7rQr5m?X+y%y$Xa`)QG9i z?_gyw@0`5> z)g3r_PBtE9rvl}tSQ?UtC?6UXd%|H4G0Q&RLg()T{PA3nfj_KpA9Yt<=_?0)ybI-^ zEp3Pk4@KSq%*?`|lBWv`_0p7#q^*+xlpaI~kOMfF5k&`+icMskJv<1nvxtDom&j0P zcU)WuT%uCSpldvC~W$Se#Yi%x_xbsUxXI^o{-MNI_$+(Tq z_ek|-U|*foHSE{j+ySjNriKhqt#Uu=Cl&?qIP!xoqpyNzM@B-IN~p!O0Z>8Z6KHsD z@AB|QxJ)5(#7Wsbj6pj_k2ROS=WlwQd1lUy`bjxX+!ZDp?QP+G#-N}Tca6Yb1b0tx z^mi#`Mu{OJO~&L%;7-P1v-Ho04E-_cQTt#szpo&sse|yJrByi0iK8{_q|lC(j!tGC zaX3*}On=bsWTeqP7W$OEp3dJ4S_m;7?A$jO)gA_cja0QrGf%WrPGO8?2zU1@)M?xB=5W zv9UZ;*;!aol!CGXi#CHN*{fVKSD?FJL91CAcrUIJUylY)`^sJs-kml0nle1C^uv`L z-p+S|F+Hg*T`id6kz&`~%ND|u(Ka{>D@6-svPA#@AOJ~3K~!%k4(w2xE|+v6TbvVB zK(unjCY)^uomL_U+~x({cS*;0M&f!_>nrIg3v18KGpy3fk(A#>o7ywUN(K!|H|&86 z28Cm47T(@72g_GiVXu(wgD&Egfu*_IXtAg=tQPi%Xr?-@LjnsrfqSJ}Pg(rXW_;fSfSyxh)7Y{$00d%!7P!8Im_+$g~9drQi&V$60n1Ck9 ziNUhNw$VYQsMSE{gT$D?3&24Eo6t6c3V~6E_(BI|nDCLs3i+iL`?meGyD? z@wcLdRPG+31N-o4*2*9Co<|P*NxW$1%XuB*NFdc8;h_ApvgqEnlQkV8oW|o^CnK6t z*0mxl7JIbn(oQ1t&WO=kJk(J#TAg@6?9fao@9^yZX>ZtYJWKvzki?xGaDN)m4>asbQp>aBzEY$ zm@o>?NWe<`TrmcJVw7dAl(^o;M3r1txtt3aICKkxeHywT<7k-A=OwFPslM!{ z5`Zr+#A{D(Ky#Cqsi+iGMhN}r`IZ4ccK3X_cl3D^cQj4zsstg5s0q(NngeAJB5 zCoRXLmC6FLXhaVqXrWD|Jx@a8U#H@{pA5n)GKRQ)W`r-vW@+(Vh5^7$hk!D%7wn9i zySy6vd1^0oP{=FxDZzla}n@G+gh-$o@yTL8-Ir_HL5J09pd*YYzHk-+TOsUBG2|JFmmhNq%zToRVN#j@UZht?yen$reeb$IX8vPv= z02Q6(bUTWICii${`2%ox7Xvz1y0aAgqhJ<04q)*wR(edocN@;~6t5TB$t$wbQOX{> zmoj*y!3-KP{f6S*k*pSPvToto)SD0NCC4(baqXYR;fhO_;So<55d<_VqrFjy<4?@R zA|=oTlZARxycnJ;!Pzn4nfI)c8H}>eJu`np0V3K*&?GqisdCV4>Vo6wi|X&?prhdc zHd~cPdrPDC{rGsOh;YDYTAf*C->9@eAbF7~{fRWRM{FNe66)V{fI4viPhuwRzEmhb zRz|B;qarVYNqpyEo8_Oy#9pBTSl`@C?6U;7t#LYq*ne*3!4IVjG;ww)nT3QtyW>&9 z-YPZSZRNoSATQd4$_^x{^g*l*UEZ%v?@~WFTLP1p@u4y>ca_AYUAjUH#-orDMrIVW zu4P7ktd9jO**=;4?gEzc4OW8A4O~cI);%HtOhbylncZOAFTRh;XfG$Ney0e*aL8tw zV;r4I64Kpv#00~g)Pxs68Z$e1(Qk+e7P<1K7cJZTs8Ncu`xgGEcqRQ*7%% z_VHif9~ITu+w;gUG)=VLHW}yrtPoErTg`2rW3q&7!v)~7V8-bcaQx&>9804}VnnST z!HAM)tsoUuw@tv6)6>wQvtw2c5MIRJQ~^TtCC5V~hJugeFdxhNN9S4O(fdx54fgWU zxOQO;4z6mzXfGJQ*mEoX=?a|o$R2oyj=7i|+6PtSV2hcU9tt{RmR-euxmfs78NTTS z`r3tXRr9LHj4C>7^Ww0L?F{LwF1aWf1=dGvj4% z)8YR7Z1goy!|AZe1H@{Wu@<1L0pZ`6es7 zJVL!hRmuDf@l49VxgXUr*eLog?k|BkG!^TQ%kJ7#=d^zl*JxJkaC&>s%EmKAO?U>4 zNO*f6#y`bj`0YC}^SN5=vmdZW9p%!k?HI-^(jjQ#?QI&AP2Iu~0et!8M9Oj}48!eX z6VO~?)_(5!i0^zdJJ>kSl=EC0x`&MtsXlpHrT+sBRXxnl!CMJsIFs)>-IlPetDGhC zKWRh;154F}&GwLQn6eHS{M}*mb`A-2SdTKaAjovZlUwHm~RRf zeaVMjkr@LmPB0RW@`+r*Okn-5oWQD}<1rD*@)kwjMbK&Fe(v5Q&M2xAkZ5%1Bsi%| zOCaJ(>@*y}5oIx(*vC;Nq4qF}Ervc6fpQ=XLLY~iNjsJAjIv2RC4~1C^-`pO`8=Je zEVE{7%;sg2&!6g0oUz=)A28a|$tFEb$90DcLQW>x%JkGYhwv5hFzC*?gw-8ZHFgU)I{tE8O90fLMrNcgC!a8G7}k7$ zm%~NR%aEpXrSF(dZ!gGqf=%nw9xyYfg~1YK%=##+>BNF-h65~JiWjO;cu_ef*41O& zF9u=M>PC!P(1>YU>aiz{ecd%2OwW(GC_83~cyygS1pgeGh#G%EUIvgRZ3ERFyaoYjR z+!4>|T?SjY(tV&m^?Ql2HdO~ps5EpZerGR!WF}>G(Y3#N%5$@@VctmGe)B5aWNGpU zJXFzuLtd&yVNDx$#A+FO?a5xMG!f%GmWKY;Rj~cM&JM6pJ)yRxtvl^LkN%~f8N3YPQFd z11@?uY$o0FX_>q9487~SUvH}WyUIcc~+8gu$XNh?-p2n@ecjF>`vk}kw~zR{vsB3Djk0Y-|J&7;+6DMbpCP_ zZd$w(M^&}5thNQdXB92Bo)dl=F@e61LypbG{7~!waX^m0kYee=afh6rzV!!#LGPG7 ze{WXiZ!!NR;C&r!1O;1>@Aq1m57etEHEWG#IcSSBcP)IOfi)~IZ-beVjtDh=x~Uqfu_@98Qw%Xeot`FL-+aW|4Cf; zm)Um!YcIabY`z-;7Fz0o7x6thU`E-@T-Hn*C@F5F(>;=x2pN3>BSVu&TQN6e9Hi5S zM(()KLZSKrCX_Kqp)g`4;ccNLj-sZ1c85XX`UCQwTflN2A^NE ze0(YSNDco{PTzl#e=nnx_cWHYKXxr}$H?w%(%Yl3jgIBI+>HLex z_s*pw@)Pp^#Vn)0hVu<24}WM+(wvV^9Yba0c=lM|Ok?4-ydNZ(d$F0JVZ`tmHFOQL zlrdE9o_#!bwD2cC5$|6;8hDZM-XE7D_rfCNou7-M*K088PDb@_Vj1b8c8p_GWG44C zgZFeocUYH?PX}^9@w?d>*nA#Kv?+Sf3P}*WdV|HkOwmEcK4ov~|J71LQK`cB z4$i9#xHkU39AZU$mkt`-N;tjR) zR(i4;56c(7UWI)(w&6n=lKUFE|CFsJ*DF)`YC8l%K=&rz zkIBNa9h7T=`E|uNl)DY3N|zN+#u-{lofA1T z8~JlOogwehKGn{D`z>`uI<|2mZETY{=XKNpCy;NbGT9W$)E0HYO-Tu;qdt}C30}f= zv5|5%`CF7K`Yx{unb0tUnx^Pf{5%^r%3@qTlIA7)I&<5B9JHM-Ex!ur&Un zg~Fa)drMig%;cE4933h6@$Sewz?B`>9+)IJfEW1-oVfABP6#Me~cE;&6lHZ_{ zW5vi!Tpdm4@BTJRP7A(QsqCzg1K8#TZ)c67J^DwDpI93b5TuCcl8!{wSS0c1%kqmL zrPx}XI%joSIzP6i_s~nEv1#OW>b0bR9*YWa*cKpKmx8bIn^F>_#7p^!dp#YDDg|w3VtJjV2tEmS!UcQE$~jy;JQ>x~GqI7z(nax&cyJ_f z@x>IRK3k26f3L)pw<|E^@MKINYDTVT!3dU;9>#KT-GLar4L6+o;3E8!2Apo=G_w&)@x*!AXDM&!X{kh;m<^;9Z@?eY|xoHHqUDtqa5 zCK?Wu=}hWus@Jr5fsFlsFUBPgY{upPOWO>`mt2^`5Rh3SY&?Gd-NE>y&Z~lK+#cc& zGM4Hboj{{QB!>29|IhKgU8N%<@lh+^ATo}o^LIodcB;2uAn%E`OU7i~MXDaO-FM08 z5AhrGUeMV!%H8wdO+IIyMa^LZD)1LZUt#{}KJt-*VFb&T!J2=XK|X<&p=SycQGLxQ z+dht4*{x3%IR8rz>?fRII#i{%nOMsH zd?6&-g?7|fUiS+MR4rswDM4)*_Q=QjTg3WPRhV0qhQaJHy4_!fk7OIkjK}ld3Ro7K z8+v^y4)of66UWTZ)AI2_b~q{r__ka3iQDZWdTyjj`zzR%dPNIcs+ATcqjW|lR=&}M z7h7l#TS&J%Me^YfRbtZ36_`4q6_ci>VAQH+j9lM}5zURr?`~AhA5*u`2e^)$OcbXi z;6?VUH3C`#4b#S`$3zzj#?hTC=d^-zzD=XHszNDa^%yD{OF8Ei)aQOqeeNLI&Yqyo za3gI~i%CnWmXpUH1s15a6Ja%iy%dD{C%*F&2AxV?l5SyP)U%AWQZ{VX>9g>K5Fg<_ zrFOKjZdnNWTA!cb`*H$%T?Y;kJp+$N2?JtbVgbgbYlEot-V0SYyrj`XvWeC~Ml^Xa z-r6q{ujwwcQZ8LQXb^u2e0PI_z7(V)eL}i|QKf|E&#Z)IqRixj;(gLXjBA1asOMw{ zGSNysp}WL3e}c7?FeQoKGYj~|Qk+44P3uhbM=@J=(UzA*_FWg6w9}0TtzQAQy{kO+ zUYYDeH`4k0u*yCQ`6iP4LP0lzLj@Fw#0_KulYg6{C z(@QjJ=!)EjMPE|3x`IT>(?H+Bp2BVgz4X0c!t^}LDX(WXk|GD~3^D3lWyQ(?9BdF7 zbLe#K-J>qpYv%7&IZ) z-VEB&RO)(vtc04<# zyqx9M9N!Q=lu>FbBBpVT%0V*~ zfzP?z&$aLySn91c4w+Y!V|YgchTk?3!)P>_q+WZUHDD4Q!efl$=ZWa}O%a}y6E>6p zDjBH`WG0S`EN?L&XdQ)3W$bPxUN505wwN2Wr!Txt_%|hLGy6sRp?@<XrQG3PO6Ju`Y0`|+L=uk4GNh-NYqQ5p393&#e8Fh_9*GK{Qh2QsFV#(jN` zi4Z>B?;aJ3q^OxrQ~mummIAweE&jA?F(PHEx>hByiy`m_d z22v;llaYwRR%UpG@{a4ziZ)WQojmAae;I^5VKBE%k=1Wk(Db?ax$}F)=go#-IY7Be2UqsClvl#&Zpr($;`I80IiYI>@&N;iaQuk@U%>P%mX8ReFJN`2UxR*Ar%{}Jo8HnX$A%@dfi7!beGeWhRvoi{5P|GmGNM>%>UWdP#?A zSEx$bNXq}RTS#vH5%q{HzN~;41sh(<|DT`$c%NTI6?Vk4#QPKoe+l&v<%LNPQIdla zH`rFnIQHYn8x2Ra6#;>d8EsC|v1V=|URao~A_@QPjfQ?iIz zb*|?eLW_96aI4JUhqv~isX#chh)=uly7pcVxPQH&d+o>4FQh>9{xYI*-Oe>I}PN!%)m66Eel)yF9sk)GYom~g8)_(zo%nz;P5b=8|KWcY8 zL1%S2;oZf6iPJ@lUaTF-YylgtGASRYGt2E)>R}w{eKLp~8sxvrXYCGUX+2D5b)+v3 zRlj8PXRFHk#M+S2NxWO3;bzs=SXrY46f%Pdh6*^qTz|dztuC2#Hi<&yk1142ArEG7 zu{v#kdQR*^j?P!;0A~LroXlVtWf@A~j-&%6+&D8yweA%i`0XE2JtaL+WXkuxKdQOfz{;Ap2(vYmflO6E0>0;e+XbPXAO ze?ytD$Fq7*C3_^3JVWP}%C$YiJMyy4-F>5b2VY6prQyDwxi8HuOPgv*L$e86D6g$; zXQXXU?{_FK`<|77Mw!`0&mp@Awej6(yrQUS)2M%EW!%xfSdF`Rfh0#--Uw;!+7s^2 zfkW`{oP1nL#lPJw*KPEwb8rrV!C^S9x)u9~4aum#-i{+SHhI7~*>lz8JM)V0FS4QS zo7Je?!sxc`bXSj1cF|ch$f$b6Av6vv`hGKovLa;?5x+9x$W|)lM*S6af2Q+Cd}<<% zHKqKpj=CJhDna=*zSGEuHHVxWR*$asbW$od9-NQYo~pw+QKx;vUQvs^#wTFx$keW- zR-Ee=Q17`%w71FJ)FBZH+=wCq+Ede6{xuGVM-hgvewu`z*o;vOq!`L0Q_@$~sLqCA zT;OJXgJ;y=V0KK#9nCENtV0)Voslrm(Ny!Z0=yBZA8yaJNbZr0qwGg3j6=&TOhV;? zOnkg@2My>R8IM(C|K}R9*k53?_PB`h_Y6iJ2GV^gXAW&|!RV;(Wly}42IuACT?SvZ z+HrRH+alrWI0indkEVmTLDwii?P;pGS^RSw+tX~5J!u4aW)(AQS0^Lml^IAcX~EEE zS3%Eux^U zlbQITRy5LQbf@=D3YKFyKLy)Vp4t<`5c-h%RSp14^jPd`q_c^V+;f0 z?9mDw;VEL2-7FicXJ_G6C2v^`;4*j#eF% zrCa!KI&YF;Oua%ZQnIz)6CM=^Er+kl+G`FaE3D!7Gx)oFIm)TyC}2Mn@kW)K&M(5l zh66a-gMfF?RY1oWv)m+ zLp1BJ?hw131WP(xjk~xB?N9&jB2j zn1jDj06oWnWA+=$0G9F}s7MnJRvsh#C)pIdRI1O&pcS__85WuH`xJ5)GpbqH19rwf zR2VX8aH^N#%ijj^+xdLvAe*oYu0=G)w^L}2v{8x~6&-o;U?sZP8**wJ*?gplSjzx5 z9Kh_~?D1Vw0D8O?LyO1P5fD7F8}@fH94yLI>K77$3kcVhCj)~7>Ax`;M@IZ#(K#B5 zeCPsLu1%@yK>S5lPCajCI)qzUmalbq3aX1zP|~xHN-!t5X@HgT@k0hnJ;h7_DMZ4Z zzib@43o~uE3UJbQRr;-qKYLO6d6$mtuMAali8tCm+pGg(7gGQ4vHWvJz;Z)YKB)j9 z3kEbRQ+f6oZnpMVQOz1J)y2)ca3$`cGe6t&HCeegM~=XMelY?+BTs3QvM*zXB9CQg zG|GMPCs>)PQ1?dosv#dQ=b4UV$wjP9z5o z$;6_hBwRp4QJ|3FNP=a2iw4ltdn$40@!5DZkfAjY&^nv*Yq57p8-{pA#%<5QvWcmv za2ugRvhfLpv7Xiiw?FBBe(u9kxYUvW03ZNKL_t*l?Z9#09g5ri?WO)bS$DrKGe1UG z?e%|au^)|?ve0;HFuV1GlWBViXO@l7puo!hV1w4SDd1BTPZaD#_SwMpG!6Xs9eK(4 zT=qh>PY87PndU03SI_>92?qPoMs*7DDu=K1vv3=)^)1nrc)ZF>A4a=a4ZkhtumZUx z7nmfOz<;Z5Mx$pOz&Zg8;$>i35^?Q#$VO8phg7(c>=?3v3HlQTBq!@EDGAHya~~q` zdcUO=Q(EgW##>Se13dHa`boJcx2ji&x9D7nm$3i2!6S9Pl&Pv=%9g6`)pMA7h5lJ4 zI`j8>UOI+s#QMAVt>#paka(umyFw1*gd{8+lZVeXRblU_yv-_Z0_pEV*x0`|(|zROMejLJc498J5g5<)^flaXFh3? zG%>}ZS1E*@qjAv?BLXV+q#Q+$$Pf~Uh!}CvK|@I7F-oA;(XqObUslOAJA)Cl_&T%W z-eSKW>^XN!8ITlgF zZzvyT*-kL?)5vV{_k)ye z*NzZqRYU7*R&JIQKd%e#!4cyB3DM&yDsf`MOPes^{N;EUDu3(ss0;!=V+dY+a3aoA zdE7uaa6$t9=2gG+rzlURM=-=HH33=VnbSOVWAc3Lm5a~Er(vP^c_3ZJH2%sVFa9S7 za07qTKVBmol`#xn<>Q+&j4Q}SSyD3Im@TLR(Td)^Xb=`Wnv8990FQNYw!-!9yEQoE zp|Q9jT=RK#9<>sZEbhj6^~##h%f&lSuzx9OKg&xO3w!*;u_Wu>N6-Q61XuH`a8PZN zFL=nwMB#XsgmgkaUVn)}-d4+}i}s9`9Q+BzC^|hI3ky?FwWFCOcs(F66gFYT-;0n* ze%x2co*{=C*`7h}ucs?9v#HHPl|ZyX8L0SeEjHZ6!2NIr#c02W(!TT`R)p(sJjkR~ zv#m}r+7*fF+SNMc%vi|`HwE7uOnX+OhG10o?__2z9zsX3`io1iG1X)_u@e&5FvnXX zj*cHn6kW{3wtvtQ*(klWGcGJLkGIe>08OMZU<88u`~-IN5%GZ+YcMC$a0mNdN)p;m zDa7MT$mgvj=*U)LX7kEMBAGv2!4=Xg#4F7|8RTa0P4xrTUD~rpa9``vy9cG9;>c{g zcTa@}9KhW4UUS~ml0TTHMgny*-_7atW4wYGPIti?k zSblSX`T+YIWVYuP+QW_BQY6z_WiQ)+&;D1t-(+NF6Z=V4%a|5xLubnD$sB85NEunf zVNi8-&*h+2CPXmi<|+^_Pfp%=D|^B!D@moV2FCv|pr}aUT$3c~oH9(li9jeARKFttB8e+vuo)?-sJPtM;+Z;y-->JxP_ ztKLM4S1GER*>w{>tj0{+La<9TJU$Db%}MX7m5dk&ANrm8Z`IOpx|XuI7>4QmbptfB zRJ4@u!92$@(kN;_*q(8J8*{Vq{?-N$IDq9WZ^RU~fJtYG&c zu|A4B(`ayOr4i6egZOW)!*pfZ^cCzYwONKf1%LIGp)DRYeA$m2*AHWRYnsi5A6on)pAblOCU-txo?Y+YId(-q9I z{a*Y-CG3l7E0?_QHvd+|0@(#9^B9g`qh*AJF*XMu#wFn=blTf>Wmx!%g+~meA&)xF zXo>;rt+Wd0YgUu?a!GqC`~0WPz(ZU4q)CgRTqv=k+-S|D2PI)C6IlOimV>rPCKfg@ zypPyt9d_YJq_a|(iIq*afd}^S$dFS&b;A7(p=danj9KO^&}Who!2F;n3^Lx2S!Ah$ z4q&@nZ4X8sCNmPSwXagj#L;*f29Bqr)y|Lvd9T?&w>Lu~{k1VdcrBxhX4#B>JfF_p zhc{Ayl_$S9J@b1sCSja9%G(_OByOt%m6*0Uua(!56VN<58Ff|_Xe)DiJSl^L4oYgPl0k^UYugbOFm~y+r5l)FhP4kQvE9 zC!N7nqzNhikyPf?kE*VP&iNMRKSf?!^GjSTXWN;{?B8dqaK4F5{sm3ojVB6UR;VZLqApFe`9AW20vMiug%TudLvk7SNOjknHkNB z81L7|8JXeX%G`(y^wz&3nxDZe;CHL(0FL&B-V7(NF3~7C?~vGnb`dAT5MTB8Ollqk*3t0IG8+2PT){HPvRMa zv+>rdYU~#bG}nJmSn656{?%&C{Z0Yi?#s9osf* zj4x-9;U1pC0ngWz9K8ENErT8{*f43MhS|&3sx#K~%_(huz;F(-=9^Y+ZC`M&w0f)vH(^Ge z?1e(j8@xkw7AFy3io)NWhSqHcdDZgN&f83Zk$2u)-itcRUKxhrg1{=;b{2!0X7HyY z9t}TT=@kgO;h-XxXz+FZ$1Z=DVl9Q*L+B45lDRH*7GZzqxJx(Sruo}&lI`fd@Ie)L zCh~;LEPV0&G<;{@RBVz_Ka#!%(ZTEFQE$_5YNecTIME`b#z(c7710F;TLAIT%0sn3 z8bsF3y-@&9Uqk;aL1d>dV=G$xOh%$2>Ja)<0Uc)bm)U<*Bec0S&E zXA3U(#J+OP`*mWkYuS3HtPe-2oL70&y9NcYsk~f^@oVep0QQgo6i0&uncydf(x~c& za@)m852M`uXI8nfl62vTy|w^^%9<-^?NKHZd`KR9--yV|Fu}kSnJFMa%x5p^fcw&} z_V5n+g?kv&gU#Xk@5LLKy(e>=vkc(azUN%uhk+05!hl(w<7rlj4CT(!1Uhroo!Fb*b_-EjHBs+V(9CYMO z@VmPMn50IdNhTHh3`Xzx&D@m`T1@8lS2`ChI1o0)lL4``bYusaU>!4PKP8NI9l&W^ z=NLLmpkBJYhSv1m!S#{j5 zKBut$p`6!tC$P1e|Gku)go=X1u1;nO#oQ1|OWWAwI0g+)GBkPK0ZhL3=MhNy$&k3(E^9FBqJGjZaR;X$Pd!Kga)%#@RTO6&>^wNxme$$V{Dt!CP=pL_cg{a}txV zeZLGS?%S_pNb=REWNKZKAtQ;nUhqpTQYP?r{wTw1U5||5o{x$bm$jojErWDcPlr|% zVK(3*;PuSVXeGl{rbny}@!Er(mhJBc$XStqWz-X!d0>ndP@Wj1@%9#^Ww&FLzbs#s zPydMWNnhF7(l`EF$qEu`>*A5IZ#F*sQGqLd!ai5X45Uw({Zhk=RhEqC4(D0oV3MW*@WfZo6=+k1N>OW?P%;)GXpf5OZP5|zIljD>DhBonLGeWiZn zG}ia~EMOf*1!lcN3!~arET^MlmF~T0-)R9(hvd3k(&onvIACcFW=H-0?JY;J{?c$Hs z)}TstyBM0?i9~;P-}UNQ)_O?G3JNgGK_Bbu3G5j`S!XHY_)CgXx#EZ~)XxV=>{J+X z-)ll{eLL#>@m|r71fuiU|1Z$l(EDUU>uxSXCuP^D(AK?lfc{{Zyt~L;ZU({+^c=|2~oi z4Jx9x#}dL+s_=j)DPdhKSE0>_R@R1X#94e%LPVs?NLmEV(PJV-#ez7R#O;@PHi>&f zT#7ZjrooSW@{E_{YPYx4$^6EpMP$9%!wKA1KRPGh@Y=g3UzK6za&p>Sp4bc7N3kR@$NxlXd*nE@O-puZknf2v(g;!z zr+$o)TC7EQ+0S$%WvH*n88VK_$Sgy;@TT%?UdpIars?~1N~;A=ZkyeZZA}fkKD>L{IpJh|KJf-MT_|HOxX(9M(zy{8 zP2JBbxB*|(V=q-WP*zLNAp@3LQO)u1ppW}z6&=7{SPx;%N=N+`;Ilhf*-Nln9b#lE zQ?C-xA-rbrkXBYNpUEuXC8anq>Ubdhv}ugbiNnMbazRvlbttjm0oq3Ts@$MVrjHsh z-74N9@*FoLooye^%E#(Z_B2%3wC`p%nf~svE7#I;tQ4k1gHUNo*Lg>Sug`n5>`w1^Z`rY2*D&WY~g-b4Dt zW;$HU_~V7-3h`T3a>Ziu+oAGdP=3-fdhdspa&RUqz{KO6sFNyTZtXxGGsmaUceL0p zJk*uIO156J|JYql_}?>$fcRD>uxLQ#phYiU84-5?Pf9}7s{Sfng=yDHJCOSY%RsA! zy1$`F%|cSl*H{iE5WQ#$3dO|~rqo6^@{z@40-sZv*v^k<+x+@Typ3|0^;A!$zDw%n z`oF<4Mv6$aGn7%bR3?)^iYbxTLb#WzgtJWtFr$?)i|>A-Uc)A=gnc@lzcc;xO$xRi zDWgxwc^#z@$8|KvW5cnVq6C18pH-RF3mI^568ER3KWcbEaHGgR@&XTCF?|5c^U>bf z?EqG9(O4TzTwe^5maE%jD8@aU!2PluG~t*1RAo_>HDfxeqz#y*t!2QH0bw&w=r}&G zln&rm8H98`@4!%%IJY)LaH#Twlth-GEua%(50=O~{&#EfEoQllt!hR3mjbK20=N*u zD18$z182|=g_zk|LXemCt{1q;$*8)03cf!x10SiPf()37bQj1*nzzdvES{t`EH5({ z&*e|`xlx95p%arkIzcJZTVrM#mS4&IU*6+i8sdL@6WU?C-Bm{2OU_?`s*;$;lCeon z%2F-#Ui6=ngpP+=vHBG+oD0IZr~wntOT^gI=s0v@c=i_cd>IUQXk7YZcuk;zzUeSS*Us3CkY(2s{ zjx7RM%6f@ecHZjVYR%#eeHont&7t>LQn~%qY%E$*Ob4)R0MX_hZAjW)k16ZZ@p^BE zzA~1y&hOC>+1nW?V>U~Hr<}JQb3NsJlT$Mbi@BCIw*!WSFI9=~8XuCgLu;2FVd6mh zRqwlhWhc}9P|05^J5KPwOTEI7m8>2Dm!A_X3gBZ9DKZj~THcD`Tgi2?C}e=*2Id?3^-hpi=Z8KB96@E#gm z#AH_AdA0^SpX=3DQTJ96`G(5F%gL(BBVHNe%?e~;0E@wR6-cHb)@-s0?a|>`So%kg z=-f;`Oq<_`1MeP=#dd>&w3H*LOC9tnTW!*g<+)4KGX&DDXa0&#V4c(BD0|7C;e`=# z2k`hLRIl>F%A*AXPfblT@|fA1_w67Vq7vvf`6*Xsf^Qg!y0DEIIx31_(*^4Q83I71 zs&@i+IJiz`(b-#~lE*z3cCLf+&&*CjyD$=r!g-OrNN4LWMgdgNLmv5j|7ad)!vX9Y za-i;Q)1j;>w$ds6Qcs6+$WS?ZL0fuaCRQi=lnQ6FdFyQ%kmY$yp`~N6hlGf5Vks{v zPS>%g2OVLl5|HF9jkRGIY8@zvv4)TTXYV`U?5e7-*PGsJGU=TZlF$MqbO9-f3L*-M ziYSQahk{*E1W{2@u>t-C6-An$6lr28p{I}pl91lZWHKe0-e=yo)}43b5Hd6G_B(Ih z@i&HK?mc&(efHUB_Z{zgr1y6dZ(%A2ZOZE=nd%c=-UV~B+qMwpmmSH0CPA@5gd z9MiC!%7x9PQ$z-ti8Q84_`8_Slb0v<*gEnpW}U=~&$yl=kY+Ze;LYb9$e)?_@4>NI z9hlqLg44dd3WvU9E7Fe@&YoISLkqa+|}afX=#-wrc^2wM&#!H>$t8!C~ma$vCn z0q)|UpV^clbs4ksmCbsv@~2({qV1tW;xLNW;W}*u?4%rQnm}!%cL0~zf*h+V4JP&& zCg-oYS7O!r>EQpB63$8F$Gx-4WSpjPjM_{HhK&BLtbpE$F=c6q>i`y}bq8rL5`DZz zBVg!cL!Q~q4LIzPL!-kF&p|`)pa?OZ8Xo55&5?Jh(&C8^H{guUE|v=p$;i#cN@m*F zzACO~+o%Sv*Gj2eIklFn40IN4FkJ!IU=GAR;rYuxoIbt)w`WA(8RMe89YY7_RPwn4 zgI`p6ro972ZB3XNHX8k85$6Asy)F-g*=@3u?sgul?y01w-?7QMKh?&~P%X3LF-C%s1r z3^B8i@rco0rk#343RzuO@BzK*dEecPS#nleEg$}lHFI5Q<|X5dxrNyp;f&H_QCPae z&2rGn1ZGvIz=s{);RxvAsfk<4DlWw6kWgXjRPQ_qeEpEUel?N8`asGE4H$d7Gf}~^ zDMh|B^cejArsCwp0sIX*fd9=131g6R4r64=ben4B9x^wTrH)JbCG*-u;dukg!Wq4Y zZH##|_~($}H!A{&BbUmckvrD_=Y{2a<6XMJf6j^5gZNfiwk zZ&;!N?%!!+jXf;gnKIJzdNPp12Krrkg|u1QfN5Xfg|Gi%9DXpKGL_%5i1_$78HA{^ zV@~PG4pwBq{mwQV-mP=!ke=;)zrS~8W@G!2l+jznK=`0|p-Mi>Q9l?&Mj2{$kPpk* zqo5qYZzS*W-`TTRhMI5;!dKmfG0N-;gTcTHq=35LcoKPtzP3g2R$&h683bMs zsx#ez+{(7dm`$nJY*s7LUdTQnBlDSk1gl@a3#ZZn%;pfm@0HB&Se zYy)KuYyDQrONwVq&%vrK`B=ZE28Rb8uEPVhq7KKNnuq-2R2+~?MSj9HKE%wi0}bh- z&$cd1k946RR6INd-RBqMjTy}T^13yQ)@?eOy%PV-d8PWA$*%f0wI#Tmy2T;9kJPH* zY@Rsw^#%!~*2# zkglXZ30@}krztEIdfFd$;53@o4q4oU>G!oTNJ0Q=@nOiAkCSx~9Qi7!ihhdq4bK6ayVA=jNhICG0iCM^v>@!7ib? zllnlq_=EHy1yjvtK#q8#X%Fm7qg^%)bzyJ-3;dQgjIN|^>m(ah!EeS^B^g`)$FLXi zUPnKd=t4b#4ckJ1!*>TT8)XMr+%`Z=_x?0Dy`>$c5;V;cE(e25M51gXF~GhAI{kYm z%RiUo;mxMHfO>_ANi)0Yc?zGW+jQCUfP2?VCkw z@zTg(LPUxoX!Kt@KH&9Gk`O`I|$$4+cRs%s4llz-A_}oWOD{cx}|s z{BknM*j~y%wV @>$+RioBN*<{aJ;Mf|sw%nJMs^TfvSzfa1IVr+H2r!F*|UD^Z%k@y9qTLj6zqy}zdIJPydNoZaZoGsvn$V)LR>4KfOYR5=C$n3yX zLHI%67jtq3fpulg{JsNI*O`{$Ab>d7H+e2tCbM!9WnA$)8EI5@Qg^u%}zjOv#G~ry-h{LK0S5rTF;6T%a`S;@0GMF97 zyHeNAV7qdx;PwP&s4mRF&J``;%d)(!24|ktiI;n4S?a$P2s~8*IK39CJsO#g^o}MR z5ta>OCQ9oSrFcm^$ZA}v)}s~!CsB_VZ?H;(ta?zfr5YR7MCkwydPr`ead$-{CTFK% zY480Muii-px03u?XRi0q@0K*;B)cUcJy|w4A~z3fc6G7J9bxve2e1jh@Kr|Hm-OxG zP_U5>k?^e2>UsQg!3^?s-ajugbN5&}3`BeEKaWv7b4vb@{;{0tv8sZyJ{Dm0Jna@= zV}gMk3kpD0FHn_$7TkXCo%nST|Bq$R(H6ldu45wUZbnxpPPug}PW|IXjBI7KF9wP9 z97@AWd;lYR<;>v#03ZNKL_t(>70Vt?MjVr`bPIeZYJqr@llMJZU2@t%h5^%lpdPG7 zZ*L3mE1;{o#R%|Dv6Vh-;agT8rTwgK1o^H^&$^%X$@!~99jg-s_`LXgIbp6Ozn)6l zRaK1V@9jo&dKT4;R*Vds2@pn>+#mgDEy}1@^r~NK4RNxOv7B_z1`Vc7vbIe3o|X-e z_u#ka1lE-(KUa`w^W6c=@-yKmujSsB+L~!&3nsr#hp8bH_A$f+)!@BcHQ@S@8We?b zaW0ns9Qe2`V4S{0*y?x@sc)@a2QVXl@JU89-Ki*W3cj;xaJM^tE_P-LoAFFS_#dmH zF>6Xs^rF=v0emiDH+l*4yI*inx>`LUx5zOW)R1D5gSEe?i8QL7c#zD=3l!)WsfBuW^1L9Pdz(@?Z|Sj|k}>10M; zMgPkYpgojvX*iXSn;2!kfV_MU@80+E9-6@W=t)+IP+2$`2xYucuP`}3QpiV?#jbZv zn6(~*z3?CWG|1?iQa&Ur2zTmnnVX6{I(-jaSdTg1*@)@vDS0T3G{@f2jMDv4o4sX= z-a$WulldD^+cDz4iw@0$?HAD}zw=HE$WYpb;va9rcOE(vpJj|ihu0+_djp{JOyeaM z&>$N`EF8~n(cTUehwctfMR#h7?7cn4r!_RpZ>9Vn#*)wd9VxT)y<#BQo&VbaFp*r`1C;r)z;=@VhcYv z)2C0y{h5W0nES{f?|xjejKJbk)EbR@C?oY|FA1;o*i@oX_hY)ncs2|_>Kj{d z#O@YMWs935?pTY%49j-RQ%bR*XXxD^geVsgB|n??!AX!?ZynJ^(2`RPK@5l&tRPPm z->{;ptIZSJ42G-xbBsr@T3WN%M1h>tWwB1A!TB?EF3Q;4*HEVB%Mq*& z)KEnDHqn4mKaR}X#(@^opG#x=oje7jY3#p^}E(M2akd;EG?B3dL^Oob-wswr7B2`w|hG8lp*Hf>x=blQ)VP*hZ6af+v7m2Va(&~Z=T=>i= z-1U)SJm;$eSaKnmyMpqJU=N@1$unKXGi|djji*`MgCp?rumJmUH&Pt+&o`F>J?gmbS_mZ>f(M)UR6Un>G#G39MTXE!`^ z_G|d~sh%Z`%0jL0mK49R8Si&^_+DwowEJctYZS}1_9tkH`NgwIV{;f)oPl~um%;QF zqM$gR4%FAE#J|s`+i4zqo)ppHJ%(lX#@j5vb01-7wh<|+K5KW=;$znVEa%TKm9ge# zjkW1mRA$*iWf9AZ6wju|OK(=5BfXtbfH%%#i6NDoOSB=yMwiyTJamd;O~k=cXpL*g zS9la`o7<8qN?d@mV;I% zu+gK<<{I^$gk2e4cup``*}ao`QmZPsk1C}mr;mOlyn7`B+5{h^gs+uw7pJ3mbt}d{ zT!S$?TG+F<5pyoyh2y)LF_}PTO1P{r1q;KI9^jo~cd<6!Q_{6wvr8Z5CuIZ<+uqwi z$KZd38`{x@^sjHmk54!PFON-U0S_NHCXaIHvAjk9-%dIPe3loOWn0GbVMUIK*=;I_ zppy>YHf8;88{n?dk%HK154BT35VC;lCk!b9K8JUPIQxxh04|4+==0LRO4_4{=Q-2L2?8$;xU$T zlF4_)eoN93*$|@g&*G6ED#SvS(N#qjt3zuN-LXWs?Lql}&3DtVhc=kWwkL7%#qMUz zV1`%$tH{-x@{s;iVu30h^foc*-=As1Yz94!3e9~Zo}7)Q@(9+yN+WZBNf0ig&6r9- zpU3eoP;jWoX&`x0zt=l*Uq}bcC31f>swc2$FZBwuotA>?6)YU4q4k-z5LOFHO-aEx zR>K(I$t=M)SuyBebvW^cbx+>?9k}$-ADcD>><) z#DMsX?&H6*GMQx8f%wz@`<(y5-tXDntqk;u_a(nDM0n_&ZWW(jMn8fPQxY~9E#g9~ zQg;2LD3^?2vdf+(G=#>m(22;QsTg?zeHV6QCZR$VQ;n*r+N?poSMS%)#TnyP0m-!vm1P?6h{~-z6Hs#Jdq%H;uO`U6d13*#e{=gO)aE z86BGHRn=D+Xq`V+8Q4Cn0L$L4#HoQqWbpX$%aeodC0B0FuroHhfBgoqn zLu5lJT~FAzFg#Obd8`g8j~`ZM)X~W^m6|TQqbKQL8+h4h5^^pjogZMl#mQ} zC$fwoXXCNtyH-mY4v4=HJ)k?C0ch*GQ>n6dGq@uxgK)7OOAdoFPrPgx-spYrNgY*% z6mw{Q$~#f|$X=Wtn6BCzZ=@Uc?5-S{jg9J8Y#XVZ=T5e&9g~Z&pjttA zK@aW`%O;PegW!~p=Hm&|d9OsBskCpLbC4kQ@9)B#y{#b%IO0Cc%EfvHX|8;Y4q!jc zg>tI!F2M1$N5%8qM#4IWc7>0zg!*{?IV@H_+H7&;XDgV#NKfmKULpO$Y}deZT}+4c z;kQ)c@cYU!eOC)6u4==Sziq@M+GsQPw~6U}AT&`tND2B3xcPn315se~0Jg&$OaQMy zP`^<0?odOWo7<3_s|N$7TKbLQ)&kXamsj$h|6vW!cL)iQ)yj%Dw9!110(DhLm?2b8 z%tSZsRyI@HJV1q#1Q=Y(WE|VA_;jDBrD7Oq$pehJJ7vtap~D=MeBitC{$HlRr)4o4 zzAc;#$lV?8XSNQMu4}+Fqr2{w-*C#wM`nc{tsR*)@bpP8y{5Lb2coZ`g zm31?i_dyr;$)qKf?NE?TGQv0BlW6TZBgl}nqD)}Pn}^WIV#OG4^pW9vpJbWOVKJ#k z@5|7s-2VhQk=ED^X+MFFda8tckFifMV{l&u`kOUp6j**tb*YXJHfopgZY=O_||2mczjwW zb}InH7hcQnp3TZMD-VzQ^Su~$RR;I=^2mr^RMXxVR6t-~JKcqx&#%P482Q~v-f2V9 z4~B%|`KrVbits7>I#_x;JQk=3`?F5v{qVM*+3)e-%gtxxWPFuDuq>1J4u_+g-w1jx z*J1oow!DUDsCS}l z5PU~4D`|vTy~;pNW9D}WgRV!hz0I7bYBBd;<&mS>+c1vK>%v-AnAqQ7AgNdMxm`*M zb255_rGyfhoS-B5u1yT63L4Ae<75V?SRGYu$opX{Mu(0J$#?#`9oIav3zv&^SzXs4 zcs|N%fq9`>8QBo4IE`COnTf6VYz3RNx{oM+Cv9$$j~@9wiL<;G?j}a}1mglWfcyz9*7qG;%#3HLww@6`ebwxrYgeh}dk?XM^oI>8^*z6p*rMDq%;SlQ-st|a16l(&?%d^vy3(-_v!Z9$+fxOxv6OICOVA zPXFLaoV16PP#Rcr?d4_^z0B$v`yITA%ADLnYG3oPJZ%^iTd$WrB z)i^&C_bg$|$wXU2D&Dx60n|nxRvSaXL?yI_sdAasphEL=x*Hh#zVonREM8fKQv+8p zNoP;hD;0D+}L?^q3jk#fh#jdP;6V`1W?NK_v44d%Gi#dWnKn;vLG^tfbv7-sb~(F3}H& zh5hmr|HSiVR-xS-VLMiv4q!2}NYJG&yhKuh)1vPVV3wn4dpZM^39ZP+Ns#SLn8C=# z$X+%FABfH-v*cxeLp)_p8aDng2kQ+7a8QGQtYjaZ?g{>8Sng&d)Ss0>>%?#_1&(gB z7nn(Wse?>pJE*^vPV;uf=ng~(b|#PK9q!wxEL46lAM@uci#h>^6gesR^O#XT+)j%3 zAi@bFfEz;1W4RaQ>_5RMN2Xxp^E2%`xCR9dm2FDr z)HWJ51J9)M5MhR+Fb(T+^02MBiH?0II;)#-ioZ5vY)Ln!9GOE0aBL{>MWvO^;FrQw z6xT4L(9KWVo{KayIukp;JpwPVY`bmejO-_>^q@5kl=0agtjwfs+F5|tR#t?=0bJjR ziDM%edqg(2^@dxHa`PTjMmJmXjBjqn$k5Ot;Y&-$p38?}h2O_Rb^--Hh#m%V{@SKn z2QSKrD7}JJYKj&$U>Ym#&0`ShIcF@vaopE@mWNGUpbBo`z^0H0-36) zXMv3NL!>FxPU46q4uA|ZAGCuM2dMD-Ro@-JBDB(UC?;)a4-!42^Tsc3!W8!J-Po5^ zNy>)fsEA?T+A zSjLWJbeacR?vF5JKIeGj63YnEOffL?Pe%lWM+6@K5jyR`+b zYQcnRs#JdWcd`cMyPuZvM7_ceQy=L>J}XWUHN@VR94n)d3~Dq4PJg}{Xa2DjbKk7N z>E~|1nEj4kQ{c5*sbYxX)zWg^$N=`s%V%j}$%hRMm1kya6+XZ_{QUnn9FO?He#PU} zI}fZEqDur_XDR zw1I3tJs&HdXb6!5SPLWG%UdyVCymR@Bs4}dWppFSBW8#DizBU&65-W18k+F4oA zhVB7^Qjuo{@;m`3lY5xi>j`HMLE_?Q# z{-ez}Wkn$Y8w3ZC(7_o>A;ym!ZFZ6aPWIAOQpURGRymS z)$Eazz)BJo#f_<4Uzbm1GVN^3V-1)&lIP5M%ATFC+j~cRcr9CLF%K1!Gn!%U66xx3Q0gtRc4vT5ylGuG z-xUmWu{W9=ag8CC=iFGRSnqi(P?+e3a>@(s&tzl08#r@y4kG^1TAa8uf}(Ics_Ia3hC1mjAIr{M#Gb@E zwl-i=poAO?nELfzoHf4;zst^m(Zp0iiucey!(PuuJ0#t0+u4rHvD{=E`v-ZEuz#i$ z|It3xcT!wuBwNJAhBzVi3!=j1084 zx3Tv4P`(Wromtt0*)l5a>nDmr=Td!xM#Pk`zUWc1U}h>dj48say8`Y(^Xy)h%^Sx| zIUk&CTj@mFK&P!MgY>wMhQ2?r7x2%Ds=%mPEC^!aEumZoQ*tAhb8fdO*hhl%u;>oD)GX~-R)jyj1g zbzKoWNPS*Buq*@Vdl=jn8hBIC^|dlQB?q-rz14|hr#C*BO|$jxENt3ZPX}<&gL_un zfH_k$kVA(eL(O}}mCSJcBztXZPw8OII_eFa9yF-$_&%L&XBT402?c;3_j~Vev-*am zvZ`+4&B(GRZ%|vI*PAe_vIVF9svMV8v6nM5k|Q;eb;KBbx7@n9%E37o`GeyU&{}zd z`xFM}<_e4tig#k_n>Cx=h5Yz$YmP-e&PJU*^M?HJZMsIP)GYJis(FCfoD`JZi-e?OM}3St=m7RQjhaS2{GG~m zpo1_RRe}ZMval;Bk*zL7@@OhnCz2-pFyaQer`*yVWbQPjfyFCBI7nwHEP*cvHA_Gb zio6yn=iy=+-_VlzZoB8spt0?6l`i@$%yd|9GQ-7US|oZD$4t5jJ}1zdg|@%^@wyMjfU@}1K4Xs z50d$*_vNx>#xT;vu0aB_Z7>xKtu`BpK2FZT!pAdEy{iQyLgVe0{?~?aO&u6npTa88 z+y_=7Kxr&Hc1a7SEosD|p@3I3l8enHnbNR5{o#83zt&E%09BeP(zRF=ChpaDy-xUp6>8a@^T(a>gsI;~d zC*Qakm;S2;?{90usCQ&nxk;pM0-yMEMJWRsx02Zl-R_e8s32n(w&Z(*0|R1-8!0F4 zR0gmGo2?#YRtUW?$&tiB4+eIyCv*o1!%hVi@iJx*JI~@70`h(s>CJZs@R@YJP@vm- zYZ~fyM=?AUibPO5Lt$GE z$isBZp5(CuSOUAsO}pB0he&*m8O6`jC4V-{0eLytZwaf_|JN@ir;o*4!k~eI2-+23 zkf=j~l9a3?X;!r$GYvX)Xq{AIE2yZ1*8xndws)fN?Pd(8Q#JHG;T450!%04WR31WUpyiWkjI8)JuVb_)8(ieB(%55!}V%$68-IAn|Laa|a(a&d+C7^@f13w@j53Xy* zrDEyV001BWNkl|CX3;cerh`RxafnOn z7@X7eMB5gus>hMsh*j$E)EBKOB6QF%(|^ya%{> zg10@>R#HKDK@MOy1!Wmrs2pvi6WD79@So)Tl|eBmM?IPTr~+)5UVvvS$jB4f0j&E? zPP~a!^oGEwiDsY@9VoOcAo_%yrfwA7S%X9Cx=<0;J660_u$@H1zzO`(e}@%TpSEqt zeMUherOf!frxKs~YXz=uZNM}G3B3(816|5P4r>7|SS6sHj^rVCib3z+*LmalTVH`s zzcB`XV?W^6y#DBP$_+nd@Aofm;g`JDoT6M^lzsk^BZ&cGpfzeZfD7!DX&X!kl!NO3 zXc;(zCd!~P@%+M<9C3xYSb{nn;nz3g`VRNtFEx1YdBgC4*xWi69cKoqQ38KSJ?0n& z2;Gq(ka^B2!b=}6MAT_-Y%NFnp}DlU@YKgc3c#g9ab+}}Ilygn?gu^8)~NxaNQ{7ZZB z#eeR`r}w9^yJ^qz8i7M${!~OivDO8iM|%DYD+_*kluv<#Lt$@*;2OoVQgvb3;oDsy ztqM2<_c07h-rj*?7HqY3_Zfi*&K2;f*2IIE{+|(wjFN2J+$Bvo z`>vh1Zc#N(G~NfHcd;DyCv?v9wUY3rP zf!Hueo1OwMm)zq3_FX^oa!JX#?PH*Y4&dc&$nUlhrEmYM{=cc?rA*8z%(M!tOz0L? zWDEIt37%QXUgmDi>B>BmZHBkuu>Tv~Bj@a-&LsOoJ+nmb-HWqAA^%AJ%0g{X4%X|s z&UJxPN{)9!mKQv<%Qws^#)}KfaiJ@dI@wqPRNab09;(HNx(@7N%LE+G#z0~vywg(J z8*x}@33CGD3w1h5Q*r`g=vQLb|e=cV^|_2t1@9Surx_Ny)dw*9YvX{pkjk5$*$OH z3hFlAH^2z%ofo1&N3RIh1+m#0Xg_A-UquZZpMy76rQmbc-cG=$DF|-bhf~L-p_EEP zO1vJz*f+ zm#r*ey@U8>d2Ua}bB$!4eRh8KP9x!@CHPv6o`rdM zYkd?S_vC!IKqyf%yb)cP@jed&L|g#VsEt-dx;Zd9Ts&B^Pb29`C8FKP9&iI*a}Fc2 zoj?-qt2^6q&ayh(UEYo*<8!b%FNHQey8@e=K!$KGp+(s_%;G3{-v->UU^}j4x$<T`=Jl%=%kW1HaFozH*LhvD;wBPTeb)~Z6LxF|MDEXFrFj1R1z4mWIEg+aD=Cuw;#ldcL|!lZtYcvc*4w_+{Xh=+e|ZZg zE@?*kz7BMRNiR~cjSMAkGZRH{O+852a7Dkhkf>I$(!m%i@Nyc4=@<#_T^&eU+JF2P&BxMGSMJ%)-er)G^RQ9|}hKP?Xp@z_J+`KoloE|Vv-A*H1msx+_i|r<|Usk7T4;;X?WSZMmc;C55>1gHO zAB*40`J2eSe@z7G$Q(6lirDnjgY-_<>hB4oirq>-XT|+c)8N)y*h1@D>)r^aBZ2z9GDXOh7JV zHdU4kdREqPz_X2fpU2skj1UK4CSUClg$)|q+lU$0Rp6R?C*nr05hK|3!iU3B<|dMc?pcLcq%3i_j)cVHf9{PKy0Ft=NNpvHhiy2#2+LPg z$ASohWN+NRC5<@ho_$CkmV%D+3zdiw#cy{+W<1nFaVIRHM!NA>xr!AJJax*NG{Z_r z`;(u%ylkZ#u582DYc}Bb&zJKYnf1oqBHkcr%k6KQIPr2rti#;X_#?Sr)-jiS!y62k zv}lDUdkj_yUjNV=bSLbroxJ~@P=x5u3JnexM4B3Sxb7iWvFE!3crml3lmT4bjlKCS z;nT1W$0p4j%+#vK@qetrAtO_;QIV*94JpNk(8764ZcOv(hd61--}8l0`1|eaaa|zF zC1GRfQ7ogQlf8~y-DVlzUfDw|Ni6e9aaN!LOEf=0C-w(jE>rtF4ID3XUPp}A2`ivd zKfMeu9g&CE8u{N|_Rezxrkn5TSZyOcCgNRnAf9xemq)R)ARp`N>oF}bI_qx(3FMwe zOg?WirhK9lo9aT+^iBMCBBSH)BHt<_4;aYMulwwuELV06ONr%kO)_4DL1s`U>!xN* zZg0le{iTZqSnSrXXhIoVke8)2;Dj?O@co=zti5am{_%JeuhKBNqBI@VhFmxV4vf%J zM7(@!JFflxMmmwYc&j9P{l5G3iWYQENf_DL*w@lQb6t06%!g10Fn=65fEA#a%m8-t z=JjW;CwJgWi^}kic{y0;mGelBfj>_H{!7`dp20z$G5Q|mGbA^nKl_*bNJ@OxwgNTM9~_k%io7Yphpn(84WY zE6qUdxdnJ`HNC6@$>;H)R>wJ9g)bJO>7Ys^nUijjaoB(EFaIQ{IeVT&==aZKXU$_U)*Cp@(Km|j(VEU zZ^FzEy^X)M?ZYw2Rx*9;ifnoM$zqst3gai(n==Z0~({06)%bPz{!NYB?_-OYW(m z1K2AEUSMdo_+c{e?M)cFy#;4pJPI4tZ?eB3BUCd(a*a%veh#i26Q5y!*N1oG(uzim z3&aV;wcX21-EU0*hP$}W|E2=7TK#j~5XkyMHs@|&`K$RXGwrqm_-$qXa&FTZW07K< zJuaF_L)XP4apwp|pjS~G@Dh#AfOY3>txrbb7wLHSQn7RgT6bn)xv9!C7)||fZAcx! zS|(|4Un|Rywb7yACJynY9s99CRKS7m?cDfLXt)qw|vsI=mQ*+3#&hRT`elPs6k9Th*ZZL?fs@ zavMLIPx~&1Um+!-8@Ay`f7p!g8w<3qRCxhj@N*s@U!>)t{QM$3H?I)S-P?rb<(0UN zrkdelAqr+^b{T#A94Iv60m;Pg;7QLC1l;qwW{kLL8@_e-G<=>8{OtV5m zF49(~$s@dChCL+*lMZ0J8g9K%p=#@=I(>X=@FMVFM)`QM2}dt340?d7;4 zEc}KL_GADjM-l^J!GK*IBtl6eIg%JKG0?>p6;3#tlXt_t3vLws5A_OtcL0Bm267E% zr$+DZ#M}3T8a+M&NAcp>YJB9HkHGttKzvlau})_OfE>V9hsuI(r89dAe?CD6u;Ey=I*A9*|GOIJ#tn!7j`1Xxt((it zg}LcjxZ>nWY~P)YMW>F!13TKWg!AoT@8GD`>_+y52g{CoN-bBJzu(`2o9O)gZrr$v z`wN5YK@o1OesU^1*OjJWFaO*+u?WvxHyrc-UpdyFH3H?Amm+%e+u`aRCrtC`c4z-@ z3AT`L$X8)Fytbep!Y}bId1^O4J%0r5KD!VvdXWVzvXE>(if3b!0{Fb5lVk?)5GLe< zEL}{ga|mPrbD8^?b^2Sn_853($YhB;#6B`p@HQ(kt$V8mM+c@89*ATDw!I!RzdaFS z4ri;7d-mY;##R)B0zRIFQ;YEIZz^fYcGByi*P1oWNYWeSTGwP+1s2ZC#>=C!P`x`O zL2?i5!@O5p@yglMa}LkIh%fGBMrv3bz}(l2JglO9q(SUXfmUu0O{wZGYW1S|z0}k6 zo&PrAs0&u$k>(~QU<76FaT|$t<}-~~zNTsb39MJ>PD22ntH8_1`W8}z5+0ljV z11L74&B;swj;B=N&&T3-50vAxQL_~2fWWx?01xAb4^!{!_SK%Xlo)2VbTBG!S2ClQAXHE8f}M~4mOfy_Lc2T ztb}vvB)+w^IO+arC@D)vl^0oC@z9m{=yIM*W+K~?XC%Xnpkn*IZ7gBN^85{~(6EJR zwK`it9CKYCENM5fsR=XUS^vA9iBU^O2humRV+!+Ard(Zxi?7Z^)!D=FbbTA?e7DF=Jo8)=*)L;$@eBa^g1-EvLqegDzq@IhEHK zAhYeHlkDqTaN~)GKCVuj2Sta%^{>)!$$z+o9;a_z`2?ZTvGEm*##DOUbDB=B8PiuuzhkGR#k zNP&!WNFhT(jV`W{GWfdRWMcE~<`7g#;oAOGjrVN%1{a_2}`*X%AuFC zANF(g=xlZ(!1c3#5(q|8Py1vn5ycDPRk<0O_vKbhJojzM=&8u!oHcksa4zzz zA2yEaiMIFrD~7p+KrK(5JcN0KU1>=EWT!w0%D%W=4a`yis`S z6UBH!%8>em4uzrnX(6-Fl~FK6mTVk#I#rjIWudCF1tSAF`*9Fgq!Wd&HehZ+8lLn> z@9!51(Z)0yMD8L_aii3`oXN^Q)4VEW=2DVE9GLvyBkFH;D~&x3oy^*BBE%dh1hr%M zGdpmJev0z3{pEZt%gVw7P4EN`}A_!aB% z*S0#A*!D_BaFh6*%w_5onxnTon2U|4aX&v@ghhXE#@fkQSa;`G?7VPmj~&L`17-2+ zzgzipFYUv!6DklRWTTsF>vpWn4*{n_$o4H^!7+3X=^$2C*h7CRLYW*%4D?_iV*Jn9 zaC(1s=s&GO6BwRl(9X0(iX;bD> zfb>B9?sP$XdKm6{tP~e*uBIXqfIwPBr|p9j?kWW}D`N?aHi@c!7`G$)hv&TI~ajN0`fC6=575kk} z9>)yACrgw@_BG(l&JL2h+qZn|{-|xl_G*s54 zVbhpAEc)pvy!7{Ky#3!c)Sg?0Rz=^h;W|CKPqyM4mz3bCshQZ_ z=D|kJW19KTMgV`|St#&e^=YZ-+?9%!9ibd*KHn=+jii`o2&4iFv`eww&xx1^wuqiOSTE> z7?pixa~pZoQA{6flae`iC#lXF3iyn)Wpp_!=t_IUjK>N?!l+C?REpcmZ4CBM~8gYtrE zcO1ZfW;tnJBUcH3BbCh;>H+qab2J{JWXpa)180Ql(|U4SKT?ZdI5T?=WksU9b9ZjTh!bfC@;veYdkhn6CZc@G&z0cEbb6&0>| zA7GZGN*G?qzSAt1>l@2e_RRB5n6`|@J5P;vQf6Zr1U2m_WKhm2H`nop{eh1t!HYj> z$19alyi}Twmx+&7A;9!aI;BPNFWH9e$gbLF-kU|YY{4HI6&T@HAd%BW$Me1rBE)cw zS$Qa@qiXeB_ElRJ!Me;;ynX*TEN6CP3 zP|t(PNeh*T%%q@hbs6b&z(m9YLg?F$XZO8-hP$1@?9`j4;_CO6;vaLCV{um_X8Ok5 z;#nbSbQc{KzubwdelZE(6R&WaNOcy*lW)w5ISt|g%gQr6tDPOGXiPeQtza$rY(ii_ z#!UuTe1vjS4euoftbEX*gSyzVpV5iZ(1Ed`Suhb#$M3NZRO9T>Ad<9kLOx#qR59AA zE4VgvKNOLld!ZAv5Aafk817^BEmCx_qp2O4uQ%YdFAv9yoej+D4$I&MoS2W5jh)!a zz)Vku>|`HhfbVRU8@8o5!~vCb%3trn7arM(D-ueGG@ZWsGXt#?^05BoT&&E^#OkLz zu=ckj@zx=k(M`v$iJ*uw(J%?nd{$M1>P@F_ANb3mEVYU@v0CaOZkJ$>W6R=wqz40T zTt;rp5iiuq=MoYFQt`*}z8Y=O03!aR?oCMta6*!Wy+ygf)k0QD#2zBv^_Ioc<FS*TONAPd;cgE_I;acQ^Rhd&=Y`J%V85txBBw)*hV7sQ#vp@5TDf8Cdwi2qDxGLmLX*I=i-$cjrJWwodiC_A~;=QWtc#P?Oo=`E2wtV9bP zz#$qf9VmTZ7cO&jp}Msm1uf^G`QZ+%ShCICEKZ3vN761al04nb>`)`%F$Hx;mEfi2 z6*w<&Jc^GrVJ1s@A4!ogJlW=iYgR5+Tse$w58R@cUh`;9wN;aY-w5!tp>y;HmKhWI zN&}|fycsuoumu06G^Ki;1qDa*r@lQ48$MW!moFwA=VfBsUuv=Y`(@ZYmeH0^ts!n> zi6{b6Iz_xKSd@{tjk@t-+Gd)#Kc?*N^7c5#odR8@?>NBN%>r8g5Ecv!@zGm85dd(%+c+<~&t8IfE-u;nQzbgiw$(NFKgnO`i!{R3sB$-!fk*^J}( zP`K*4bt1lX>OP#p%%{=5X3=t88yncWm(JUXC6=+W|Aqgf5t_8(%))Eu^Th9Jmawj- zbZbO6+8E_@JiJ0Dcp!AnlF#3nf@^2cNuXeWILO7u3d8w|c(|f}<>VXTfuk>+tL}kH zyn&_7mUYXRtbVXz9E7pG4e5IuaK<5{qEAp!_nbVNNe^B0^wjV?+i@hugGMR0QfO87 zO6BGJ>WxbaO4>t}xF8TdV z>sF^>$*rUCpOXu)>eMZ0IkphdWApgTZW>i$B{Yp{A~uCtWyddIdGrPvYW8RUnobF8 zTVQ+n@xDl!=$6qcVnr)HU~;nrbiCgj63-EzJagUGOu={Q{QZpr35HR7ph57_hs!X3 z=^mUJs>mwRKx;elKeYuvT08?E9h(u2#%q*}cR%0HYA`805S5fi#gE(^d1>f)GZnR# z7@V5`^fedH{je;Q)9|}T_H;i!Imo_Y*J zPFy}>xv5k&itzICayo!xnUOAkBL3-kPim?fMWy zmL7H}WoGFB`n${5wGm9euN#@yZNX1FnrO@P-LmQsZM~c?c{$iSCznCHDOf>S?}gut z!HbveL{(u5I?tx+MLUGG3BV-cS1^rRMnk>wTyf%v$=-EdyNO` zH#>3VCx_u*R7l$6iAas7Rgwo7e z4!0;wf-0TYPw@Mf4zovct7t@DB?qug2eQ4d@-6QBd&lCwFO=b5;Dd{N2^wo#*!P!4MpNnZ za)}a>o@4p=6X=xN>2W5o9R4iFJacgk&IrX`3*Rw*$NMLRg`mehwGCH2wFOt5I2Mn8 za5yfaAu4XOkIu62sc3Pl0i$vlv!rD1kGJ6mY)O#qJ0G@7WadJ7Mv9BE?8;KizrO`< zu-DeYFAc}eIU9R$qAXn@MZpb5??e{_S8bh)XZxMMT7x-nPw5~#SGiqG4EUar0UV=| z0Uz$;0WB|RJFQ*VJ$sKk{e?-m;iO{RypMcyQmlM9d!4s@eJp-?**+ZK(uq9REvt4H zWH1UEDXVbqQ=@S17Z`NnwvH*nA3+UDvW43jMTMNVkd+ebF5k2F$XBiyhuc0r62INu zhD@(|yn6<}hZEBwrQ!juj~FSZWTh~7Z-@+K?2qLc$V+9?l?(S+*wLoIv^Ucu3x5|z zKy4ZaU0(|6pg0?Ef20uAtuE7q4C>0J@@i~mWfq3Zv{H5oHtUvjwx$_V3CVcE;=BFt zp!n?xD%v+Q14|#3eaGb?2Z^d8O{2`>wsT*gnnLjXlrcCk1pBzt5E^0nh zf@j~uK!q()Ec?l5Ec#&ux_7qq=oNAt$$luk!mVI8=`8cOCvPzOS3KSf^kK%lY*c<* z$p*q#H#gdiVyW&&9}EO}^7jdc0iBmp^0aYOcCA!5GJ@v28CV*&LEbW>0L$;6g%53O zMGE1JxO~NjZN+iJqx(g=Mcgk~c#xCQ|BEiWqL1il4{e&~zir{82Yb|$)j5R8kJnAv zI-vFYE&v|b-$RkF=au3~MwFf62fhczH;9w<#K(g*_~7Nk@$f*|y`})#IlzO4lEb;b zHZt<(SNGxc`8#ouuVNOzeP0!w+f!)VvSBuUo=%kI{0YS5EF_cBz2?9H{G@u@$T06` z&q;o7R3X-XZybI=S)t2HwAi3HD{%lRBV{d(*7_MrWv@-t@XU8zJ`9h4y&~KW;F?BE zeyu)od~qrslCtUMh#650De6tS8~;fW_-dPh99H3yCi@Caw@0$~l-P)le>?#@R==ag z(IJD&D)1?zT%-*iYx$dYUJzVFz>GAMzc(Lk>JepS=yj2Yvihxz3?lxaDxAN(3h(vx z-m?Ovo)wYA%B(W$tGhT0n+|0#*tK+GUAq?>zCIo`FK_ATFRct;qoMo+PEB^!EwT*c6)cl@0CokimL* z8fv^z`yD__zEs4Z)ajXM+SY<58J~utOm#2}8b%bmmXrauL`QC@1a69^#xYoPvf(Q8 z2%!#+fLE`M&c?P#4t7ObFlGoXJ8pEQk|!4AV!>D0w#99hE4_FU6=YTSa(ix3Fq0hD z%q+nA)q8Px;IgMOy2CVx`+{^-Ts;D7+>~L>B?|w#_r2nuvM;b#TmB7OaUJFMw9rQn z8vVcMK*~gIM-E=SeFE;es}74;L1_Ee%c5O3?_pIF+Pb8Jo2rQ95Vtt7GWV4^{4jO! zWom~eJ)_s;Qhk_Q94ftnFuLOa4%e!}#08SDSipeJ$Qa5<6ZvB$7)rWvS0_tAhj65J zBlVCB)KxI(L{;RFxVwWqc zeHnJ!Acoz&w+-ui4#)sj7DEYtOGm3La!jfFR*V{0k>F|mhA&%^+lEv{N^F}_G$U7{1hXNA$Qcc?qcqljH*L% z=x#Z@5KB_C(9qR^eAhHN50H5iD<6Ek6b~sH--%3dAZVg_W>n#?tU#bj0?NeoQ@~Ui zU1soLAHRJFd7l(ui~h?2v8{cs>qgP$DqJ|=!$Cigj;_Os@zSw5*3qE5keR%e=tIuT zst)A+bQ`|I_fvf5!&dOkwMDYf`hgPsXHE(JadZJ5xwQsuM^bi*kbb2c$(ZFOAD2-} zch*;TvAmD+&JLCm%P8FdZ{vev)F=V1-#A20P$GsEGV%P`7>#{!3~oNG0M}L1DknvS zaV$pkxtaBsA$u9hA|$a0rDFtFeo;@>I&{ zFEr5s>=921(e=%Z$(pz9#^6qQIkB);?BhGV^ynr{7}j#0X1jz-6b-H#_!%k<hL{s_qg!vD7Wvv$Z{ZP2 z$fULDKO$_+{ zn$WEXIhGX(EN;N}MIZ1%@dWliUU_^W7QIr*(!k+St=PJXo!$DLUaU1($h zJG~FM_Yxu-yCc{}gQ6lJb?M1~?f1~P7gAsv&s%>a_dvp~n?rZ$?YnT%o@R^(9l!g- zAy}}Ld}}M2w}PeE8`~QL)&VdHj6C9N3-7vC5oup{79)1UrbHSgpb4*&9>8J^L5dk} z@&sFRnFcx1-31fz#~UZ$dOBjF;+b-wDtJZxr$mmrTSPBMvyICoV{zNv8}S{ZGpu#H zge_3xdWrD=p(Frnr2su4zRjJrZ5KC{i8YgYm9s zpy#;W`flV`kT1wdH-@~pT#mYsZTUdUNd7*Y7?8tPB}XUFPB7H6%b9)JPDj<7FLdL> zp_S2tA{)|0G#i^{=U`JVd5{&^FCLI}<;n4MIRoD6c<;Gwc-GyyG!+YZH(nH~yD=W* z`0&hm1$gO2R(FdxDZmOyhA6`SQ}CJ>0VS-2QuN?%Ty6y>-=6Iy%jITc*Y_skmq!-j zpJi#-xmJyLh!^SEUf}&;YZN%jw11gSgW^7rptHvoKjCWFkh5n&gqj5z8air79|g2&&SfSdlj3D;RM z!Vd()fWLQQD2w-|8xRN^55x@gj%d^`_^HHBEW=Abos1uv%B+`VBy3>QmsiAJ6mud& z*Ujm;Q+_!5tRzrCJA%v~YF_=HF3`PEWE#C6iJ|Jd!`s z72HO>Ncog9yl`VR8uzs!&-D*j$7p!opmXigVR(IVb`;D4b9Lx`s%MA8r3_|N%anK% zB;o-=ds@m%@2*OGWNSTUyL$P@1HeGfh=^nOoH-hg{Bi=mIyoKNq<^Y{l95S2&>SxP zUf+>i-bi>__!s@zms+7cqT?r278}Jo68i z7e}Wm!MQG$2xi`9GPAbOZ_h#UlMwY@2Ei$-Ci>mOUr|Tl~ z&SA!~ltsHkuPQ5cHOo!uj){kV+WnT5_jKROxTy>(!Q=*AYL3Ti@cyNHadN1gzl2kn za)*`RvDGb+xcm5;dpV2cfy}JKcyTV=u#(36wl=W*o*T%H_rvi%N8U805NocPgv(M> z@VbHo+DRL}g36C6J3_R%kb?b%+i9qg1GqmRQb=hs)c6W$|45~wrc0J1rw-sDodHbR zJ9;$kzjr#WlJoaqEcjqsenb|we`PFwf73erCRE~v7C`>LbQdmtdIauye*u=bmhr;5 zPoYlpr?CJlR~W_$w+1td%742Td+Vcg0Egv_aeZsrF#fOmkjLJ~MmVqdhAJ|=k9bfI z&CtN=)YnQHc{y6;Pw@d_}&e^e@yw!@o$SryjuH+-Q zyc}SOdqW>*pz=Y7WcRLaqZ)f?26eLT;uIw*Ive6IY6s;uEjoiL`SxJLfT7Zmj=sP& zdaFS#IZP&dfmK(xMe&}{teb18?Ly&$wU|iT$Ikt5@!wBk>#M0$>SYTIiy9OfyafP= z_CU#qPt*BpBqcgY=riG0dHtaG(7JTfg4Ot>F-^fasJf9Urr^LS)78vim4SDn#}X|;8j znZ*6T_zmq7VlHwjrKA1V)9}TUbHJ8ELwlIYj!M7|b>ZP->@Rjh9^Pu)ixWeO3~o|= zD~j*fg)2|a$08LoFnd>9p=3E$b+2rq^H-6QVHyHQ3bA^e(BS9TX&?oF!g1P-+wk>3 zw0o<_O+)>6hT};Ydz8%^?~u~GlTJx1nL#op2*(R*@WGCD76b5I;^}8~A_UUFq$0d^ z?`&K^!}q4mq*txeZ;};G#Ut+?O=mQ{sK-v{J<^XHrfqwx37Ows8?I7qZj^xDp8*^% zVJ6aZJe1={;nBwq#g(H{SuISocmOf#PCc-4f%(YQqw(i^DsU-F`5zT3S&{%Yw4vZ< zECqesEL_Agq8)BUm5cu>d+ap!@v*?p2BeyNW&r;!6}1Bj^8?Q0?gOh^G5V{;$eWbb z;{evs9X)}3LuY3h4ZMaQ*l#B0V3`UC(48!hRb4{Ygd!hA=aM6&E6K*Mb?RBIb1<#X z0cw1ERdU$>0h}B?7%;rEs42+Cy5T&S?pVyjX+x8W%=bj4d%ckcjweQ*iCrT>MnJW>AJ^W1ESa2k9^{9G`@1 ze^$c5HoOP^fVv_coB|a;P(ZV)QyS9J6rdUwQgQRVCFk-N1EQt5bdIVVw3UE@!gNHp zH(-0%h_IHeWgcw=bC&)$#5Z1{K5@-(;BX#7m4vqH@b-6C-uX3iU!+qQXP^J4H7T}U zf9ejAtRY=PdWHBx*aII0uPR9VN7=t_*wciVp~4VJzsK=ryOMS`?Xz1IAnnq)8{22; z+kKUMoRfuhQ}VE)vXKtpw!b@ znTuE8$-T`e8`=%<1}X8ygnnj_bzV6cS09m!CzSQ65(7hhh{>wn{!kwjLZX+C#$Uf{ zI)LM4Bz_}~H2c_YeDdj$xQm9smn3k+3#!TUbk9inujd(1#BJDyKvH!2PnZvI3xxqW z+hlmM0;-7-BQD zDE9yDltS#pIg=W52F1&B9D*F4*LfJnjl`1+X5lkqQVrJGH$4hDy@=Js6?@Ay{b(|7 z_{?%V7M_L0AR(W8X%Ei-$4GqWl3{q*Exl7p{urK{G3ilD0WERhr?ogOQWM8>{yjpZ zwYOsAyiDXOv+7_&cwJ7TjV^5`=g{j#nTBc6ZV_oi_ly2imX!LdsaIhsf^16>_C zScZK#K2i47@j7^(&M3knmcrlscaONCc(`PrW0;lU)XCG=dS(2bmWKaaQO*c`0hV4~hN$?an?wA)ocu&Vz+3s__FW|1;@)bU!-$0JP&t5gACY~2f|`?^t^;#5L=nmv2*&K8(m4MEVBI>loMbZK6 z`Bn{?4~UkgQU+JWFe|c>0^&!egP~3#8eBtn8&WUH!>FG!^sS-SC9MB6ZFoyqWl345 zVRr&+KXjkTHdjX8r@%F_zQ0m_DURt8)RplzgU_|NNAc)taF4vj~NoHusivZsdQ!E;!?F5VJIViE%x%!PM39uCdI8#hhE zXTP-u_tv+eC{)Jsp|Q)(RvBZW7fr@5FCT$B)SE`kCOKlIO^3(@)8BqaNe>?>#Z%wS zVkLog3=1`FbRqpaoAKjQj>H)>y0*s~DP?ByJj2|i=~Otwmi^ls=ORf7h5sb1V|Wvv zz-Ue@k(}b)5`j)iovfZ7WW5Wp|I*KV3Rs2gl8P-xFE8D>?*5MjFMqLsy zov?c&12|mE@*Wxz-<08a{;8Sx+@t}VzlIU39|T>*JLb+2`1dQjac-y#qcJRAw;4bD zU@`u~%%J9YXgwa}%eY+L5y5v<;L|0oPJs+7((yJgiL>H?!Ix*WwhrX)ZbKQ3NE;8P zi--|;Xpx5s!*afSiTOOrPv+! zHQuHAiFb@zgyJxHs1!U;M_ZI4o}oD{FVP z@gB+yjg+D4m7OfuaDdEfR^yS%Ifb&d0_9~VkIkR3;ScQS*?Mv?DI z9}@3n%N$(0i+V%}^$6+}C*%V+QqOpcGVgWFa6XQIuVC=$PpLLcSY!cGx!2DpCe|-oz6(Y##SsRSy-!5Qb&@?f|anBdklrd3h-w{e3!q(y1Pm z$?-o7kW%)wp!kPd@WW|`;(V59Y>Uew5+{?CVls@B@Y&&biVD^@zV^9otVSK&ej_3LQU{v|OSg;e7pe&D#J(^ z>HY}U;8MDcUf&Lor=W}>b!BkhM-^l7)3fo3sp+URvPJq~o@S}4gYCRtqob?y10!+s z>w9r}SJ?W^6Ts?v%>KbHeC00_@iT*`xIn^Y&*-&OjPOAPo&W$K07*naRILW7^!0hc zb$l+CKOTz;cL7XyrXXNX)ne|hF1*%P)|U8~a3bEK;1;)V;&cJhn-ml)8Q};TRFt)w zof0*SDu#?91FeWyG6etB6(xF?j${UtX)Vvu2=WRYz^q(_(Y(8>sMr3JCD9b^KbO38 z3h%csZ)IdZ|N8>+bvcIrz~F$VdDmZB+7s+0L%?gXzR}9!NaHuy2hA7?TvAmK@iNIY zGVXZj$8d^P$L|Zr+LOy@Ac<2faQw|MP9V~wp>XkCo6t^@O5`n%5B;Qzlniu~55#vm-u;yLXf~>EI|Se4{YF>G|AvB;%vJ|>r;q17;YQAU z?dL@dm{P?IWwgaJV&<&0?k;9khiLGs?&kdzrKsR&bP*{*W$!rxJo$2{FrafHQSsM| zlCX1EF~)A=gk0?0R?l_>UNA^I*diP&nlbaST4c3$8HHfpHKbE$-O8wyEN`@9`Ty)) z2Ygo5`F^sB|hMm$@qS6gU#Li8HnY7-6&h{C#I z$@pe2W2e(}6;KJc930MW^d^|g`OOX)ZGiyNbWV_^EJ zqZkfewC7~t^$#}SoMs7Goo!xM&Y$yrE(bT!8}6%PlJQeOINav_A>8?zjL~6ami)Y| z_6raii%HW*it-Aj1-6)mSIqAh)!6kPdAQb7?MblqoQM7NH2imaraNBrGu1@LFVtC= z7r&g8>@?v(1tTrq_FMXAt|vAg`S%aUJ?Q~&K&?wSAb}vC-=Dx5h`N%4$tcR`F@ZwH zZ>Xe^k%6$Xd~T%BVUA$`8GysF$!+Ef-5J4#y&XIb>a*N)rey!|gPrlavHehJcocW= zLVdT2qPc|0js)*Bk}>PMfp~3NE**`0NQ^(s#np2&@YY^&$W|(Tw@pLHnde4&a(lI0 z!Iz4VMIWtIIwYVP`I|LyFV#*)%T`>i#a4iVwXx)b0t^{#BKneWm&Qutj3H*qEZCR!`Qvy8o$ zuchO22Eg-T)N|W!DHZs<=dNMo+M&Dy=JB3XR)(>>|5Vn(>olgF!7WtZ3y!&5-w%Y3 zl`Ns5npddbBRr&TEsvb}a#q;(mvJf7z|i}6ct*q^?~pir_0{HzS2t+ z2^P;~&;dsOHq~O*{QN!xuy%1s46-jwMR|3QqEn3$SayiJMbwi1?fUgNjLri7a?;@4 za_KNUIzEP1O*BA`OkVXN^_|16F=USe6i@PoLrP?VGND5W@NJI9Bb7;tvxhkBsqTahjC?`msP=D#W|C-02#EmQHY%2ZELyRk9e|z*~h858(Ydxb@g%d_phtm7OUmO}^I(fi!VaeQq2~XZ1}; zdVB@$H;8a&FLI9-eIq!90EzzYS$OyT?QwZh80vMrtSC_0%S75@DKO3GFI_tFvQo+l z8D*vHm0?O~uqQ7JLvhA`%zno6dX68XE*d|I?$d>|6E8#w9j%)cW39%RP5gt>Sjbu} z#g-!86h*Ow3ZOH1VM!ULOUd-0(oYp7G@qB}lGRI}N?s#^P-_f=Ea-ISx}=}h|LY{o z+C3R_<`m&zOUTkCGi^iUl3EPDZ4DkccxRlL7>)*$2{NbDQ}$DgTfXq0jNA#te>Ia) z&^a^LZLU`i4LoPze_e%pn8+u!Thwij#HO8+@%dz27( z?a{`VwiM6-O!a0?UW`ImHhWQAz&h_t`S2TVv$4V*AAPUD92K^SWexABJ)En zS7>s2=XmOuzV7tfEPd`-I2Sr#|R5Czn|Pv<>AdmC1< zqZQstM&oiB7))fdi*(xpNH8uTFMuEBU0m|^ybpC9yVWyzv8?uEgxmn!5u+yte7|IT z85v8bXVx_g3U}f)1VcHV4txy;-Le`Fd^iE8G4FdzXNTRKo)sgop4FKaQamyYlVtOI zW+m=wY$k2#<61(w(;dG{1XCL&1FMX`<8gLs7;2=@m!Y$>rbkqhU=AZQSU|7R82g5GT_QEtH^~7O3}oQG60)+Vi=A2knuZ%wxwUEa?BPehT*kVrl zRUe_0KDy9k1kojCdNi49FrPJ^7xT>bn9o}=0PB3na5OX!iP0Hsdc*gOMyWd>1Fy_0 z#lf9wZ@Us8hE@jnu@JwRxE8le8G+lhpQch(QxlIU{8KtbEBMfr%jxLdTB;Z`F?M3c z?C_4FX>XSUvq-P(Du>y3 z4}y|zC_ZUz7i`PbnV4$e?^XaIoYvo!?q|a`N@loSjbJLe_$9|T>gm`VP_%kYBQkAw zwD}&pkCQfRGNSP8E~wp$)YmZ5*nN3-d0w#L{hZz(%U_>>Q|Lv$TE<^1XG;!PG5~jG zh!X7NqWlDO-<&nBtG)pvo-M)NSrM4s84sa#=ou-hBwNUNPj`4Q&zJ5{@s`4ADT$KF zIErSO&WbL##%DsoSa3z^%$4PXYl|#Vvo-vhm7-!|#kUhgQa`FItlo*M1E4Si2Dws%~ z$mAtl!(XH?vZ_C{x(3NEB3WzctfafvVM}JDtbb%SE`t0@i}bB-c{;&EJdktHID}|l zw;l%po!{43cH~sLVcQMrm%P_60dvA4aHg+taTCIs0{NiEFnn!ACKIiZURY7GT2ru% zz@nF;agr-k`ei7+LKK~A>cPFg$(*BYM{^O}Ok08KNL!h=?JPk7}*4?Rid^BvTU}N99GFjeAUVi**_IP#FZ@ zG|pvkD&}T4V@(A;FgsF`h~ZvGV|i?#hL(+`Z*#dCL+?~{@tsWNW9)^4frY2xP5z@D zO4VlELoPSGtM4tB)9<)D3CM6dW4yE@BY&f@Ldtc+qu9brb%#b+EQF@>cP+EYyt^^% z>~+-`>nqESg!X1c{V4}`e>@&XGQ-Ix+jMCw@QNVq*4fg%?KDkYF3JkVbQIdQ#5a;wc9{+@x0;} zt(*f3N5!*8%=!3Hf#B65&9vIvQ^DlLx$$aVT{R93giDzOwU$gS<4byR3r7oU-F--B zv!E)_BvLDL!%^h9JJqGQ+>ZW{So1+1R;_NO0k{{p*eDdS)X8EOhQe(^Pc-Dw!nV8E zic`GZZAgm5&<)K#bAXIM%UG7)7^m1-3-Pm}xqoJAP_OV^_ijqS=&s;`P6GHk0{LL# zL_a@W#9USj>t?nxfrzW-mzt%n7SY$)7Z8w)s+zIy(K+63WTAM_R3SG2 zcUBJ~BN9y`nc^7vIGunG(ouH1rCr!x5TO$J$yK=PKoW4KgI*Af*$7#6;Im@zyukiEd!?&g}3%pLrkxvup3a42TKX( zCy<&9f#B2*gnpW0$mc@cXvKMh@${4xxYzeCsbspC+dO*GN<6iF9P*Ax!naKAYiy?B z0T{q*KVGm-H&*A;WNh27OHAk5CJg*@Hl~!+Bg0olm5vr0iMm?`;l);NnjLRdO=N@4o0|yYV6M;g*j!v{G)f=Y z9_P`UcaeBJ({apLcLy)fciQ_XVW0)v(Xks9jlzqDZT<0&h`yzBK@9l%%&qu9%E z=%fOieQPFOQg$Lcv}s$fl2^Dg+&gis*m6vHwtpCg1rJ$WSE!yN{Hm+4_tFML)-+oK zn?Pi^udZ4ZNJ?zNJb^%I~3#a-g3Twu}%Rz5esN^7fb7DGw+!bsT?^_jz*r2&O3~R z>4U1Up}7r|zbx=U9>0F;!-=npMH%VFvMH+3Xrbvm?M^vBI4{}2Hh;!`g0)J2>6(oq zT$-shf0dKacuqmXu|{)D4^;0KfMD?vEr&8im{nuRwuV)IukqdD68awNVGz*y&7`1l zF6+G7C89c;?7r;!2$Z4`gB>4MuVE^kUM+U`z9wue9pIN)Ju4=yG35#`9W68m(>ZuM zy5mW{kkhMZTxU&>$hn&R2hgddj&QEg{UMpVecI;E#__}Vf-!5};{s+3ol57bb;>f~ z4U_Klst77rxW&fmoI0qPyrdNe>7Xv8gTX^?0A5T>ct>pszhvao$8W`B-MT6a_Xxqd z3clXIH=wwxsYl9ntMTMsyW+@!;iwG|bWh)>F_njZXbh%I-U0cyW#iehTBhdq=FodO z*B(EZHiLT+8HwhLN8X1XNA0~2V9S|vzFkM4|l<_`@~_1aKEQF)97NZvt$!uk6w`jBt~=yP6mjA{9iEAId5^4AdObTrw7M(RQIV`kRtQ}?giuYE`X=6278v!A;Stv` zI0kDEXQWA~#q`cv`cA5&$#rZ`qTd-qX&B9QH}JkNg_QAB%#7lP1`Z72&r=vN@3d)r z?ql-RwHRG(b5ESU(`rA}B^6n4LmJHboMw$3tMBd>&k=``qfoJHJmxFYfbIch4^ivL zU@4f$7$%Qc8OE$0DWS(znRxNp4LC2i4Ey7yYOv@#4wn~&H9R5( z{UT7r=)F=ZZ(60i@l#?6FL2f`W9-dT(5fBTo5jquD3r{N$C72mz1RTE19o&OW=^X> zWusGXHH%0s`Z0_&Nwvc5@TV4s|Jh@@XHQPX$6rO_&vly&U!h*vexHJm->Yb=o9JZ| zf4nml^}7Wzc79Pc1~oS#-qNM#<>IzA7V&prBuai2OP@B2a)k)&DRipU-8+O>Xf^YK z?r@a`(|tdP{dT8plFD;4l9rBnW86jRCzCfgdj)pSQ4KO5T>w&@QI-m`3fgULlXx93 zGR=enrTX6CZwTlfk$k_NNNHDYF?e+vBh!;GtD?>bw)0J^Wkm7=1vvk;k@!nz0fX%) ztu+l)sXxMGHTg%wxtV`7VdJFijK-4Fvz&uh(P96;yszwth*Hr}#7TWQ7w;^U&W<(j zi)*oPemIuKwPF?5w;?71g$a}^$n!NwXXWQ6eA|Ka{xAj+ys(k5@P5Ls1>117G2R7cxw8Us|5F64*Z#`1#wsF)>r%qgYn?i38I9FbtpsVm19UX1OB z{ByJL+~X^7XIIX}(z^qWFICkTdCE_C`<2%dhFM(p59N6*SGNk;&o zpy4>a`7Z3_Qe>KBmFmY8NZHq*2LtrU*gp*QCsDA1`f#)qw z!+0!>b2%>?N3E~H0OM}0$KY3saonrsnTSW};ud88s~R~oW3m2+YOG6)#xm0KRaD-r z=X;H_q`8@8Q0%e0}XccRLk@mf9e>9b~@6D=IA8M+nt$hI&)~WGpzZn=x|Mo z%gc8gFIK8>I+i9IVXr(7%~QbO7X8d zR}N`f|JkfND%txvW@~tH2=EdOBO?V5i;;2L+Eb1l9@&6VepAp8E;9axIgJK0*Q@>( zlae?=`@TNC2m+?_u1cUe!Am(YPE5mx*KVKz*rqNbs9@$9SzCreqG}XWoKrl#WJ2{G3wkPns5v3LN-NIX?!o%TF{K2gYOhe;Sc9zZ7|S&B$ZPuk7duWHa;7TGn$f zH_Fn87uLGiB{;X5wH?*FCD%?G4m__+6JAUvjF4z?<+E>X@;0ApZ9#-_2ioYT=Owq~ zP*3t;0r2!N8=br0(U7w*Qe=151i&jY@xqMtGyr#^lvlzQ;O%04Y#xB33@L9WF0# z!DosblgDLeO|)5zf$FV^Y4?O!clJ^re=m?p*(fEpqTuXAi1>I}j;5yLFNWf>L3m;6 z23%ZJ!+M^f(0(|YZM#mKV^JlxJANVFnzj>89~Fg#Zin=9e=(rT$i#lZno7CV`0Ly2 zFwr>2riAY2$!l&rZ+m3m+dUF6Q+K~z;aBuaSwpN|Ywf{7rF4x!>M>j-O@Vov-t8ifx3m@h(S?a)SR_gX>QjfLFGQ!3sCd z1A4!3=Rh7(d2@Tg9`g=po|%C8r1_^fT3@g_adFS)Y0P=_Y!WpGGI)!wJ6yr27+DqwpX)tT4I>DTJr)Ln$EEk*EEFHPo-B;`%r$ zqyI;`R?LqRcnkljaEV`AjeR%Yt%6zmgHean>{{%T-9r1aHkkZlJZrSxQ-abbB2doq zW5o&m@Dn5Yeq;pJ(xOJJ=NT!ZQK^oKoE9n0MZ0@AUGW6dWPs?$3+*i$7Zf3`j03%` zX~~gMn4L_6PI-g>oY;cCAH;z$uAK_f70rQY!(hHsB_BjvjI@10KBOWmd{^~^6nydB z2At9BAk6Ogkhiot8#TRXgj6&w(J28Fv z8k~|#@hf#Snyci2oUW9rTv;_LxIyPIW6+N@G+nly`V-#EA2HH*2AxUorxD;dN?333 zE*?vHqCfX`5B@GW&#v>EbeD@8F!ZN7jP=`@5D79OfL+oC$zfjOyT7ooZ#JQVfcR&f z+2aG*yzHW;?z%Y4r_HcS{h^^t7tO0B(UKF)e@Wkla*$_eBTCPycdBo$_?eEVaO&AG>Od0wqLhMMcNrG{r0`~ zC7_AkHwzy;Fb3C+4#%oj7|mrxs8M$r2V`_nS}QAk{00KA=VPSwB+kn#OsGGY7guj) z#$^C!Ezor*48}9htiWAf!#il>5uZydvHh|0G3}-CIF|;gZ*0-MpiRu%fz34yB!yj7 zfZN{7#cjsloM^edotov*sFY~^?LfS|cdW`dTfT0L@kPVL{7)tG?u415!abQ0X8wv& z<$B1>D^Za_pPjb-D3ml)Yxy|^oJkpN%FD0#|4edp*`)d3kO5UBotRM>h?_+F_%bPU z^xDA`eiVTx18@NaBRlEeD0oCxmDncEdH?_*07*naRO9egX?biKv7N5hYCo#5=srl|XyEM}%qrg?j5T|CRKcn$+#|YeeVkr))Dr8NBk>P#sBur0;#r4$!B1=qyYPWw zc+e_+7ayk7Y?E0>Y9W;^_YP{KKZ*p)riN5BOGU5 zmK&AM&htp`WOU~}gCd3M*f_jWqEVT>*H>jsx4SKRrtu7oPGDC!N0#A8U?se1tDZ)#1Js5l0pYvxl8BGcPYQ*6P zI!E=R;ak-iZ8zOT;+?4zz+5_09W5s|!f`(DR$YBb{Qm-uoJ~2SoG=hyk`i!g62Gjb z`&o`oy3Z9sXXk!X2E!%Q*nfRB#<*shY_GoK4&+H9C`-CF04w8(6JwIc%jp}g2S7lM zapI5Pp|kg|9b{6_SxxMRReLal&-aC_NADL#%TW9v;)V6N?5qKJhcu|6Gly=I&d6y+ z^y=(&z{ey1zod*DOv98#lQ5HPA-IYEP725rk{6U&jV0Ewg!+?aJ}1XimEBrI8D%_a zq8v}{$Q1z*B>M09IIlx`wuOM$)PM;3!Dei1WsP~YaP0F*CC>ST|K*s?t&EBu+8;m8 zDZ?UWVOqtYruD=HrIOBNd8Y!=QPE~QwAa>g;J_*+`CB?3JWuCb!PXVMRs=Aemy8M9 zklSp{*}=oqcSHr8ek_4f56RKj2*TvYFUP5)rH9-AERVm=n(&DXT*Ds*;iW&7P$=(f zTZcg4z_hR)@OeuyW!A1ZcIRlUYk%_FWA4w+R^S&!bck6KvUY~$>e4`}S<{UAQ_^wk ze#!W0Vm2m$X<1znfWH0xB?P2gk3!@5LvjCwnRxghdPCDQ(o)ktNkOIviE;GniU|2B zw=~TzdB{kmK}45fTpnP8RcCnLB@+$dOYa_n$Dd&&56|(qZev{JMO#^eQ5P{1_{Pz= z>X>A_ZMP0e2tjQBRYXcf?H6rA+@tGp-@CcEb~A(2T@aS@?4O9GH_(ey0I1;~4 z5iPT7pllClGR6HUI7Ir1snq< zXIo9rD>`B+EjDIEoeZX(30WFXik@ke*lkfQcJkw$Pw&`%GQ8P|M%)rkQU=Sz)km_3 zT{P+Rc?vfYyKFVVLz!SC7#q=yHu?*u`zB)ku~~TGwH(qiyTriOOl>|K;G>I+apFgn zIEr54|Ft>7&mK3>Q{_{frdn@5=wXRiz#8i7me%{o04%r>52obes!QnPGlC^0 zwsi-avb~XaoN)OkoqD7oZr=nmeQ)T00=Q+QQ|9kN7bD9-;Qz*bU_9GaJW74_Hz|OI zlIOJ=HDIJwrJVp6T8` z&&P&_2;}pQTFEsoU1AHko!Rbfv4uPP!2 zIpoX7`e|=MHJ4HGSa4r7t2u2fLahlJLLp3uplLOB12t z`JY>YU%y_0<1fp=8{!8$5;r9yhF8T8)n} z`ItDAf3yLsmKP&;Kr}Y4Yd~&REEe$oTh6ttQ`Wi7G7_J6t1FfMXio+q{AK`UIcAu1 zMXwnoLi4ZN^6H*rFH=BA@t%+5x$1Ckfh{oZJ{f=|-x|SYp3lhp0Yh#YGHL)?Xo?uv zjb8652}}oH>ehk(w7F2E(^faKZL?w;+HpkmZu`J@rJ`=*6>iD$U` zfJ2eM^~k(!IbPe)gu8DahRM8u1E;0?Zl%bmY8i4(Lw=Wyf37INF`J{0tP*HHET41z z^DsO{PyA}9)1FQzmR!;@G1GP%ncf&hgxc*F)aMC^k_HU=o{gjYO@R2z?z)rRS1RXc!}1u9Yxv+93@eEG@^bw$~QS4qR7xHHJ^l z!^Fo%;^u8dP780OM3$0Dbmvvp3_OUm%q3Wim9@u1@pV#C%gf(N)Be!GDC0$W>09xF zwKAyr%$8?Nw7&{NzNzFVfD;jPLVT_gHLugy7afVx_2J0fyFb3qtH%PSoL){RpYqYs zV63zejL@r^M9Dnfk^f|xQ7PqmTN7^Xl!Q-~mg30Xw)SwI-$?2f%(|q(Ucb(kly^o7 z=wQE$krbOTrJ!OPE&PX9lmJfk1kxerRl9YVUlWZMTZ(U(A!^YaiuYRLM_t z5H?dP8XECbR?c*|m$DXhginCYpDEITt0KB6;YxtjfH^u3iO7fxl$RMTMMWPut_ zTW2f@!c|+*%{qZ|U!Oh*h`dQ2 zOO7N#a^RdGS~(&qY$nqV|4~_xJYmSa+7>SE?i}2DTx#okam=W*O-EWjr!@7-1T>wQ z3zU^WF!7>^jtNGBi|i%JNMq$nQ9tQZ{=EU0H#f7l*Z2Dt>#MIr^1@o|v9JYu80#iI z|FQ}V->*m2^%1BnkHCh+I4ok;jqfQ}ETQ_Tkh4;56-W71v_2WyZ=qrQV-m-;(z-h3 z(dEO-QaN7imzQI-FqnY+Nd)iu4mEY!3fa;A!tw~`vM|K2{8eib9G^mhl~s^?eZrlM*L_MF&Rom6*! zt}W`fi79!X{p%3iwMQKCzu>-DVLG)Rx*!ct%>YyHhKcX)pzLh^f|V{U!EH1zOZ~KR zv3E9Zcl+MFvrkIHw5jQsIlmBxcAN974U;z;(_Z~;1@4|(i9K!_hCfr7%%o zBM!VX8~<2YfeD-UqdP5%cgm3dSbSjy{^RCMh`CY}U5f*TUiKH&gmv?N&--#VpVnZf zeVP!P(027&YFdOGf%YPEsWe5R@m?%UV<=_nQaXX1Wg)5Em(>{YLO#y+C5<34qXAec z@GRGD*&6V5hZ<35B97hZ%vr*uwuju@cM|+EBnaCS_>7VRu~>T!okISx6c5>owzRP} z$B&X(o?n84o-M$c*ABw7ZXH2+D44i}F0bj-K#uuffem!Yn^E&gRuTTzWt< zrcnT%(>@ZxxS~0CIq*pC_=1Mt6DemXwWMVwwZ*lH-<30~GUZGh*g4;9&h6oRT-aET z^pHSxi=Ep<++b9FJi!vrea++?#(&Ky^sjRRhcpIduk4JI`P&yxvS3&Qoo^pYE%L^w6)z!Sb0N8=!P8ux7uU5nPYisPZ_NgEF z$p>@8u4-*UoNHz&2+*cn5y8mnaM#2^Sz$bq-GZ>pz9G9A1ax-fM6;1Kp5*jmm!j%C z{x%WcPD#YVA4;&l?E!)bFVfk(O6+{Y+OQj*9*KJZg+O}0m3?eW`eCmB6K0A#j*ct3 zzZJb}MQ3hj>SEiUE(Y$)`gw+;ZH=J_aE)HxORY94(3S-(pNG7X8H={-%|s4gGA zr}dspJTW#3GoNOy%6a)X-C&fQ5`?aXW2oP6(F^&WMwJ0k)? znv<(xxuDC2;z@c;Ryvu!;PDlef68Pqh-cG@wuOqCMxJp8iI!chyyMQq$wlSZXRlaf zFtTf{oi}|*D}iW~l;K`8nI>!1(O&792RGts)FR8Tc*zuN(dDG)Zc??0X6VzS*%$G8 z4i2WesAjYbz)ss$8JO~FJ}xLXom(8t!|A&_?MEb^v|^q*2{NAdF9)&(F3+0_kU8Lw}^g$}pan{Fn8wMR7lpNO*^OZw~`hb4NEze3Ku zS$b!q$dGU_4Zyvz>4-B6Ob+kba>gLA;#%)%j7VC2M1QOa^@_{LZ-(kRQkH_4SS)nJ z+=d!3UcHaNO^?M&mRZOThH+N+q)MZ_PlG_P9N<~QT}B3*`Fp$q;5NoFEFp+GB?7zL zlZ7|vK-_5)d?X{!p_M>^A>vWIa2$zs74heV^~#JY;GmIILFx@~#y>kbn6{r5&(z)V+d zI=rrE+mb8zcga3SCg5{9*vZ-5Nz)i#(%zud*h=;9R8S71TTMeF>WwskPK9kJ3+SW| z&r-iNjYy*7(pICS1vi!HdyEm#uQE_iGPxhGua1@(a@5?i?o(&`c2W|)9-EBWi;L(< z;UnbeY~Ee=Jz@0sRk(xc#L6cR!QYg_-f9zgb4a=5X(Mk~J56;O8M(IjOQxWHA{FmG zpNE^4F)ejpTIdd-D1ygNMgsB=Nyjq}4#&gy6`?|@K~pShd$eZ~r1Vn~i3C`$n0Pz; z-(8=TVM%paM9AeiX5+YY*ClUr-oH!3j2DOE*^gIaqF)U>9Ri)3xwaak?*0ic{wf0} z{bdC1+&K>OWejr4Na-3%cVhizKc*{gpn&8rMU4Q`i2m=CVZWo2n1sNBLP0{_yJRvYd>qQK;b68e z$;j@`C}Wl2*wP;HK{@vSC>K}wxlVXl3o|yUyoCk0ZVQf5hUw!JZ-co%T|Krb;3$2g zQ)3>zhO6!#j(e|Nh?i+7ba=Xh1PLyX>CH#b3FqeNEWx3-xIiUil8hWdF8OMw@G@6Q z2ch~)2jaC`ihX7P79UIgX<-QtK5r#%Cf&b%9Qju%Wor4Ic+y{o(1<5EOCHG#$S^EH zu+^rVV^8GclKe_+=QAv9n=jWvx#0aV{ZMGNrg4x?MVAa~$~MBE-bjlLn@%fAc1_0D z^9yjCube)Di4mk3yCvf*o#Abzl=u4ehJu#_>n)bokYd;C>;zkzul9F%489s1i^BD_ z$mk9GOJy&@WAT%Wf^MCnwgywte(j%(>%lS#DBUAdj5dVKQ@|>+bL}6O={P&?W9(C5i!S^zTD2@9{X687YJiykB@q4JE51PYha!GM#T)9qbiy@KZI^Oh;un6AB`h$RZ>zA&)b+Ta z%Z$Grp*!K0nt-3K$iNI{HgMeJ-18v~$Qc|VS+bTxLo!RXwQOVx=w*&)5}c0I0maZj zo8E{Ebtg9(rv&=2UsZvm7_pPd#lD@ zV>@iTr>nsgtoNG&WDcJ6 z2}u3_E5M1zl;W@}hvHwqPRH}~c3Y&B-=+b>lXp2B#B_8M?nyxIABk}<=i!R4N*IaM zfTYcui|z*d06fCE2d53jqoqx#WO{DfO>{|yQKci>fu5F5J^5oIP(v@pMuRc+6RqQ1 z9^HUTu1Lq!ju>!FSwhBi8fE1;7Yd`K_%j3T0=$>GdCMD-aeX!(Yi$gqXtTYmq3J-S zR$QG+#j#*5r=Vad5JLlrPTt~z9}`a~_!za_9MC95K%AV0_y3)aPv;ciC_gIw<}fOB zMkZc8A`w5Rp0peCAy4V;mHEicAc5|Ors2OCiC9-ygJFI|&`)!5S+_dL^s!y4iqpo-q94)10>D(X>J3ZUB>-87gzcbjz$gXXjGh@j@L@5K<|wPV97F) zZI+TZw<_28g0^}%iKIw0pO}Pi=jZn#12ExtX(~P{Al_Ro8Riz`61xXbem;S5)();T z$FHX`artwMb~X&ay`V)!p!MV=%=n1eY=Qx2@gs8h*_CDt2cn0i9pITnQUpSjoZQls z+8*M%8O68Pbwjc1x#{@2vz}9!(p1hh;&%<_v>|j$gy*`lnqehcEzBuRfR%fhqNC$&npb=nkJk-_ybd!!LS z<+L%Px~0K~HGnC5#IJ2Z)=><)XwOS%OXWOu40**VO#Q6pV);(N=1ITM8-Q&hTq_~J zM}K^go{XQ0%CK{{g|sKzWnmCeBVi-!Voq9yzcb}Z{hgV3L6N{#ly&MVW=%>y5!e%` zJek?4FJarfL|e4IQr?$0qx6gn+!q&%sU;1#=-qX=qOP7Ee%<-BSO9;Ak7#cQn|}S! zwCfSmf(=qMt zA@~Q^vy>^kx^#P~JW#Dto!MdERN~U*rMO^26^0me+iwh`oxKe(mq`Qg*_kPrDkf>8 z1A)Yd93y;mkBpl|4Yb_!XOk(X8U)@;H=-djp0|V#N?G_*vr>S8qRfj3xhMngg8YSc2)FnG5d#{ zIra>}Iv+?jO{X9dc%{q}jymx;*L$<*oN?1|Ogg0$hqOw$=BGxar`LJvLu+y4-s5qm z?A&hCRfY?ntT1;Sz(L*jjYIY!X_)?cH7@fL$c(uVZgs3Xb$>RV+AbD(d&lEzISRO3 zwxeYV$MoLzx}o;-5NW+`4JH@Y(mBW5dFkBMD9k%f>sv{jhJrf zR%LkaYkd�s=xuIZ~)Oa(Zc#OpZAsH2`)So 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 F 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 CPow() literal 140295 zcmeEuiC2>O_rFs!)6BFu^JyEibW)UZElCMC<}>A%TjmzIP@`b3m>VJ}(=_FzsR=2f zqLrqJTcK$viq)jDh^eW$0F@}=nxGPj@MEUW_n-Kk@f?rOdCqy>_x;>^-}k=m>)ywk zXT4l@es|zIEiJ8`Zmy@#X=!cyO-t*`liz%;x$|M@*(uGRZ{uBIiCS6~hJXKlk@^6d zqP4}4?sodWeyOGNd~_)S9RgL2(&b)b{ISqMu*2qJ`ro*pf&f5V2>zwuJ* z-$bFM^>2pM`WG5#Y5fZg{)Glw|3U*zt?(~2_!k;z+~EJa8nT|Q>Pl#Ue*EbPC;Wa% z65&=dF^<5Zt#8mgE;tQ((CWx$M+qwD)#UOwl*uY6qy`KdI+K2>kx9f@zUUr@SRG24d;*0;x=Dv`iqx^L zWteo@{Q^d~r&RwGE87OJKi9ZlNU%@wCyVRMq&Li2F9MC^p#htv_zpw*Jy+G#AELo! z5&i~2d&#rgmL=!8rl5)CxerdF0H&%GbO7Zw(Z4aYWEyJ+bDZQ!DZa3dTH^G?1nddI zq}GDM9e1~d3Cx=S3p>J1I76Orf)!<@y3|ovLUuLuJxXl0A_O=Oa^DOZyg)Cq7IPfN zIy!;ZqJzfT?-hj9rdd6`SCGGy8}V^?f+ioRrEU0Z9m9@3&~a#Lv<2#=dD0p@%Gyj6 zeOEhB@gtr+#wZ4{X~ ztOhGZ358YdmP4VDcqedwj*&NR$xf<^%Pf`Z9d*r2cReh;I@3q<>6 zst8On^446vV~fV-sMxuZR^#%?V%$=lXgozKc_z|tF~TPYOGT?Jj3Mh~7z@7>2-oqn zx?>;XBvse}Mm_vShXh{9IXURs4V7!F?bq%Hh8qR<*VB_huu)>nyk{r|AzhmzUL9s_ zk^u7agvn$#=^TeBb0KENoKb~`NIw(|ceZUzv%H(-4;9S=^3>3564chV!lj7ZDOxjX9b@qR3@3xd>mM0u@T9`SmHfMIygj9 zroa=B@PrY9=uW4|%bf^BQOlw&Ly41UjP&kamMJ)Jp>*_ML1~jcU05X=t0iVOdgx^! zq}o7$CEWtEJ}#<>u8nx++Ij$!DoIUlJQAH21{a)hY%;_QRr%Rv96mzyEi_gqZ_Hk3 z$TrFmZF|953b~^zj9P;>W=YiWMY((fdaNC+7@rhHYX^YoeX}B7ZLR#~*s)1ZK}t-5 z`~jFrrT~ci@Q1#K=4z~919fZua3B6wi-VrIbDk>fN%A}(8cS?k^i*9=m%hjsWmjk% z*snh`j=J=imd`*$OWzc*r~#`7F_U{)`VF4Ea@T-WfcFKmJ(4|~ z)+|if5~c~8z)>$F(~{xDjL3ZDI87vPq-GTEtrz{5qY35(jFpG89n+nr)L8yd%_6FT zGW)46CZM0aw=evzkAurDr+m?FEOl*-eLcalCO;rQ=8$)1yMwy@aEH1hOwBZvX3Gg% zJ5YNRLba-jU81Cyl+sNUV-%{*UpTU2U}h?$0tOKN=(&jXA>71_{~1)_YQr~&&>N#l z`Z8-IHt%rrZ5p$6LOnYlgTO7BS(_P5Ng`&Q!E}1*sbZ*En8eYymhCg_a11^{$*%Mz zruYC^8+mS>wgg-}HsKlBAI>J-AmlB&SqRCvB`?;`-U%w#;hs;>DHc7<4QtOjpYV)N z0FjI*s;L<-AIBvxrkvXpxDHQ7SrY^jxlnaK%9pX8C8{qW>;OnS)7A-z>%1rvp{4%X1*v5xqg$}u}sa7xoc`XI?BF{jenqjnEym_B!pPDXR^Cdi6tKSG%0Q9T@ zs#pCtiLC*6Lx}jfD5#wlzZM9_yj>Ty1_W*jl5NI4_2_N0KhQvpEu0gp~_ zF)rmKJ-khO2|WrZ?>v<-&BZ!Z+m^2%7+TuvL~AIBp?G+yGYFmGtU-~_R)6UGLnJ_i zHUQmrL^9_Y+GL?~gpe6rY`^(N)Zqeb6y!Hgu&}wFDuj2!hRTF^lsH+#oDFLaZ|k#~ zbW1@KhSG>vk;zO3pCIxqA(9RjFz`Xr%sFb~#@k#`e_rkSbgQSoy!mn5a9(R&eqEgZ z($+pR!C0wNez0A>hcO*zKPISIhe551aMC|S*;ryvU4tMD*v?w@Wnn7(;S&Vs)!Y-K~xPoZYi?AP~St>2ka>&VS)tm9FltDBlkfdp@Dpk)xLvQEIyI2O9PRfztH z9t*d!?%A07uj$NU(~P~=Ot1fReL=u+erjoFw0Ue*V(-?+<4~1MAZ5!NLUT@m2i05 zjhhgcy<1d)rgnjHB!?!5QIDN&zt#!`|B|5z6p-W=jKQ@L8}Pn zUpRauM}@Q=M?`=*Egp!Mg{;!Eg>=~{T5N$HF9aDICvY!=YrnRGb+%HjqT%Ighqm=9 z=B`ZmzMq7z{nD%oD!>Jhv?0|ON%@sPg`andI>Hc3T1Ad71~lk=;CQ3GrZ>PIBC&hW zm>?#6>F3%5XK8glLbCVgO>p(UIF{)T6QrK2k1{e%OOUo^W)nAh631U&qtDqja6+7& z6Vs|_ZR^`u*Fi?;HOpXO(YDbYd!X$Ny#>+O1WZNm;#JA9H-Jl@1;?3d1UE3Qcs>j8sYg9wkazC)o+>%dWZ1)I_~P0~TSPA*KbV z2-cLiKsXQoN?JN`L^@?ao{ja3PAUHBa}%rU*?+VWU$L!VgC3g5-QJV9l9!n{?q?@g zd>FC+&{UEzvz8Lz=~*S-e+FRrmrh5br0U(r)R8i9@e^?YJt9roytESj^fD5wrs2fW zd>jU4C^nCrX&bKJp?!k5Xr2!L{7P@~w2I)7#;x-j92>-9mrX7+(PD7JLH3yXiK$pQ zde)1q7|$o;&yrvrO$hZ_hDVBL_)n~#ofD<9)@e6MpNL#5g)Vg%3;BFDddczj(vA~N zPdu!L4*XALxmraffyVB-EQ0f(#Zd4-FIoRhv2c?aIGq92=R|^ch~FfgyI!<~6{N9G z`Glk+HF|NQ+nkO{8|oPP*&=RLTpb-Slen9Ydos{li157hzcwAyRf}tR833Cg)_q_R zP}v!Ys1t-UbIPLn)FJZe$)ghGcK50yB_mEKFM zY@D{!Ukidh<$I13VacmIG4Gdzw}ESB{lj?20?UQ@K9YW?0eo_pciV{cxjC5|yydN- zA359!q;uJ5H^0sieNv9?-mAD~j!kUsGlbY8sIX4LU)Lkka;9tUm415m%)a&mX9(Y7 zPSS6+QY*5;r1^YAMoU`(tBU;Wvu0iPeDU#zs*=i9*O65~xuB#S{s@?-gqFx&FAtO! z#l@K|ao@jsm{G8B0^b5`Rg7JXlNIPndwS}5fpC11qs;)Zu_0!r?OlqMqj2Ky)~}XU zSKV$c{li%Xl2}0P0g2+-Wj*z3J!YjEJ(Hosp{5&^eZ|Zk%|P7ecomPva<-N~G1s;a z^Uqj+;h@NKsq63I!3wtn*-_`vXvfyQ|E%~M%uuW0ah#@Hq&4TSSSQSv*ocppGYT)_K!F7$oF=SX@)a8T_-DR%W@@ z)9&0ww@w>^T?hl5ryf|dpWb!~a!Kgn^K2>qlI=HoWG=frhE<{8W}eq6UdK(BS}S_6 zja+7HmDNe6?l=Fe)AbIZ)j&4N39s}ZOsW)tdo0&^i}tDV_*@Fiw9xQ%hSB~03BpEs ztAkuUKCArjW?0c93?<_)8)0>4fBD=`HcQ*`_P`P1%0AZ5ru1LUBJfc`W$J|m%>2jG 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%0Ak~@^={LVZ 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 x@W)Rl$^Gr;-X-H5&llUl4{ Date: Fri, 5 Apr 2024 19:16:55 -0400 Subject: [PATCH 030/157] Add screenshots to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3d64ca6969..7aaa636536 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Cake Wallet is an open source, non-custodial, and private multi-currency crypto wallet. +![devices](.github/assets/devices.png) +

    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˖x! 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 bSRV`zDcs=i85DSqJOgbFUG?l!S8o45ReU`& literal 0 HcmV?d00001 diff --git a/.github/assets/NOTICE.txt b/.github/assets/NOTICE.txt new file mode 100644 index 0000000000..9719639a12 --- /dev/null +++ b/.github/assets/NOTICE.txt @@ -0,0 +1,48 @@ +Notice for linux-badge.svg: + +1: +This is the Linux-penguin again... + +Originally drewn by Larry Ewing (http://www.isc.tamu.edu/~lewing/) +(with the GIMP) the Linux Logo has been vectorized by me (Simon Budig, +http://www.home.unix-ag.org/simon/). + +This happened quite some time ago with Corel Draw 4. But luckily +meanwhile there are tools available to handle vector graphics with +Linux. Bernhard Herzog (bernhard@users.sourceforge.net) deserves kudos +for creating Sketch (http://sketch.sourceforge.net), a powerful free +tool for creating vector graphics. He converted the Corel Draw file to +the Sketch native format. Since I am unable to maintain the Corel Draw +file any longer, the Sketch version now is the "official" one. + +Anja Gerwinski (anja@gerwinski.de) has created an alternate version of +the penguin (penguin-variant.sk) with a thinner mouth line and slightly +altered gradients. It also features a nifty drop shadow. + +The third bird (penguin-flat.sk) is a version reduced to three colors +(black/white/yellow) for e.g. silk screen printing. I made this version +for a mug, available at the friendly folks at +http://www.kernelconcepts.de/ - they do good stuff, mail Petra +(pinguin@kernelconcepts.de) if you need something special or don't +understand the german :-) + +These drawings are copyrighted by Larry Ewing and Simon Budig +(penguin-variant.sk also by Anja Gerwinski), redistribution is free but +has to include this README/Copyright notice. + +The use of these drawings is free. However I am happy about a sample of +your mug/t-shirt/whatever with this penguin on it... + +Have fun + Simon Budig + + +Simon.Budig@unix-ag.org +http://www.home.unix-ag.org/simon/ + +Simon Budig +Am Hardtkoeppel 2 +D-61279 Graevenwiesbach + +2: +Attribution: lewing@isc.tamu.edu Larry Ewing and The GIMP \ No newline at end of file diff --git a/.github/assets/app-store-badge.svg b/.github/assets/app-store-badge.svg new file mode 100755 index 0000000000..072b425a1a --- /dev/null +++ b/.github/assets/app-store-badge.svg @@ -0,0 +1,46 @@ + + Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.github/assets/f-droid-badge.png b/.github/assets/f-droid-badge.png new file mode 100644 index 0000000000000000000000000000000000000000..e51ae2677eb661cc3637c79547addb211f8591ad GIT binary patch literal 18971 zcmeFZ^;=cn7d3haX^`%c?ovQfy1Tm(rMpXzP5}Yw?(RlPx;}JEBaL(jcb)J1-XHG& zaL@A~9M3*`ueJ7CbB#I1m^(s6Ng5r67zF}>pv%fgs6imGq2TWaBn0rU;C1LB_=W5! zqw4~JVDv$MU$)f?N?4Y z$`uZMx%OZLLVt_F;fPa#7wpgec<6g#PEH!=dx!#B1bAD5_5XkT{~4CRH;XXv%lZzT zcqCX@oO;DGF)&lg$-71nHJE+~2LdlY7&{bEcL+Bm5?=H@!{}dj{!IH$rQ#LGf7c5O z@B%F&*cQ4N?r3T09|F3nq~pkO-1yhfAlh&ohwywD2)ROc=a7()m^D55X6d!r@OefUcFHuN6eE#vZ*T7g;haCPwkI|O zw0VMfBO=dp;p)%KEusJ>t7~|_g1l2;r4t!Ee4+FH-R87TQMp z>Zptsvbwsu4-s7a`-LHLvBT?a*TW$*DZeWNQZ5!2ma6oB`O>cq+?Ol~`J8F4ygS>q zpZVPmXQeTJiH~k(5TdlUwmQJ3F8%GfIa#?__c_b0so_8}{ogl}v$A5-9lD5u5zw7) z@5W2ji`Tz!C}Q;SaE^_S`;oJHqf}}!ulqmRRTy^*%cz3yOfQ)oFV?1Vnj?(uX{Bci z@`5Yz^@I-_oBkl=nPBu?xi^xOe3j*Qqf7e1Ur+~nnQ7f3{bu{rw^kU~*w_ZAVCWwm zGh7JWBTTmsw<$IorV8@%U@!M4_oq0)(T(j_SFU5}yw#S@I?Rz-3y5z>=Xx1AaUp_-zUKQAnFgQ4z)g8$y4L0fjtm+7k5m3pg5<{-Q{HPb}G zL)SK|NmA8Z{~kisu*^xMWCyco;?_>0I>G(RDt! zAhzi@=mj|^7TVoUP_!68^CgUi>!R1%J=#}s;7u#S7R2SiB_R)d#-w0o={R9RNB8r~ zv(}^Dt;?+u^fD@7T}><$D`#W;pA*=PjE>rPm8Z1diYY?Bn~=#aCodn2hY0O+x}2Px z-ntyJ6scT@ycywG6NTP^kyRkI8pEw1lNd^ z*IZEIgUK>IK7al^G&Ce4Cx>EYW~QR68}awA^YKdaYo2u0#m#RBb#--9rRwwrg@rw4 zwK*jvNc75C5|WaVHR9BH^|(0V?7s}YM;A;KIu1cBh`z_7hszU3gk@!fOP?8Gq&Lnv zz~PFaNs&F@rPPMYR*8jd3qY_TM98||Th1eqd|wJ_hp?J>9Dj?f`ahnuT>U3M-R|Mg ze71Pve!Sd>YV3RQ%Gt%`;;6dYyV9jU980Iowe&Fc`C*}Zt8u|dyxD&3{G@rKtZFbb zFOLe1LfAlaDPKB{=jGoQMDm}-+5RYymd#L-^W*wSYi#4h$qz52w`(5RbZ%}(^XRwh zKJ0XgX5+@u4D$#SVe^X)gkBes8cHGb4ycjwS@1Mm6lNKn9YVNchppYP&GSs2B7FRTQ(M%jO+1r|W?V8W}%s z+=u7)TGd7|(iDEUA6}m7S8l1Psi!OTdFN_rX=vUxA1Mo+f=OJ$M2{3C&%(*cIUW!f z6Ei0`(a`X&`-tO*f=-PI%*XMx-Rtf7qie#qAJKkA69prZdqQqE0s>tAJ5n?-Af4db zCr$BD{_yXeR)r2sd*{g?_Dlf}do~IRijBQTiCJ*ktGpsHDP2_-H7=&~vth>^sny7D z=7XERvtTP8EF3VYX_VPo9}Lha(qo(lnT8xsmRK2OMC>dNqN(FZ`LMHn|007ZZFqXN z)=sby@FIkQf}*0S8FF{$X<=buvRGq!uy8i!u7g9T@G~5X+V|PizE+2Fv@76AQ8t7| z*6zmW&$V}|f>jZG^R>UBVdkXM-N>e6!&24sr>{Lz=O@a^mO3o!0kSoEmHq>`BqUM0 zqbb{Uqii-^^rKu&_G^*oBs`St?61Fl`*!eOAu63xMtGHBJM5>s5Yzj=yU-|`74Yme zaB_3Jg!9&FqMyW}V^jM{!u7_)>|kI*ao~Wrf|n}4GCWr3GFUvRTxI(XhId^UMf&FZ z*3We@_C^(-qjhF1bq9)2Yp1sots}d-cA7LJQF-S_O+l2B`_@D8Z|?Te9nyT_B~<&{ z&$^-{qwqI}zEP8px}B~PL9bY$TOXg4R8TUWCFHX;TdE#uF64X1k(Za((dBZ|xX^ZG z4?WV-(lT=8?;!LH9vglOM*{3!cT~?;#UEfGpy|Pv69Vie7YEng6*{%B+rMILy1+Ew z*gS1N`_<+5sMpDk1WTu!6`f-2Po%4>iwO@iDRfI(p~d`s5f{KuBq6Jg>3@b%=~q?}H4liyX^BO^JtUb{&5 z<$gdackSK%v1Tu_IZX3(r}#=PD(J(9cbuG96ai08E^0dZ`ccD)^xO0L4%cb8us^}Z zS!2=z>k8Ijb=N~#9=V9Mah%Xis=V4=_RACE_F$YxIxZ}_P{e2o`{4OzpVQs>=H4T; z$q4AgJL>5J0|N|9Ot27(j~}KM!!sLS>O>TB>c2xpQ=qF#ed6dvGYX3mOTT$wgz9czfvgr-wKtI&b-LEhYrNsU zVy9DU7LvzbR$lIO)_J=HLcs#R;C~_uRfZRf=5gG{4r^_AGewG*pGPazi6+Rq$c$o9J-5`H=t zpSy-`hk9Qni66HqUKRyYR1;`cod(GwZ%o&k9VoJVPFwemRP&`agHYMdOOHY5TwlG+ zh>s6Mr0`V{-H~u@GBZ1XYgg=zY>vxg`GC!hSLIScqoYD?-^0zD5!cfvfXFCz`1U=z z_67&0W^7FS@3!-tA}SQi5Y@Yfe6>ZpT+SVD03NB?PRH1Z*}I>dG4pdprvA95^0|Dx zyl&p`k1}j`XRO+v(>8X~)%0DlYrfZ*_*ifH{B%FQ5b!XQ4c$%#PH?7|LLzeGB2iiH z4ij-0CZfUy%-|tIF_-8k&P0b7sL$s^mNKK!7h34AMAWQlp3lz-XU!3hoxhE~O&mEIXUl6gGyrBO)XcFA4%Pnk=(%X)fIx$ zds}wz&cF}C!U#pFX0s7iJl@HcLr`N9Ltsi07VeDg5ugL`n1K zM6tCE?Rp>0SC$<)v#peCvlkQCe{vta5$~s>8b$!x%9eVd03R z3K_yNC9$E zrc$*RB{1P#0ZO}Xt4x${DB5|49yJgI;uz;oEH{OvrKRxz0?Fy>$xCpj{(JHe#f;C) zjM>^U%O3Fu&=87`rD92u^QXh_FZazKuKtvnzsZY@iO3bJgZF(tRaJOV#~8zMl2H(< zSI%NtQDwCsz~hbXKW82v8jF<@Q=>tX>MUONwVNyUIkma0v>o;FpWAJ69DSGzICf8m z+bzV;5Y`IYX<^yGubsa>b{Smy4<`lEackHC>Y^dKXwq znV*MiSlrgXmO8(%(Z&(Sbtb5bnt=bB*d9&o5A;c)2T`O&0`gd5+NU>uwKRAf` zRbqq`C!Ehbpk%zq<+pkxVDp1ULRz}n<`IN;anoFf;%k}Q`88sxj1QAwWAmSz`)gBR znRgHsM&VBgVmzNKKUr1RgLO2S06v(5m&|Nbhn}f~52o8GAwxs4LF@5f<>?BkxwtU6 zXmkd|bauqv@5qG*RnBF3pN1I=6}lgW2CWoVP`I`J^YkOKPlgdi?6eJ4O@Y+2k$p5o zpvvExF29BN-pj%$k=JY$H)`6Cgocic$c5)Eu8#hZKT}pzME8IAQ>=CCbA1@HxTqs} zLLuy{GxyE2Ao>#b3y5e)K{?*vR7b0^xMyCwpDc%1jwWxuJfFQlAgBav{Rh+engikz zWCURe|K7l5cYDBMefvm5Yx$EdC3m(K`TKutI=f=wHFwFl-WAWb#P(Vu$&`8I_>2_a zW62mAtAiEU#LeXJ^YZe~=cH-h;MvP3&~Q^|BS3__uRhg}#gYj)KHu**Kh)c;G>L@D z`40gU|J*+P>B@%N@oc?QXuh(4JMP1J2mMxwYQE!~rgmv;L^wYkU8sNEe1wcrM4%>< zM94OMcwO`G19=^uWG7P3AuHOuYr9BiGN$8=J~li`T3X_!hbfBZ)jCW0%MCxF;h^48 z0K3kd{lJyWt48l_c6Npn%Y1xalM99eAX$D7hATT%X^;X=!WE&L`cuxn*K`TChj?i7 zR|#D;LcPwA!+YWA;{XA?Sh54|pWUqnCzfE+jR#ClO#GV46;!LuzXxY9XnOUqcIIDP zmetbo-oXEUcYJ|__n{eY{^|ZQT{}J7W8Ev2%QDjV8cTJsw_gSB*H_q~^QH$)T`C&! zP!{Bpa<06*#ppWUw@i^^C2Vhd?H%qJQMKZ-&rtO(h)Sxb^XrDb{?~z&v?HC9w+Jtv zX%sADS==4LLBIcKXzruaWJ_erqknk~um@THCk9M_Fp^pI=Y54f|3{PZkJ*pg{1;lv z0R36_OP8_J?*9JvcWtB3T}CaAZxrYfjoq+S2YW!HFg#a8mgEn&i}n?gzZ^Q_pu|e& z<@JZRSqrgTd(X}ts2G}xTnr;6?WJ!zGW?tUEChd&{y+?e5+|8kK?%#PDW!9GRWpC6 zs{dKyvk^S_c8}WrXL*WUr}yw1Jpa&}W{Q=~hZAVW7n)a{QGdmd5Of4GPy!fuzxRrs zE>ZR(S?tfBKb~6=^l8<%XB!(GC($3Wz;xd0#A^3AJH5Ogm6*NYx% zV9BAGj6QT0zckM@k!aw=ky`sf4rkLzPFp-yqbK$_qpfKzru$`S_wJ{RI0{wt@c2SP z=caiTliNwH%E}SrNN%fSi~uS=%O@klvY9_M7Q@(R#P1k}RKF#=pRLCLyw`mHP*z^m z3ufi1`ci5tA&YTW$9;#TZn6_VZ8pxnW`IO6^4tvBI~pYSK~q&#^pm!4^UYhjC)q2eCK^8RCiYtzq9 zNg0Q#-3Jo#nwC-;-$`$Q0P#45N^elnhznfS7yMh)ZOz{L)o=6V zdj}2@961rJ#(T999i(N4l~SoCQxy)i@xoT}GVz$TO!mfpcmg0~%9D4Y2-iaHG_}aa6bfMm*`}x7J9Ylc9A}>-*4|VAN zhmRk1+nO*pH>cC;Ok34{%AWyXGdMA>AT2Fz>buX_zv3w3G|RQT{*e;k;hA1+4IF^f z0Hpo6@dcQWV|RhQ@pOXtwg?76i1}T)qis|?jDyw?B3CGW(Bri>h!#akh z9tx-R$Ox|@lImjy_wxFmh_9rK_xY_e3A0+YH9z*>ja7fc5*QO-S>M&P@8^|Fq2|fm zH4xv>)>KwP{a5{`NkU3$>*;b*8qjXv5)y(+N*FY>wDKAna360@`qn#r-bAi9$vD&A zaW07bxkcJn@lG)!l?BdE{Zum(WNN=F9?vD$)2B%6?7B&R`@K%Q-qxTG zfyCo|KtZM@5bFj_{bD!n!una!+;UTiKxjtKX{@f&XBN9QmyH5Jg&r|9P!Kq}t!;|h`syMqJ2X3@N?X94RvYr5t|Fx`A1ArO&ZITGCf|PO2tQX8JVR z$^R#H!wt}c-<%cDxOeoqJooH!Hf=Y|MnAqRf0s-O-|)06zBWAZLA4xWaId(iH_GX+ zT|VOnr zWLV!2=;X4A*`mE3{Z~a4+w7dNHgV0$Jlg@7BOIgUtM5GY#X5!9q$U5-gW3#Es{M%F zTgBYG0IjMP2Zpg@Pa_Mb_pO7>qLBvh8 z(wu*6{(N`2bv=>5YoNDin46Wr$l7}K#-JHvi|u>x+?4u$R{iTzV zCNHB>152UM%3WS_pS5@4&Y8w`up)kV9wyL^MtzXvjt|fXb3ugV&z`ZJluZ$@`U$g= z|K6YpNj5c*(C|a5+h@#Oz<`FShH}^ZPTeAGBofnVI~SMgx+6zn`XE9oMJ39MfF;(q zHwVDv?j647-&>{5uj|XVn-)Z}KmYVS@N7_nOWmdtTAOUdxzkwv_?GnXm0+yJLvkuN ztsa%NYP7Nniy!Pl$FL98UZqkaC!@c%y-ICSG88lDxcpAE4E_D=!y}0|vmxm-jhyhYUv?z2dO|L7Yui zvi6gdSsEEaunS%Bt}M;TH{7O;VaC%@=IR;Kh1`xQfXm3!h3g;iaIjQ4Ism0QG(4H4&@P8yixz61R#)DA*MU&1!tQRcV9xXpRbYCdu;j4x=8W@VMgw^%d}r$08~(x#9f zYX0~3;Kq>my2+RQCHyO`a$PeJ|Ar_GzE^yE&?A~$)eABtVa@tWO)u9}cX35?E}NU8 zhuiUIzuk@|qz>)aVE<>7$83+@nTtAfh9UT%aa)uoUQC9KOxuKGnbS#cW;}oFr#&*^ z;EADS7LZ=LoVk%j!E2mx=UM&e)8)MQr3@QcIsmKoLR|pk46S-|8-&bN0K9rI#9e?w z@hcLKIfyJ&`QupX7Z7q03+>A1BHP;dK_rG!cJBdU7fUXL5;bs%uPGsM0;nhm>D^K+ z+y`w00W=gZH5Jth3-KKx37w3cPksu_}a#PZZ&Z7;cJ}tf5_)Zx;WG`bt*xPS z|J~i4Ntl?wiCGD!DCU&q?|~t5FCpx9^smB9SV8MMe`6=#9{YMuA5DakYa=sPt4tqD zymDiRti32=S*D!(o_pAjk+J-j^RK_|ndLK$swWB1PlWG&!wH`MgiGbN!RN7GB|MG~ zUtMmpBY{Gp@83gm#lza3hR4Rx+&y=wK|F|zmhY|k!A`|!)v&T3sg}ZHWba}n&K;3} zFKa5$!F-@NHTaRTb^}l5fEOn7wsLUdmLjOINKBMjV$%{(tUBHPLeP;l0Ze_3UaJsJ zND73!;YWwVF?`{3E@lYBLE3!P~hWf`)mCs+aA9C44h-fa9=GI70hGIA?ahz z*`fR9j_{IM7s^qQMokIL&TzeS_%NEshQui4vpdzWWbp|(0cxSnv!f~JQGp-`;Wcbt zG(U~RAr?ulw1wVlwA5!7f6r|;%O0$d+@4@W^OYt$DE?@&UBW(gl!5F1cj5qc!`znD zZ`9JTnCO|~Aox(`Z+t4aB0^6W|22$4a%k73jCspFY<*Us!u(7Zl6BayY^ifXHF6{& z@xygUiR(@28LiAX(U+}%x&MOeIyy)JlpM?v4aOuOAUJlMkONp;5+uG(r>*;;CtEc; zI~IVHM!=z0>JP0xEc)>OdI8W$g2*uLKTl=}^wCD2y9ps6mdYr-AuEo>H&Fa zt@ExNkR}lXI_i6SLr|ydt(5x*2hFbzrdxn&SnGLV2GBHP#op;af4|A@$ag|PPsbYZ zH+dLALZQUrXFTwOqqdGRb{RTb8%g{F*Ir7eG~rsz7EyS0<0!fbkXFuIJlDXSU=uEJ z0@EN99&t=p;l|>3!V4aFq?!ABnqf5CI;D6^YoQP8pO74RW%U)=?JX^7fsogTh7JKk z6qb~PJAQIjI^XE0Un&80n3%@ zw6H|6Ez*)X8Or)ANV&L_okm@+8d)DmFWASjg!C`Htw0n4EGzg+AP=zn555(KdV0hF zi$~R(4{j~nR1biA`(!P^%!~>$ZDBfv)SsOg5ku^xa`PgM*9viI38rRNT~$Umg{MV> zb$u}UsxXH)|4>FZ#cK%g#VR!8ae3BVXJ>zEX+TDEgG)AEn2#kx;yZ2GD&H|)H8)S` z7SamtM}?G$T!~?;XlQ&r>w3fhg7o0;o?xe*R|G9r#O0j+Po9ETQ{u#uG7?tM4ZmiQ zw%Z%gkM&Sqi~%nG#9im|uS&B6`|+z+@pkij`*KJ2KN@7Um~CI(m#j1s%y+2Aletsm z-&Q{FJ))Soesrp7mXKFKTNwnZSh!79E5d?-ON{ZQ!pq;3?i~3PHex9$2`dtC9n6(f z{l$d;I??^kXp>CYnMK#0{T!2UVU)z>^k_oZCTWmw60m1aHxPYfomSkuK5t}u=wtsN zur4bopjmvAp(*_G5|07I)wyzhhsQi+jM{4HQILKvY$a;uz z8rZ_jg}&WgD8LJhLQKO zHm_pm96VXQBLUa8`m*6OIJ_H4iV9v%@PYHQ0Pp(>%N z`F%2~ib0SA5F%Q`(P`sVCxrtwnG-g6l9%6=UYk2}p$(T#5uuMy`mPnLaQragpzVoI zg&#Hz>nuUK`Ky+~xl%-X(9o0+TT3c|Ol` z%8!#-F+iGSW)rYmeg{@U`*z`?~(S}l^P}%{yYRHAWDXFRR=X?@qHbEl$-t_mq%>7QZNrf&Giav=`pMX#kIq!vq5O@)_&)LJ%rVKsp9p_QLl& zI7#2XzhWUr5u^(h-J4twZR+)1)K}2(@E?p%LQ|KbgYR57CzCUqCW_{;atmT)C2I=u zT^t=*on`1t^T4j#3FNH2<~1oy#YHfdl|{zsqrAWEeu)t{ZGi)T_SS#kYv29PJwVLW=}%#b*~xMv+b!4Iw--Q^+G;zhy3}Fg<0B$4_T>arR~V2V z@A1Ud)UctHgF?3O+I|3UrcxNtMDuJGs-XHir_DS|cwTs;&4L*q$?gvF;?d}0w$5-ABUmU<{nFJ9Q zy%)xXmuqftTIjQ4XT3?qMWK63<#QF(s%|x&AZ8WR1991B3qPEO;~-w^G9RDx&`okK zBExtSmJV(rQqa_1HrRmK7jxa;gIhFApRJ+k4iF8o^i0$2tVYVwW?vZ8m12}AW(BhM zlIm*hId^Agt}L%TB2oc&H1^J`ge{9U+D@amQMPupvyMxQSW>`qpK7ettf57@#Hy!1&t*<`n=zX;EqR*x}&w(1NP!^n2gc2O&QL(md~* zpsE30j!MuAF^hNLZRnfz>yC}0hl*n5K2^<4*KF}23AsvxR&08u3>AaZyeKv?TU%QQ z)!#8b&W`h5)LMZ3w1)F|t%a2!Ezb`}P^-fhAiyw&1~Y#Ah=A%G-A{i}*?`P8e)Jj- zN@4ilZ6c1Paibyx2f#&^mX_Y_Br0<_tP95E<=^!7bBHu79xsy(TZdfF4)5`1Y|PLD zA6L7;?*^5hM{=KtFppT#i*q%S#VZ(sbu^Ku)i(AbH;V>?jN-zp_Ipz^ww$|5VMZ@- z;w!Z1LL``E6TSj&V_+8z0S@RyM1kRgHgd4-u784{loVhZBS*3Yz0{^3fl~lFSI&We zE3FD!HV=?e@Laj}b`0gr>g@;RY>+rNSJ6-@dn`{r9Y(2JmKqLzU@P;hiQz1<*G&g|UW zctMmVfYOnXmsdAA6M1ouP4GXtec)C+pkip zEhD~0yy-F0fFIuc7Zx>W^lOU>Y>}wamPh}(GDamVJVGXHg)b{UcbSU9&=hZ9zW=JQ z(+>0=O=e}Es{<_1y3w(*D;uRB>@H|v>C}RTT%D|Fy9wwK33B8|<)BN!g~SM!l7Ey;z+J)V zhsy+?^rJ`zaQRu33!!{JFC09tY+mmL&`6^>w-I0nI$HvrRiCp?z)Nb>^yOgo^{be( zCW>&kDyefVb~rVx!PMq;%=v`wXdq!>kuS%a3izSiY>B0`2@b4k2~Ge^RFfeHvm`ES zsDX<%TuC1!Ffu~9d}1%h!AN5rl_s=lW^UejGy4SCYLS=ce@>UIhiOp1yk@<ATfM=ku9!C%H3(Ur52I?Zxgsq$VY~sk2Q-QV>GS(>#Bq&+7S^$!cUMFuwz> zZl;4l7Jrk0@eAYI85;$O*|cSNDt>6 zJ1rP`l*VcUpV^n7AlSG`b#?WNttj?~xnF=TJRcx1Hn}}rV_;$VYE&&vaEVh}i z=mFWFilJdlf4>AUSDCD~I036pl+-shA9FK83p-l-z~le)7q8kl`Cd)^Sxa`*(CpFL zxhFaPkv2ClcQs^Wfaa(14h=a%X_A;6#ak$PxU_Q1G3k4g9NLn;%q&mi{=K(6+S)f7 zY0c>z3-u31P(+4>~5e00`ZudiK(nLWnyJP8|X2oU61yfb}v^m z%Bk<2s3IdHJG!)iN5?AL58v4To>r?;FGK;4nk3-)GW!B}h)6*BqpF6`ao z&j-LDaso-Oy6?G;WxKq(t9QB4rWQDQ1RoCat;M0;B{Y%4=}9Kl)T~UP_cO>C?FzD5 zhCP;)j3>jGym7&{kYxE2{->%sy1pnmO|ekhsviS1DKUjnP+Hl2 zhXtq&vu%@V=aWB<8rotMBz*-c;z0TAt1<0^)p{AE2pH>+$F0?2@!b8ceGVK(n_zui zKiKQ*cdfcD7)Hi@gd_HD^1n>qX!wE4zXGseRofvG2(PjiSf0Qg(Q?{$bPl!%CiF(b zHQ&qevXSq}$$*rr5-~C|T4B%MO!@KQ<$kiHw6sTES*Wl~(K^7uH}B29B()vu-ML=e z3`K2G+nkGG$B|&_9*&j-){WWi1|*Z9moPB_YpI?d?ZPUdH<`YH(98^LE}uXlCVkfX zQRSGHHvZ%^QMEIjPe4r(Jy9$V;~2QYKx)eYVD8#SH6#dts^Fqdj|$Zb+sXR&s(6FI zTkZI8^?6{o$zdZF%+_-2OMrD%G^;v+H`5fDBg;nCL6?DwF#+9KS@fF}G}C9F0blSl zn`WwzyanTOBo8iO;J-s5@v$GKI{P07M&z2E-fwUg7WJ&Q0!8f4qF`JuDu<Z+!;*4<%fuweq(6UVgvuiTb$?dd0N$IaR+l45dpq6wkLdGN zhUIN*yz8EDVXvXvE?CS%BO_{S_BnBE!=D0+ z&qB(QRy=Ut!7CO@AeZ_5(dAFkH?z!Pc=e(qUKWRY+Zk&0k97UZdf|;#-O~aojoKP5 zV?MUtG=%6=k`nLeThJ{nWVBGPRKKi!&K6Ual9Fm~P&Y8B@Kz$f--jkQ)A`ceybpDZi$(}WWrQakvq2c1C1x2V@)7@jQba|=AAwZ${d4}@-eq5V^>(YB4S z3TTr|fEqY)H#!7{pD1eS*amt19qWG&*J<;`d!C(urm|hE={ajkVbu=>gdm<&zN%^~ z&;Y;MnjMV#N3rU%;CFkYGIlsJ@C81t9qTnM>5Xf<3fn8W8AK-ZB0L;?LZWji-?Z5m z%Ny8gs$lC~<^P6uq3I)m>kEj8vI(DO5Vha^SXT$h6rdQH*a(I~OrFDIW2LH%I&o80 z8b0G39v#79Vub+3kk~N=@^Hyo>cuHLs#rN)^WVaTcW2l3?hoPR%Mnqcx_t}f1^$m7 z6eL*Rps7|Vf7oJnYY3|!5J4kHEv&4l=lYV(dXf?o^ABB#Szm-0uQ)l;u*QdTTt4pE z$0kL}_I1&HwX^eN^(0jKyqvFsuTSq&hxT)g*FEC0JA9}euo-1c#dEy`5aG%)cWFgs ztDI7y!M09bf#Tm=q;$5i40(4~Nr-S>)ov zQ)27(?_`4ys~&H+dHL(|y^x@) zP2M~<4h~)lmLz9|kIxuW(>_Z7;EF1?IQL5ySOCJLlc=Vr3G~xyuZQ2X8Gg16xA_+{ zdM{MlhH{f&)@kU!+xPEO)HBn3^q@bFs$T<+p}s<1{??mg)nL0r{%ab)6IiVc5%zN@S>V^M3E7> zY3to8q}atj&CCdcG6XKJYMlW5YZ3I&(1K+0!%eL8f&GZjT#0MMueV-ASTwkZ#;s~!pDu#XE1 zIf{xJ^)RRiqr-;|VMm9zg&W_@&$ZEfS;tRpDeudeM&^Hgsbxz`TNzsRDj4Qracbq) z7ltIojQ6UVt-!ARiB$HH-|KI|7T56baCl6Nq?=nK9jEKrx}jz(AX+~C*Okn~#Dtp? z5fc-lRIJX8rnniAh#1s=k0e+<^8^nQDzR`6qKZybl;CriwTxU4C*#uYzoxkUL_GSC z(Ek3t*2qd3>|`S1OlhG|ni;rCgl7#6jR0dOnk9GkmLZo$pG#pnwHn`qrkHeJ!xm=^E_ z$kt@MN6@t=RI^_!`c;|)k+87pTcvFu5X0NR?$wgbRYG(rp5X8}!4P$PDWsOiW*Lm* z8Js1J%n4=`>a$6ga18~^3J@Gs)_-51Fxu;K4&J>G{63vZ~+)v)ti zoO6^Fz8?48j?8N!bI{OG@fW|2W-K)tT~^8lqZNg0u1D;H8iDJ1H7%_<&I%t0Wz_mu z@bCVPvg4%yL8`ySY5U3k5$Z+MK;JHpXcf}X(D)6YS>$L8xscwRyDV;2Dj~ub_J|yT zqN}UDosm}QNh3Yj^b~YIlF)obkda1~2>Y4JjRvlduWPXSAiI5htMK_x_~9BNmSKCN zS66K%CB;qMe_FTTgXm*cn!ihi9%~`M9aX~Q1JGRus7fK0#ua=4S)s;vpX1uWC+h_h zj^F=dF(&Mr&94vV{2R$+fUi^C;Fm4WHZZ_nmm6{ySE)F1aH8cTBj@}lQKRV>1aWca zZFy{1LiuZIQ%g8t=)<3nTr{R2adQ}R;J^Q-?y;4_;}peQ3SZ&J4-SvR=%LensxpTF ziR)8T^^eKQLViuXu!|`A)t)%6{Hg8kM;y{}Sg#U{ss{lK4gsu~;&s4VU~xZD8BDcX zYtx)tZINedh1WK43ORHKih#YQ{#=DYtJ>Ui)QKhFB+EwD0$%==O&r;C1w8xCS(f@i zEp+q9Ir3{Umk8;hk#66PCBd;j~xcC<9EKz}%zq~D0F`Z{K__gp9 zN7?U0OQM(O+iuP8hIJOm(5jb#UAB&MF~Qqam$GGp4$s;$=MzgHF4ZjAMvfL16o54< ztl}oI4vLFnLCuVa6CVl&UFe%%d{|fS9Hvqe(A4#g?nAjO7Ud#U0}dcNJl<&UbUE$n z^PZ=AwCL;KaTXT#rDh!85MjXp_}6l?Yy*|KY*(7l2@D*+9JYZ?-4Ph$L;m4&pLX2u zrI+zoDapz8f;N7T9NvV|*T7)*v%*a23glX~AIFIYc9+$GC+?6C@QC3+{aM*JM~so8 z#%D7K2WUGuU&{0=eK!1$Wrrr z6Zk1-dW13^p#L!VEINVE+fk##Qn?P|_yE*DW;HgJ}6obJI`?9eJq?|f6KpMUAx`+7$)*GNVx|=4r04E7$=0nkl z^2(k-@yJE{#y<>b0acl17(BG(L_8EtwNVHe(gE^iV(FcBAh_$+zoL(bh#=&#O+D;{ zfC9f*P-O^Z^wTEXo`6&z3azg-Z1-N**+>NGG<4QLtE-?+zvI*iu08g=t@CsnHiuhd|4m+j{a+3 zjW{TCkdFt|D5zQt_HOFL;DlN%(jE5IUB`}D2ygD}sLVV3auk@;w1J;E{1ph!X6L_q2)Qhf5MGl< z1LH&aY2l~Rx;pHYW(S97sC~NT1F@nFsG%GLOJNQ!p~0# z0gW&aTEuyO3V^%QW(a}x^O;@q3eY$)pz8?wjV80c`QT;-3M1GSK#dN1CA$$XNQHA|`bKz7u0s+gqcyan9<~Q5S8VMt2vCCn ztt@jeh6R#Ih_}$!Uj-8Qk|MZobXm{?4v%~vUMq9_z*?#laJ6sh`RtIJMTkNC4hcF8 z%{SnBKGB4nd27q4h}i+pt%tb{Ds{laJC?zxK4%t02Uy~vA*3gFHK_1l-@1$6eRL0< zQ;%oe#=+qYF3|dz4w0gk7DC1o$9D(7!ygXVDQ`b35H(xwwxZz3<#T|$<2`9*oDn+h zW-6gG17ClM;*6W>bok*MViR;V3r+rmBi=)bY;44|vC(YWlfX1lPzvFD+qdhAM}<-W zmA>MHA3hD;rhc*m^*oay0l*;9bdWRNnR{Fg-|Tc*XW{MlK?n^$?z$Y* zqs~LuR|!4}XpNMOenag=B!&X?!S)AKRG8D10(suIp`46FQ=d+WAxKb?k1>4YPfWP| z8cArLcsOM#g&H-A8?#mglxn>InUKax1tF{5v>zv`G9rI5&rJYC>Nk+q6myUVal~C`I*CFR;XmL$w7IZFQ`1w z>G0$Peg)#G8>mwoN(^ruv~CeZe)4v+#ZZRoYn$2P-vDHH8i_JM zIzIvJ87f=V*e-EFE8iF2goJ>#LqshV{S(}xaHzV%$H$j8{{lSkW}CespdL>$OleBH z${+#;4&ircaaQj*@5b?h*f-$j-v$QW-jVOjpvrWqesF_>@h5blf1FGSKjb8CTZSFN zVvI+(b2wi5(%sx3&|~^V#TaGCefGJHX>k+NOH*4r?BT&1it~V)3-xkgknw-5)NkGb zD|DZf~p@kVAOME8Yvq)#p?#YoV1tKhqo4@bY_3f64od#|i^e9m#BJ(U93Sm}b6-Q{ps|FD z^+t*rmKzFq<%)Szx6NSuXjaolnTJUgN#*}^A^ijvR}TiQt!||jU{rab1+YP6D2+H( za`WM~%{d1%h^hgus13Sd3SHk+JuKcve(*!8TWfX^1CG-np&LSLnI>pg8B@6)soKuI za}@52P-LQsQjnK>_k{q@*?e-ZR?X{1pYE@fIop+(K;A?_pbLdD8QnnD7p7l?KJ37A z6L{yq3&zAu23P_mVp0jge`8@m=t7}yXTu}j{O@C=?Ea}eUsDc8PHyl%ge`x1@ozFW zp%VihTZC!Mr6f4EW{VPdKCKhe4GQ`H?*|c=lFrV~|MvrRK(mkP)1I!Qa)XBqpaePo zyl(>=P7ez7p%*2Jpx&0%fz0v$JV5~SC;5IjH8qS2TAN00bM0N zIeE{w+z59drYBN50-VZfB10G5r0}v6$lWY5)4-yP<>d~dQagBVLdRB7x_ueC+WSaw zP9#VIP3N|+kn@gAL2)r6BQfY`-aIf5aGLcarTBPvKCe-RZfs2ca1Axd>1-kteZpbNy znoL=UzFGL6nc_17_?}$~{x@%6F89XGC!x2#u^a$vb5Qsk9vA1)%8t~V2@sS3VL^=s z&i|f=QU=6IVN{dYOCezO1Z7i*NAn>AHx&v=H6s5mJC`_{VhA2;%g0bB2WX3v>zI?{?If9C}#3sD?v9F|CuMK?{aNTWOFn7;dScMf!drp6gXZ0rxEmazcB(eGM-K|@tv3XMw93E z6RkVK&I|{D&4r4|I;Yn&c9ebJ16;|6YVsz)5W{!8e zH;*(Ya9!5kpyij(PDrg3YUoH{2SsY)d8UL`ozw6AW}ChBZuuDFgm35eC;IK;?Mt>PJ_-}UI&?7UqoxAksH zTzgm@oS&b}-eCQ+1*o_KSQ$ZbHi3*!ed+)A^JImAhbt-YME$>FcdS8#p#Ye{98`fv yGR=`-VhHF|WMEJSazcQj2SA*uKvBw-g!10|R;A literal 0 HcmV?d00001 diff --git a/.github/assets/google-play-badge.png b/.github/assets/google-play-badge.png new file mode 100644 index 0000000000000000000000000000000000000000..131f3acaa252a863c3b694d0f522ea750aebd81c GIT binary patch literal 4904 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 literal 0 HcmV?d00001 diff --git a/.github/assets/linux-badge.svg b/.github/assets/linux-badge.svg new file mode 100755 index 0000000000..8416e1bb1c --- /dev/null +++ b/.github/assets/linux-badge.svg @@ -0,0 +1,1071 @@ + +linux-badgeGET IT ONLinuxlinux-badge diff --git a/.github/assets/mac-store-badge.svg b/.github/assets/mac-store-badge.svg new file mode 100755 index 0000000000..c36a76a5a2 --- /dev/null +++ b/.github/assets/mac-store-badge.svg @@ -0,0 +1,51 @@ + + Download_on_the_Mac_App_Store_Badge_US-UK_RGB_blk_092917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 705ce35cee8fd611dad9d554b68cda52c5e2f02e Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 15:50:56 -0400 Subject: [PATCH 022/157] Update a couple badges --- .github/assets/f-droid-badge.png | Bin 18971 -> 16447 bytes .github/assets/google-play-badge.png | Bin 4904 -> 22641 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/assets/f-droid-badge.png b/.github/assets/f-droid-badge.png index e51ae2677eb661cc3637c79547addb211f8591ad..2c9521de148af20ba72c360b455b09bc2354079b 100644 GIT binary patch literal 16447 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 M3(E*q3F!I#Ka5AAT>t<8 literal 18971 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 yGR=`-VhHF|WMEJSazcQj2SA*uKvBw-g!10|R;A diff --git a/.github/assets/google-play-badge.png b/.github/assets/google-play-badge.png index 131f3acaa252a863c3b694d0f522ea750aebd81c..9667c568d863e42d7e4e69e5e5adbc6835787a3d 100644 GIT binary patch literal 22641 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 literal 4904 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 From 277a487a9cfd42d491c65ea976b4a6473d3692bd Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 5 Apr 2024 17:45:35 -0400 Subject: [PATCH 023/157] Update README.md --- README.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7b739f9807..3d64ca6969 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,22 @@ -# Cake Wallet for Mobile and Desktop +